78 lines
2.7 KiB
C
78 lines
2.7 KiB
C
// Copyright 2015-2019 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.
|
|
|
|
#include "esp_netif.h"
|
|
#include "esp_wifi_default.h"
|
|
#if CONFIG_ETH_ENABLED
|
|
#include "esp_eth.h"
|
|
#endif
|
|
|
|
//
|
|
// Purpose of this module is to provide
|
|
// - general esp-netif definitions of default objects for STA, AP, ETH
|
|
// - default init / create functions for basic default interfaces
|
|
//
|
|
|
|
#define IP4TOUINT32(a,b,c,d) (((uint32_t)((a) & 0xffU) << 24) | \
|
|
((uint32_t)((b) & 0xffU) << 16) | \
|
|
((uint32_t)((c) & 0xffU) << 8) | \
|
|
(uint32_t)((d) & 0xffU))
|
|
|
|
#define IP4TOADDR(a,b,c,d) esp_netif_htonl(IP4TOUINT32(a, b, c, d))
|
|
|
|
|
|
//
|
|
// Default configuration of common interfaces, such as STA, AP, ETH
|
|
//
|
|
const esp_netif_inherent_config_t _g_esp_netif_inherent_sta_config = {
|
|
.flags = ESP_NETIF_DHCP_CLIENT | ESP_NETIF_FLAG_GARP | ESP_NETIF_FLAG_EVENT_IP_MODIFIED,
|
|
.lost_ip_event = IP_EVENT_STA_LOST_IP,
|
|
.get_ip_event = IP_EVENT_STA_GOT_IP,
|
|
.if_key = "WIFI_STA_DEF",
|
|
.if_desc = "sta",
|
|
.route_prio = 100
|
|
};
|
|
|
|
static const esp_netif_ip_info_t soft_ap_ip = {
|
|
.ip = { .addr = IP4TOADDR( 192, 168, 4, 1) },
|
|
.gw = { .addr = IP4TOADDR( 192, 168, 4, 1) },
|
|
.netmask = { .addr = IP4TOADDR( 255, 255, 255, 0) },
|
|
|
|
};
|
|
|
|
const esp_netif_inherent_config_t _g_esp_netif_inherent_ap_config = {
|
|
.flags = ESP_NETIF_DHCP_SERVER | ESP_NETIF_FLAG_AUTOUP,
|
|
.ip_info = (esp_netif_ip_info_t*)&soft_ap_ip,
|
|
.if_key = "WIFI_AP_DEF",
|
|
.if_desc = "ap",
|
|
.route_prio = 10
|
|
};
|
|
|
|
const esp_netif_inherent_config_t _g_esp_netif_inherent_eth_config = {
|
|
.get_ip_event = IP_EVENT_ETH_GOT_IP,
|
|
.lost_ip_event = 0,
|
|
.flags = ESP_NETIF_DHCP_CLIENT | ESP_NETIF_FLAG_GARP | ESP_NETIF_FLAG_EVENT_IP_MODIFIED,
|
|
.if_key = "ETH_DEF",
|
|
.if_desc = "eth",
|
|
.route_prio = 50
|
|
};
|
|
|
|
const esp_netif_inherent_config_t _g_esp_netif_inherent_ppp_config = {
|
|
.flags = ESP_NETIF_FLAG_IS_PPP,
|
|
.lost_ip_event = IP_EVENT_PPP_LOST_IP,
|
|
.get_ip_event = IP_EVENT_PPP_GOT_IP,
|
|
.if_key = "PPP_DEF",
|
|
.if_desc = "ppp",
|
|
.route_prio = 128
|
|
};
|