mirror of
https://github.com/espressif/esp-idf.git
synced 2024-10-05 20:47:46 -04:00
esp_wifi: support station only mode for code size down
This commit is contained in:
parent
8037e2462f
commit
a568b4fddf
@ -1,16 +1,8 @@
|
|||||||
// Copyright 2015-2019 Espressif Systems (Shanghai) PTE LTD
|
/*
|
||||||
//
|
* SPDX-FileCopyrightText: 2015-2021 Espressif Systems (Shanghai) CO LTD
|
||||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
*
|
||||||
// you may not use this file except in compliance with the License.
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
// You may obtain a copy of the License at
|
*/
|
||||||
|
|
||||||
// http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
//
|
|
||||||
// Unless required by applicable law or agreed to in writing, software
|
|
||||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
// See the License for the specific language governing permissions and
|
|
||||||
// limitations under the License.
|
|
||||||
|
|
||||||
#include "esp_netif.h"
|
#include "esp_netif.h"
|
||||||
#include "esp_wifi_default.h"
|
#include "esp_wifi_default.h"
|
||||||
@ -31,7 +23,9 @@
|
|||||||
//
|
//
|
||||||
const esp_netif_inherent_config_t _g_esp_netif_inherent_sta_config = ESP_NETIF_INHERENT_DEFAULT_WIFI_STA();
|
const esp_netif_inherent_config_t _g_esp_netif_inherent_sta_config = ESP_NETIF_INHERENT_DEFAULT_WIFI_STA();
|
||||||
|
|
||||||
|
#ifdef CONFIG_ESP_WIFI_SOFTAP_SUPPORT
|
||||||
const esp_netif_inherent_config_t _g_esp_netif_inherent_ap_config = ESP_NETIF_INHERENT_DEFAULT_WIFI_AP();
|
const esp_netif_inherent_config_t _g_esp_netif_inherent_ap_config = ESP_NETIF_INHERENT_DEFAULT_WIFI_AP();
|
||||||
|
#endif
|
||||||
|
|
||||||
const esp_netif_inherent_config_t _g_esp_netif_inherent_eth_config = ESP_NETIF_INHERENT_DEFAULT_ETH();
|
const esp_netif_inherent_config_t _g_esp_netif_inherent_eth_config = ESP_NETIF_INHERENT_DEFAULT_ETH();
|
||||||
|
|
||||||
|
@ -1,16 +1,8 @@
|
|||||||
// Copyright 2015-2016 Espressif Systems (Shanghai) PTE LTD
|
/*
|
||||||
//
|
* SPDX-FileCopyrightText: 2015-2021 Espressif Systems (Shanghai) CO LTD
|
||||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
*
|
||||||
// you may not use this file except in compliance with the License.
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
// You may obtain a copy of the License at
|
*/
|
||||||
|
|
||||||
// http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
//
|
|
||||||
// Unless required by applicable law or agreed to in writing, software
|
|
||||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
// See the License for the specific language governing permissions and
|
|
||||||
// limitations under the License.
|
|
||||||
|
|
||||||
#ifndef _ESP_NETIF_DEFAULTS_H
|
#ifndef _ESP_NETIF_DEFAULTS_H
|
||||||
#define _ESP_NETIF_DEFAULTS_H
|
#define _ESP_NETIF_DEFAULTS_H
|
||||||
@ -37,6 +29,7 @@ extern "C" {
|
|||||||
.route_prio = 100 \
|
.route_prio = 100 \
|
||||||
} \
|
} \
|
||||||
|
|
||||||
|
#ifdef CONFIG_ESP_WIFI_SOFTAP_SUPPORT
|
||||||
#define ESP_NETIF_INHERENT_DEFAULT_WIFI_AP() \
|
#define ESP_NETIF_INHERENT_DEFAULT_WIFI_AP() \
|
||||||
{ \
|
{ \
|
||||||
.flags = (esp_netif_flags_t)(ESP_NETIF_DHCP_SERVER | ESP_NETIF_FLAG_AUTOUP), \
|
.flags = (esp_netif_flags_t)(ESP_NETIF_DHCP_SERVER | ESP_NETIF_FLAG_AUTOUP), \
|
||||||
@ -48,6 +41,7 @@ extern "C" {
|
|||||||
.if_desc = "ap", \
|
.if_desc = "ap", \
|
||||||
.route_prio = 10 \
|
.route_prio = 10 \
|
||||||
};
|
};
|
||||||
|
#endif
|
||||||
|
|
||||||
#define ESP_NETIF_INHERENT_DEFAULT_ETH() \
|
#define ESP_NETIF_INHERENT_DEFAULT_ETH() \
|
||||||
{ \
|
{ \
|
||||||
@ -108,6 +102,7 @@ extern "C" {
|
|||||||
.stack = ESP_NETIF_NETSTACK_DEFAULT_ETH, \
|
.stack = ESP_NETIF_NETSTACK_DEFAULT_ETH, \
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef CONFIG_ESP_WIFI_SOFTAP_SUPPORT
|
||||||
/**
|
/**
|
||||||
* @brief Default configuration reference of WIFI AP
|
* @brief Default configuration reference of WIFI AP
|
||||||
*/
|
*/
|
||||||
@ -117,6 +112,7 @@ extern "C" {
|
|||||||
.driver = NULL, \
|
.driver = NULL, \
|
||||||
.stack = ESP_NETIF_NETSTACK_DEFAULT_WIFI_AP, \
|
.stack = ESP_NETIF_NETSTACK_DEFAULT_WIFI_AP, \
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Default configuration reference of WIFI STA
|
* @brief Default configuration reference of WIFI STA
|
||||||
@ -154,10 +150,12 @@ extern "C" {
|
|||||||
*/
|
*/
|
||||||
#define ESP_NETIF_BASE_DEFAULT_WIFI_STA &_g_esp_netif_inherent_sta_config
|
#define ESP_NETIF_BASE_DEFAULT_WIFI_STA &_g_esp_netif_inherent_sta_config
|
||||||
|
|
||||||
|
#ifdef CONFIG_ESP_WIFI_SOFTAP_SUPPORT
|
||||||
/**
|
/**
|
||||||
* @brief Default base config (esp-netif inherent) of WIFI AP
|
* @brief Default base config (esp-netif inherent) of WIFI AP
|
||||||
*/
|
*/
|
||||||
#define ESP_NETIF_BASE_DEFAULT_WIFI_AP &_g_esp_netif_inherent_ap_config
|
#define ESP_NETIF_BASE_DEFAULT_WIFI_AP &_g_esp_netif_inherent_ap_config
|
||||||
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Default base config (esp-netif inherent) of ethernet interface
|
* @brief Default base config (esp-netif inherent) of ethernet interface
|
||||||
@ -177,7 +175,9 @@ extern "C" {
|
|||||||
|
|
||||||
#define ESP_NETIF_NETSTACK_DEFAULT_ETH _g_esp_netif_netstack_default_eth
|
#define ESP_NETIF_NETSTACK_DEFAULT_ETH _g_esp_netif_netstack_default_eth
|
||||||
#define ESP_NETIF_NETSTACK_DEFAULT_WIFI_STA _g_esp_netif_netstack_default_wifi_sta
|
#define ESP_NETIF_NETSTACK_DEFAULT_WIFI_STA _g_esp_netif_netstack_default_wifi_sta
|
||||||
|
#ifdef CONFIG_ESP_WIFI_SOFTAP_SUPPORT
|
||||||
#define ESP_NETIF_NETSTACK_DEFAULT_WIFI_AP _g_esp_netif_netstack_default_wifi_ap
|
#define ESP_NETIF_NETSTACK_DEFAULT_WIFI_AP _g_esp_netif_netstack_default_wifi_ap
|
||||||
|
#endif
|
||||||
#define ESP_NETIF_NETSTACK_DEFAULT_PPP _g_esp_netif_netstack_default_ppp
|
#define ESP_NETIF_NETSTACK_DEFAULT_PPP _g_esp_netif_netstack_default_ppp
|
||||||
#define ESP_NETIF_NETSTACK_DEFAULT_SLIP _g_esp_netif_netstack_default_slip
|
#define ESP_NETIF_NETSTACK_DEFAULT_SLIP _g_esp_netif_netstack_default_slip
|
||||||
#define ESP_NETIF_NETSTACK_DEFAULT_OPENTHREAD _g_esp_netif_netstack_default_openthread
|
#define ESP_NETIF_NETSTACK_DEFAULT_OPENTHREAD _g_esp_netif_netstack_default_openthread
|
||||||
@ -190,7 +190,9 @@ extern "C" {
|
|||||||
//
|
//
|
||||||
extern const esp_netif_netstack_config_t *_g_esp_netif_netstack_default_eth;
|
extern const esp_netif_netstack_config_t *_g_esp_netif_netstack_default_eth;
|
||||||
extern const esp_netif_netstack_config_t *_g_esp_netif_netstack_default_wifi_sta;
|
extern const esp_netif_netstack_config_t *_g_esp_netif_netstack_default_wifi_sta;
|
||||||
|
#ifdef CONFIG_ESP_WIFI_SOFTAP_SUPPORT
|
||||||
extern const esp_netif_netstack_config_t *_g_esp_netif_netstack_default_wifi_ap;
|
extern const esp_netif_netstack_config_t *_g_esp_netif_netstack_default_wifi_ap;
|
||||||
|
#endif
|
||||||
extern const esp_netif_netstack_config_t *_g_esp_netif_netstack_default_ppp;
|
extern const esp_netif_netstack_config_t *_g_esp_netif_netstack_default_ppp;
|
||||||
extern const esp_netif_netstack_config_t *_g_esp_netif_netstack_default_slip;
|
extern const esp_netif_netstack_config_t *_g_esp_netif_netstack_default_slip;
|
||||||
|
|
||||||
@ -200,12 +202,16 @@ extern const esp_netif_netstack_config_t *_g_esp_netif_netstack_default_slip;
|
|||||||
// common behavioural patterns for common interfaces such as STA, AP, ETH, PPP
|
// common behavioural patterns for common interfaces such as STA, AP, ETH, PPP
|
||||||
//
|
//
|
||||||
extern const esp_netif_inherent_config_t _g_esp_netif_inherent_sta_config;
|
extern const esp_netif_inherent_config_t _g_esp_netif_inherent_sta_config;
|
||||||
|
#ifdef CONFIG_ESP_WIFI_SOFTAP_SUPPORT
|
||||||
extern const esp_netif_inherent_config_t _g_esp_netif_inherent_ap_config;
|
extern const esp_netif_inherent_config_t _g_esp_netif_inherent_ap_config;
|
||||||
|
#endif
|
||||||
extern const esp_netif_inherent_config_t _g_esp_netif_inherent_eth_config;
|
extern const esp_netif_inherent_config_t _g_esp_netif_inherent_eth_config;
|
||||||
extern const esp_netif_inherent_config_t _g_esp_netif_inherent_ppp_config;
|
extern const esp_netif_inherent_config_t _g_esp_netif_inherent_ppp_config;
|
||||||
extern const esp_netif_inherent_config_t _g_esp_netif_inherent_slip_config;
|
extern const esp_netif_inherent_config_t _g_esp_netif_inherent_slip_config;
|
||||||
|
|
||||||
|
#ifdef CONFIG_ESP_WIFI_SOFTAP_SUPPORT
|
||||||
extern const esp_netif_ip_info_t _g_esp_netif_soft_ap_ip;
|
extern const esp_netif_ip_info_t _g_esp_netif_soft_ap_ip;
|
||||||
|
#endif
|
||||||
|
|
||||||
#if CONFIG_OPENTHREAD_ENABLED
|
#if CONFIG_OPENTHREAD_ENABLED
|
||||||
/**
|
/**
|
||||||
|
@ -325,4 +325,10 @@ menu "Wi-Fi"
|
|||||||
help
|
help
|
||||||
Select this option to enable GMAC support. GMAC support is compulsory for WiFi 192 bit certification.
|
Select this option to enable GMAC support. GMAC support is compulsory for WiFi 192 bit certification.
|
||||||
|
|
||||||
|
config ESP_WIFI_SOFTAP_SUPPORT
|
||||||
|
bool "WiFi SoftAP Support"
|
||||||
|
default y
|
||||||
|
help
|
||||||
|
WiFi module can be compiled without SoftAP to save code size.
|
||||||
|
|
||||||
endmenu # Wi-Fi
|
endmenu # Wi-Fi
|
||||||
|
@ -1,16 +1,8 @@
|
|||||||
// Copyright 2018 Espressif Systems (Shanghai) PTE LTD
|
/*
|
||||||
//
|
* SPDX-FileCopyrightText: 2018-2021 Espressif Systems (Shanghai) CO LTD
|
||||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
*
|
||||||
// you may not use this file except in compliance with the License.
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
// You may obtain a copy of the License at
|
*/
|
||||||
//
|
|
||||||
// http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
//
|
|
||||||
// Unless required by applicable law or agreed to in writing, software
|
|
||||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
// See the License for the specific language governing permissions and
|
|
||||||
// limitations under the License.
|
|
||||||
|
|
||||||
#ifndef ESP_WIFI_OS_ADAPTER_H_
|
#ifndef ESP_WIFI_OS_ADAPTER_H_
|
||||||
#define ESP_WIFI_OS_ADAPTER_H_
|
#define ESP_WIFI_OS_ADAPTER_H_
|
||||||
|
@ -1,16 +1,8 @@
|
|||||||
// Copyright 2015-2016 Espressif Systems (Shanghai) PTE LTD
|
/*
|
||||||
//
|
* SPDX-FileCopyrightText: 2015-2021 Espressif Systems (Shanghai) CO LTD
|
||||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
*
|
||||||
// you may not use this file except in compliance with the License.
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
// You may obtain a copy of the License at
|
*/
|
||||||
|
|
||||||
// http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
//
|
|
||||||
// Unless required by applicable law or agreed to in writing, software
|
|
||||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
// See the License for the specific language governing permissions and
|
|
||||||
// limitations under the License.
|
|
||||||
|
|
||||||
|
|
||||||
/* Notes about WiFi Programming
|
/* Notes about WiFi Programming
|
||||||
@ -275,7 +267,7 @@ esp_err_t esp_wifi_deinit(void);
|
|||||||
* @brief Set the WiFi operating mode
|
* @brief Set the WiFi operating mode
|
||||||
*
|
*
|
||||||
* Set the WiFi operating mode as station, soft-AP or station+soft-AP,
|
* Set the WiFi operating mode as station, soft-AP or station+soft-AP,
|
||||||
* The default mode is soft-AP mode.
|
* The default mode is station mode.
|
||||||
*
|
*
|
||||||
* @param mode WiFi operating mode
|
* @param mode WiFi operating mode
|
||||||
*
|
*
|
||||||
|
@ -1 +1 @@
|
|||||||
Subproject commit 681c8bfeb739c2fcd579e404b1df8b19acc07497
|
Subproject commit 1053c13faecea52a57c8e1cee75fc8bae2e8756e
|
@ -1,16 +1,9 @@
|
|||||||
// Copyright 2019 Espressif Systems (Shanghai) PTE LTD
|
/*
|
||||||
//
|
* SPDX-FileCopyrightText: 2019-2021 Espressif Systems (Shanghai) CO LTD
|
||||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
*
|
||||||
// you may not use this file except in compliance with the License.
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
// You may obtain a copy of the License at
|
*/
|
||||||
//
|
#include "sdkconfig.h"
|
||||||
// http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
//
|
|
||||||
// Unless required by applicable law or agreed to in writing, software
|
|
||||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
// See the License for the specific language governing permissions and
|
|
||||||
// limitations under the License.
|
|
||||||
#include "esp_wifi.h"
|
#include "esp_wifi.h"
|
||||||
#include "esp_netif.h"
|
#include "esp_netif.h"
|
||||||
#include "esp_log.h"
|
#include "esp_log.h"
|
||||||
@ -110,6 +103,7 @@ static void wifi_default_action_sta_disconnected(void *arg, esp_event_base_t bas
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef CONFIG_ESP_WIFI_SOFTAP_SUPPORT
|
||||||
static void wifi_default_action_ap_start(void *arg, esp_event_base_t base, int32_t event_id, void *data)
|
static void wifi_default_action_ap_start(void *arg, esp_event_base_t base, int32_t event_id, void *data)
|
||||||
{
|
{
|
||||||
if (s_wifi_netifs[WIFI_IF_AP] != NULL) {
|
if (s_wifi_netifs[WIFI_IF_AP] != NULL) {
|
||||||
@ -123,6 +117,7 @@ static void wifi_default_action_ap_stop(void *arg, esp_event_base_t base, int32_
|
|||||||
esp_netif_action_stop(s_wifi_netifs[WIFI_IF_AP], base, event_id, data);
|
esp_netif_action_stop(s_wifi_netifs[WIFI_IF_AP], base, event_id, data);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
static void wifi_default_action_sta_got_ip(void *arg, esp_event_base_t base, int32_t event_id, void *data)
|
static void wifi_default_action_sta_got_ip(void *arg, esp_event_base_t base, int32_t event_id, void *data)
|
||||||
{
|
{
|
||||||
@ -145,8 +140,10 @@ esp_err_t _esp_wifi_clear_default_wifi_handlers(void)
|
|||||||
esp_event_handler_unregister(WIFI_EVENT, WIFI_EVENT_STA_STOP, wifi_default_action_sta_stop);
|
esp_event_handler_unregister(WIFI_EVENT, WIFI_EVENT_STA_STOP, wifi_default_action_sta_stop);
|
||||||
esp_event_handler_unregister(WIFI_EVENT, WIFI_EVENT_STA_CONNECTED, wifi_default_action_sta_connected);
|
esp_event_handler_unregister(WIFI_EVENT, WIFI_EVENT_STA_CONNECTED, wifi_default_action_sta_connected);
|
||||||
esp_event_handler_unregister(WIFI_EVENT, WIFI_EVENT_STA_DISCONNECTED, wifi_default_action_sta_disconnected);
|
esp_event_handler_unregister(WIFI_EVENT, WIFI_EVENT_STA_DISCONNECTED, wifi_default_action_sta_disconnected);
|
||||||
|
#ifdef CONFIG_ESP_WIFI_SOFTAP_SUPPORT
|
||||||
esp_event_handler_unregister(WIFI_EVENT, WIFI_EVENT_AP_START, wifi_default_action_ap_start);
|
esp_event_handler_unregister(WIFI_EVENT, WIFI_EVENT_AP_START, wifi_default_action_ap_start);
|
||||||
esp_event_handler_unregister(WIFI_EVENT, WIFI_EVENT_AP_STOP, wifi_default_action_ap_stop);
|
esp_event_handler_unregister(WIFI_EVENT, WIFI_EVENT_AP_STOP, wifi_default_action_ap_stop);
|
||||||
|
#endif
|
||||||
esp_event_handler_unregister(IP_EVENT, IP_EVENT_STA_GOT_IP, wifi_default_action_sta_got_ip);
|
esp_event_handler_unregister(IP_EVENT, IP_EVENT_STA_GOT_IP, wifi_default_action_sta_got_ip);
|
||||||
esp_unregister_shutdown_handler((shutdown_handler_t)esp_wifi_stop);
|
esp_unregister_shutdown_handler((shutdown_handler_t)esp_wifi_stop);
|
||||||
wifi_default_handlers_set = false;
|
wifi_default_handlers_set = false;
|
||||||
@ -162,6 +159,7 @@ esp_err_t _esp_wifi_set_default_wifi_handlers(void)
|
|||||||
return ESP_OK;
|
return ESP_OK;
|
||||||
}
|
}
|
||||||
esp_err_t err;
|
esp_err_t err;
|
||||||
|
|
||||||
err = esp_event_handler_register(WIFI_EVENT, WIFI_EVENT_STA_START, wifi_default_action_sta_start, NULL);
|
err = esp_event_handler_register(WIFI_EVENT, WIFI_EVENT_STA_START, wifi_default_action_sta_start, NULL);
|
||||||
if (err != ESP_OK) {
|
if (err != ESP_OK) {
|
||||||
goto fail;
|
goto fail;
|
||||||
@ -182,6 +180,7 @@ esp_err_t _esp_wifi_set_default_wifi_handlers(void)
|
|||||||
goto fail;
|
goto fail;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef CONFIG_ESP_WIFI_SOFTAP_SUPPORT
|
||||||
err = esp_event_handler_register(WIFI_EVENT, WIFI_EVENT_AP_START, wifi_default_action_ap_start, NULL);
|
err = esp_event_handler_register(WIFI_EVENT, WIFI_EVENT_AP_START, wifi_default_action_ap_start, NULL);
|
||||||
if (err != ESP_OK) {
|
if (err != ESP_OK) {
|
||||||
goto fail;
|
goto fail;
|
||||||
@ -191,6 +190,7 @@ esp_err_t _esp_wifi_set_default_wifi_handlers(void)
|
|||||||
if (err != ESP_OK) {
|
if (err != ESP_OK) {
|
||||||
goto fail;
|
goto fail;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
err = esp_event_handler_register(IP_EVENT, IP_EVENT_STA_GOT_IP, wifi_default_action_sta_got_ip, NULL);
|
err = esp_event_handler_register(IP_EVENT, IP_EVENT_STA_GOT_IP, wifi_default_action_sta_got_ip, NULL);
|
||||||
if (err != ESP_OK) {
|
if (err != ESP_OK) {
|
||||||
@ -278,7 +278,11 @@ static esp_err_t create_and_attach(wifi_interface_t wifi_if, esp_netif_t* esp_ne
|
|||||||
|
|
||||||
static inline esp_err_t esp_netif_attach_wifi(esp_netif_t *esp_netif, wifi_interface_t wifi_if)
|
static inline esp_err_t esp_netif_attach_wifi(esp_netif_t *esp_netif, wifi_interface_t wifi_if)
|
||||||
{
|
{
|
||||||
if (esp_netif == NULL || (wifi_if != WIFI_IF_STA && wifi_if != WIFI_IF_AP)) {
|
if (esp_netif == NULL || (wifi_if != WIFI_IF_STA
|
||||||
|
#ifdef CONFIG_ESP_WIFI_SOFTAP_SUPPORT
|
||||||
|
&& wifi_if != WIFI_IF_AP
|
||||||
|
#endif
|
||||||
|
)) {
|
||||||
return ESP_ERR_INVALID_ARG;
|
return ESP_ERR_INVALID_ARG;
|
||||||
}
|
}
|
||||||
s_wifi_netifs[wifi_if] = esp_netif;
|
s_wifi_netifs[wifi_if] = esp_netif;
|
||||||
@ -290,16 +294,19 @@ esp_err_t esp_netif_attach_wifi_station(esp_netif_t *esp_netif)
|
|||||||
return esp_netif_attach_wifi(esp_netif, WIFI_IF_STA);
|
return esp_netif_attach_wifi(esp_netif, WIFI_IF_STA);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef CONFIG_ESP_WIFI_SOFTAP_SUPPORT
|
||||||
esp_err_t esp_netif_attach_wifi_ap(esp_netif_t *esp_netif)
|
esp_err_t esp_netif_attach_wifi_ap(esp_netif_t *esp_netif)
|
||||||
{
|
{
|
||||||
return esp_netif_attach_wifi(esp_netif, WIFI_IF_AP);
|
return esp_netif_attach_wifi(esp_netif, WIFI_IF_AP);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// Default WiFi creation from user code
|
// Default WiFi creation from user code
|
||||||
//
|
//
|
||||||
|
|
||||||
|
#ifdef CONFIG_ESP_WIFI_SOFTAP_SUPPORT
|
||||||
/**
|
/**
|
||||||
* @brief User init default AP (official API)
|
* @brief User init default AP (official API)
|
||||||
*/
|
*/
|
||||||
@ -312,6 +319,7 @@ esp_netif_t* esp_netif_create_default_wifi_ap(void)
|
|||||||
esp_wifi_set_default_wifi_ap_handlers();
|
esp_wifi_set_default_wifi_ap_handlers();
|
||||||
return netif;
|
return netif;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief User init default station (official API)
|
* @brief User init default station (official API)
|
||||||
@ -347,9 +355,13 @@ esp_netif_t* esp_netif_create_wifi(wifi_interface_t wifi_if, esp_netif_inherent_
|
|||||||
};
|
};
|
||||||
if (wifi_if == WIFI_IF_STA) {
|
if (wifi_if == WIFI_IF_STA) {
|
||||||
cfg.stack = ESP_NETIF_NETSTACK_DEFAULT_WIFI_STA;
|
cfg.stack = ESP_NETIF_NETSTACK_DEFAULT_WIFI_STA;
|
||||||
} else if (wifi_if == WIFI_IF_AP) {
|
} else
|
||||||
|
#ifdef CONFIG_ESP_WIFI_SOFTAP_SUPPORT
|
||||||
|
if (wifi_if == WIFI_IF_AP) {
|
||||||
cfg.stack = ESP_NETIF_NETSTACK_DEFAULT_WIFI_AP;
|
cfg.stack = ESP_NETIF_NETSTACK_DEFAULT_WIFI_AP;
|
||||||
} else {
|
} else
|
||||||
|
#endif
|
||||||
|
{
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -359,6 +371,7 @@ esp_netif_t* esp_netif_create_wifi(wifi_interface_t wifi_if, esp_netif_inherent_
|
|||||||
return netif;
|
return netif;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef CONFIG_ESP_WIFI_SOFTAP_SUPPORT
|
||||||
/**
|
/**
|
||||||
* @brief Creates mesh network interfaces based on default STA and AP,
|
* @brief Creates mesh network interfaces based on default STA and AP,
|
||||||
* but without DHCP, this is to be enabled separately only on root node
|
* but without DHCP, this is to be enabled separately only on root node
|
||||||
@ -404,3 +417,4 @@ esp_err_t esp_netif_create_default_wifi_mesh_netifs(esp_netif_t **p_netif_sta, e
|
|||||||
}
|
}
|
||||||
return ESP_OK;
|
return ESP_OK;
|
||||||
}
|
}
|
||||||
|
#endif // CONFIG_ESP_WIFI_SOFTAP_SUPPORT
|
||||||
|
@ -303,3 +303,9 @@ void ieee80211_ftm_attach(void)
|
|||||||
/* Do not remove, stub to overwrite weak link in Wi-Fi Lib */
|
/* Do not remove, stub to overwrite weak link in Wi-Fi Lib */
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifndef CONFIG_ESP_WIFI_SOFTAP_SUPPORT
|
||||||
|
void net80211_softap_funcs_init(void)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
@ -1,16 +1,8 @@
|
|||||||
// Copyright 2019 Espressif Systems (Shanghai) PTE LTD
|
/*
|
||||||
//
|
* SPDX-FileCopyrightText: 2019-2021 Espressif Systems (Shanghai) CO LTD
|
||||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
*
|
||||||
// you may not use this file except in compliance with the License.
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
// You may obtain a copy of the License at
|
*/
|
||||||
//
|
|
||||||
// http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
//
|
|
||||||
// Unless required by applicable law or agreed to in writing, software
|
|
||||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
// See the License for the specific language governing permissions and
|
|
||||||
// limitations under the License.
|
|
||||||
#include "esp_wifi.h"
|
#include "esp_wifi.h"
|
||||||
#include "esp_netif.h"
|
#include "esp_netif.h"
|
||||||
#include "esp_log.h"
|
#include "esp_log.h"
|
||||||
@ -47,10 +39,12 @@ static esp_err_t wifi_sta_receive(void *buffer, uint16_t len, void *eb)
|
|||||||
return s_wifi_rxcbs[WIFI_IF_STA](s_wifi_netifs[WIFI_IF_STA], buffer, len, eb);
|
return s_wifi_rxcbs[WIFI_IF_STA](s_wifi_netifs[WIFI_IF_STA], buffer, len, eb);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef CONFIG_ESP_WIFI_SOFTAP_SUPPORT
|
||||||
static esp_err_t wifi_ap_receive(void *buffer, uint16_t len, void *eb)
|
static esp_err_t wifi_ap_receive(void *buffer, uint16_t len, void *eb)
|
||||||
{
|
{
|
||||||
return s_wifi_rxcbs[WIFI_IF_AP](s_wifi_netifs[WIFI_IF_AP], buffer, len, eb);
|
return s_wifi_rxcbs[WIFI_IF_AP](s_wifi_netifs[WIFI_IF_AP], buffer, len, eb);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
static void wifi_free(void *h, void* buffer)
|
static void wifi_free(void *h, void* buffer)
|
||||||
{
|
{
|
||||||
@ -113,8 +107,12 @@ esp_err_t esp_wifi_get_if_mac(wifi_netif_driver_t ifx, uint8_t mac[6])
|
|||||||
|
|
||||||
bool esp_wifi_is_if_ready_when_started(wifi_netif_driver_t ifx)
|
bool esp_wifi_is_if_ready_when_started(wifi_netif_driver_t ifx)
|
||||||
{
|
{
|
||||||
|
#ifdef CONFIG_ESP_WIFI_SOFTAP_SUPPORT
|
||||||
// WiFi rxcb to be register wifi rxcb on start for AP only, station gets it registered on connect event
|
// WiFi rxcb to be register wifi rxcb on start for AP only, station gets it registered on connect event
|
||||||
return (ifx->wifi_if == WIFI_IF_AP);
|
return (ifx->wifi_if == WIFI_IF_AP);
|
||||||
|
#else
|
||||||
|
return false;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
esp_err_t esp_wifi_register_if_rxcb(wifi_netif_driver_t ifx, esp_netif_receive_t fn, void * arg)
|
esp_err_t esp_wifi_register_if_rxcb(wifi_netif_driver_t ifx, esp_netif_receive_t fn, void * arg)
|
||||||
@ -130,13 +128,16 @@ esp_err_t esp_wifi_register_if_rxcb(wifi_netif_driver_t ifx, esp_netif_receive_t
|
|||||||
|
|
||||||
switch (wifi_interface)
|
switch (wifi_interface)
|
||||||
{
|
{
|
||||||
|
|
||||||
case WIFI_IF_STA:
|
case WIFI_IF_STA:
|
||||||
rxcb = wifi_sta_receive;
|
rxcb = wifi_sta_receive;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
#ifdef CONFIG_ESP_WIFI_SOFTAP_SUPPORT
|
||||||
case WIFI_IF_AP:
|
case WIFI_IF_AP:
|
||||||
rxcb = wifi_ap_receive;
|
rxcb = wifi_ap_receive;
|
||||||
break;
|
break;
|
||||||
|
#endif
|
||||||
|
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
|
@ -1,16 +1,8 @@
|
|||||||
// Copyright 2015-2019 Espressif Systems (Shanghai) PTE LTD
|
/*
|
||||||
//
|
* SPDX-FileCopyrightText: 2015-2021 Espressif Systems (Shanghai) CO LTD
|
||||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
*
|
||||||
// you may not use this file except in compliance with the License.
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
// You may obtain a copy of the License at
|
*/
|
||||||
|
|
||||||
// http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
//
|
|
||||||
// Unless required by applicable law or agreed to in writing, software
|
|
||||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
// See the License for the specific language governing permissions and
|
|
||||||
// limitations under the License.
|
|
||||||
|
|
||||||
#include "esp_netif.h"
|
#include "esp_netif.h"
|
||||||
#include "esp_private/wifi.h"
|
#include "esp_private/wifi.h"
|
||||||
@ -51,6 +43,7 @@ static const char* s_netif_keyif[TCPIP_ADAPTER_IF_MAX] = {
|
|||||||
|
|
||||||
static bool s_tcpip_adapter_compat = false;
|
static bool s_tcpip_adapter_compat = false;
|
||||||
|
|
||||||
|
#ifdef CONFIG_ESP_WIFI_SOFTAP_SUPPORT
|
||||||
static void wifi_create_and_start_ap(void *esp_netif, esp_event_base_t base, int32_t event_id, void *data)
|
static void wifi_create_and_start_ap(void *esp_netif, esp_event_base_t base, int32_t event_id, void *data)
|
||||||
{
|
{
|
||||||
if (s_esp_netifs[TCPIP_ADAPTER_IF_AP] == NULL) {
|
if (s_esp_netifs[TCPIP_ADAPTER_IF_AP] == NULL) {
|
||||||
@ -62,6 +55,7 @@ static void wifi_create_and_start_ap(void *esp_netif, esp_event_base_t base, int
|
|||||||
s_esp_netifs[TCPIP_ADAPTER_IF_AP] = ap_netif;
|
s_esp_netifs[TCPIP_ADAPTER_IF_AP] = ap_netif;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
static void wifi_create_and_start_sta(void *esp_netif, esp_event_base_t base, int32_t event_id, void *data)
|
static void wifi_create_and_start_sta(void *esp_netif, esp_event_base_t base, int32_t event_id, void *data)
|
||||||
{
|
{
|
||||||
@ -85,10 +79,13 @@ static inline esp_netif_t * netif_from_if(tcpip_adapter_if_t interface)
|
|||||||
if (interface == TCPIP_ADAPTER_IF_STA) {
|
if (interface == TCPIP_ADAPTER_IF_STA) {
|
||||||
wifi_create_and_start_sta(NULL, 0, 0, NULL);
|
wifi_create_and_start_sta(NULL, 0, 0, NULL);
|
||||||
s_esp_netifs[interface] = esp_netif_get_handle_from_ifkey("WIFI_STA_DEF");
|
s_esp_netifs[interface] = esp_netif_get_handle_from_ifkey("WIFI_STA_DEF");
|
||||||
} else if (interface == TCPIP_ADAPTER_IF_AP) {
|
}
|
||||||
|
#ifdef CONFIG_ESP_WIFI_SOFTAP_SUPPORT
|
||||||
|
else if (interface == TCPIP_ADAPTER_IF_AP) {
|
||||||
wifi_create_and_start_ap(NULL, 0, 0, NULL);
|
wifi_create_and_start_ap(NULL, 0, 0, NULL);
|
||||||
s_esp_netifs[interface] = esp_netif_get_handle_from_ifkey("WIFI_AP_DEF");
|
s_esp_netifs[interface] = esp_netif_get_handle_from_ifkey("WIFI_AP_DEF");
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return s_esp_netifs[interface];
|
return s_esp_netifs[interface];
|
||||||
@ -147,10 +144,12 @@ esp_err_t tcpip_adapter_sta_input(void *buffer, uint16_t len, void *eb)
|
|||||||
return esp_netif_receive(netif_from_if(TCPIP_ADAPTER_IF_STA), buffer, len, eb);
|
return esp_netif_receive(netif_from_if(TCPIP_ADAPTER_IF_STA), buffer, len, eb);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef CONFIG_ESP_WIFI_SOFTAP_SUPPORT
|
||||||
esp_err_t tcpip_adapter_ap_input(void *buffer, uint16_t len, void *eb)
|
esp_err_t tcpip_adapter_ap_input(void *buffer, uint16_t len, void *eb)
|
||||||
{
|
{
|
||||||
return esp_netif_receive(netif_from_if(TCPIP_ADAPTER_IF_AP), buffer, len, eb);
|
return esp_netif_receive(netif_from_if(TCPIP_ADAPTER_IF_AP), buffer, len, eb);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
esp_err_t tcpip_adapter_set_default_wifi_handlers(void)
|
esp_err_t tcpip_adapter_set_default_wifi_handlers(void)
|
||||||
{
|
{
|
||||||
@ -161,10 +160,12 @@ esp_err_t tcpip_adapter_set_default_wifi_handlers(void)
|
|||||||
if (err != ESP_OK) {
|
if (err != ESP_OK) {
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
#ifdef CONFIG_ESP_WIFI_SOFTAP_SUPPORT
|
||||||
err = esp_event_handler_register(WIFI_EVENT, WIFI_EVENT_AP_START, wifi_create_and_start_ap, NULL);
|
err = esp_event_handler_register(WIFI_EVENT, WIFI_EVENT_AP_START, wifi_create_and_start_ap, NULL);
|
||||||
if (err != ESP_OK) {
|
if (err != ESP_OK) {
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
_esp_wifi_set_default_wifi_handlers();
|
_esp_wifi_set_default_wifi_handlers();
|
||||||
}
|
}
|
||||||
return ESP_OK;
|
return ESP_OK;
|
||||||
@ -319,11 +320,13 @@ esp_err_t tcpip_adapter_sta_start(uint8_t *mac, tcpip_adapter_ip_info_t *ip_info
|
|||||||
mac, ip_info);
|
mac, ip_info);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef CONFIG_ESP_WIFI_SOFTAP_SUPPORT
|
||||||
esp_err_t tcpip_adapter_ap_start(uint8_t *mac, tcpip_adapter_ip_info_t *ip_info)
|
esp_err_t tcpip_adapter_ap_start(uint8_t *mac, tcpip_adapter_ip_info_t *ip_info)
|
||||||
{
|
{
|
||||||
return tcpip_adapter_compat_start_netif(netif_from_if(TCPIP_ADAPTER_IF_AP),
|
return tcpip_adapter_compat_start_netif(netif_from_if(TCPIP_ADAPTER_IF_AP),
|
||||||
mac, ip_info);
|
mac, ip_info);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
esp_err_t tcpip_adapter_stop(tcpip_adapter_if_t tcpip_if)
|
esp_err_t tcpip_adapter_stop(tcpip_adapter_if_t tcpip_if)
|
||||||
{
|
{
|
||||||
|
@ -2,12 +2,15 @@ set(srcs "src/wifi_config.c"
|
|||||||
"src/wifi_scan.c"
|
"src/wifi_scan.c"
|
||||||
"src/manager.c"
|
"src/manager.c"
|
||||||
"src/handlers.c"
|
"src/handlers.c"
|
||||||
"src/scheme_softap.c"
|
|
||||||
"src/scheme_console.c"
|
"src/scheme_console.c"
|
||||||
"proto-c/wifi_config.pb-c.c"
|
"proto-c/wifi_config.pb-c.c"
|
||||||
"proto-c/wifi_scan.pb-c.c"
|
"proto-c/wifi_scan.pb-c.c"
|
||||||
"proto-c/wifi_constants.pb-c.c")
|
"proto-c/wifi_constants.pb-c.c")
|
||||||
|
|
||||||
|
if(CONFIG_ESP_WIFI_SOFTAP_SUPPORT)
|
||||||
|
list(APPEND srcs "src/scheme_softap.c")
|
||||||
|
endif()
|
||||||
|
|
||||||
if(CONFIG_BT_ENABLED)
|
if(CONFIG_BT_ENABLED)
|
||||||
if(CONFIG_BT_BLUEDROID_ENABLED OR CONFIG_BT_NIMBLE_ENABLED)
|
if(CONFIG_BT_BLUEDROID_ENABLED OR CONFIG_BT_NIMBLE_ENABLED)
|
||||||
list(APPEND srcs
|
list(APPEND srcs
|
||||||
|
@ -7,3 +7,7 @@ ifndef CONFIG_BT_BLUEDROID_ENABLED
|
|||||||
COMPONENT_OBJEXCLUDE := src/scheme_ble.o
|
COMPONENT_OBJEXCLUDE := src/scheme_ble.o
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
ifeq ($(CONFIG_ESP_WIFI_SOFTAP_SUPPORT), y)
|
||||||
|
COMPONENT_OBJEXCLUDE += src/scheme_softap.o
|
||||||
|
endif
|
||||||
|
@ -1,16 +1,9 @@
|
|||||||
// Copyright 2019 Espressif Systems (Shanghai) PTE LTD
|
/*
|
||||||
//
|
* SPDX-FileCopyrightText: 2019-2021 Espressif Systems (Shanghai) CO LTD
|
||||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
*
|
||||||
// you may not use this file except in compliance with the License.
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
// You may obtain a copy of the License at
|
*/
|
||||||
//
|
#include "sdkconfig.h"
|
||||||
// http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
//
|
|
||||||
// Unless required by applicable law or agreed to in writing, software
|
|
||||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
// See the License for the specific language governing permissions and
|
|
||||||
// limitations under the License.
|
|
||||||
|
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <esp_log.h>
|
#include <esp_log.h>
|
||||||
|
@ -52,13 +52,15 @@ set(srcs "port/os_xtensa.c"
|
|||||||
"src/wps/wps_registrar.c"
|
"src/wps/wps_registrar.c"
|
||||||
"src/wps/wps_validate.c")
|
"src/wps/wps_validate.c")
|
||||||
|
|
||||||
set(esp_srcs "esp_supplicant/src/esp_hostap.c"
|
set(esp_srcs "esp_supplicant/src/esp_wpa2.c"
|
||||||
"esp_supplicant/src/esp_wpa2.c"
|
|
||||||
"esp_supplicant/src/esp_wpa_main.c"
|
"esp_supplicant/src/esp_wpa_main.c"
|
||||||
"esp_supplicant/src/esp_wpas_glue.c"
|
"esp_supplicant/src/esp_wpas_glue.c"
|
||||||
"esp_supplicant/src/esp_wps.c"
|
"esp_supplicant/src/esp_wps.c"
|
||||||
"esp_supplicant/src/esp_wpa3.c"
|
"esp_supplicant/src/esp_wpa3.c"
|
||||||
"esp_supplicant/src/esp_dpp.c")
|
"esp_supplicant/src/esp_dpp.c")
|
||||||
|
if(CONFIG_ESP_WIFI_SOFTAP_SUPPORT)
|
||||||
|
set(esp_srcs ${esp_srcs} "esp_supplicant/src/esp_hostap.c")
|
||||||
|
endif()
|
||||||
|
|
||||||
if(CONFIG_WPA_MBEDTLS_CRYPTO)
|
if(CONFIG_WPA_MBEDTLS_CRYPTO)
|
||||||
set(tls_src "src/crypto/tls_mbedtls.c")
|
set(tls_src "src/crypto/tls_mbedtls.c")
|
||||||
|
@ -4,6 +4,10 @@ COMPONENT_PRIV_INCLUDEDIRS := src src/utils esp_supplicant/src
|
|||||||
COMPONENT_SRCDIRS := port src/ap src/common src/crypto src/eap_peer src/rsn_supp src/tls src/utils src/wps esp_supplicant/src
|
COMPONENT_SRCDIRS := port src/ap src/common src/crypto src/eap_peer src/rsn_supp src/tls src/utils src/wps esp_supplicant/src
|
||||||
COMPONENT_ADD_INCLUDEDIRS := include port/include esp_supplicant/include src/utils
|
COMPONENT_ADD_INCLUDEDIRS := include port/include esp_supplicant/include src/utils
|
||||||
|
|
||||||
|
ifeq ($(CONFIG_ESP_WIFI_SOFTAP_SUPPORT), y)
|
||||||
|
COMPONENT_OBJEXCLUDE += src/esp_hostap.o
|
||||||
|
endif
|
||||||
|
|
||||||
ifeq ($(CONFIG_WPA_MBEDTLS_CRYPTO), y)
|
ifeq ($(CONFIG_WPA_MBEDTLS_CRYPTO), y)
|
||||||
COMPONENT_OBJEXCLUDE += src/tls/asn1.o \
|
COMPONENT_OBJEXCLUDE += src/tls/asn1.o \
|
||||||
src/tls/bignum.o \
|
src/tls/bignum.o \
|
||||||
|
@ -1,17 +1,10 @@
|
|||||||
// Copyright 2019 Espressif Systems (Shanghai) PTE LTD
|
/*
|
||||||
//
|
* SPDX-FileCopyrightText: 2019-2021 Espressif Systems (Shanghai) CO LTD
|
||||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
*
|
||||||
// you may not use this file except in compliance with the License.
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
// You may obtain a copy of the License at
|
*/
|
||||||
//
|
|
||||||
// http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
//
|
|
||||||
// Unless required by applicable law or agreed to in writing, software
|
|
||||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
// See the License for the specific language governing permissions and
|
|
||||||
// limitations under the License.
|
|
||||||
|
|
||||||
|
#include "sdkconfig.h"
|
||||||
#include "utils/includes.h"
|
#include "utils/includes.h"
|
||||||
|
|
||||||
#include "utils/common.h"
|
#include "utils/common.h"
|
||||||
|
@ -1,21 +1,24 @@
|
|||||||
// Copyright 2019 Espressif Systems (Shanghai) PTE LTD
|
/*
|
||||||
//
|
* SPDX-FileCopyrightText: 2019-2021 Espressif Systems (Shanghai) CO LTD
|
||||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
*
|
||||||
// you may not use this file except in compliance with the License.
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
// You may obtain a copy of the License at
|
*/
|
||||||
//
|
|
||||||
// http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
//
|
|
||||||
// Unless required by applicable law or agreed to in writing, software
|
|
||||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
// See the License for the specific language governing permissions and
|
|
||||||
// limitations under the License.
|
|
||||||
|
|
||||||
#ifndef ESP_HOSTAP_H
|
#ifndef ESP_HOSTAP_H
|
||||||
#define ESP_HOSTAP_H
|
#define ESP_HOSTAP_H
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include "sdkconfig.h"
|
||||||
|
#ifdef CONFIG_ESP_WIFI_SOFTAP_SUPPORT
|
||||||
void *hostap_init(void);
|
void *hostap_init(void);
|
||||||
bool hostap_deinit(void *data);
|
bool hostap_deinit(void *data);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
#endif /* ESP_HOSTAP_H */
|
#endif /* ESP_HOSTAP_H */
|
||||||
|
@ -241,7 +241,7 @@ int esp_supplicant_init(void)
|
|||||||
int ret = ESP_OK;
|
int ret = ESP_OK;
|
||||||
struct wpa_funcs *wpa_cb;
|
struct wpa_funcs *wpa_cb;
|
||||||
|
|
||||||
wpa_cb = (struct wpa_funcs *)os_malloc(sizeof(struct wpa_funcs));
|
wpa_cb = (struct wpa_funcs *)os_zalloc(sizeof(struct wpa_funcs));
|
||||||
if (!wpa_cb) {
|
if (!wpa_cb) {
|
||||||
return ESP_ERR_NO_MEM;
|
return ESP_ERR_NO_MEM;
|
||||||
}
|
}
|
||||||
@ -253,6 +253,7 @@ int esp_supplicant_init(void)
|
|||||||
wpa_cb->wpa_sta_disconnected_cb = wpa_sta_disconnected_cb;
|
wpa_cb->wpa_sta_disconnected_cb = wpa_sta_disconnected_cb;
|
||||||
wpa_cb->wpa_sta_in_4way_handshake = wpa_sta_in_4way_handshake;
|
wpa_cb->wpa_sta_in_4way_handshake = wpa_sta_in_4way_handshake;
|
||||||
|
|
||||||
|
#ifdef CONFIG_ESP_WIFI_SOFTAP_SUPPORT
|
||||||
wpa_cb->wpa_ap_join = wpa_ap_join;
|
wpa_cb->wpa_ap_join = wpa_ap_join;
|
||||||
wpa_cb->wpa_ap_remove = wpa_ap_remove;
|
wpa_cb->wpa_ap_remove = wpa_ap_remove;
|
||||||
wpa_cb->wpa_ap_get_wpa_ie = wpa_ap_get_wpa_ie;
|
wpa_cb->wpa_ap_get_wpa_ie = wpa_ap_get_wpa_ie;
|
||||||
@ -260,6 +261,7 @@ int esp_supplicant_init(void)
|
|||||||
wpa_cb->wpa_ap_get_peer_spp_msg = wpa_ap_get_peer_spp_msg;
|
wpa_cb->wpa_ap_get_peer_spp_msg = wpa_ap_get_peer_spp_msg;
|
||||||
wpa_cb->wpa_ap_init = hostap_init;
|
wpa_cb->wpa_ap_init = hostap_init;
|
||||||
wpa_cb->wpa_ap_deinit = hostap_deinit;
|
wpa_cb->wpa_ap_deinit = hostap_deinit;
|
||||||
|
#endif
|
||||||
|
|
||||||
wpa_cb->wpa_config_parse_string = wpa_config_parse_string;
|
wpa_cb->wpa_config_parse_string = wpa_config_parse_string;
|
||||||
wpa_cb->wpa_parse_wpa_ie = wpa_parse_wpa_ie_wrapper;
|
wpa_cb->wpa_parse_wpa_ie = wpa_parse_wpa_ie_wrapper;
|
||||||
|
@ -1,16 +1,8 @@
|
|||||||
// Copyright 2019 Espressif Systems (Shanghai) PTE LTD
|
/*
|
||||||
//
|
* SPDX-FileCopyrightText: 2019-2021 Espressif Systems (Shanghai) CO LTD
|
||||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
*
|
||||||
// you may not use this file except in compliance with the License.
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
// You may obtain a copy of the License at
|
*/
|
||||||
//
|
|
||||||
// http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
//
|
|
||||||
// Unless required by applicable law or agreed to in writing, software
|
|
||||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
// See the License for the specific language governing permissions and
|
|
||||||
// limitations under the License.
|
|
||||||
|
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
@ -572,7 +564,11 @@ wps_parse_scan_result(struct wps_scan_ie *scan)
|
|||||||
}
|
}
|
||||||
|
|
||||||
esp_wifi_get_mode(&op_mode);
|
esp_wifi_get_mode(&op_mode);
|
||||||
if ((op_mode == WIFI_MODE_STA || op_mode == WIFI_MODE_APSTA) && scan->wps) {
|
if ((op_mode == WIFI_MODE_STA
|
||||||
|
#ifdef CONFIG_ESP_WIFI_SOFTAP_SUPPORT
|
||||||
|
|| op_mode == WIFI_MODE_APSTA
|
||||||
|
#endif
|
||||||
|
) && scan->wps) {
|
||||||
struct wpabuf *buf = wpabuf_alloc_copy(scan->wps + 6, scan->wps[1] - 4);
|
struct wpabuf *buf = wpabuf_alloc_copy(scan->wps + 6, scan->wps[1] - 4);
|
||||||
|
|
||||||
if (wps_is_selected_pbc_registrar(buf, scan->bssid)
|
if (wps_is_selected_pbc_registrar(buf, scan->bssid)
|
||||||
@ -2003,7 +1999,11 @@ int wps_check_wifi_mode(void)
|
|||||||
return ESP_FAIL;
|
return ESP_FAIL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (mode == WIFI_MODE_AP || mode == WIFI_MODE_NULL || sniffer == true) {
|
if (
|
||||||
|
#ifdef CONFIG_ESP_WIFI_SOFTAP_SUPPORT
|
||||||
|
mode == WIFI_MODE_AP ||
|
||||||
|
#endif
|
||||||
|
mode == WIFI_MODE_NULL || sniffer == true) {
|
||||||
wpa_printf(MSG_ERROR, "wps check wifi mode: wrong wifi mode=%d sniffer=%d", mode, sniffer);
|
wpa_printf(MSG_ERROR, "wps check wifi mode: wrong wifi mode=%d sniffer=%d", mode, sniffer);
|
||||||
return ESP_ERR_WIFI_MODE;
|
return ESP_ERR_WIFI_MODE;
|
||||||
}
|
}
|
||||||
@ -2180,7 +2180,11 @@ wifi_set_wps_cb(wps_st_cb_t cb)
|
|||||||
wifi_mode_t mode;
|
wifi_mode_t mode;
|
||||||
|
|
||||||
esp_wifi_get_mode(&mode);
|
esp_wifi_get_mode(&mode);
|
||||||
if (mode == WIFI_MODE_AP || mode == WIFI_MODE_NULL) {
|
if (
|
||||||
|
#ifdef CONFIG_ESP_WIFI_SOFTAP_SUPPORT
|
||||||
|
mode == WIFI_MODE_AP ||
|
||||||
|
#endif
|
||||||
|
mode == WIFI_MODE_NULL) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -315,6 +315,7 @@ Wi-Fi
|
|||||||
@@@@@
|
@@@@@
|
||||||
|
|
||||||
- Disabling :ref:`CONFIG_ESP32_WIFI_ENABLE_WPA3_SAE` will save some Wi-Fi binary size if WPA3 support is not needed. (Note that WPA3 is mandatory for new Wi-Fi device certifications.)
|
- Disabling :ref:`CONFIG_ESP32_WIFI_ENABLE_WPA3_SAE` will save some Wi-Fi binary size if WPA3 support is not needed. (Note that WPA3 is mandatory for new Wi-Fi device certifications.)
|
||||||
|
- Disabling :ref:`CONFIG_ESP_WIFI_SOFTAP_SUPPORT` will save some Wi-Fi binary size if soft-AP support is not needed.
|
||||||
|
|
||||||
.. only:: esp32
|
.. only:: esp32
|
||||||
|
|
||||||
|
@ -844,11 +844,9 @@ components/esp_local_ctrl/src/esp_local_ctrl_handler.c
|
|||||||
components/esp_local_ctrl/src/esp_local_ctrl_priv.h
|
components/esp_local_ctrl/src/esp_local_ctrl_priv.h
|
||||||
components/esp_local_ctrl/src/esp_local_ctrl_transport_ble.c
|
components/esp_local_ctrl/src/esp_local_ctrl_transport_ble.c
|
||||||
components/esp_local_ctrl/src/esp_local_ctrl_transport_httpd.c
|
components/esp_local_ctrl/src/esp_local_ctrl_transport_httpd.c
|
||||||
components/esp_netif/esp_netif_defaults.c
|
|
||||||
components/esp_netif/esp_netif_handlers.c
|
components/esp_netif/esp_netif_handlers.c
|
||||||
components/esp_netif/esp_netif_objects.c
|
components/esp_netif/esp_netif_objects.c
|
||||||
components/esp_netif/include/esp_netif.h
|
components/esp_netif/include/esp_netif.h
|
||||||
components/esp_netif/include/esp_netif_defaults.h
|
|
||||||
components/esp_netif/include/esp_netif_net_stack.h
|
components/esp_netif/include/esp_netif_net_stack.h
|
||||||
components/esp_netif/include/esp_netif_ppp.h
|
components/esp_netif/include/esp_netif_ppp.h
|
||||||
components/esp_netif/include/esp_netif_slip.h
|
components/esp_netif/include/esp_netif_slip.h
|
||||||
@ -1179,10 +1177,8 @@ components/esp_wifi/include/esp_mesh_internal.h
|
|||||||
components/esp_wifi/include/esp_now.h
|
components/esp_wifi/include/esp_now.h
|
||||||
components/esp_wifi/include/esp_private/esp_wifi_private.h
|
components/esp_wifi/include/esp_private/esp_wifi_private.h
|
||||||
components/esp_wifi/include/esp_private/esp_wifi_types_private.h
|
components/esp_wifi/include/esp_private/esp_wifi_types_private.h
|
||||||
components/esp_wifi/include/esp_private/wifi_os_adapter.h
|
|
||||||
components/esp_wifi/include/esp_private/wifi_types.h
|
components/esp_wifi/include/esp_private/wifi_types.h
|
||||||
components/esp_wifi/include/esp_smartconfig.h
|
components/esp_wifi/include/esp_smartconfig.h
|
||||||
components/esp_wifi/include/esp_wifi.h
|
|
||||||
components/esp_wifi/include/esp_wifi_default.h
|
components/esp_wifi/include/esp_wifi_default.h
|
||||||
components/esp_wifi/include/esp_wifi_netif.h
|
components/esp_wifi/include/esp_wifi_netif.h
|
||||||
components/esp_wifi/include/smartconfig_ack.h
|
components/esp_wifi/include/smartconfig_ack.h
|
||||||
@ -1190,8 +1186,6 @@ components/esp_wifi/src/lib_printf.c
|
|||||||
components/esp_wifi/src/mesh_event.c
|
components/esp_wifi/src/mesh_event.c
|
||||||
components/esp_wifi/src/smartconfig.c
|
components/esp_wifi/src/smartconfig.c
|
||||||
components/esp_wifi/src/smartconfig_ack.c
|
components/esp_wifi/src/smartconfig_ack.c
|
||||||
components/esp_wifi/src/wifi_default.c
|
|
||||||
components/esp_wifi/src/wifi_netif.c
|
|
||||||
components/esp_wifi/test/test_wifi.c
|
components/esp_wifi/test/test_wifi.c
|
||||||
components/esp_wifi/test/test_wifi_init.c
|
components/esp_wifi/test/test_wifi_init.c
|
||||||
components/espcoredump/corefile/__init__.py
|
components/espcoredump/corefile/__init__.py
|
||||||
@ -2659,7 +2653,6 @@ components/tcp_transport/transport_ws.c
|
|||||||
components/tcpip_adapter/include/tcpip_adapter.h
|
components/tcpip_adapter/include/tcpip_adapter.h
|
||||||
components/tcpip_adapter/include/tcpip_adapter_compatible/tcpip_adapter_compat.h
|
components/tcpip_adapter/include/tcpip_adapter_compatible/tcpip_adapter_compat.h
|
||||||
components/tcpip_adapter/include/tcpip_adapter_types.h
|
components/tcpip_adapter/include/tcpip_adapter_types.h
|
||||||
components/tcpip_adapter/tcpip_adapter_compat.c
|
|
||||||
components/tinyusb/additions/include/tinyusb.h
|
components/tinyusb/additions/include/tinyusb.h
|
||||||
components/tinyusb/additions/include/tinyusb_types.h
|
components/tinyusb/additions/include/tinyusb_types.h
|
||||||
components/tinyusb/additions/include/tusb_cdc_acm.h
|
components/tinyusb/additions/include/tusb_cdc_acm.h
|
||||||
@ -2783,7 +2776,6 @@ components/wifi_provisioning/python/wifi_scan_pb2.py
|
|||||||
components/wifi_provisioning/src/handlers.c
|
components/wifi_provisioning/src/handlers.c
|
||||||
components/wifi_provisioning/src/manager.c
|
components/wifi_provisioning/src/manager.c
|
||||||
components/wifi_provisioning/src/scheme_console.c
|
components/wifi_provisioning/src/scheme_console.c
|
||||||
components/wifi_provisioning/src/scheme_softap.c
|
|
||||||
components/wifi_provisioning/src/wifi_config.c
|
components/wifi_provisioning/src/wifi_config.c
|
||||||
components/wifi_provisioning/src/wifi_provisioning_priv.h
|
components/wifi_provisioning/src/wifi_provisioning_priv.h
|
||||||
components/wifi_provisioning/src/wifi_scan.c
|
components/wifi_provisioning/src/wifi_scan.c
|
||||||
@ -2793,15 +2785,12 @@ components/wpa_supplicant/esp_supplicant/include/esp_wpa.h
|
|||||||
components/wpa_supplicant/esp_supplicant/include/esp_wps.h
|
components/wpa_supplicant/esp_supplicant/include/esp_wps.h
|
||||||
components/wpa_supplicant/esp_supplicant/src/esp_dpp.c
|
components/wpa_supplicant/esp_supplicant/src/esp_dpp.c
|
||||||
components/wpa_supplicant/esp_supplicant/src/esp_dpp_i.h
|
components/wpa_supplicant/esp_supplicant/src/esp_dpp_i.h
|
||||||
components/wpa_supplicant/esp_supplicant/src/esp_hostap.c
|
|
||||||
components/wpa_supplicant/esp_supplicant/src/esp_hostap.h
|
|
||||||
components/wpa_supplicant/esp_supplicant/src/esp_scan_i.h
|
components/wpa_supplicant/esp_supplicant/src/esp_scan_i.h
|
||||||
components/wpa_supplicant/esp_supplicant/src/esp_wpa3.c
|
components/wpa_supplicant/esp_supplicant/src/esp_wpa3.c
|
||||||
components/wpa_supplicant/esp_supplicant/src/esp_wpa3_i.h
|
components/wpa_supplicant/esp_supplicant/src/esp_wpa3_i.h
|
||||||
components/wpa_supplicant/esp_supplicant/src/esp_wpa_err.h
|
components/wpa_supplicant/esp_supplicant/src/esp_wpa_err.h
|
||||||
components/wpa_supplicant/esp_supplicant/src/esp_wpas_glue.c
|
components/wpa_supplicant/esp_supplicant/src/esp_wpas_glue.c
|
||||||
components/wpa_supplicant/esp_supplicant/src/esp_wpas_glue.h
|
components/wpa_supplicant/esp_supplicant/src/esp_wpas_glue.h
|
||||||
components/wpa_supplicant/esp_supplicant/src/esp_wps.c
|
|
||||||
components/wpa_supplicant/include/utils/wpa_debug.h
|
components/wpa_supplicant/include/utils/wpa_debug.h
|
||||||
components/wpa_supplicant/include/utils/wpabuf.h
|
components/wpa_supplicant/include/utils/wpabuf.h
|
||||||
components/wpa_supplicant/port/include/byteswap.h
|
components/wpa_supplicant/port/include/byteswap.h
|
||||||
|
Loading…
Reference in New Issue
Block a user