esp_wifi: Add support for NAN Discovery and Datapath

Update wifi lib with below -
1. Create NAN Discovery SM for beaconing & cluster formation
2. Create NAN interface for Tx/Rx of beacons & action frames
3. Add commands & events for NAN Services Publish/Subscribe/Followup
4. Add NAN Datapath definitions, Events, Peer structures
5. Support for forming and parsing of Datapath related attributes
6. Modules for NDP Req, Resp, Confirm, Term, Peer management
7. NAN Interface related additions in Datapath, Data Tx Q's

In addition include below changes -
1. Add netif and driver support for NAN Interface
2. Add simple examples for Publisher-Subscriber usecases
3. Add an advanced console example that supports commands
   for NAN Discovery, Services & Datapath
4. Add wifi_apps for providing better NAN API's and Peer management

Co-authored-by: Shyamal Khachane <shyamal.khachane@espressif.com>
This commit is contained in:
Nachiket Kukade
2023-03-10 11:18:23 +05:30
co-authored by Shyamal Khachane
parent cec892d355
commit 4c76af3f68
53 changed files with 3302 additions and 43 deletions
@@ -0,0 +1,56 @@
/*
* SPDX-FileCopyrightText: 2023 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
#pragma once
#include "esp_log.h"
#include "esp_err.h"
#include "esp_wifi_types.h"
#include "esp_netif.h"
#ifdef __cplusplus
extern "C" {
#endif
#ifdef CONFIG_ESP_WIFI_NAN_ENABLE
/**
* @brief Initialize the NAN App and required Data Structures
*
* @attention This API should be called in esp_wifi_init()
*/
void esp_nan_app_init(void);
/**
* @brief De-initialize the NAN App and complete the cleanup
*
* @attention This API should be called in esp_wifi_deinit()
*/
void esp_nan_app_deinit(void);
/**
* @brief NAN App action handler for NAN Started event. Sets up other event handlers and
* initializes NAN App context
*
* @attention This API should be called in WIFI_EVENT_NAN_STARTED event handler
*
* @param nan_netif Netif handle corresponding to NAN interface.
*/
void esp_nan_action_start(esp_netif_t *nan_netif);
/**
* @brief NAN App action handler for NAN Stopped event. Clears other event handlers and
* resets NAN App context
*
* @attention This API should be called in WIFI_EVENT_NAN_STOPPED event handler
*/
void esp_nan_action_stop(void);
#endif /* CONFIG_ESP_WIFI_NAN_ENABLE */
#ifdef __cplusplus
}
#endif