|
Zephyr Project API 4.0.0
A Scalable Open Source RTOS
|
IPv4/IPv6 primitives and helpers. More...
Data Structures | |
| struct | in6_addr |
| IPv6 address struct. More... | |
| struct | in_addr |
| IPv4 address struct. More... | |
| struct | sockaddr_in6 |
| Socket address struct for IPv6. More... | |
| struct | sockaddr_in |
| Socket address struct for IPv4. More... | |
| struct | sockaddr_ll |
| Socket address struct for packet socket. More... | |
| struct | iovec |
| IO vector array element. More... | |
| struct | msghdr |
| Message struct. More... | |
| struct | cmsghdr |
| Control message ancillary data. More... | |
| struct | sockaddr |
| Generic sockaddr struct. More... | |
| struct | net_tuple |
| IPv6/IPv4 network connection tuple. More... | |
Macros | |
| #define | PF_UNSPEC 0 |
| Unspecified protocol family. | |
| #define | PF_INET 1 |
| IP protocol family version 4. | |
| #define | PF_INET6 2 |
| IP protocol family version 6. | |
| #define | PF_PACKET 3 |
| Packet family. | |
| #define | PF_CAN 4 |
| Controller Area Network. | |
| #define | PF_NET_MGMT 5 |
| Network management info. | |
| #define | PF_LOCAL 6 |
| Inter-process communication | |
| #define | PF_UNIX PF_LOCAL |
| Inter-process communication | |
| #define | AF_UNSPEC PF_UNSPEC |
| Unspecified address family. | |
| #define | AF_INET PF_INET |
| IP protocol family version 4. | |
| #define | AF_INET6 PF_INET6 |
| IP protocol family version 6. | |
| #define | AF_PACKET PF_PACKET |
| Packet family. | |
| #define | AF_CAN PF_CAN |
| Controller Area Network. | |
| #define | AF_NET_MGMT PF_NET_MGMT |
| Network management info. | |
| #define | AF_LOCAL PF_LOCAL |
| Inter-process communication | |
| #define | AF_UNIX PF_UNIX |
| Inter-process communication | |
| #define | ntohs(x) sys_be16_to_cpu(x) |
| Convert 16-bit value from network to host byte order. | |
| #define | ntohl(x) sys_be32_to_cpu(x) |
| Convert 32-bit value from network to host byte order. | |
| #define | ntohll(x) sys_be64_to_cpu(x) |
| Convert 64-bit value from network to host byte order. | |
| #define | htons(x) sys_cpu_to_be16(x) |
| Convert 16-bit value from host to network byte order. | |
| #define | htonl(x) sys_cpu_to_be32(x) |
| Convert 32-bit value from host to network byte order. | |
| #define | htonll(x) sys_cpu_to_be64(x) |
| Convert 64-bit value from host to network byte order. | |
| #define | NET_IPV6_ADDR_SIZE 16 |
| Binary size of the IPv6 address. | |
| #define | NET_IPV4_ADDR_SIZE 4 |
| Binary size of the IPv4 address. | |
| #define | CMSG_FIRSTHDR(msghdr) |
| Returns a pointer to the first cmsghdr in the ancillary data buffer associated with the passed msghdr. | |
| #define | CMSG_NXTHDR(msghdr, cmsg) |
| Returns the next valid cmsghdr after the passed cmsghdr. | |
| #define | CMSG_DATA(cmsg) ((uint8_t *)(cmsg) + ALIGN_D(sizeof(struct cmsghdr))) |
| Returns a pointer to the data portion of a cmsghdr. | |
| #define | CMSG_SPACE(length) (ALIGN_D(sizeof(struct cmsghdr)) + ALIGN_H(length)) |
| Returns the number of bytes an ancillary element with payload of the passed data length occupies. | |
| #define | CMSG_LEN(length) (ALIGN_D(sizeof(struct cmsghdr)) + length) |
| Returns the value to store in the cmsg_len member of the cmsghdr structure, taking into account any necessary alignment. | |
| #define | IN6ADDR_ANY_INIT |
| IPv6 address initializer. | |
| #define | IN6ADDR_LOOPBACK_INIT |
| IPv6 loopback address initializer. | |
| #define | INADDR_ANY 0 |
| IPv4 any address. | |
| #define | INADDR_ANY_INIT { { { INADDR_ANY } } } |
| IPv4 address initializer. | |
| #define | INADDR_LOOPBACK_INIT { { { 127, 0, 0, 1 } } } |
| IPv6 loopback address initializer. | |
| #define | INET_ADDRSTRLEN 16 |
| Max length of the IPv4 address as a string. | |
| #define | INET6_ADDRSTRLEN 46 |
| Max length of the IPv6 address as a string. | |
| #define | NET_MAX_PRIORITIES 8 |
| How many priority values there are. | |
| #define | net_ipaddr_copy(dest, src) UNALIGNED_PUT(UNALIGNED_GET(src), dest) |
| Copy an IPv4 or IPv6 address. | |
Typedefs | |
| typedef unsigned short int | sa_family_t |
| Socket address family type. | |
| typedef size_t | socklen_t |
| Length of a socket address. | |
Functions | |
| static bool | net_ipv6_is_addr_loopback (struct in6_addr *addr) |
| Check if the IPv6 address is a loopback address (::1). | |
| static bool | net_ipv6_is_addr_mcast (const struct in6_addr *addr) |
| Check if the IPv6 address is a multicast address. | |
| struct net_if_addr * | net_if_ipv6_addr_lookup (const struct in6_addr *addr, struct net_if **iface) |
| static bool | net_ipv6_is_my_addr (struct in6_addr *addr) |
| Check if IPv6 address is found in one of the network interfaces. | |
| struct net_if_mcast_addr * | net_if_ipv6_maddr_lookup (const struct in6_addr *addr, struct net_if **iface) |
| static bool | net_ipv6_is_my_maddr (struct in6_addr *maddr) |
| Check if IPv6 multicast address is found in one of the network interfaces. | |
| 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. | |
| static void | net_ipv6_addr_prefix_mask (const uint8_t *inaddr, uint8_t *outaddr, uint8_t prefix_len) |
| Get the IPv6 network address via the unicast address and the prefix mask. | |
| 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). | |
| static bool | net_ipv4_is_addr_unspecified (const struct in_addr *addr) |
| Check if the IPv4 address is unspecified (all bits zero) | |
| static bool | net_ipv4_is_addr_mcast (const struct in_addr *addr) |
| Check if the IPv4 address is a multicast address. | |
| static bool | net_ipv4_is_ll_addr (const struct in_addr *addr) |
| Check if the given IPv4 address is a link local address. | |
| static bool | net_ipv4_is_private_addr (const struct in_addr *addr) |
| Check if the given IPv4 address is from a private address range. | |
| static void | net_ipv4_addr_copy_raw (uint8_t *dest, const uint8_t *src) |
| Copy an IPv4 address raw buffer. | |
| static void | net_ipv6_addr_copy_raw (uint8_t *dest, const uint8_t *src) |
| Copy an IPv6 address raw buffer. | |
| static bool | net_ipv4_addr_cmp (const struct in_addr *addr1, const struct in_addr *addr2) |
| Compare two IPv4 addresses. | |
| static bool | net_ipv4_addr_cmp_raw (const uint8_t *addr1, const uint8_t *addr2) |
| Compare two raw IPv4 address buffers. | |
| static bool | net_ipv6_addr_cmp (const struct in6_addr *addr1, const struct in6_addr *addr2) |
| Compare two IPv6 addresses. | |
| static bool | net_ipv6_addr_cmp_raw (const uint8_t *addr1, const uint8_t *addr2) |
| Compare two raw IPv6 address buffers. | |
| static bool | net_ipv6_is_ll_addr (const struct in6_addr *addr) |
| Check if the given IPv6 address is a link local address. | |
| static bool | net_ipv6_is_sl_addr (const struct in6_addr *addr) |
| Check if the given IPv6 address is a site local address. | |
| static bool | net_ipv6_is_ula_addr (const struct in6_addr *addr) |
| Check if the given IPv6 address is a unique local address. | |
| static bool | net_ipv6_is_global_addr (const struct in6_addr *addr) |
| Check if the given IPv6 address is a global address. | |
| static bool | net_ipv6_is_private_addr (const struct in6_addr *addr) |
| Check if the given IPv6 address is from a private/local address range. | |
| const struct in6_addr * | net_ipv6_unspecified_address (void) |
| Return pointer to any (all bits zeros) IPv6 address. | |
| const struct in_addr * | net_ipv4_unspecified_address (void) |
| Return pointer to any (all bits zeros) IPv4 address. | |
| const struct in_addr * | net_ipv4_broadcast_address (void) |
| Return pointer to broadcast (all bits ones) IPv4 address. | |
| bool | net_if_ipv4_addr_mask_cmp (struct net_if *iface, const struct in_addr *addr) |
| 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. | |
| bool | net_if_ipv4_is_addr_bcast (struct net_if *iface, const struct in_addr *addr) |
| 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. | |
| struct net_if_addr * | net_if_ipv4_addr_lookup (const struct in_addr *addr, struct net_if **iface) |
| 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. | |
| static bool | net_ipv6_is_addr_unspecified (const struct in6_addr *addr) |
| Check if the IPv6 address is unspecified (all bits zero) | |
| 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 3513. | |
| 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::). | |
| 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::). | |
| 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). | |
| 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::). | |
| 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::). | |
| 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::). | |
| 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::). | |
| 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::). | |
| 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. | |
| 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. | |
| 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). | |
| 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). | |
| 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. | |
| 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. | |
| static void | net_ipv6_addr_create_ll_allnodes_mcast (struct in6_addr *addr) |
| Create link local allnodes multicast IPv6 address. | |
| static void | net_ipv6_addr_create_ll_allrouters_mcast (struct in6_addr *addr) |
| Create link local allrouters multicast IPv6 address. | |
| static void | net_ipv6_addr_create_v4_mapped (const struct in_addr *addr4, struct in6_addr *addr6) |
| Create IPv4 mapped IPv6 address. | |
| static bool | net_ipv6_addr_is_v4_mapped (const struct in6_addr *addr) |
| Is the IPv6 address an IPv4 mapped one. | |
| static void | net_ipv6_addr_create_iid (struct in6_addr *addr, struct net_linkaddr *lladdr) |
| Create IPv6 address interface identifier. | |
| 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. | |
| static struct sockaddr_in6 * | net_sin6 (const struct sockaddr *addr) |
| Get sockaddr_in6 from sockaddr. | |
| static struct sockaddr_in * | net_sin (const struct sockaddr *addr) |
| Get sockaddr_in from sockaddr. | |
| static struct sockaddr_in6_ptr * | net_sin6_ptr (const struct sockaddr_ptr *addr) |
| Get sockaddr_in6_ptr from sockaddr_ptr. | |
| static struct sockaddr_in_ptr * | net_sin_ptr (const struct sockaddr_ptr *addr) |
| Get sockaddr_in_ptr from sockaddr_ptr. | |
| static struct sockaddr_ll_ptr * | net_sll_ptr (const struct sockaddr_ptr *addr) |
| Get sockaddr_ll_ptr from sockaddr_ptr. | |
| static struct sockaddr_can_ptr * | net_can_ptr (const struct sockaddr_ptr *addr) |
| Get sockaddr_can_ptr from sockaddr_ptr. | |
| int | net_addr_pton (sa_family_t family, const char *src, void *dst) |
| Convert a string to IP address. | |
| char * | net_addr_ntop (sa_family_t family, const void *src, char *dst, size_t size) |
| Convert IP address to string form. | |
| 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 in user supplied sockaddr struct. | |
| int | net_port_set_default (struct sockaddr *addr, uint16_t default_port) |
| Set the default port in the sockaddr structure. | |
| static int32_t | net_tcp_seq_cmp (uint32_t seq1, uint32_t seq2) |
| Compare TCP sequence numbers. | |
| static bool | net_tcp_seq_greater (uint32_t seq1, uint32_t seq2) |
| Check that one TCP sequence number is greater. | |
| int | net_bytes_from_str (uint8_t *buf, int buf_len, const char *src) |
| Convert a string of hex values to array of bytes. | |
| 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. | |
| 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 enum net_priority | net_vlan2priority (uint8_t priority) |
| Convert network packet VLAN priority to network packet priority so we can place the packet into correct queue. | |
| static uint8_t | net_priority2vlan (enum net_priority priority) |
| Convert network packet priority to network packet VLAN priority. | |
| const char * | net_family2str (sa_family_t family) |
| Return network address family value as a string. | |
| static int | net_ipv6_pe_add_filter (struct in6_addr *addr, bool is_denylist) |
| Add IPv6 prefix as a privacy extension filter. | |
| static int | net_ipv6_pe_del_filter (struct in6_addr *addr) |
| Delete IPv6 prefix from privacy extension filter list. | |
IPv4/IPv6 primitives and helpers.
| #define AF_CAN PF_CAN |
| #define AF_INET PF_INET |
#include <include/zephyr/net/net_ip.h>
IP protocol family version 4.
| #define AF_INET6 PF_INET6 |
#include <include/zephyr/net/net_ip.h>
IP protocol family version 6.
| #define AF_LOCAL PF_LOCAL |
#include <include/zephyr/net/net_ip.h>
Inter-process communication
| #define AF_NET_MGMT PF_NET_MGMT |
| #define AF_PACKET PF_PACKET |
| #define AF_UNIX PF_UNIX |
#include <include/zephyr/net/net_ip.h>
Inter-process communication
| #define AF_UNSPEC PF_UNSPEC |
#include <include/zephyr/net/net_ip.h>
Returns a pointer to the data portion of a cmsghdr.
The pointer returned cannot be assumed to be suitably aligned for accessing arbitrary payload data types. Applications should not cast it to a pointer type matching the payload, but should instead use memcpy(3) to copy data to or from a suitably declared object.
| #define CMSG_FIRSTHDR | ( | msghdr | ) |
#include <include/zephyr/net/net_ip.h>
Returns a pointer to the first cmsghdr in the ancillary data buffer associated with the passed msghdr.
It returns NULL if there isn't enough space for a cmsghdr in the buffer.
#include <include/zephyr/net/net_ip.h>
Returns the value to store in the cmsg_len member of the cmsghdr structure, taking into account any necessary alignment.
It takes the data length as an argument.
| #define CMSG_NXTHDR | ( | msghdr, | |
| cmsg | |||
| ) |
#include <include/zephyr/net/net_ip.h>
Returns the next valid cmsghdr after the passed cmsghdr.
It returns NULL when there isn't enough space left in the buffer.
#include <include/zephyr/net/net_ip.h>
Returns the number of bytes an ancillary element with payload of the passed data length occupies.
| #define htonl | ( | x | ) | sys_cpu_to_be32(x) |
#include <include/zephyr/net/net_ip.h>
Convert 32-bit value from host to network byte order.
| x | The host byte order value to convert. |
| #define htonll | ( | x | ) | sys_cpu_to_be64(x) |
#include <include/zephyr/net/net_ip.h>
Convert 64-bit value from host to network byte order.
| x | The host byte order value to convert. |
| #define htons | ( | x | ) | sys_cpu_to_be16(x) |
#include <include/zephyr/net/net_ip.h>
Convert 16-bit value from host to network byte order.
| x | The host byte order value to convert. |
| #define IN6ADDR_ANY_INIT |
#include <include/zephyr/net/net_ip.h>
IPv6 address initializer.
| #define IN6ADDR_LOOPBACK_INIT |
#include <include/zephyr/net/net_ip.h>
IPv6 loopback address initializer.
| #define INADDR_ANY 0 |
#include <include/zephyr/net/net_ip.h>
IPv4 any address.
| #define INADDR_ANY_INIT { { { INADDR_ANY } } } |
#include <include/zephyr/net/net_ip.h>
IPv4 address initializer.
| #define INADDR_LOOPBACK_INIT { { { 127, 0, 0, 1 } } } |
#include <include/zephyr/net/net_ip.h>
IPv6 loopback address initializer.
| #define INET6_ADDRSTRLEN 46 |
#include <include/zephyr/net/net_ip.h>
Max length of the IPv6 address as a string.
Takes into account possible mapped IPv4 addresses.
| #define INET_ADDRSTRLEN 16 |
#include <include/zephyr/net/net_ip.h>
Max length of the IPv4 address as a string.
Defined by POSIX.
| #define net_ipaddr_copy | ( | dest, | |
| src | |||
| ) | UNALIGNED_PUT(UNALIGNED_GET(src), dest) |
#include <include/zephyr/net/net_ip.h>
Copy an IPv4 or IPv6 address.
| dest | Destination IP address. |
| src | Source IP address. |
| #define NET_IPV4_ADDR_SIZE 4 |
#include <include/zephyr/net/net_ip.h>
Binary size of the IPv4 address.
| #define NET_IPV6_ADDR_SIZE 16 |
#include <include/zephyr/net/net_ip.h>
Binary size of the IPv6 address.
| #define NET_MAX_PRIORITIES 8 |
#include <include/zephyr/net/net_ip.h>
How many priority values there are.
| #define ntohl | ( | x | ) | sys_be32_to_cpu(x) |
#include <include/zephyr/net/net_ip.h>
Convert 32-bit value from network to host byte order.
| x | The network byte order value to convert. |
| #define ntohll | ( | x | ) | sys_be64_to_cpu(x) |
#include <include/zephyr/net/net_ip.h>
Convert 64-bit value from network to host byte order.
| x | The network byte order value to convert. |
| #define ntohs | ( | x | ) | sys_be16_to_cpu(x) |
#include <include/zephyr/net/net_ip.h>
Convert 16-bit value from network to host byte order.
| x | The network byte order value to convert. |
| #define PF_CAN 4 |
| #define PF_INET 1 |
#include <include/zephyr/net/net_ip.h>
IP protocol family version 4.
| #define PF_INET6 2 |
#include <include/zephyr/net/net_ip.h>
IP protocol family version 6.
| #define PF_LOCAL 6 |
#include <include/zephyr/net/net_ip.h>
Inter-process communication
| #define PF_NET_MGMT 5 |
| #define PF_PACKET 3 |
| #define PF_UNIX PF_LOCAL |
#include <include/zephyr/net/net_ip.h>
Inter-process communication
| #define PF_UNSPEC 0 |
| typedef unsigned short int sa_family_t |
#include <include/zephyr/net/net_ip.h>
Socket address family type.
#include <include/zephyr/net/net_ip.h>
Length of a socket address.
| enum net_addr_state |
#include <include/zephyr/net/net_ip.h>
What is the current state of the network address.
| Enumerator | |
|---|---|
| NET_ADDR_ANY_STATE | Default (invalid) address type. |
| NET_ADDR_TENTATIVE | Tentative address |
| NET_ADDR_PREFERRED | Preferred address |
| NET_ADDR_DEPRECATED | Deprecated address |
| enum net_addr_type |
#include <include/zephyr/net/net_ip.h>
How the network address is assigned to network interface.
| enum net_ip_mtu |
#include <include/zephyr/net/net_ip.h>
IP Maximum Transfer Unit.
| enum net_ip_protocol |
#include <include/zephyr/net/net_ip.h>
Protocol numbers from IANA/BSD.
| Enumerator | |
|---|---|
| IPPROTO_IP | IP protocol (pseudo-val for setsockopt() |
| IPPROTO_ICMP | ICMP protocol |
| IPPROTO_IGMP | IGMP protocol |
| IPPROTO_IPIP | IPIP tunnels |
| IPPROTO_TCP | TCP protocol |
| IPPROTO_UDP | UDP protocol |
| IPPROTO_IPV6 | IPv6 protocol |
| IPPROTO_ICMPV6 | ICMPv6 protocol. |
| IPPROTO_RAW | RAW IP packets |
#include <include/zephyr/net/net_ip.h>
Protocol numbers for TLS protocols.
| enum net_priority |
#include <include/zephyr/net/net_ip.h>
Network packet priority settings described in IEEE 802.1Q Annex I.1.
| enum net_sock_type |
#include <include/zephyr/net/net_ip.h>
Socket type.
| Enumerator | |
|---|---|
| SOCK_STREAM | Stream socket type |
| SOCK_DGRAM | Datagram socket type. |
| SOCK_RAW | RAW socket type |
| char * net_addr_ntop | ( | sa_family_t | family, |
| const void * | src, | ||
| char * | dst, | ||
| size_t | size | ||
| ) |
#include <include/zephyr/net/net_ip.h>
Convert IP address to string form.
| family | IP address family (AF_INET or AF_INET6) |
| src | Pointer to struct in_addr if family is AF_INET or pointer to struct in6_addr if family is AF_INET6 |
| dst | Buffer for IP address as a null terminated string |
| size | Number of bytes available in the buffer |
| int net_addr_pton | ( | sa_family_t | family, |
| const char * | src, | ||
| void * | dst | ||
| ) |
#include <include/zephyr/net/net_ip.h>
Convert a string to IP address.
| family | IP address family (AF_INET or AF_INET6) |
| src | IP address in a null terminated string |
| dst | Pointer to struct in_addr if family is AF_INET or pointer to struct in6_addr if family is AF_INET6 |
| int net_bytes_from_str | ( | uint8_t * | buf, |
| int | buf_len, | ||
| const char * | src | ||
| ) |
#include <include/zephyr/net/net_ip.h>
Convert a string of hex values to array of bytes.
The syntax of the string is "ab:02:98:fa:42:01"
| buf | Pointer to memory where the bytes are written. |
| buf_len | Length of the memory area. |
| src | String of bytes. |
|
inlinestatic |
#include <include/zephyr/net/net_ip.h>
Get sockaddr_can_ptr from sockaddr_ptr.
This is a helper so that the code needing this functionality can be made shorter.
| addr | Socket address |
| const char * net_family2str | ( | sa_family_t | family | ) |
#include <include/zephyr/net/net_ip.h>
Return network address family value as a string.
This is only usable for debugging.
| family | Network address family code |
|
extern |
#include <include/zephyr/net/net_ip.h>
#include <include/zephyr/net/net_ip.h>
#include <include/zephyr/net/net_ip.h>
|
extern |
#include <include/zephyr/net/net_ip.h>
|
extern |
#include <include/zephyr/net/net_ip.h>
#include <include/zephyr/net/net_ip.h>
Parse a string that contains either IPv4 or IPv6 address and optional port, and store the information in user supplied sockaddr struct.
Syntax of the IP address string: 192.0.2.1:80 192.0.2.42
[2001:db8::2] 2001:db::42 Note that the str_len parameter is used to restrict the amount of characters that are checked. If the string does not contain port number, then the port number in sockaddr is not modified.
| str | String that contains the IP address. |
| str_len | Length of the string to be parsed. |
| addr | Pointer to user supplied struct sockaddr. |
|
inlinestatic |
#include <include/zephyr/net/net_ip.h>
Compare two IPv4 addresses.
| addr1 | Pointer to IPv4 address. |
| addr2 | Pointer to IPv4 address. |
#include <include/zephyr/net/net_ip.h>
Compare two raw IPv4 address buffers.
| addr1 | Pointer to IPv4 address buffer. |
| addr2 | Pointer to IPv4 address buffer. |
#include <include/zephyr/net/net_ip.h>
Copy an IPv4 address raw buffer.
| dest | Destination IP address. |
| src | Source IP address. |
|
inlinestatic |
#include <include/zephyr/net/net_ip.h>
Check if the given address belongs to same subnet that has been configured for the interface.
| iface | A valid pointer on an interface |
| addr | IPv4 address |
| const struct in_addr * net_ipv4_broadcast_address | ( | void | ) |
#include <include/zephyr/net/net_ip.h>
Return pointer to broadcast (all bits ones) IPv4 address.
|
inlinestatic |
#include <include/zephyr/net/net_ip.h>
Check if the given IPv4 address is a broadcast address.
| iface | Interface to use. Must be a valid pointer to an interface. |
| addr | IPv4 address |
#include <include/zephyr/net/net_ip.h>
Check if the IPv4 address is a loopback address (127.0.0.0/8).
| addr | IPv4 address |
#include <include/zephyr/net/net_ip.h>
Check if the IPv4 address is a multicast address.
| addr | IPv4 address |
#include <include/zephyr/net/net_ip.h>
Check if the IPv4 address is unspecified (all bits zero)
| addr | IPv4 address. |
#include <include/zephyr/net/net_ip.h>
Check if the given IPv4 address is a link local address.
| addr | A valid pointer on an IPv4 address |
#include <include/zephyr/net/net_ip.h>
Check if the IPv4 address is assigned to any network interface in the system.
| addr | A valid pointer on an IPv4 address |
#include <include/zephyr/net/net_ip.h>
Check if the given IPv4 address is from a private address range.
See https://en.wikipedia.org/wiki/Reserved_IP_addresses for details.
| addr | A valid pointer on an IPv4 address |
| const struct in_addr * net_ipv4_unspecified_address | ( | void | ) |
#include <include/zephyr/net/net_ip.h>
Return pointer to any (all bits zeros) IPv4 address.
|
inlinestatic |
#include <include/zephyr/net/net_ip.h>
Check if given address is based on link layer address.
|
inlinestatic |
#include <include/zephyr/net/net_ip.h>
Compare two IPv6 addresses.
| addr1 | Pointer to IPv6 address. |
| addr2 | Pointer to IPv6 address. |
#include <include/zephyr/net/net_ip.h>
Compare two raw IPv6 address buffers.
| addr1 | Pointer to IPv6 address buffer. |
| addr2 | Pointer to IPv6 address buffer. |
#include <include/zephyr/net/net_ip.h>
Copy an IPv6 address raw buffer.
| dest | Destination IP address. |
| src | Source IP address. |
|
inlinestatic |
#include <include/zephyr/net/net_ip.h>
Construct an IPv6 address from eight 16-bit words.
| addr | IPv6 address |
| addr0 | 16-bit word which is part of the address |
| addr1 | 16-bit word which is part of the address |
| addr2 | 16-bit word which is part of the address |
| addr3 | 16-bit word which is part of the address |
| addr4 | 16-bit word which is part of the address |
| addr5 | 16-bit word which is part of the address |
| addr6 | 16-bit word which is part of the address |
| addr7 | 16-bit word which is part of the address |
|
inlinestatic |
#include <include/zephyr/net/net_ip.h>
Create IPv6 address interface identifier.
| addr | IPv6 address |
| lladdr | Link local address |
|
inlinestatic |
#include <include/zephyr/net/net_ip.h>
Create link local allnodes multicast IPv6 address.
| addr | IPv6 address |
|
inlinestatic |
#include <include/zephyr/net/net_ip.h>
Create link local allrouters multicast IPv6 address.
| addr | IPv6 address |
|
inlinestatic |
#include <include/zephyr/net/net_ip.h>
Create solicited node IPv6 multicast address FF02:0:0:0:0:1:FFXX:XXXX defined in RFC 3513.
| src | IPv6 address. |
| dst | IPv6 address. |
|
inlinestatic |
#include <include/zephyr/net/net_ip.h>
Create IPv4 mapped IPv6 address.
| addr4 | IPv4 address |
| addr6 | IPv6 address to be created |
#include <include/zephyr/net/net_ip.h>
Is the IPv6 address an IPv4 mapped one.
The v4 mapped addresses look like ::ffff:a.b.c.d
| addr | IPv6 address |
|
inlinestatic |
#include <include/zephyr/net/net_ip.h>
Get the IPv6 network address via the unicast address and the prefix mask.
| inaddr | Unicast IPv6 address. |
| outaddr | Prefix masked IPv6 address (network address). |
| prefix_len | Prefix length (max length is 128). |
#include <include/zephyr/net/net_ip.h>
Check if the IPv6 address is a loopback address (::1).
| addr | IPv6 address |
#include <include/zephyr/net/net_ip.h>
Check if the IPv6 address is a multicast address.
| addr | IPv6 address |
#include <include/zephyr/net/net_ip.h>
Check if the IPv6 address belongs to the all nodes multicast group.
| addr | IPv6 address |
#include <include/zephyr/net/net_ip.h>
Check if the IPv6 address is a global multicast address (FFxE::/16).
| addr | IPv6 address. |
|
inlinestatic |
#include <include/zephyr/net/net_ip.h>
Check if the IPv6 address belongs to certain multicast group.
| addr | IPv6 address. |
| group | Group id IPv6 address, the values must be in network byte order |
#include <include/zephyr/net/net_ip.h>
Check if the IPv6 address is a interface scope multicast address (FFx1::).
| addr | IPv6 address. |
#include <include/zephyr/net/net_ip.h>
Check if the IPv6 address is a interface scope all nodes multicast address (FF01::1).
| addr | IPv6 address. |
#include <include/zephyr/net/net_ip.h>
Check if the IPv6 address is a link local scope multicast address (FFx2::).
| addr | IPv6 address. |
#include <include/zephyr/net/net_ip.h>
Check if the IPv6 address is a link local scope all nodes multicast address (FF02::1).
| addr | IPv6 address. |
#include <include/zephyr/net/net_ip.h>
Check if the IPv6 address is a mesh-local scope multicast address (FFx3::).
| addr | IPv6 address. |
#include <include/zephyr/net/net_ip.h>
Check if the IPv6 address is an organization scope multicast address (FFx8::).
| addr | IPv6 address. |
#include <include/zephyr/net/net_ip.h>
Check if the IPv6 address is a given scope multicast address (FFyx::).
| addr | IPv6 address |
| scope | Scope to check |
#include <include/zephyr/net/net_ip.h>
Check if the IPv6 address is a site scope multicast address (FFx5::).
| addr | IPv6 address. |
#include <include/zephyr/net/net_ip.h>
Check if the IPv6 address is solicited node multicast address FF02:0:0:0:0:1:FFXX:XXXX defined in RFC 3513.
| addr | IPv6 address. |
#include <include/zephyr/net/net_ip.h>
Check if the IPv6 address is unspecified (all bits zero)
| addr | IPv6 address. |
#include <include/zephyr/net/net_ip.h>
Check if the given IPv6 address is a global address.
| addr | A valid pointer on an IPv6 address |
#include <include/zephyr/net/net_ip.h>
Check if the given IPv6 address is a link local address.
| addr | A valid pointer on an IPv6 address |
#include <include/zephyr/net/net_ip.h>
Check if IPv6 address is found in one of the network interfaces.
| addr | IPv6 address |
#include <include/zephyr/net/net_ip.h>
Check if IPv6 multicast address is found in one of the network interfaces.
| maddr | Multicast IPv6 address |
|
inlinestatic |
#include <include/zephyr/net/net_ip.h>
Check if two IPv6 addresses are same when compared after prefix mask.
| addr1 | First IPv6 address. |
| addr2 | Second IPv6 address. |
| length | Prefix length (max length is 128). |
#include <include/zephyr/net/net_ip.h>
Check if the given IPv6 address is from a private/local address range.
See https://en.wikipedia.org/wiki/Reserved_IP_addresses for details.
| addr | A valid pointer on an IPv6 address |
|
inlinestatic |
#include <include/zephyr/net/net_ip.h>
Check if the IPv6 addresses have the same multicast scope (FFyx::).
| addr_1 | IPv6 address 1 |
| addr_2 | IPv6 address 2 |
#include <include/zephyr/net/net_ip.h>
Check if the given IPv6 address is a site local address.
| addr | A valid pointer on an IPv6 address |
#include <include/zephyr/net/net_ip.h>
Check if the given IPv6 address is a unique local address.
| addr | A valid pointer on an IPv6 address |
#include <include/zephyr/net/net_ip.h>
Add IPv6 prefix as a privacy extension filter.
Note that the filters can either allow or deny listing.
| addr | IPv6 prefix |
| is_denylist | Tells if this filter is for allowing or denying listing. |
|
inlinestatic |
#include <include/zephyr/net/net_ip.h>
Delete IPv6 prefix from privacy extension filter list.
| addr | IPv6 prefix |
| const struct in6_addr * net_ipv6_unspecified_address | ( | void | ) |
#include <include/zephyr/net/net_ip.h>
Return pointer to any (all bits zeros) IPv6 address.
#include <include/zephyr/net/net_ip.h>
Set the default port in the sockaddr structure.
If the port is already set, then do nothing.
| addr | Pointer to user supplied struct sockaddr. |
| default_port | Default port number to set. |
|
inlinestatic |
#include <include/zephyr/net/net_ip.h>
Convert network packet priority to network packet VLAN priority.
| priority | Packet priority |
| int net_rx_priority2tc | ( | enum net_priority | prio | ) |
#include <include/zephyr/net/net_ip.h>
Convert Rx network packet priority to traffic class so we can place the packet into correct Rx queue.
| prio | Network priority |
|
inlinestatic |
#include <include/zephyr/net/net_ip.h>
Get sockaddr_in from sockaddr.
This is a helper so that the code calling this function can be made shorter.
| addr | Socket address |
|
inlinestatic |
#include <include/zephyr/net/net_ip.h>
Get sockaddr_in6 from sockaddr.
This is a helper so that the code calling this function can be made shorter.
| addr | Socket address |
|
inlinestatic |
#include <include/zephyr/net/net_ip.h>
Get sockaddr_in6_ptr from sockaddr_ptr.
This is a helper so that the code calling this function can be made shorter.
| addr | Socket address |
|
inlinestatic |
#include <include/zephyr/net/net_ip.h>
Get sockaddr_in_ptr from sockaddr_ptr.
This is a helper so that the code calling this function can be made shorter.
| addr | Socket address |
|
inlinestatic |
#include <include/zephyr/net/net_ip.h>
Get sockaddr_ll_ptr from sockaddr_ptr.
This is a helper so that the code calling this function can be made shorter.
| addr | Socket address |
#include <include/zephyr/net/net_ip.h>
Compare TCP sequence numbers.
This function compares TCP sequence numbers, accounting for wraparound effects.
| seq1 | First sequence number |
| seq2 | Seconds sequence number |
#include <include/zephyr/net/net_ip.h>
Check that one TCP sequence number is greater.
This is convenience function on top of net_tcp_seq_cmp().
| seq1 | First sequence number |
| seq2 | Seconds sequence number |
| int net_tx_priority2tc | ( | enum net_priority | prio | ) |
#include <include/zephyr/net/net_ip.h>
Convert Tx network packet priority to traffic class so we can place the packet into correct Tx queue.
| prio | Network priority |
|
inlinestatic |
#include <include/zephyr/net/net_ip.h>
Convert network packet VLAN priority to network packet priority so we can place the packet into correct queue.
| priority | VLAN priority |