Forráskód Böngészése

1. Support NAN ifx for API's esp_wifi_internal_set_fix_rate and esp_wifi_set_protocol
2. Remove user configurable flag fsd_reqd from NAN publish config
3. Fix issue wherein NDL of previously cancelled service is obtained in peer record of new service with no NDL

Shyamal Khachane 2 éve
szülő
commit
063460a0d3

+ 1 - 2
components/esp_wifi/include/esp_wifi_types.h

@@ -702,8 +702,7 @@ typedef struct {
     char svc_info[ESP_WIFI_MAX_SVC_INFO_LEN];       /**< Service info shared in Publish frame */
     uint8_t single_replied_event:1;                 /**< Give single Replied event or every time */
     uint8_t datapath_reqd:1;                        /**< NAN Datapath required for the service */
-    uint8_t fsd_reqd:1;                             /**< Further Service Discovery required */
-    uint8_t reserved:5;                             /**< Reserved */
+    uint8_t reserved:6;                             /**< Reserved */
 } wifi_nan_publish_cfg_t;
 
 /**

+ 1 - 1
components/esp_wifi/lib

@@ -1 +1 @@
-Subproject commit 9b3c7a2e6090077242a0531a228edde0784091d9
+Subproject commit 7dadfb9fe6cb25c79900fb58c96543dfc6d3dfca

+ 13 - 2
components/esp_wifi/wifi_apps/src/nan_app.c

@@ -989,8 +989,19 @@ esp_err_t esp_wifi_nan_get_peer_records(int *num_peer_records, uint8_t own_svc_i
             MACADDR_COPY(peer_record[peer_num].peer_nmi, temp->peer_nmi);
             p_ndl = nan_find_ndl(0, temp->peer_nmi);
             if (p_ndl) {
-                peer_record[peer_num].ndp_id = p_ndl->ndp_id;
-                MACADDR_COPY(peer_record[peer_num].peer_ndi, p_ndl->peer_ndi);
+                if (p_ndl->own_role == ESP_NAN_PUBLISH) {
+                    if (p_ndl->publisher_id == own_svc_id) {
+                        peer_record[peer_num].ndp_id = p_ndl->ndp_id;
+                        MACADDR_COPY(peer_record[peer_num].peer_ndi, p_ndl->peer_ndi);
+                    }
+                } else if (p_ndl->own_role == ESP_NAN_SUBSCRIBE) {
+                    struct peer_svc_info *peer_info = NULL;
+                    peer_info = nan_find_peer_svc(own_svc_id, temp->svc_id, temp->peer_nmi);
+                    if (peer_info && peer_info->svc_id == p_ndl->publisher_id) {
+                        peer_record[peer_num].ndp_id = p_ndl->ndp_id;
+                        MACADDR_COPY(peer_record[peer_num].peer_ndi, p_ndl->peer_ndi);
+                    }
+                }
             } else {
                 peer_record[peer_num].ndp_id = 0;
                 MACADDR_COPY(peer_record[peer_num].peer_ndi, null_mac);