IDF release/v4.0 4c81978a3

This commit is contained in:
me-no-dev
2020-05-21 06:09:30 +00:00
parent 8c8d8610f4
commit d2761a9eab
82 changed files with 464 additions and 29 deletions

View File

@ -1514,6 +1514,202 @@
#define CONFIG_MONITOR_BAUD_OTHER_VAL CONFIG_ESPTOOLPY_MONITOR_BAUD_OTHER_VAL
#endif
#ifdef CONFIG_BT_NIMBLE_ACL_BUF_COUNT
#define CONFIG_NIMBLE_ACL_BUF_COUNT CONFIG_BT_NIMBLE_ACL_BUF_COUNT
#endif
#ifdef CONFIG_BT_NIMBLE_ACL_BUF_SIZE
#define CONFIG_NIMBLE_ACL_BUF_SIZE CONFIG_BT_NIMBLE_ACL_BUF_SIZE
#endif
#ifdef CONFIG_BT_NIMBLE_ATT_PREFERRED_MTU
#define CONFIG_NIMBLE_ATT_PREFERRED_MTU CONFIG_BT_NIMBLE_ATT_PREFERRED_MTU
#endif
#ifdef CONFIG_BT_NIMBLE_CRYPTO_STACK_MBEDTLS
#define CONFIG_NIMBLE_CRYPTO_STACK_MBEDTLS CONFIG_BT_NIMBLE_CRYPTO_STACK_MBEDTLS
#endif
#ifdef CONFIG_BT_NIMBLE_DEBUG
#define CONFIG_NIMBLE_DEBUG CONFIG_BT_NIMBLE_DEBUG
#endif
#ifdef CONFIG_BT_NIMBLE_ENABLED
#define CONFIG_NIMBLE_ENABLED CONFIG_BT_NIMBLE_ENABLED
#endif
#ifdef CONFIG_BT_NIMBLE_GAP_DEVICE_NAME_MAX_LEN
#define CONFIG_NIMBLE_GAP_DEVICE_NAME_MAX_LEN CONFIG_BT_NIMBLE_GAP_DEVICE_NAME_MAX_LEN
#endif
#ifdef CONFIG_BT_NIMBLE_HCI_EVT_BUF_SIZE
#define CONFIG_NIMBLE_HCI_EVT_BUF_SIZE CONFIG_BT_NIMBLE_HCI_EVT_BUF_SIZE
#endif
#ifdef CONFIG_BT_NIMBLE_HCI_EVT_HI_BUF_COUNT
#define CONFIG_NIMBLE_HCI_EVT_HI_BUF_COUNT CONFIG_BT_NIMBLE_HCI_EVT_HI_BUF_COUNT
#endif
#ifdef CONFIG_BT_NIMBLE_HCI_EVT_LO_BUF_COUNT
#define CONFIG_NIMBLE_HCI_EVT_LO_BUF_COUNT CONFIG_BT_NIMBLE_HCI_EVT_LO_BUF_COUNT
#endif
#ifdef CONFIG_BT_NIMBLE_HS_FLOW_CTRL
#define CONFIG_NIMBLE_HS_FLOW_CTRL CONFIG_BT_NIMBLE_HS_FLOW_CTRL
#endif
#ifdef CONFIG_BT_NIMBLE_HS_FLOW_CTRL_ITVL
#define CONFIG_NIMBLE_HS_FLOW_CTRL_ITVL CONFIG_BT_NIMBLE_HS_FLOW_CTRL_ITVL
#endif
#ifdef CONFIG_BT_NIMBLE_HS_FLOW_CTRL_THRESH
#define CONFIG_NIMBLE_HS_FLOW_CTRL_THRESH CONFIG_BT_NIMBLE_HS_FLOW_CTRL_THRESH
#endif
#ifdef CONFIG_BT_NIMBLE_HS_FLOW_CTRL_TX_ON_DISCONNECT
#define CONFIG_NIMBLE_HS_FLOW_CTRL_TX_ON_DISCONNECT CONFIG_BT_NIMBLE_HS_FLOW_CTRL_TX_ON_DISCONNECT
#endif
#ifdef CONFIG_BT_NIMBLE_L2CAP_COC_MAX_NUM
#define CONFIG_NIMBLE_L2CAP_COC_MAX_NUM CONFIG_BT_NIMBLE_L2CAP_COC_MAX_NUM
#endif
#ifdef CONFIG_BT_NIMBLE_MAX_BONDS
#define CONFIG_NIMBLE_MAX_BONDS CONFIG_BT_NIMBLE_MAX_BONDS
#endif
#ifdef CONFIG_BT_NIMBLE_MAX_CCCDS
#define CONFIG_NIMBLE_MAX_CCCDS CONFIG_BT_NIMBLE_MAX_CCCDS
#endif
#ifdef CONFIG_BT_NIMBLE_MAX_CONNECTIONS
#define CONFIG_NIMBLE_MAX_CONNECTIONS CONFIG_BT_NIMBLE_MAX_CONNECTIONS
#endif
#ifdef CONFIG_BT_NIMBLE_MEM_ALLOC_MODE
#define CONFIG_NIMBLE_MEM_ALLOC_MODE CONFIG_BT_NIMBLE_MEM_ALLOC_MODE
#endif
#ifdef CONFIG_BT_NIMBLE_MEM_ALLOC_MODE_DEFAULT
#define CONFIG_NIMBLE_MEM_ALLOC_MODE_DEFAULT CONFIG_BT_NIMBLE_MEM_ALLOC_MODE_DEFAULT
#endif
#ifdef CONFIG_BT_NIMBLE_MEM_ALLOC_MODE_EXTERNAL
#define CONFIG_NIMBLE_MEM_ALLOC_MODE_EXTERNAL CONFIG_BT_NIMBLE_MEM_ALLOC_MODE_EXTERNAL
#endif
#ifdef CONFIG_BT_NIMBLE_MEM_ALLOC_MODE_INTERNAL
#define CONFIG_NIMBLE_MEM_ALLOC_MODE_INTERNAL CONFIG_BT_NIMBLE_MEM_ALLOC_MODE_INTERNAL
#endif
#ifdef CONFIG_BT_NIMBLE_MESH
#define CONFIG_NIMBLE_MESH CONFIG_BT_NIMBLE_MESH
#endif
#ifdef CONFIG_BT_NIMBLE_MESH_DEVICE_NAME
#define CONFIG_NIMBLE_MESH_DEVICE_NAME CONFIG_BT_NIMBLE_MESH_DEVICE_NAME
#endif
#ifdef CONFIG_BT_NIMBLE_MESH_FRIEND
#define CONFIG_NIMBLE_MESH_FRIEND CONFIG_BT_NIMBLE_MESH_FRIEND
#endif
#ifdef CONFIG_BT_NIMBLE_MESH_GATT_PROXY
#define CONFIG_NIMBLE_MESH_GATT_PROXY CONFIG_BT_NIMBLE_MESH_GATT_PROXY
#endif
#ifdef CONFIG_BT_NIMBLE_MESH_LOW_POWER
#define CONFIG_NIMBLE_MESH_LOW_POWER CONFIG_BT_NIMBLE_MESH_LOW_POWER
#endif
#ifdef CONFIG_BT_NIMBLE_MESH_PB_ADV
#define CONFIG_NIMBLE_MESH_PB_ADV CONFIG_BT_NIMBLE_MESH_PB_ADV
#endif
#ifdef CONFIG_BT_NIMBLE_MESH_PB_GATT
#define CONFIG_NIMBLE_MESH_PB_GATT CONFIG_BT_NIMBLE_MESH_PB_GATT
#endif
#ifdef CONFIG_BT_NIMBLE_MESH_PROV
#define CONFIG_NIMBLE_MESH_PROV CONFIG_BT_NIMBLE_MESH_PROV
#endif
#ifdef CONFIG_BT_NIMBLE_MESH_PROXY
#define CONFIG_NIMBLE_MESH_PROXY CONFIG_BT_NIMBLE_MESH_PROXY
#endif
#ifdef CONFIG_BT_NIMBLE_MESH_RELAY
#define CONFIG_NIMBLE_MESH_RELAY CONFIG_BT_NIMBLE_MESH_RELAY
#endif
#ifdef CONFIG_BT_NIMBLE_MSYS1_BLOCK_COUNT
#define CONFIG_NIMBLE_MSYS1_BLOCK_COUNT CONFIG_BT_NIMBLE_MSYS1_BLOCK_COUNT
#endif
#ifdef CONFIG_BT_NIMBLE_NVS_PERSIST
#define CONFIG_NIMBLE_NVS_PERSIST CONFIG_BT_NIMBLE_NVS_PERSIST
#endif
#ifdef CONFIG_BT_NIMBLE_PINNED_TO_CORE
#define CONFIG_NIMBLE_PINNED_TO_CORE CONFIG_BT_NIMBLE_PINNED_TO_CORE
#endif
#ifdef CONFIG_BT_NIMBLE_PINNED_TO_CORE_0
#define CONFIG_NIMBLE_PINNED_TO_CORE_0 CONFIG_BT_NIMBLE_PINNED_TO_CORE_0
#endif
#ifdef CONFIG_BT_NIMBLE_PINNED_TO_CORE_1
#define CONFIG_NIMBLE_PINNED_TO_CORE_1 CONFIG_BT_NIMBLE_PINNED_TO_CORE_1
#endif
#ifdef CONFIG_BT_NIMBLE_PINNED_TO_CORE_CHOICE
#define CONFIG_NIMBLE_PINNED_TO_CORE_CHOICE CONFIG_BT_NIMBLE_PINNED_TO_CORE_CHOICE
#endif
#ifdef CONFIG_BT_NIMBLE_ROLE_BROADCASTER
#define CONFIG_NIMBLE_ROLE_BROADCASTER CONFIG_BT_NIMBLE_ROLE_BROADCASTER
#endif
#ifdef CONFIG_BT_NIMBLE_ROLE_CENTRAL
#define CONFIG_NIMBLE_ROLE_CENTRAL CONFIG_BT_NIMBLE_ROLE_CENTRAL
#endif
#ifdef CONFIG_BT_NIMBLE_ROLE_OBSERVER
#define CONFIG_NIMBLE_ROLE_OBSERVER CONFIG_BT_NIMBLE_ROLE_OBSERVER
#endif
#ifdef CONFIG_BT_NIMBLE_ROLE_PERIPHERAL
#define CONFIG_NIMBLE_ROLE_PERIPHERAL CONFIG_BT_NIMBLE_ROLE_PERIPHERAL
#endif
#ifdef CONFIG_BT_NIMBLE_RPA_TIMEOUT
#define CONFIG_NIMBLE_RPA_TIMEOUT CONFIG_BT_NIMBLE_RPA_TIMEOUT
#endif
#ifdef CONFIG_BT_NIMBLE_SM_LEGACY
#define CONFIG_NIMBLE_SM_LEGACY CONFIG_BT_NIMBLE_SM_LEGACY
#endif
#ifdef CONFIG_BT_NIMBLE_SM_SC
#define CONFIG_NIMBLE_SM_SC CONFIG_BT_NIMBLE_SM_SC
#endif
#ifdef CONFIG_BT_NIMBLE_SM_SC_DEBUG_KEYS
#define CONFIG_NIMBLE_SM_SC_DEBUG_KEYS CONFIG_BT_NIMBLE_SM_SC_DEBUG_KEYS
#endif
#ifdef CONFIG_BT_NIMBLE_SVC_GAP_APPEARANCE
#define CONFIG_NIMBLE_SVC_GAP_APPEARANCE CONFIG_BT_NIMBLE_SVC_GAP_APPEARANCE
#endif
#ifdef CONFIG_BT_NIMBLE_SVC_GAP_DEVICE_NAME
#define CONFIG_NIMBLE_SVC_GAP_DEVICE_NAME CONFIG_BT_NIMBLE_SVC_GAP_DEVICE_NAME
#endif
#ifdef CONFIG_BT_NIMBLE_TASK_STACK_SIZE
#define CONFIG_NIMBLE_TASK_STACK_SIZE CONFIG_BT_NIMBLE_TASK_STACK_SIZE
#endif
#ifdef CONFIG_ESP32_NO_BLOBS
#define CONFIG_NO_BLOBS CONFIG_ESP32_NO_BLOBS
#endif
@ -1990,5 +2186,5 @@
#define CONFIG_WIFI_LWIP_ALLOCATION_FROM_SPIRAM_FIRST CONFIG_SPIRAM_TRY_ALLOCATE_WIFI_LWIP
#endif
#define CONFIG_ARDUINO_IDF_COMMIT "b0f053d82"
#define CONFIG_ARDUINO_IDF_COMMIT "4c81978a3"
#define CONFIG_ARDUINO_IDF_BRANCH "release/v4.0"

View File

@ -57,6 +57,7 @@ typedef enum {
WIFI_AUTH_WPA_WPA2_PSK, /**< authenticate mode : WPA_WPA2_PSK */
WIFI_AUTH_WPA2_ENTERPRISE, /**< authenticate mode : WPA2_ENTERPRISE */
WIFI_AUTH_WPA3_PSK, /**< authenticate mode : WPA3_PSK */
WIFI_AUTH_WPA2_WPA3_PSK, /**< authenticate mode : WPA2_WPA3_PSK */
WIFI_AUTH_MAX
} wifi_auth_mode_t;

View File

@ -0,0 +1,96 @@
/**
* @file ip4_napt.h
* This is a private interface of ip4_napt used from ip4.c
*
* @see ip4_napt.c
*/
/*
* Copyright (c) 2001-2004 Swedish Institute of Computer Science.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without modification,
* are permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* 3. The name of the author may not be used to endorse or promote products
* derived from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
* SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
* OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
* IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
* OF SUCH DAMAGE.
*
* This file is part of the lwIP TCP/IP stack.
*
* original reassembly code by Adam Dunkels <adam@sics.se>
*
*/
#ifndef LWIP_HDR_IP4_NAPT_H
#define LWIP_HDR_IP4_NAPT_H
#include "lwip/opt.h"
#if ESP_LWIP
#if IP_FORWARD
#if IP_NAPT
#include "lwip/def.h"
#include "lwip/pbuf.h"
#include "lwip/ip4_addr.h"
#include "lwip/err.h"
#include "lwip/netif.h"
#include "lwip/prot/ip4.h"
#ifdef __cplusplus
extern "C" {
#endif
#include "lwip/err.h"
#include "lwip/ip4.h"
/**
* NAPT for a forwarded packet. It checks weather we need NAPT and modify
* the packet source address and port if needed.
*
* @param p the packet to forward (p->payload points to IP header)
* @param iphdr the IP header of the input packet
* @param inp the netif on which this packet was received
* @param outp the netif on which this packet will be sent
* @return ERR_OK if packet should be sent, or ERR_RTE if it should be dropped
*/
err_t
ip_napt_forward(struct pbuf *p, struct ip_hdr *iphdr, struct netif *inp, struct netif *outp);
/**
* NAPT for an input packet. It checks weather the destination is on NAPT
* table and modify the packet destination address and port if needed.
*
* @param p the packet to forward (p->payload points to IP header)
* @param iphdr the IP header of the input packet
* @param inp the netif on which this packet was received
*/
void
ip_napt_recv(struct pbuf *p, struct ip_hdr *iphdr);
#ifdef __cplusplus
}
#endif
#endif /* IP_NAPT */
#endif /* IP_FORWARD */
#endif /* ESP_LWIP */
#endif /* LWIP_HDR_IP4_NAPT_H */

View File

@ -0,0 +1,122 @@
/**
* @file lwip_napt.h
* public API of ip4_napt
*
* @see ip4_napt.c
*/
/*
* Copyright (c) 2001-2004 Swedish Institute of Computer Science.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without modification,
* are permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* 3. The name of the author may not be used to endorse or promote products
* derived from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
* SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
* OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
* IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
* OF SUCH DAMAGE.
*
* This file is part of the lwIP TCP/IP stack.
*
* original reassembly code by Adam Dunkels <adam@sics.se>
*
*/
#ifndef __LWIP_NAPT_H__
#define __LWIP_NAPT_H__
#include "lwip/opt.h"
#ifdef __cplusplus
extern "C" {
#endif
#if ESP_LWIP
#if IP_FORWARD
#if IP_NAPT
/* Default size of the tables used for NAPT */
#ifndef IP_NAPT_MAX
#define IP_NAPT_MAX 512
#endif
#ifndef IP_PORTMAP_MAX
#define IP_PORTMAP_MAX 32
#endif
/* Timeouts in sec for the various protocol types */
#define IP_NAPT_TIMEOUT_MS_TCP (30*60*1000)
#define IP_NAPT_TIMEOUT_MS_TCP_DISCON (20*1000)
#define IP_NAPT_TIMEOUT_MS_UDP (2*1000)
#define IP_NAPT_TIMEOUT_MS_ICMP (2*1000)
#define IP_NAPT_PORT_RANGE_START 49152
#define IP_NAPT_PORT_RANGE_END 61439
/**
* Enable/Disable NAPT for a specified interface.
*
* @param addr ip address of the interface
* @param enable non-zero to enable NAPT, or 0 to disable.
*/
void
ip_napt_enable(u32_t addr, int enable);
/**
* Enable/Disable NAPT for a specified interface.
*
* @param netif number of the interface
* @param enable non-zero to enable NAPT, or 0 to disable.
*/
void
ip_napt_enable_no(u8_t number, int enable);
/**
* Register port mapping on the external interface to internal interface.
* When the same port mapping is registered again, the old mapping is overwritten.
* In this implementation, only 1 unique port mapping can be defined for each target address/port.
*
* @param proto target protocol
* @param maddr ip address of the external interface
* @param mport mapped port on the external interface, in host byte order.
* @param daddr destination ip address
* @param dport destination port, in host byte order.
*/
u8_t
ip_portmap_add(u8_t proto, u32_t maddr, u16_t mport, u32_t daddr, u16_t dport);
/**
* Unregister port mapping on the external interface to internal interface.
*
* @param proto target protocol
* @param maddr ip address of the external interface
*/
u8_t
ip_portmap_remove(u8_t proto, u16_t mport);
#endif /* IP_NAPT */
#endif /* IP_FORWARD */
#endif /* ESP_LWIP */
#ifdef __cplusplus
}
#endif
#endif /* __LWIP_NAPT_H__ */

View File

@ -410,6 +410,11 @@ struct netif {
void (*l2_buffer_free_notify)(struct netif *lwip_netif, void *user_buf); /* Allows LWIP to notify driver when a L2-supplied pbuf can be freed */
ip_addr_t last_ip_addr; /* Store last non-zero ip address */
#endif
#if ESP_LWIP
#if LWIP_IPV4 && IP_NAPT
u8_t napt;
#endif
#endif /* ESP_LWIP */
};
#if LWIP_CHECKSUM_CTRL_PER_NETIF
#define NETIF_SET_CHECKSUM_CTRL(netif, chksumflags) do { \

View File

@ -767,6 +767,14 @@
#define IP_FRAG 0
#endif /* !LWIP_IPV4 */
/**
* IP_NAPT==1: Enables IPv4 Network Address and Port Translation
* Note that IP_FORWARD needs to be enabled for NAPT to work
*/
#if !defined IP_NAPT || defined __DOXYGEN__
#define IP_NAPT 0
#endif
/**
* IP_OPTIONS_ALLOWED: Defines the behavior for IP options.
* IP_OPTIONS_ALLOWED==0: All packets with IP options are dropped.
@ -3525,6 +3533,13 @@
#define LWIP_TESTMODE 0
#endif
/**
* NAPT_DEBUG: Enable debugging for NAPT.
*/
#ifndef NAPT_DEBUG
#define NAPT_DEBUG LWIP_DBG_OFF
#endif
/*
--------------------------------------------------
---------- Performance tracking options ----------

View File

@ -263,8 +263,7 @@ char * ets_strdup(const char *s);
#define os_strncpy(d, s, n) strncpy((d), (s), (n))
#endif
#ifndef os_strrchr
//hard cold
#define os_strrchr(s, c) NULL
#define os_strrchr(s, c) strrchr((s), (c))
#endif
#ifndef os_strstr
#define os_strstr(h, n) strstr((h), (n))