[9610] [7885] [7872] wlbt: update beacon ies in roaming
authorJaya Prakash Sangaru <j.sangaru@samsung.com>
Mon, 25 Jun 2018 12:02:50 +0000 (17:32 +0530)
committerIvan Priest <i.priest@samsung.com>
Wed, 11 Jul 2018 17:43:14 +0000 (18:43 +0100)
Send beacon ies in roam vendor event.

SCSC-Bug-Id: SSB-41243

Change-Id: I12db3173b20e32af9957f1bdebf93ea5ab7282e2
Signed-off-by: Jaya Prakash Sangaru <j.sangaru@samsung.com>
drivers/net/wireless/scsc/rx.c

index e63f1c465057e38828a78d979e6c3a65181201e9..c206f67b47293311f8b5ad7aac482e2f54908b97 100755 (executable)
@@ -772,6 +772,7 @@ enum slsi_wlan_vendor_attr_roam_auth {
        SLSI_WLAN_VENDOR_ATTR_ROAM_AUTH_KEY_REPLAY_CTR,
        SLSI_WLAN_VENDOR_ATTR_ROAM_AUTH_PTK_KCK,
        SLSI_WLAN_VENDOR_ATTR_ROAM_AUTH_PTK_KEK,
+       SLSI_WLAN_VENDOR_ATTR_ROAM_BEACON_IE,
        /* keep last */
        SLSI_WLAN_VENDOR_ATTR_ROAM_AUTH_AFTER_LAST,
        SLSI_WLAN_VENDOR_ATTR_ROAM_AUTH_MAX =
@@ -782,6 +783,7 @@ int slsi_send_roam_vendor_event(struct slsi_dev *sdev,
                                const u8 *bssid,
                                const u8 *req_ie, size_t req_ie_len,
                                const u8 *resp_ie, size_t resp_ie_len,
+                               const u8 *beacon_ie, size_t beacon_ie_len,
                                bool authorized)
 {
        int                                    length = ETH_ALEN + 32 + req_ie_len + resp_ie_len;
@@ -805,7 +807,8 @@ int slsi_send_roam_vendor_event(struct slsi_dev *sdev,
        if (nla_put(skb, SLSI_WLAN_VENDOR_ATTR_ROAM_AUTH_BSSID, ETH_ALEN, bssid) ||
            nla_put(skb, SLSI_WLAN_VENDOR_ATTR_ROAM_AUTH_AUTHORIZED, 1, &authorized) ||
           (req_ie && nla_put(skb, SLSI_WLAN_VENDOR_ATTR_ROAM_AUTH_REQ_IE, req_ie_len, req_ie)) ||
-          (resp_ie && nla_put(skb, SLSI_WLAN_VENDOR_ATTR_ROAM_AUTH_RESP_IE, resp_ie_len, resp_ie))) {
+          (resp_ie && nla_put(skb, SLSI_WLAN_VENDOR_ATTR_ROAM_AUTH_RESP_IE, resp_ie_len, resp_ie)) ||
+          (beacon_ie && nla_put(skb, SLSI_WLAN_VENDOR_ATTR_ROAM_BEACON_IE, beacon_ie_len, beacon_ie))) {
                SLSI_ERR_NODEV("Failed nla_put 1\n");
                slsi_kfree_skb(skb);
                return -EINVAL;
@@ -953,7 +956,9 @@ void slsi_rx_roamed_ind(struct slsi_dev *sdev, struct net_device *dev, struct sk
 #endif
 #ifdef CONFIG_SCSC_WLAN_KEY_MGMT_OFFLOAD
                if (slsi_send_roam_vendor_event(sdev, peer->address, assoc_ie, assoc_ie_len,
-                                               assoc_rsp_ie, assoc_rsp_ie_len, !temporal_keys_required) != 0) {
+                                               assoc_rsp_ie, assoc_rsp_ie_len,
+                                               ndev_vif->sta.sta_bss->ies->data, ndev_vif->sta.sta_bss->ies->len,
+                                               !temporal_keys_required) != 0) {
                        SLSI_NET_ERR(dev, "Could not send Roam vendor event up");
                }
 #endif