| 
									
										
										
										
											2019-06-28 16:47:34 +02:00
										 |  |  | // Copyright 2015-2016 Espressif Systems (Shanghai) PTE LTD
 | 
					
						
							|  |  |  | //
 | 
					
						
							|  |  |  | // Licensed under the Apache License, Version 2.0 (the "License");
 | 
					
						
							|  |  |  | // you may not use this file except in compliance with the License.
 | 
					
						
							|  |  |  | // 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
 | 
					
						
							|  |  |  | #define _ESP_NETIF_DEFAULTS_H
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-02-06 12:28:56 +01:00
										 |  |  | #include "esp_compiler.h"
 | 
					
						
							| 
									
										
										
										
											2019-11-22 09:40:54 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-01-30 12:50:52 +01:00
										 |  |  | #ifdef __cplusplus
 | 
					
						
							| 
									
										
										
										
											2020-02-06 12:28:56 +01:00
										 |  |  | extern "C" { | 
					
						
							| 
									
										
										
										
											2020-01-30 12:50:52 +01:00
										 |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-06-28 16:47:34 +02:00
										 |  |  | //
 | 
					
						
							|  |  |  | // Macros to assemble master configs with partial configs from netif, stack and driver
 | 
					
						
							|  |  |  | //
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-01-30 12:50:52 +01:00
										 |  |  | #define ESP_NETIF_INHERENT_DEFAULT_WIFI_STA() \
 | 
					
						
							|  |  |  |     {   \ | 
					
						
							|  |  |  |         .flags = (esp_netif_flags_t)(ESP_NETIF_DHCP_CLIENT | ESP_NETIF_FLAG_GARP | ESP_NETIF_FLAG_EVENT_IP_MODIFIED), \ | 
					
						
							| 
									
										
										
										
											2020-02-06 12:28:56 +01:00
										 |  |  |         ESP_COMPILER_DESIGNATED_INIT_AGGREGATE_TYPE_EMPTY(mac) \ | 
					
						
							|  |  |  |         ESP_COMPILER_DESIGNATED_INIT_AGGREGATE_TYPE_EMPTY(ip_info) \ | 
					
						
							| 
									
										
										
										
											2020-01-30 12:50:52 +01:00
										 |  |  |         .get_ip_event = IP_EVENT_STA_GOT_IP, \ | 
					
						
							|  |  |  |         .lost_ip_event = IP_EVENT_STA_LOST_IP, \ | 
					
						
							|  |  |  |         .if_key = "WIFI_STA_DEF", \ | 
					
						
							|  |  |  |         .if_desc = "sta", \ | 
					
						
							|  |  |  |         .route_prio = 100 \ | 
					
						
							|  |  |  |      }  \ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define ESP_NETIF_INHERENT_DEFAULT_WIFI_AP() \
 | 
					
						
							|  |  |  |     {   \ | 
					
						
							|  |  |  |         .flags = (esp_netif_flags_t)(ESP_NETIF_DHCP_SERVER | ESP_NETIF_FLAG_AUTOUP), \ | 
					
						
							| 
									
										
										
										
											2020-02-06 12:28:56 +01:00
										 |  |  |         ESP_COMPILER_DESIGNATED_INIT_AGGREGATE_TYPE_EMPTY(mac) \ | 
					
						
							| 
									
										
										
										
											2020-01-30 12:50:52 +01:00
										 |  |  |         .ip_info = &_g_esp_netif_soft_ap_ip, \ | 
					
						
							|  |  |  |         .get_ip_event = 0, \ | 
					
						
							|  |  |  |         .lost_ip_event = 0, \ | 
					
						
							|  |  |  |         .if_key = "WIFI_AP_DEF", \ | 
					
						
							|  |  |  |         .if_desc = "ap", \ | 
					
						
							|  |  |  |         .route_prio = 10 \ | 
					
						
							|  |  |  |     }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define ESP_NETIF_INHERENT_DEFAULT_ETH() \
 | 
					
						
							|  |  |  |     {   \ | 
					
						
							|  |  |  |         .flags = (esp_netif_flags_t)(ESP_NETIF_DHCP_CLIENT | ESP_NETIF_FLAG_GARP | ESP_NETIF_FLAG_EVENT_IP_MODIFIED), \ | 
					
						
							| 
									
										
										
										
											2020-02-06 12:28:56 +01:00
										 |  |  |         ESP_COMPILER_DESIGNATED_INIT_AGGREGATE_TYPE_EMPTY(mac) \ | 
					
						
							|  |  |  |         ESP_COMPILER_DESIGNATED_INIT_AGGREGATE_TYPE_EMPTY(ip_info) \ | 
					
						
							| 
									
										
										
										
											2020-01-30 12:50:52 +01:00
										 |  |  |         .get_ip_event = IP_EVENT_ETH_GOT_IP, \ | 
					
						
							|  |  |  |         .lost_ip_event = 0, \ | 
					
						
							|  |  |  |         .if_key = "ETH_DEF", \ | 
					
						
							|  |  |  |         .if_desc = "eth", \ | 
					
						
							|  |  |  |         .route_prio = 50 \ | 
					
						
							|  |  |  |     }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define ESP_NETIF_INHERENT_DEFAULT_PPP() \
 | 
					
						
							|  |  |  |     {   \ | 
					
						
							|  |  |  |         .flags = ESP_NETIF_FLAG_IS_PPP, \ | 
					
						
							| 
									
										
										
										
											2020-02-06 12:28:56 +01:00
										 |  |  |         ESP_COMPILER_DESIGNATED_INIT_AGGREGATE_TYPE_EMPTY(mac) \ | 
					
						
							|  |  |  |         ESP_COMPILER_DESIGNATED_INIT_AGGREGATE_TYPE_EMPTY(ip_info) \ | 
					
						
							| 
									
										
										
										
											2020-01-30 12:50:52 +01:00
										 |  |  |         .get_ip_event = IP_EVENT_PPP_GOT_IP,    \ | 
					
						
							|  |  |  |         .lost_ip_event = IP_EVENT_PPP_LOST_IP,  \ | 
					
						
							|  |  |  |         .if_key = "PPP_DEF",    \ | 
					
						
							|  |  |  |         .if_desc = "ppp",   \ | 
					
						
							|  |  |  |         .route_prio = 128   \ | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-06-28 16:47:34 +02:00
										 |  |  | /**
 | 
					
						
							|  |  |  |  * @brief  Default configuration reference of ethernet interface | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | #define ESP_NETIF_DEFAULT_ETH()                  \
 | 
					
						
							|  |  |  |     {                                            \ | 
					
						
							|  |  |  |         .base = ESP_NETIF_BASE_DEFAULT_ETH,      \ | 
					
						
							| 
									
										
										
										
											2019-12-18 08:26:44 +01:00
										 |  |  |         .driver = NULL,                          \ | 
					
						
							| 
									
										
										
										
											2019-06-28 16:47:34 +02:00
										 |  |  |         .stack = ESP_NETIF_NETSTACK_DEFAULT_ETH, \ | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /**
 | 
					
						
							|  |  |  |  * @brief  Default configuration reference of WIFI AP | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | #define ESP_NETIF_DEFAULT_WIFI_AP()                  \
 | 
					
						
							| 
									
										
										
										
											2020-01-30 12:50:52 +01:00
										 |  |  |     {                                                \ | 
					
						
							| 
									
										
										
										
											2019-06-28 16:47:34 +02:00
										 |  |  |         .base = ESP_NETIF_BASE_DEFAULT_WIFI_AP,      \ | 
					
						
							| 
									
										
										
										
											2019-12-18 08:26:44 +01:00
										 |  |  |         .driver = NULL,                              \ | 
					
						
							| 
									
										
										
										
											2019-06-28 16:47:34 +02:00
										 |  |  |         .stack = ESP_NETIF_NETSTACK_DEFAULT_WIFI_AP, \ | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /**
 | 
					
						
							|  |  |  | * @brief  Default configuration reference of WIFI STA | 
					
						
							|  |  |  | */ | 
					
						
							|  |  |  | #define ESP_NETIF_DEFAULT_WIFI_STA()                  \
 | 
					
						
							|  |  |  |     {                                                 \ | 
					
						
							|  |  |  |         .base = ESP_NETIF_BASE_DEFAULT_WIFI_STA,      \ | 
					
						
							| 
									
										
										
										
											2019-12-18 08:26:44 +01:00
										 |  |  |         .driver = NULL,                               \ | 
					
						
							| 
									
										
										
										
											2019-06-28 16:47:34 +02:00
										 |  |  |         .stack = ESP_NETIF_NETSTACK_DEFAULT_WIFI_STA, \ | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2019-11-21 13:23:58 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | /**
 | 
					
						
							|  |  |  | * @brief  Default configuration reference of PPP client | 
					
						
							|  |  |  | */ | 
					
						
							|  |  |  | #define ESP_NETIF_DEFAULT_PPP()                       \
 | 
					
						
							|  |  |  |     {                                                 \ | 
					
						
							|  |  |  |         .base = ESP_NETIF_BASE_DEFAULT_PPP,           \ | 
					
						
							| 
									
										
										
										
											2019-12-18 08:26:44 +01:00
										 |  |  |         .driver = NULL,                               \ | 
					
						
							| 
									
										
										
										
											2019-11-21 13:23:58 +01:00
										 |  |  |         .stack = ESP_NETIF_NETSTACK_DEFAULT_PPP,      \ | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2019-06-28 16:47:34 +02:00
										 |  |  | /**
 | 
					
						
							|  |  |  |  * @brief  Default base config (esp-netif inherent) of WIFI STA | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | #define ESP_NETIF_BASE_DEFAULT_WIFI_STA        &_g_esp_netif_inherent_sta_config
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /**
 | 
					
						
							|  |  |  |  * @brief  Default base config (esp-netif inherent) of WIFI AP | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | #define ESP_NETIF_BASE_DEFAULT_WIFI_AP         &_g_esp_netif_inherent_ap_config
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /**
 | 
					
						
							|  |  |  |  * @brief  Default base config (esp-netif inherent) of ethernet interface | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | #define ESP_NETIF_BASE_DEFAULT_ETH             &_g_esp_netif_inherent_eth_config
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-11-21 13:23:58 +01:00
										 |  |  | /**
 | 
					
						
							|  |  |  |  * @brief  Default base config (esp-netif inherent) of ppp interface | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | #define ESP_NETIF_BASE_DEFAULT_PPP             &_g_esp_netif_inherent_ppp_config
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-06-28 16:47:34 +02:00
										 |  |  | #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_AP      _g_esp_netif_netstack_default_wifi_ap
 | 
					
						
							| 
									
										
										
										
											2019-11-21 13:23:58 +01:00
										 |  |  | #define ESP_NETIF_NETSTACK_DEFAULT_PPP          _g_esp_netif_netstack_default_ppp
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-06-28 16:47:34 +02:00
										 |  |  | //
 | 
					
						
							|  |  |  | // Include default network stacks configs
 | 
					
						
							|  |  |  | //  - Network stack configurations are provided in a specific network stack
 | 
					
						
							|  |  |  | //      implementation that is invisible to user API
 | 
					
						
							|  |  |  | //  - Here referenced only as opaque pointers
 | 
					
						
							|  |  |  | //
 | 
					
						
							|  |  |  | 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_ap; | 
					
						
							| 
									
										
										
										
											2019-11-21 13:23:58 +01:00
										 |  |  | extern const esp_netif_netstack_config_t *_g_esp_netif_netstack_default_ppp; | 
					
						
							| 
									
										
										
										
											2019-06-28 16:47:34 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | //
 | 
					
						
							|  |  |  | // Include default common configs inherent to esp-netif
 | 
					
						
							|  |  |  | //  - These inherent configs are defined in esp_netif_defaults.c and describe
 | 
					
						
							| 
									
										
										
										
											2020-02-06 12:28:56 +01:00
										 |  |  | //    common behavioural patterns for common interfaces such as STA, AP, ETH, PPP
 | 
					
						
							| 
									
										
										
										
											2019-06-28 16:47:34 +02:00
										 |  |  | //
 | 
					
						
							|  |  |  | extern const esp_netif_inherent_config_t _g_esp_netif_inherent_sta_config; | 
					
						
							|  |  |  | extern const esp_netif_inherent_config_t _g_esp_netif_inherent_ap_config; | 
					
						
							|  |  |  | extern const esp_netif_inherent_config_t _g_esp_netif_inherent_eth_config; | 
					
						
							| 
									
										
										
										
											2019-11-21 13:23:58 +01:00
										 |  |  | extern const esp_netif_inherent_config_t _g_esp_netif_inherent_ppp_config; | 
					
						
							| 
									
										
										
										
											2019-06-28 16:47:34 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-01-30 12:50:52 +01:00
										 |  |  | extern const esp_netif_ip_info_t _g_esp_netif_soft_ap_ip; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-11-22 09:40:54 +01:00
										 |  |  | #ifdef __cplusplus
 | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-06-28 16:47:34 +02:00
										 |  |  | #endif //_ESP_NETIF_DEFAULTS_H
 |