]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
NAN: Make DE aware of maximum driver supported listen time
authorJouni Malinen <quic_jouni@quicinc.com>
Mon, 4 Nov 2024 20:42:44 +0000 (22:42 +0200)
committerJouni Malinen <j@w1.fi>
Mon, 4 Nov 2024 21:19:30 +0000 (23:19 +0200)
This can be used to optimize listen operations to be as long as the
driver supports instead of having to use a small enough value to work
with all drivers.

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
src/ap/nan_usd_ap.c
src/common/nan_de.c
src/common/nan_de.h
wpa_supplicant/nan_usd.c

index 56ef6a4d8ff7e932c6f7603f1240a04730f200ea..4623f678d8d5cb58dfb30b0a702c88c86c3d0578 100644 (file)
@@ -160,7 +160,7 @@ int hostapd_nan_usd_init(struct hostapd_data *hapd)
        cb.subscribe_terminated = hostapd_nan_de_subscribe_terminated;
        cb.receive = hostapd_nan_de_receive;
 
-       hapd->nan_de = nan_de_init(hapd->own_addr, false, true, &cb);
+       hapd->nan_de = nan_de_init(hapd->own_addr, false, true, 0, &cb);
        if (!hapd->nan_de)
                return -1;
        return 0;
index 85240648e73dfaf76076b9e3506cf7aecf9f86d6..045d66e2490fb1d3a7a1c70172194ec65f787b52 100644 (file)
@@ -64,6 +64,7 @@ struct nan_de {
        u8 nmi[ETH_ALEN];
        bool offload;
        bool ap;
+       unsigned int max_listen;
        struct nan_callbacks cb;
 
        struct nan_de_service *service[NAN_DE_MAX_SERVICE];
@@ -85,6 +86,7 @@ bool nan_de_is_nan_network_id(const u8 *addr)
 
 
 struct nan_de * nan_de_init(const u8 *nmi, bool offload, bool ap,
+                           unsigned int max_listen,
                            const struct nan_callbacks *cb)
 {
        struct nan_de *de;
@@ -96,6 +98,7 @@ struct nan_de * nan_de_init(const u8 *nmi, bool offload, bool ap,
        os_memcpy(de->nmi, nmi, ETH_ALEN);
        de->offload = offload;
        de->ap = ap;
+       de->max_listen = max_listen ? max_listen : 1000;
        os_memcpy(&de->cb, cb, sizeof(*cb));
 
        return de;
index 3f9670a47881ed5a0578a9be830880b96401fa57..188556912a15a81d60535c0789b2e3cee0781720 100644 (file)
@@ -61,6 +61,7 @@ struct nan_callbacks {
 
 bool nan_de_is_nan_network_id(const u8 *addr);
 struct nan_de * nan_de_init(const u8 *nmi, bool offload, bool ap,
+                           unsigned int max_listen,
                            const struct nan_callbacks *cb);
 void nan_de_flush(struct nan_de *de);
 void nan_de_deinit(struct nan_de *de);
index 98c44c03905144020a1ede103629edcc8ff09375..577c8ac2f6940277eb3de0f5acaba130a8ad8ac9 100644 (file)
@@ -321,7 +321,8 @@ int wpas_nan_usd_init(struct wpa_supplicant *wpa_s)
        cb.process_p2p_usd_elems = wpas_nan_process_p2p_usd_elems;
 #endif /* CONFIG_P2P */
 
-       wpa_s->nan_de = nan_de_init(wpa_s->own_addr, offload, false, &cb);
+       wpa_s->nan_de = nan_de_init(wpa_s->own_addr, offload, false,
+                                   wpa_s->max_remain_on_chan, &cb);
        if (!wpa_s->nan_de)
                return -1;
        return 0;