1
0
mirror of https://github.com/esp8266/Arduino.git synced 2025-07-27 18:02:17 +03:00

IPv6 on esp8266-nonos-sdk and arduino (#5136)

This commit is contained in:
david gauchard
2018-11-27 23:07:47 +01:00
committed by GitHub
parent a501d3ca3b
commit 5c4db3acf4
59 changed files with 1270 additions and 809 deletions

View File

@ -31,16 +31,16 @@
extern "C" {
#endif
struct ip_addr {
struct ipv4_addr {
uint32 addr;
};
typedef struct ip_addr ip_addr_t;
typedef struct ipv4_addr ipv4_addr_t;
struct ip_info {
struct ip_addr ip;
struct ip_addr netmask;
struct ip_addr gw;
struct ipv4_addr ip;
struct ipv4_addr netmask;
struct ipv4_addr gw;
};
/**
@ -51,7 +51,7 @@ struct ip_info {
* @arg mask network identifier mask
* @return !0 if the network identifiers of both address match
*/
#define ip_addr_netcmp(addr1, addr2, mask) (((addr1)->addr & \
#define ipv4_addr_netcmp(addr1, addr2, mask) (((addr1)->addr & \
(mask)->addr) == \
((addr2)->addr & \
(mask)->addr))
@ -64,15 +64,15 @@ struct ip_info {
((uint32)((b) & 0xff) << 8) | \
(uint32)((a) & 0xff)
#define ip4_addr1(ipaddr) (((uint8*)(ipaddr))[0])
#define ip4_addr2(ipaddr) (((uint8*)(ipaddr))[1])
#define ip4_addr3(ipaddr) (((uint8*)(ipaddr))[2])
#define ip4_addr4(ipaddr) (((uint8*)(ipaddr))[3])
#define ipv4_addr1(ipaddr) (((uint8*)(ipaddr))[0])
#define ipv4_addr2(ipaddr) (((uint8*)(ipaddr))[1])
#define ipv4_addr3(ipaddr) (((uint8*)(ipaddr))[2])
#define ipv4_addr4(ipaddr) (((uint8*)(ipaddr))[3])
#define ip4_addr1_16(ipaddr) ((uint16)ip4_addr1(ipaddr))
#define ip4_addr2_16(ipaddr) ((uint16)ip4_addr2(ipaddr))
#define ip4_addr3_16(ipaddr) ((uint16)ip4_addr3(ipaddr))
#define ip4_addr4_16(ipaddr) ((uint16)ip4_addr4(ipaddr))
#define ipv4_addr1_16(ipaddr) ((uint16)ipv4_addr1(ipaddr))
#define ipv4_addr2_16(ipaddr) ((uint16)ipv4_addr2(ipaddr))
#define ipv4_addr3_16(ipaddr) ((uint16)ipv4_addr3(ipaddr))
#define ipv4_addr4_16(ipaddr) ((uint16)ipv4_addr4(ipaddr))
/** 255.255.255.255 */
@ -81,10 +81,10 @@ struct ip_info {
#define IPADDR_ANY ((uint32)0x00000000UL)
uint32 ipaddr_addr(const char *cp);
#define IP2STR(ipaddr) ip4_addr1_16(ipaddr), \
ip4_addr2_16(ipaddr), \
ip4_addr3_16(ipaddr), \
ip4_addr4_16(ipaddr)
#define IP2STR(ipaddr) ipv4_addr1_16(ipaddr), \
ipv4_addr2_16(ipaddr), \
ipv4_addr3_16(ipaddr), \
ipv4_addr4_16(ipaddr)
#define IPSTR "%d.%d.%d.%d"