13#ifndef ZEPHYR_INCLUDE_NET_NET_IP_H_ 
   14#define ZEPHYR_INCLUDE_NET_NET_IP_H_ 
   38#define NET_VLAN_TAG_UNSPEC 0x0fff 
   49#define PF_UNIX         PF_LOCAL    
   52#define AF_UNSPEC      PF_UNSPEC    
   53#define AF_INET        PF_INET      
   54#define AF_INET6       PF_INET6     
   55#define AF_PACKET      PF_PACKET    
   57#define AF_NET_MGMT    PF_NET_MGMT  
   58#define AF_LOCAL       PF_LOCAL     
   59#define AF_UNIX        PF_UNIX      
   96#define ntohs(x) sys_be16_to_cpu(x) 
  104#define ntohl(x) sys_be32_to_cpu(x) 
  112#define ntohll(x) sys_be64_to_cpu(x) 
  120#define htons(x) sys_cpu_to_be16(x) 
  128#define htonl(x) sys_cpu_to_be32(x) 
  136#define htonll(x) sys_cpu_to_be64(x) 
  148#define NET_IPV6_ADDR_SIZE 16 
  161#define NET_IPV4_ADDR_SIZE 4 
  228#if !defined(HAVE_IOVEC) 
  257#define ALIGN_H(x) ROUND_UP(x, __alignof__(struct cmsghdr)) 
  260#define ALIGN_D(x) ROUND_UP(x, __alignof__(z_max_align_t)) 
  263#if !defined(CMSG_FIRSTHDR) 
  264#define CMSG_FIRSTHDR(msghdr)                                   \ 
  265        ((msghdr)->msg_controllen >= sizeof(struct cmsghdr) ?   \ 
  266         (struct cmsghdr *)((msghdr)->msg_control) : NULL) 
  269#if !defined(CMSG_NXTHDR) 
  270#define CMSG_NXTHDR(msghdr, cmsg)                                        \ 
  271        (((cmsg) == NULL) ? CMSG_FIRSTHDR(msghdr) :                      \ 
  272         (((uint8_t *)(cmsg) + ALIGN_H((cmsg)->cmsg_len) +               \ 
  273           ALIGN_D(sizeof(struct cmsghdr)) >                             \ 
  274           (uint8_t *)((msghdr)->msg_control) + (msghdr)->msg_controllen) ? \ 
  276          (struct cmsghdr *)((uint8_t *)(cmsg) +                         \ 
  277                             ALIGN_H((cmsg)->cmsg_len)))) 
  280#if !defined(CMSG_DATA) 
  281#define CMSG_DATA(cmsg) ((uint8_t *)(cmsg) + ALIGN_D(sizeof(struct cmsghdr))) 
  284#if !defined(CMSG_SPACE) 
  285#define CMSG_SPACE(length) (ALIGN_D(sizeof(struct cmsghdr)) + ALIGN_H(length)) 
  288#if !defined(CMSG_LEN) 
  289#define CMSG_LEN(length) (ALIGN_D(sizeof(struct cmsghdr)) + length) 
  296#define PACKET_BROADCAST    1      
  297#define PACKET_MULTICAST    2      
  298#define PACKET_OTHERHOST    3      
  299#define PACKET_OUTGOING     4      
  300#define PACKET_LOOPBACK     5 
  301#define PACKET_FASTROUTE    6 
  304#define ARPHRD_ETHER 1 
  309#if defined(CONFIG_NET_IPV4) 
  310#undef NET_SOCKADDR_MAX_SIZE 
  311#undef NET_SOCKADDR_PTR_MAX_SIZE 
  312#define NET_SOCKADDR_MAX_SIZE (sizeof(struct sockaddr_in)) 
  313#define NET_SOCKADDR_PTR_MAX_SIZE (sizeof(struct sockaddr_in_ptr)) 
  316#if defined(CONFIG_NET_SOCKETS_PACKET) 
  317#undef NET_SOCKADDR_MAX_SIZE 
  318#undef NET_SOCKADDR_PTR_MAX_SIZE 
  319#define NET_SOCKADDR_MAX_SIZE (sizeof(struct sockaddr_ll)) 
  320#define NET_SOCKADDR_PTR_MAX_SIZE (sizeof(struct sockaddr_ll_ptr)) 
  323#if defined(CONFIG_NET_IPV6) 
  324#undef NET_SOCKADDR_MAX_SIZE 
  325#define NET_SOCKADDR_MAX_SIZE (sizeof(struct sockaddr_in6)) 
  326#if !defined(CONFIG_NET_SOCKETS_PACKET) 
  327#undef NET_SOCKADDR_PTR_MAX_SIZE 
  328#define NET_SOCKADDR_PTR_MAX_SIZE (sizeof(struct sockaddr_in6_ptr)) 
  332#if !defined(CONFIG_NET_IPV4) 
  333#if !defined(CONFIG_NET_IPV6) 
  334#if !defined(CONFIG_NET_SOCKETS_PACKET) 
  335#define NET_SOCKADDR_MAX_SIZE (sizeof(struct sockaddr_in6)) 
  336#define NET_SOCKADDR_PTR_MAX_SIZE (sizeof(struct sockaddr_in6_ptr)) 
  357struct sockaddr_storage {
 
  365        char        sun_path[NET_SOCKADDR_MAX_SIZE - 
sizeof(
sa_family_t)];
 
  376#define IN6ADDR_ANY_INIT { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, \ 
  377                                0, 0, 0, 0, 0, 0, 0 } } } 
  378#define IN6ADDR_LOOPBACK_INIT { { { 0, 0, 0, 0, 0, 0, 0, \ 
  379                                0, 0, 0, 0, 0, 0, 0, 0, 1 } } } 
  381extern const struct in6_addr in6addr_any;
 
  382extern const struct in6_addr in6addr_loopback;
 
  387#define INET_ADDRSTRLEN 16 
  391#define INET6_ADDRSTRLEN 46 
  396#define NET_IPV6_ADDR_LEN sizeof("xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx")
 
  397#define NET_IPV4_ADDR_LEN sizeof("xxx.xxx.xxx.xxx")
 
  400#define INADDR_ANY_INIT { { { INADDR_ANY } } } 
  402#define INADDR_LOOPBACK_INIT  { { { 127, 0, 0, 1 } } } 
  430#define NET_MAX_PRIORITIES 8  
  476struct net_ipv6_frag_hdr {
 
  522static inline const char *net_addr_type2str(
enum net_addr_type type)
 
  542#define NET_IPV6_NEXTHDR_HBHO        0 
  543#define NET_IPV6_NEXTHDR_DESTO       60 
  544#define NET_IPV6_NEXTHDR_ROUTING     43 
  545#define NET_IPV6_NEXTHDR_FRAG        44 
  546#define NET_IPV6_NEXTHDR_NONE        59 
  553        struct net_ipv4_hdr *ipv4;
 
  554        struct net_ipv6_hdr *ipv6;
 
  557union net_proto_header {
 
  558        struct net_udp_hdr *udp;
 
  559        struct net_tcp_hdr *tcp;
 
  562#define NET_UDPH_LEN    8                        
  563#define NET_TCPH_LEN    20                       
  564#define NET_ICMPH_LEN   4                        
  566#define NET_IPV6H_LEN      40                    
  567#define NET_ICMPV6H_LEN    NET_ICMPH_LEN         
  568#define NET_IPV6UDPH_LEN   (NET_UDPH_LEN + NET_IPV6H_LEN)  
  569#define NET_IPV6TCPH_LEN   (NET_TCPH_LEN + NET_IPV6H_LEN)  
  570#define NET_IPV6ICMPH_LEN  (NET_IPV6H_LEN + NET_ICMPH_LEN)  
  571#define NET_IPV6_FRAGH_LEN 8 
  573#define NET_IPV4H_LEN      20                    
  574#define NET_ICMPV4H_LEN    NET_ICMPH_LEN         
  575#define NET_IPV4UDPH_LEN   (NET_UDPH_LEN + NET_IPV4H_LEN)  
  576#define NET_IPV4TCPH_LEN   (NET_TCPH_LEN + NET_IPV4H_LEN)  
  577#define NET_IPV4ICMPH_LEN  (NET_IPV4H_LEN + NET_ICMPH_LEN)  
  579#define NET_IPV6H_LENGTH_OFFSET         0x04     
  581#define NET_IPV6_FRAGH_OFFSET_MASK      0xfff8   
  582#define NET_IPV4_FRAGH_OFFSET_MASK      0x1fff   
  583#define NET_IPV4_MORE_FRAG_MASK         0x2000   
  584#define NET_IPV4_DO_NOT_FRAG_MASK       0x4000   
  597        return UNALIGNED_GET(&addr->
s6_addr32[0]) == 0 &&
 
  598                UNALIGNED_GET(&addr->
s6_addr32[1]) == 0 &&
 
  599                UNALIGNED_GET(&addr->
s6_addr32[2]) == 0 &&
 
  612        return addr->
s6_addr[0] == 0xFF;
 
  671        if (
memcmp(addr1, addr2, bytes)) {
 
  683        mask = ((0xff << (8 - remain)) ^ 0xff) << remain;
 
  685        return (addr1[bytes] & mask) == (addr2[bytes] & mask);
 
  697        return addr->
s4_addr[0] == 127U;
 
  709        return UNALIGNED_GET(&addr->
s_addr) == 0;
 
  721        return (
ntohl(UNALIGNED_GET(&addr->
s_addr)) & 0xF0000000) == 0xE0000000;
 
  733        return (
ntohl(UNALIGNED_GET(&addr->
s_addr)) & 0xA9FE0000) == 0xA9FE0000;
 
  744#define net_ipaddr_copy(dest, src) \ 
  745        UNALIGNED_PUT(UNALIGNED_GET(src), dest) 
  782        return UNALIGNED_GET(&addr1->
s_addr) == UNALIGNED_GET(&addr2->
s_addr);
 
  797                                 (
const struct in_addr *)addr2);
 
  850        return addr->
s6_addr[0] == 0xFD;
 
  904#if defined(CONFIG_NET_NATIVE_IPV4) 
  958        return UNALIGNED_GET(&addr->
s6_addr32[0]) == 0 &&
 
  959                UNALIGNED_GET(&addr->
s6_addr32[1]) == 0 &&
 
  960                UNALIGNED_GET(&addr->
s6_addr32[2]) == 0 &&
 
  975                UNALIGNED_GET(&addr->
s6_addr32[1]) == 0x00000000 &&
 
 1009        return (addr_1->
s6_addr[0] == 0xff) && (addr_2->
s6_addr[0] == 0xff) &&
 
 1127        static const struct in6_addr all_nodes_mcast_group = {
 
 1128                { { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
 1129                    0x00, 0x00, 0x00, 0x00, 0x00, 0x01 } }
 
 1251        switch (lladdr->
len) {
 
 1275#if defined(CONFIG_NET_L2_BT_ZEP1656) 
 1304        if (!addr || !lladdr) {
 
 1308        switch (lladdr->
len) {
 
 1334#
if defined(CONFIG_NET_L2_BT_ZEP1656)
 
 1468                              char *dst, 
size_t size);
 
 1507        return (
int32_t)(seq1 - seq2);
 
 1569        static const uint8_t vlan2priority[] = {
 
 1615#include <syscalls/net_ip.h> 
static bool net_ipv6_is_my_addr(struct in6_addr *addr)
Check if IPv6 address is found in one of the network interfaces.
Definition: net_ip.h:628
 
struct net_if_addr * net_if_ipv4_addr_lookup(const struct in_addr *addr, struct net_if **iface)
 
static void net_ipv6_addr_create(struct in6_addr *addr, uint16_t addr0, uint16_t addr1, uint16_t addr2, uint16_t addr3, uint16_t addr4, uint16_t addr5, uint16_t addr6, uint16_t addr7)
Construct an IPv6 address from eight 16-bit words.
Definition: net_ip.h:1203
 
static bool net_ipv4_addr_cmp(const struct in_addr *addr1, const struct in_addr *addr2)
Compare two IPv4 addresses.
Definition: net_ip.h:779
 
#define NET_IPV4_ADDR_SIZE
Definition: net_ip.h:161
 
struct net_if_addr * net_if_ipv6_addr_lookup(const struct in6_addr *addr, struct net_if **iface)
 
static bool net_ipv6_is_addr_mcast_org(const struct in6_addr *addr)
Check if the IPv6 address is an organization scope multicast address (FFx8::).
Definition: net_ip.h:1090
 
static enum net_priority net_vlan2priority(uint8_t priority)
Convert network packet VLAN priority to network packet priority so we can place the packet into corre...
Definition: net_ip.h:1566
 
static int32_t net_tcp_seq_cmp(uint32_t seq1, uint32_t seq2)
Compare TCP sequence numbers.
Definition: net_ip.h:1505
 
static bool net_ipv6_is_addr_mcast(const struct in6_addr *addr)
Check if the IPv6 address is a multicast address.
Definition: net_ip.h:610
 
#define NET_IPV6_ADDR_SIZE
Definition: net_ip.h:148
 
int net_addr_pton(sa_family_t family, const char *src, void *dst)
Convert a string to IP address.
 
unsigned short int sa_family_t
Definition: net_ip.h:164
 
static void net_ipv6_addr_create_ll_allrouters_mcast(struct in6_addr *addr)
Create link local allrouters multicast IPv6 address.
Definition: net_ip.h:1234
 
char * net_addr_ntop(sa_family_t family, const void *src, char *dst, size_t size)
Convert IP address to string form.
 
net_addr_state
Definition: net_ip.h:442
 
static bool net_ipv4_addr_cmp_raw(const uint8_t *addr1, const uint8_t *addr2)
Compare two raw IPv4 address buffers.
Definition: net_ip.h:793
 
static bool net_ipv6_addr_cmp(const struct in6_addr *addr1, const struct in6_addr *addr2)
Compare two IPv6 addresses.
Definition: net_ip.h:808
 
static bool net_ipv6_is_addr_mcast_iface_all_nodes(const struct in6_addr *addr)
Check if the IPv6 address is a interface scope all nodes multicast address (FF01::1).
Definition: net_ip.h:1145
 
static bool net_ipv4_is_my_addr(const struct in_addr *addr)
Check if the IPv4 address is assigned to any network interface in the system.
Definition: net_ip.h:937
 
static bool net_ipv6_is_same_mcast_scope(const struct in6_addr *addr_1, const struct in6_addr *addr_2)
Check if the IPv6 addresses have the same multicast scope (FFyx::).
Definition: net_ip.h:1006
 
static void net_ipv6_addr_copy_raw(uint8_t *dest, const uint8_t *src)
Copy an IPv6 address raw buffer.
Definition: net_ip.h:765
 
static bool net_ipv6_is_addr_mcast_mesh(const struct in6_addr *addr)
Check if the IPv6 address is a mesh-local scope multicast address (FFx3::).
Definition: net_ip.h:1062
 
static struct sockaddr_in_ptr * net_sin_ptr(const struct sockaddr_ptr *addr)
Get sockaddr_in_ptr from sockaddr_ptr. This is a helper so that the code calling this function can be...
Definition: net_ip.h:1408
 
const struct in_addr * net_ipv4_broadcast_address(void)
Return pointer to broadcast (all bits ones) IPv4 address.
 
#define htons(x)
Convert 16-bit value from host to network byte order.
Definition: net_ip.h:120
 
bool net_if_ipv4_addr_mask_cmp(struct net_if *iface, const struct in_addr *addr)
 
static bool net_ipv6_is_addr_mcast_global(const struct in6_addr *addr)
Check if the IPv6 address is a global multicast address (FFxE::/16).
Definition: net_ip.h:1020
 
static void net_ipv6_addr_create_ll_allnodes_mcast(struct in6_addr *addr)
Create link local allnodes multicast IPv6 address.
Definition: net_ip.h:1224
 
static bool net_ipv6_is_addr_solicited_node(const struct in6_addr *addr)
Check if the IPv6 address is solicited node multicast address FF02:0:0:0:0:1:FFXX:XXXX defined in RFC...
Definition: net_ip.h:972
 
static void net_ipv6_addr_create_solicited_node(const struct in6_addr *src, struct in6_addr *dst)
Create solicited node IPv6 multicast address FF02:0:0:0:0:1:FFXX:XXXX defined in RFC 3513.
Definition: net_ip.h:1175
 
static bool net_ipv6_is_addr_mcast_group(const struct in6_addr *addr, const struct in6_addr *group)
Check if the IPv6 address belongs to certain multicast group.
Definition: net_ip.h:1105
 
static bool net_ipv6_is_addr_mcast_site(const struct in6_addr *addr)
Check if the IPv6 address is a site scope multicast address (FFx5::).
Definition: net_ip.h:1076
 
static void net_ipv6_addr_create_iid(struct in6_addr *addr, struct net_linkaddr *lladdr)
Create IPv6 address interface identifier.
Definition: net_ip.h:1245
 
static bool net_ipv6_is_addr_mcast_link(const struct in6_addr *addr)
Check if the IPv6 address is a link local scope multicast address (FFx2::).
Definition: net_ip.h:1048
 
static bool net_ipv4_addr_mask_cmp(struct net_if *iface, const struct in_addr *addr)
Check if the given address belongs to same subnet that has been configured for the interface.
Definition: net_ip.h:887
 
net_ip_protocol_secure
Definition: net_ip.h:75
 
#define net_ipaddr_copy(dest, src)
Copy an IPv4 or IPv6 address.
Definition: net_ip.h:744
 
net_ip_mtu
Definition: net_ip.h:406
 
int net_rx_priority2tc(enum net_priority prio)
Convert Rx network packet priority to traffic class so we can place the packet into correct Rx queue.
 
static bool net_ipv4_is_addr_loopback(struct in_addr *addr)
Check if the IPv4 address is a loopback address (127.0.0.0/8).
Definition: net_ip.h:695
 
int net_bytes_from_str(uint8_t *buf, int buf_len, const char *src)
Convert a string of hex values to array of bytes.
 
static uint8_t net_priority2vlan(enum net_priority priority)
Convert network packet priority to network packet VLAN priority.
Definition: net_ip.h:1595
 
bool net_if_ipv4_is_addr_bcast(struct net_if *iface, const struct in_addr *addr)
 
static bool net_ipv6_is_prefix(const uint8_t *addr1, const uint8_t *addr2, uint8_t length)
Check if two IPv6 addresses are same when compared after prefix mask.
Definition: net_ip.h:658
 
bool net_ipaddr_parse(const char *str, size_t str_len, struct sockaddr *addr)
Parse a string that contains either IPv4 or IPv6 address and optional port, and store the information...
 
static bool net_ipv6_is_addr_loopback(struct in6_addr *addr)
Check if the IPv6 address is a loopback address (::1).
Definition: net_ip.h:595
 
static bool net_tcp_seq_greater(uint32_t seq1, uint32_t seq2)
Check that one TCP sequence number is greater.
Definition: net_ip.h:1520
 
net_sock_type
Definition: net_ip.h:84
 
const struct in6_addr * net_ipv6_unspecified_address(void)
Return pointer to any (all bits zeros) IPv6 address.
 
static bool net_ipv6_is_addr_mcast_link_all_nodes(const struct in6_addr *addr)
Check if the IPv6 address is a link local scope all nodes multicast address (FF02::1).
Definition: net_ip.h:1161
 
const char * net_family2str(sa_family_t family)
Return network address family value as a string. This is only usable for debugging.
 
static bool net_ipv4_is_ll_addr(const struct in_addr *addr)
Check if the given IPv4 address is a link local address.
Definition: net_ip.h:731
 
static struct sockaddr_can_ptr * net_can_ptr(const struct sockaddr_ptr *addr)
Get sockaddr_can_ptr from sockaddr_ptr. This is a helper so that the code needing this functionality ...
Definition: net_ip.h:1436
 
#define ntohl(x)
Convert 32-bit value from network to host byte order.
Definition: net_ip.h:104
 
static bool net_ipv4_is_addr_bcast(struct net_if *iface, const struct in_addr *addr)
Check if the given IPv4 address is a broadcast address.
Definition: net_ip.h:915
 
static bool net_ipv6_is_ll_addr(const struct in6_addr *addr)
Check if the given IPv6 address is a link local address.
Definition: net_ip.h:836
 
static struct sockaddr_in * net_sin(const struct sockaddr *addr)
Get sockaddr_in from sockaddr. This is a helper so that the code calling this function can be made sh...
Definition: net_ip.h:1380
 
const struct in_addr * net_ipv4_unspecified_address(void)
Return pointer to any (all bits zeros) IPv4 address.
 
static bool net_ipv6_is_addr_mcast_all_nodes_group(const struct in6_addr *addr)
Check if the IPv6 address belongs to the all nodes multicast group.
Definition: net_ip.h:1125
 
size_t socklen_t
Definition: net_ip.h:167
 
static struct sockaddr_ll_ptr * net_sll_ptr(const struct sockaddr_ptr *addr)
Get sockaddr_ll_ptr from sockaddr_ptr. This is a helper so that the code calling this function can be...
Definition: net_ip.h:1422
 
static struct sockaddr_in6 * net_sin6(const struct sockaddr *addr)
Get sockaddr_in6 from sockaddr. This is a helper so that the code calling this function can be made s...
Definition: net_ip.h:1367
 
struct net_if_mcast_addr * net_if_ipv6_maddr_lookup(const struct in6_addr *addr, struct net_if **iface)
 
static bool net_ipv4_is_addr_unspecified(const struct in_addr *addr)
Check if the IPv4 address is unspecified (all bits zero)
Definition: net_ip.h:707
 
static bool net_ipv6_is_addr_mcast_scope(const struct in6_addr *addr, int scope)
Check if the IPv6 address is a given scope multicast address (FFyx::).
Definition: net_ip.h:991
 
static bool net_ipv6_is_ula_addr(const struct in6_addr *addr)
Check if the given IPv6 address is a unique local address.
Definition: net_ip.h:848
 
static bool net_ipv6_is_addr_mcast_iface(const struct in6_addr *addr)
Check if the IPv6 address is a interface scope multicast address (FFx1::).
Definition: net_ip.h:1034
 
#define htonl(x)
Convert 32-bit value from host to network byte order.
Definition: net_ip.h:128
 
int net_tx_priority2tc(enum net_priority prio)
Convert Tx network packet priority to traffic class so we can place the packet into correct Tx queue.
 
static struct sockaddr_in6_ptr * net_sin6_ptr(const struct sockaddr_ptr *addr)
Get sockaddr_in6_ptr from sockaddr_ptr. This is a helper so that the code calling this function can b...
Definition: net_ip.h:1394
 
net_priority
Definition: net_ip.h:419
 
static bool net_ipv4_is_addr_mcast(const struct in_addr *addr)
Check if the IPv4 address is a multicast address.
Definition: net_ip.h:719
 
net_ip_protocol
Definition: net_ip.h:62
 
static bool net_ipv6_addr_based_on_ll(const struct in6_addr *addr, const struct net_linkaddr *lladdr)
Check if given address is based on link layer address.
Definition: net_ip.h:1301
 
static void net_ipv4_addr_copy_raw(uint8_t *dest, const uint8_t *src)
Copy an IPv4 address raw buffer.
Definition: net_ip.h:753
 
static bool net_ipv6_is_my_maddr(struct in6_addr *maddr)
Check if IPv6 multicast address is found in one of the network interfaces.
Definition: net_ip.h:644
 
static bool net_ipv6_addr_cmp_raw(const uint8_t *addr1, const uint8_t *addr2)
Compare two raw IPv6 address buffers.
Definition: net_ip.h:822
 
static bool net_ipv6_is_addr_unspecified(const struct in6_addr *addr)
Check if the IPv6 address is unspecified (all bits zero)
Definition: net_ip.h:956
 
net_addr_type
Definition: net_ip.h:450
 
@ NET_ADDR_ANY_STATE
Definition: net_ip.h:443
 
@ NET_ADDR_TENTATIVE
Definition: net_ip.h:444
 
@ NET_ADDR_DEPRECATED
Definition: net_ip.h:446
 
@ NET_ADDR_PREFERRED
Definition: net_ip.h:445
 
@ IPPROTO_TLS_1_1
Definition: net_ip.h:77
 
@ IPPROTO_TLS_1_0
Definition: net_ip.h:76
 
@ IPPROTO_DTLS_1_0
Definition: net_ip.h:79
 
@ IPPROTO_TLS_1_2
Definition: net_ip.h:78
 
@ IPPROTO_DTLS_1_2
Definition: net_ip.h:80
 
@ NET_IPV4_MTU
Definition: net_ip.h:415
 
@ NET_IPV6_MTU
Definition: net_ip.h:410
 
@ SOCK_DGRAM
Definition: net_ip.h:86
 
@ SOCK_RAW
Definition: net_ip.h:87
 
@ SOCK_STREAM
Definition: net_ip.h:85
 
@ NET_PRIORITY_NC
Definition: net_ip.h:427
 
@ NET_PRIORITY_IC
Definition: net_ip.h:426
 
@ NET_PRIORITY_CA
Definition: net_ip.h:423
 
@ NET_PRIORITY_VO
Definition: net_ip.h:425
 
@ NET_PRIORITY_VI
Definition: net_ip.h:424
 
@ NET_PRIORITY_BE
Definition: net_ip.h:421
 
@ NET_PRIORITY_EE
Definition: net_ip.h:422
 
@ NET_PRIORITY_BK
Definition: net_ip.h:420
 
@ IPPROTO_IP
Definition: net_ip.h:63
 
@ IPPROTO_RAW
Definition: net_ip.h:71
 
@ IPPROTO_IPIP
Definition: net_ip.h:66
 
@ IPPROTO_TCP
Definition: net_ip.h:67
 
@ IPPROTO_IGMP
Definition: net_ip.h:65
 
@ IPPROTO_ICMP
Definition: net_ip.h:64
 
@ IPPROTO_IPV6
Definition: net_ip.h:69
 
@ IPPROTO_UDP
Definition: net_ip.h:68
 
@ IPPROTO_ICMPV6
Definition: net_ip.h:70
 
@ NET_ADDR_ANY
Definition: net_ip.h:452
 
@ NET_ADDR_OVERRIDABLE
Definition: net_ip.h:460
 
@ NET_ADDR_DHCP
Definition: net_ip.h:456
 
@ NET_ADDR_MANUAL
Definition: net_ip.h:458
 
@ NET_ADDR_AUTOCONF
Definition: net_ip.h:454
 
@ NET_LINK_IEEE802154
Definition: net_linkaddr.h:51
 
@ NET_LINK_ETHERNET
Definition: net_linkaddr.h:55
 
@ NET_LINK_BLUETOOTH
Definition: net_linkaddr.h:53
 
#define ARRAY_SIZE(array)
Number of elements in the given array.
Definition: util.h:118
 
static ZTEST_BMEM volatile int ret
Definition: k_float_disable.c:28
 
Public API for network link address.
 
flags
Definition: parser.h:96
 
__UINT32_TYPE__ uint32_t
Definition: stdint.h:90
 
__INT32_TYPE__ int32_t
Definition: stdint.h:74
 
__UINT8_TYPE__ uint8_t
Definition: stdint.h:88
 
__UINT16_TYPE__ uint16_t
Definition: stdint.h:89
 
int memcmp(const void *m1, const void *m2, size_t n)
 
void * memcpy(void *ZRESTRICT d, const void *ZRESTRICT s, size_t n)
 
int cmsg_type
Definition: net_ip.h:248
 
socklen_t cmsg_len
Definition: net_ip.h:246
 
z_max_align_t cmsg_data[]
Definition: net_ip.h:250
 
int cmsg_level
Definition: net_ip.h:247
 
uint8_t s6_addr[16]
Definition: net_ip.h:141
 
uint32_t s6_addr32[4]
Definition: net_ip.h:143
 
uint16_t s6_addr16[8]
Definition: net_ip.h:142
 
uint8_t s4_addr[4]
Definition: net_ip.h:153
 
uint32_t s_addr
Definition: net_ip.h:156
 
uint16_t s4_addr16[2]
Definition: net_ip.h:154
 
uint32_t s4_addr32[1]
Definition: net_ip.h:155
 
void * iov_base
Definition: net_ip.h:230
 
size_t iov_len
Definition: net_ip.h:231
 
struct iovec * msg_iov
Definition: net_ip.h:238
 
socklen_t msg_namelen
Definition: net_ip.h:237
 
void * msg_name
Definition: net_ip.h:236
 
int msg_flags
Definition: net_ip.h:242
 
size_t msg_controllen
Definition: net_ip.h:241
 
size_t msg_iovlen
Definition: net_ip.h:239
 
void * msg_control
Definition: net_ip.h:240
 
Network Interface unicast IP addresses.
Definition: net_if.h:49
 
IP and other configuration related data for network interface.
Definition: net_if.h:400
 
Network Interface multicast IP addresses.
Definition: net_if.h:90
 
Network Interface structure.
Definition: net_if.h:510
 
Hardware link address structure.
Definition: net_linkaddr.h:67
 
uint8_t * addr
Definition: net_linkaddr.h:69
 
uint8_t type
Definition: net_linkaddr.h:75
 
uint8_t len
Definition: net_linkaddr.h:72
 
struct net_addr * remote_addr
Definition: net_ip.h:434
 
uint16_t local_port
Definition: net_ip.h:437
 
enum net_ip_protocol ip_proto
Definition: net_ip.h:438
 
uint16_t remote_port
Definition: net_ip.h:436
 
struct net_addr * local_addr
Definition: net_ip.h:435
 
sa_family_t can_family
Definition: net_ip.h:224
 
int can_ifindex
Definition: net_ip.h:225
 
sa_family_t sin6_family
Definition: net_ip.h:183
 
uint16_t sin6_port
Definition: net_ip.h:184
 
uint8_t sin6_scope_id
Definition: net_ip.h:186
 
struct in6_addr * sin6_addr
Definition: net_ip.h:185
 
uint8_t sin6_scope_id
Definition: net_ip.h:179
 
struct in6_addr sin6_addr
Definition: net_ip.h:178
 
uint16_t sin6_port
Definition: net_ip.h:177
 
sa_family_t sin6_family
Definition: net_ip.h:176
 
struct in_addr * sin_addr
Definition: net_ip.h:199
 
uint16_t sin_port
Definition: net_ip.h:198
 
sa_family_t sin_family
Definition: net_ip.h:197
 
uint16_t sin_port
Definition: net_ip.h:192
 
struct in_addr sin_addr
Definition: net_ip.h:193
 
sa_family_t sin_family
Definition: net_ip.h:191
 
uint8_t * sll_addr
Definition: net_ip.h:220
 
uint16_t sll_hatype
Definition: net_ip.h:217
 
int sll_ifindex
Definition: net_ip.h:216
 
uint8_t sll_pkttype
Definition: net_ip.h:218
 
sa_family_t sll_family
Definition: net_ip.h:214
 
uint8_t sll_halen
Definition: net_ip.h:219
 
uint16_t sll_protocol
Definition: net_ip.h:215
 
uint8_t sll_pkttype
Definition: net_ip.h:208
 
uint16_t sll_hatype
Definition: net_ip.h:207
 
sa_family_t sll_family
Definition: net_ip.h:204
 
uint16_t sll_protocol
Definition: net_ip.h:205
 
int sll_ifindex
Definition: net_ip.h:206
 
uint8_t sll_halen
Definition: net_ip.h:209
 
uint8_t sll_addr[8]
Definition: net_ip.h:210
 
char data[NET_SOCKADDR_MAX_SIZE - sizeof(sa_family_t)]
Definition: net_ip.h:346
 
sa_family_t sa_family
Definition: net_ip.h:345
 
static fdata_t data[2]
Definition: test_fifo_contexts.c:15