|
Zephyr API Documentation 4.3.99
A Scalable Open Source RTOS
|
BSD Sockets compatible API. More...
Topics | |
| Socket options for TLS | |
Data Structures | |
| struct | zsock_addrinfo |
| Definition used when querying address information. More... | |
| struct | zsock_pollfd |
| Definition of the monitored socket/file descriptor. More... | |
Macros | |
| #define | ZSOCK_FD_SETSIZE ZVFS_FD_SETSIZE |
| Number of file descriptors which can be added to zsock_fd_set. | |
Typedefs | |
| typedef struct zvfs_fd_set | zsock_fd_set |
| Socket file descriptor set. | |
Functions | |
| void * | zsock_get_context_object (int sock) |
| Obtain a file descriptor's associated net context. | |
| int | zsock_socket (int family, int type, int proto) |
| Create a network socket. | |
| int | zsock_socketpair (int family, int type, int proto, int *sv) |
| Create an unnamed pair of connected sockets. | |
| int | zsock_close (int sock) |
| Close a network socket. | |
| int | zsock_shutdown (int sock, int how) |
| Shutdown socket send/receive operations. | |
| int | zsock_bind (int sock, const struct net_sockaddr *addr, net_socklen_t addrlen) |
| Bind a socket to a local network address. | |
| int | zsock_connect (int sock, const struct net_sockaddr *addr, net_socklen_t addrlen) |
| Connect a socket to a peer network address. | |
| int | zsock_listen (int sock, int backlog) |
| Set up a STREAM socket to accept peer connections. | |
| int | zsock_accept (int sock, struct net_sockaddr *addr, net_socklen_t *addrlen) |
| Accept a connection on listening socket. | |
| ssize_t | zsock_sendto (int sock, const void *buf, size_t len, int flags, const struct net_sockaddr *dest_addr, net_socklen_t addrlen) |
| Send data to an arbitrary network address. | |
| static ssize_t | zsock_send (int sock, const void *buf, size_t len, int flags) |
| Send data to a connected peer. | |
| ssize_t | zsock_sendmsg (int sock, const struct net_msghdr *msg, int flags) |
| Send data to an arbitrary network address. | |
| ssize_t | zsock_recvfrom (int sock, void *buf, size_t max_len, int flags, struct net_sockaddr *src_addr, net_socklen_t *addrlen) |
| Receive data from an arbitrary network address. | |
| ssize_t | zsock_recvmsg (int sock, struct net_msghdr *msg, int flags) |
| Receive a message from an arbitrary network address. | |
| static ssize_t | zsock_recv (int sock, void *buf, size_t max_len, int flags) |
| Receive data from a connected peer. | |
| int | zsock_fcntl_impl (int sock, int cmd, int flags) |
| Control blocking/non-blocking mode of a socket. | |
| int | zsock_ioctl_impl (int sock, unsigned long request, va_list ap) |
| Control underlying socket parameters. | |
| static int | zsock_poll (struct zsock_pollfd *fds, int nfds, int timeout) |
| Efficiently poll multiple sockets for events. | |
| int | zsock_getsockopt (int sock, int level, int optname, void *optval, net_socklen_t *optlen) |
| Get various socket options. | |
| int | zsock_setsockopt (int sock, int level, int optname, const void *optval, net_socklen_t optlen) |
| Set various socket options. | |
| int | zsock_getpeername (int sock, struct net_sockaddr *addr, net_socklen_t *addrlen) |
| Get peer name. | |
| int | zsock_getsockname (int sock, struct net_sockaddr *addr, net_socklen_t *addrlen) |
| Get socket name. | |
| int | zsock_gethostname (char *buf, size_t len) |
| Get local host name. | |
| static char * | zsock_inet_ntop (net_sa_family_t family, const void *src, char *dst, size_t size) |
| Convert network address from internal to numeric ASCII form. | |
| int | zsock_inet_pton (net_sa_family_t family, const char *src, void *dst) |
| Convert network address from numeric ASCII form to internal representation. | |
| int | zsock_getaddrinfo (const char *host, const char *service, const struct zsock_addrinfo *hints, struct zsock_addrinfo **res) |
| Resolve a domain name to one or more network addresses. | |
| void | zsock_freeaddrinfo (struct zsock_addrinfo *ai) |
| Free results returned by zsock_getaddrinfo() | |
| const char * | zsock_gai_strerror (int errcode) |
| Convert zsock_getaddrinfo() error code to textual message. | |
| int | zsock_getnameinfo (const struct net_sockaddr *addr, net_socklen_t addrlen, char *host, net_socklen_t hostlen, char *serv, net_socklen_t servlen, int flags) |
| Resolve a network address to a domain name or ASCII address. | |
| static int | zsock_select (int nfds, zsock_fd_set *readfds, zsock_fd_set *writefds, zsock_fd_set *exceptfds, struct zsock_timeval *timeout) |
| Legacy function to poll multiple sockets for events. | |
| static void | ZSOCK_FD_ZERO (zsock_fd_set *set) |
| Initialize (clear) fd_set. | |
| static int | ZSOCK_FD_ISSET (int fd, zsock_fd_set *set) |
| Check whether socket is a member of fd_set. | |
| static void | ZSOCK_FD_CLR (int fd, zsock_fd_set *set) |
| Remove socket from fd_set. | |
| static void | ZSOCK_FD_SET (int fd, zsock_fd_set *set) |
| Add socket to fd_set. | |
Options for poll() | |
| #define | ZSOCK_POLLIN 1 |
| zsock_poll: Poll for readability | |
| #define | ZSOCK_POLLPRI 2 |
| zsock_poll: Poll for exceptional condition | |
| #define | ZSOCK_POLLOUT 4 |
| zsock_poll: Poll for writability | |
| #define | ZSOCK_POLLERR 8 |
| zsock_poll: Poll results in error condition (output value only) | |
| #define | ZSOCK_POLLHUP 0x10 |
| zsock_poll: Poll detected closed connection (output value only) | |
| #define | ZSOCK_POLLNVAL 0x20 |
| zsock_poll: Invalid socket (output value only) | |
Options for sending and receiving data | |
| #define | ZSOCK_MSG_PEEK 0x02 |
| zsock_recv: Read data without removing it from socket input queue | |
| #define | ZSOCK_MSG_CTRUNC 0x08 |
| zsock_recvmsg: Control data buffer too small. | |
| #define | ZSOCK_MSG_TRUNC 0x20 |
| zsock_recv: return the real length of the datagram, even when it was longer than the passed buffer | |
| #define | ZSOCK_MSG_DONTWAIT 0x40 |
| zsock_recv/zsock_send: Override operation to non-blocking | |
| #define | ZSOCK_MSG_WAITALL 0x100 |
| zsock_recv: block until the full amount of data can be returned | |
Options for shutdown() function | |
| #define | ZSOCK_SHUT_RD 0 |
| zsock_shutdown: Shut down for reading | |
| #define | ZSOCK_SHUT_WR 1 |
| zsock_shutdown: Shut down for writing | |
| #define | ZSOCK_SHUT_RDWR 2 |
| zsock_shutdown: Shut down for both reading and writing | |
Flags for getaddrinfo() hints | |
| #define | ZSOCK_AI_PASSIVE 0x1 |
| Address for bind() (vs for connect()) | |
| #define | ZSOCK_AI_CANONNAME 0x2 |
| Fill in ai_canonname. | |
| #define | ZSOCK_AI_NUMERICHOST 0x4 |
| Assume host address is in numeric notation, don't DNS lookup. | |
| #define | ZSOCK_AI_V4MAPPED 0x8 |
| May return IPv4 mapped address for IPv6. | |
| #define | ZSOCK_AI_ALL 0x10 |
| May return both native IPv6 and mapped IPv4 address for IPv6. | |
| #define | ZSOCK_AI_ADDRCONFIG 0x20 |
| IPv4/IPv6 support depends on local system config. | |
| #define | ZSOCK_AI_NUMERICSERV 0x400 |
| Assume service (port) is numeric. | |
| #define | ZSOCK_AI_EXTFLAGS 0x800 |
| Extra flags present (see RFC 5014) | |
Flags for getnameinfo() | |
| #define | ZSOCK_NI_NUMERICHOST 1 |
| zsock_getnameinfo(): Resolve to numeric address. | |
| #define | ZSOCK_NI_NUMERICSERV 2 |
| zsock_getnameinfo(): Resolve to numeric port number. | |
| #define | ZSOCK_NI_NOFQDN 4 |
| zsock_getnameinfo(): Return only hostname instead of FQDN | |
| #define | ZSOCK_NI_NAMEREQD 8 |
| zsock_getnameinfo(): Dummy option for compatibility | |
| #define | ZSOCK_NI_DGRAM 16 |
| zsock_getnameinfo(): Dummy option for compatibility | |
| #define | ZSOCK_NI_MAXHOST 64 |
| zsock_getnameinfo(): Max supported hostname length | |
Socket level options (ZSOCK_SOL_SOCKET) | |
| #define | ZSOCK_SOL_SOCKET 1 |
| Socket-level option. | |
| #define | ZSOCK_SO_DEBUG 1 |
| Recording debugging information (ignored, for compatibility) | |
| #define | ZSOCK_SO_REUSEADDR 2 |
| address reuse | |
| #define | ZSOCK_SO_TYPE 3 |
| Type of the socket. | |
| #define | ZSOCK_SO_ERROR 4 |
| Async error. | |
| #define | ZSOCK_SO_DONTROUTE 5 |
| Bypass normal routing and send directly to host (ignored, for compatibility) | |
| #define | ZSOCK_SO_BROADCAST 6 |
| Transmission of broadcast messages is supported (ignored, for compatibility) | |
| #define | ZSOCK_SO_SNDBUF 7 |
| Size of socket send buffer. | |
| #define | ZSOCK_SO_RCVBUF 8 |
| Size of socket recv buffer. | |
| #define | ZSOCK_SO_KEEPALIVE 9 |
| Enable sending keep-alive messages on connections. | |
| #define | ZSOCK_SO_OOBINLINE 10 |
| Place out-of-band data into receive stream (ignored, for compatibility) | |
| #define | ZSOCK_SO_PRIORITY 12 |
| Socket priority. | |
| #define | ZSOCK_SO_LINGER 13 |
| Socket lingers on close (ignored, for compatibility) | |
| #define | ZSOCK_SO_REUSEPORT 15 |
| Allow multiple sockets to reuse a single port. | |
| #define | ZSOCK_SO_RCVLOWAT 18 |
| Receive low watermark (ignored, for compatibility) | |
| #define | ZSOCK_SO_SNDLOWAT 19 |
| Send low watermark (ignored, for compatibility) | |
| #define | ZSOCK_SO_RCVTIMEO 20 |
| Receive timeout Applies to receive functions like recv(), but not to connect() | |
| #define | ZSOCK_SO_SNDTIMEO 21 |
| Send timeout. | |
| #define | ZSOCK_SO_BINDTODEVICE 25 |
| Bind a socket to an interface. | |
| #define | ZSOCK_SO_ACCEPTCONN 30 |
| Socket accepts incoming connections (ignored, for compatibility) | |
| #define | ZSOCK_SO_TIMESTAMPING 37 |
| Timestamp TX RX or both packets. | |
| #define | ZSOCK_SO_PROTOCOL 38 |
| Protocol used with the socket. | |
| #define | ZSOCK_SO_DOMAIN 39 |
| Domain used with SOCKET. | |
| #define | ZSOCK_SO_SOCKS5 60 |
| Enable SOCKS5 for Socket. | |
| #define | ZSOCK_SO_TXTIME 61 |
| Socket TX time (when the data should be sent) | |
| #define | ZSOCK_SCM_TXTIME ZSOCK_SO_TXTIME |
| Socket TX time (same as SO_TXTIME) | |
| #define | ZSOCK_SOF_TIMESTAMPING_RX_HARDWARE BIT(0) |
| Timestamp generation flags. | |
| #define | ZSOCK_SOF_TIMESTAMPING_TX_HARDWARE BIT(1) |
| Request TX timestamps generated by network adapter. | |
TCP level options (NET_IPPROTO_TCP) | |
| #define | ZSOCK_TCP_NODELAY 1 |
| Disable TCP buffering (ignored, for compatibility) | |
| #define | ZSOCK_TCP_KEEPIDLE 2 |
| Start keepalives after this period (seconds) | |
| #define | ZSOCK_TCP_KEEPINTVL 3 |
| Interval between keepalives (seconds) | |
| #define | ZSOCK_TCP_KEEPCNT 4 |
| Number of keepalives before dropping connection. | |
IPv4 level options (NET_IPPROTO_IP) | |
| #define | ZSOCK_IP_TOS 1 |
| Set or receive the Type-Of-Service value for an outgoing packet. | |
| #define | ZSOCK_IP_TTL 2 |
| Set or receive the Time-To-Live value for an outgoing packet. | |
| #define | ZSOCK_IP_PKTINFO 8 |
| Pass an IP_PKTINFO ancillary message that contains a pktinfo structure that supplies some information about the incoming packet. | |
| #define | ZSOCK_IP_RECVTTL 12 |
| Pass an IP_RECVTTL ancillary message that contains information about the time to live of the incoming packet. | |
| #define | ZSOCK_IP_MTU 14 |
| Retrieve the current known path MTU of the current socket. | |
| #define | ZSOCK_IP_MULTICAST_IF 32 |
| Set IPv4 multicast datagram network interface. | |
| #define | ZSOCK_IP_MULTICAST_TTL 33 |
| Set IPv4 multicast TTL value. | |
| #define | ZSOCK_IP_MULTICAST_LOOP 34 |
| Set IPv4 multicast loop value. | |
| #define | ZSOCK_IP_ADD_MEMBERSHIP 35 |
| Join IPv4 multicast group. | |
| #define | ZSOCK_IP_DROP_MEMBERSHIP 36 |
| Leave IPv4 multicast group. | |
| #define | ZSOCK_IP_LOCAL_PORT_RANGE 51 |
| Clamp down the global port range for a given socket. | |
IPv6 level options (NET_IPPROTO_IPV6) | |
| #define | ZSOCK_IPV6_UNICAST_HOPS 16 |
| Set the unicast hop limit for the socket. | |
| #define | ZSOCK_IPV6_MULTICAST_IF 17 |
| Set multicast output network interface index for the socket. | |
| #define | ZSOCK_IPV6_MULTICAST_HOPS 18 |
| Set the multicast hop limit for the socket. | |
| #define | ZSOCK_IPV6_MULTICAST_LOOP 19 |
| Set the multicast loop bit for the socket. | |
| #define | ZSOCK_IPV6_ADD_MEMBERSHIP 20 |
| Join IPv6 multicast group. | |
| #define | ZSOCK_IPV6_DROP_MEMBERSHIP 21 |
| Leave IPv6 multicast group. | |
| #define | ZSOCK_IPV6_JOIN_GROUP ZSOCK_IPV6_ADD_MEMBERSHIP |
| Join IPv6 multicast group. | |
| #define | ZSOCK_IPV6_LEAVE_GROUP ZSOCK_IPV6_DROP_MEMBERSHIP |
| Leave IPv6 multicast group. | |
| #define | ZSOCK_IPV6_MTU 24 |
| For getsockopt(), retrieve the current known IPv6 path MTU of the given socket. | |
| #define | ZSOCK_IPV6_V6ONLY 26 |
| Don't support IPv4 access. | |
| #define | ZSOCK_IPV6_RECVPKTINFO 49 |
| Pass an IPV6_RECVPKTINFO ancillary message that contains a in6_pktinfo structure that supplies some information about the incoming packet. | |
| #define | ZSOCK_IPV6_PKTINFO 50 |
| Option which returns an in6_pktinfo structure in ancillary data. | |
| #define | ZSOCK_IPV6_RECVHOPLIMIT 51 |
| Pass an IPV6_RECVHOPLIMIT ancillary message that contains information about the hop limit of the incoming packet. | |
| #define | ZSOCK_IPV6_HOPLIMIT 52 |
| Set or receive the hoplimit value for an outgoing packet. | |
| #define | ZSOCK_IPV6_ADDR_PREFERENCES 72 |
| RFC5014: Source address selection. | |
| #define | ZSOCK_IPV6_PREFER_SRC_TMP 0x0001 |
| Prefer temporary address as source. | |
| #define | ZSOCK_IPV6_PREFER_SRC_PUBLIC 0x0002 |
| Prefer public address as source. | |
| #define | ZSOCK_IPV6_PREFER_SRC_PUBTMP_DEFAULT 0x0100 |
| Either public or temporary address is selected as a default source depending on the output interface configuration (this is the default value). | |
| #define | ZSOCK_IPV6_PREFER_SRC_COA 0x0004 |
| Prefer Care-of address as source. | |
| #define | ZSOCK_IPV6_PREFER_SRC_HOME 0x0400 |
| Prefer Home address as source. | |
| #define | ZSOCK_IPV6_PREFER_SRC_CGA 0x0008 |
| Prefer CGA (Cryptographically Generated Address) address as source. | |
| #define | ZSOCK_IPV6_PREFER_SRC_NONCGA 0x0800 |
| Prefer non-CGA address as source. | |
| #define | ZSOCK_IPV6_TCLASS 67 |
| Set or receive the traffic class value for an outgoing packet. | |
Backlog size for listen() | |
| #define | ZSOCK_SOMAXCONN 128 |
| listen: The maximum backlog queue length | |
Macros for checking special IPv6 addresses. | |
| #define | ZSOCK_IN6_IS_ADDR_UNSPECIFIED(addr) |
| Check unspecified IPv6 address. | |
| #define | ZSOCK_IN6_IS_ADDR_LOOPBACK(addr) |
| Check loopback IPv6 address. | |
| #define | ZSOCK_IN6_IS_ADDR_MULTICAST(addr) |
| Check IPv6 multicast address. | |
| #define | ZSOCK_IN6_IS_ADDR_LINKLOCAL(addr) |
| Check IPv6 link local address. | |
| #define | ZSOCK_IN6_IS_ADDR_SITELOCAL(addr) |
| Check IPv6 site local address. | |
| #define | ZSOCK_IN6_IS_ADDR_V4MAPPED(addr) |
| Check IPv6 v4 mapped address. | |
| #define | ZSOCK_IN6_IS_ADDR_MC_GLOBAL(addr) |
| Check IPv6 multicast global address. | |
| #define | ZSOCK_IN6_IS_ADDR_MC_NODELOCAL(addr) |
| Check IPv6 multicast node local address. | |
| #define | ZSOCK_IN6_IS_ADDR_MC_LINKLOCAL(addr) |
| Check IPv6 multicast link local address. | |
| #define | ZSOCK_IN6_IS_ADDR_MC_SITELOCAL(addr) |
| Check IPv6 multicast site local address. | |
| #define | ZSOCK_IN6_IS_ADDR_MC_ORGLOCAL(addr) |
| Check IPv6 multicast organization local address. | |
BSD Sockets compatible API.
| #define ZSOCK_AI_ADDRCONFIG 0x20 |
#include <zephyr/net/socket.h>
IPv4/IPv6 support depends on local system config.
| #define ZSOCK_AI_ALL 0x10 |
#include <zephyr/net/socket.h>
May return both native IPv6 and mapped IPv4 address for IPv6.
| #define ZSOCK_AI_CANONNAME 0x2 |
#include <zephyr/net/socket.h>
Fill in ai_canonname.
| #define ZSOCK_AI_EXTFLAGS 0x800 |
#include <zephyr/net/socket.h>
Extra flags present (see RFC 5014)
| #define ZSOCK_AI_NUMERICHOST 0x4 |
#include <zephyr/net/socket.h>
Assume host address is in numeric notation, don't DNS lookup.
| #define ZSOCK_AI_NUMERICSERV 0x400 |
#include <zephyr/net/socket.h>
Assume service (port) is numeric.
| #define ZSOCK_AI_PASSIVE 0x1 |
#include <zephyr/net/socket.h>
| #define ZSOCK_AI_V4MAPPED 0x8 |
#include <zephyr/net/socket.h>
May return IPv4 mapped address for IPv6.
| #define ZSOCK_FD_SETSIZE ZVFS_FD_SETSIZE |
#include <zephyr/net/socket_select.h>
Number of file descriptors which can be added to zsock_fd_set.
| #define ZSOCK_IN6_IS_ADDR_LINKLOCAL | ( | addr | ) |
#include <zephyr/net/socket.h>
Check IPv6 link local address.
| #define ZSOCK_IN6_IS_ADDR_LOOPBACK | ( | addr | ) |
#include <zephyr/net/socket.h>
Check loopback IPv6 address.
| #define ZSOCK_IN6_IS_ADDR_MC_GLOBAL | ( | addr | ) |
#include <zephyr/net/socket.h>
Check IPv6 multicast global address.
| #define ZSOCK_IN6_IS_ADDR_MC_LINKLOCAL | ( | addr | ) |
#include <zephyr/net/socket.h>
Check IPv6 multicast link local address.
| #define ZSOCK_IN6_IS_ADDR_MC_NODELOCAL | ( | addr | ) |
#include <zephyr/net/socket.h>
Check IPv6 multicast node local address.
| #define ZSOCK_IN6_IS_ADDR_MC_ORGLOCAL | ( | addr | ) |
#include <zephyr/net/socket.h>
Check IPv6 multicast organization local address.
| #define ZSOCK_IN6_IS_ADDR_MC_SITELOCAL | ( | addr | ) |
#include <zephyr/net/socket.h>
Check IPv6 multicast site local address.
| #define ZSOCK_IN6_IS_ADDR_MULTICAST | ( | addr | ) |
#include <zephyr/net/socket.h>
Check IPv6 multicast address.
| #define ZSOCK_IN6_IS_ADDR_SITELOCAL | ( | addr | ) |
#include <zephyr/net/socket.h>
Check IPv6 site local address.
| #define ZSOCK_IN6_IS_ADDR_UNSPECIFIED | ( | addr | ) |
#include <zephyr/net/socket.h>
Check unspecified IPv6 address.
| #define ZSOCK_IN6_IS_ADDR_V4MAPPED | ( | addr | ) |
#include <zephyr/net/socket.h>
Check IPv6 v4 mapped address.
| #define ZSOCK_IP_ADD_MEMBERSHIP 35 |
#include <zephyr/net/socket.h>
Join IPv4 multicast group.
| #define ZSOCK_IP_DROP_MEMBERSHIP 36 |
#include <zephyr/net/socket.h>
Leave IPv4 multicast group.
| #define ZSOCK_IP_LOCAL_PORT_RANGE 51 |
#include <zephyr/net/socket.h>
Clamp down the global port range for a given socket.
| #define ZSOCK_IP_MTU 14 |
#include <zephyr/net/socket.h>
Retrieve the current known path MTU of the current socket.
Returns an integer. ZSOCK_IP_MTU is valid only for getsockopt and can be employed only when the socket has been connected.
| #define ZSOCK_IP_MULTICAST_IF 32 |
#include <zephyr/net/socket.h>
Set IPv4 multicast datagram network interface.
| #define ZSOCK_IP_MULTICAST_LOOP 34 |
#include <zephyr/net/socket.h>
Set IPv4 multicast loop value.
| #define ZSOCK_IP_MULTICAST_TTL 33 |
#include <zephyr/net/socket.h>
Set IPv4 multicast TTL value.
| #define ZSOCK_IP_PKTINFO 8 |
#include <zephyr/net/socket.h>
Pass an IP_PKTINFO ancillary message that contains a pktinfo structure that supplies some information about the incoming packet.
| #define ZSOCK_IP_RECVTTL 12 |
#include <zephyr/net/socket.h>
Pass an IP_RECVTTL ancillary message that contains information about the time to live of the incoming packet.
| #define ZSOCK_IP_TOS 1 |
#include <zephyr/net/socket.h>
Set or receive the Type-Of-Service value for an outgoing packet.
| #define ZSOCK_IP_TTL 2 |
#include <zephyr/net/socket.h>
Set or receive the Time-To-Live value for an outgoing packet.
| #define ZSOCK_IPV6_ADD_MEMBERSHIP 20 |
#include <zephyr/net/socket.h>
Join IPv6 multicast group.
| #define ZSOCK_IPV6_ADDR_PREFERENCES 72 |
#include <zephyr/net/socket.h>
RFC5014: Source address selection.
| #define ZSOCK_IPV6_DROP_MEMBERSHIP 21 |
#include <zephyr/net/socket.h>
Leave IPv6 multicast group.
| #define ZSOCK_IPV6_HOPLIMIT 52 |
#include <zephyr/net/socket.h>
Set or receive the hoplimit value for an outgoing packet.
| #define ZSOCK_IPV6_JOIN_GROUP ZSOCK_IPV6_ADD_MEMBERSHIP |
#include <zephyr/net/socket.h>
Join IPv6 multicast group.
| #define ZSOCK_IPV6_LEAVE_GROUP ZSOCK_IPV6_DROP_MEMBERSHIP |
#include <zephyr/net/socket.h>
Leave IPv6 multicast group.
| #define ZSOCK_IPV6_MTU 24 |
#include <zephyr/net/socket.h>
For getsockopt(), retrieve the current known IPv6 path MTU of the given socket.
Valid only when the socket has been connected. For setsockopt(), set the MTU to be used for the socket. The MTU is limited by the device MTU or the path MTU when path MTU discovery is enabled.
| #define ZSOCK_IPV6_MULTICAST_HOPS 18 |
#include <zephyr/net/socket.h>
Set the multicast hop limit for the socket.
| #define ZSOCK_IPV6_MULTICAST_IF 17 |
#include <zephyr/net/socket.h>
Set multicast output network interface index for the socket.
| #define ZSOCK_IPV6_MULTICAST_LOOP 19 |
#include <zephyr/net/socket.h>
Set the multicast loop bit for the socket.
| #define ZSOCK_IPV6_PKTINFO 50 |
#include <zephyr/net/socket.h>
Option which returns an in6_pktinfo structure in ancillary data.
| #define ZSOCK_IPV6_PREFER_SRC_CGA 0x0008 |
#include <zephyr/net/socket.h>
Prefer CGA (Cryptographically Generated Address) address as source.
Ignored in Zephyr.
| #define ZSOCK_IPV6_PREFER_SRC_COA 0x0004 |
| #define ZSOCK_IPV6_PREFER_SRC_HOME 0x0400 |
| #define ZSOCK_IPV6_PREFER_SRC_NONCGA 0x0800 |
| #define ZSOCK_IPV6_PREFER_SRC_PUBLIC 0x0002 |
#include <zephyr/net/socket.h>
Prefer public address as source.
| #define ZSOCK_IPV6_PREFER_SRC_PUBTMP_DEFAULT 0x0100 |
#include <zephyr/net/socket.h>
Either public or temporary address is selected as a default source depending on the output interface configuration (this is the default value).
This is Linux specific option not found in the RFC.
| #define ZSOCK_IPV6_PREFER_SRC_TMP 0x0001 |
#include <zephyr/net/socket.h>
Prefer temporary address as source.
| #define ZSOCK_IPV6_RECVHOPLIMIT 51 |
#include <zephyr/net/socket.h>
Pass an IPV6_RECVHOPLIMIT ancillary message that contains information about the hop limit of the incoming packet.
See RFC 3542.
| #define ZSOCK_IPV6_RECVPKTINFO 49 |
#include <zephyr/net/socket.h>
Pass an IPV6_RECVPKTINFO ancillary message that contains a in6_pktinfo structure that supplies some information about the incoming packet.
See RFC 3542.
| #define ZSOCK_IPV6_TCLASS 67 |
#include <zephyr/net/socket.h>
Set or receive the traffic class value for an outgoing packet.
| #define ZSOCK_IPV6_UNICAST_HOPS 16 |
#include <zephyr/net/socket.h>
Set the unicast hop limit for the socket.
| #define ZSOCK_IPV6_V6ONLY 26 |
#include <zephyr/net/socket.h>
Don't support IPv4 access.
| #define ZSOCK_MSG_CTRUNC 0x08 |
#include <zephyr/net/socket.h>
zsock_recvmsg: Control data buffer too small.
| #define ZSOCK_MSG_DONTWAIT 0x40 |
#include <zephyr/net/socket.h>
zsock_recv/zsock_send: Override operation to non-blocking
| #define ZSOCK_MSG_PEEK 0x02 |
#include <zephyr/net/socket.h>
zsock_recv: Read data without removing it from socket input queue
| #define ZSOCK_MSG_TRUNC 0x20 |
#include <zephyr/net/socket.h>
zsock_recv: return the real length of the datagram, even when it was longer than the passed buffer
| #define ZSOCK_MSG_WAITALL 0x100 |
#include <zephyr/net/socket.h>
zsock_recv: block until the full amount of data can be returned
| #define ZSOCK_NI_DGRAM 16 |
#include <zephyr/net/socket.h>
zsock_getnameinfo(): Dummy option for compatibility
| #define ZSOCK_NI_MAXHOST 64 |
#include <zephyr/net/socket.h>
zsock_getnameinfo(): Max supported hostname length
| #define ZSOCK_NI_NAMEREQD 8 |
#include <zephyr/net/socket.h>
zsock_getnameinfo(): Dummy option for compatibility
| #define ZSOCK_NI_NOFQDN 4 |
#include <zephyr/net/socket.h>
zsock_getnameinfo(): Return only hostname instead of FQDN
| #define ZSOCK_NI_NUMERICHOST 1 |
#include <zephyr/net/socket.h>
zsock_getnameinfo(): Resolve to numeric address.
| #define ZSOCK_NI_NUMERICSERV 2 |
#include <zephyr/net/socket.h>
zsock_getnameinfo(): Resolve to numeric port number.
| #define ZSOCK_POLLERR 8 |
#include <zephyr/net/socket.h>
zsock_poll: Poll results in error condition (output value only)
| #define ZSOCK_POLLHUP 0x10 |
#include <zephyr/net/socket.h>
zsock_poll: Poll detected closed connection (output value only)
| #define ZSOCK_POLLIN 1 |
#include <zephyr/net/socket.h>
zsock_poll: Poll for readability
| #define ZSOCK_POLLNVAL 0x20 |
#include <zephyr/net/socket.h>
zsock_poll: Invalid socket (output value only)
| #define ZSOCK_POLLOUT 4 |
#include <zephyr/net/socket.h>
zsock_poll: Poll for writability
| #define ZSOCK_POLLPRI 2 |
#include <zephyr/net/socket.h>
zsock_poll: Poll for exceptional condition
| #define ZSOCK_SCM_TXTIME ZSOCK_SO_TXTIME |
#include <zephyr/net/socket.h>
Socket TX time (same as SO_TXTIME)
| #define ZSOCK_SHUT_RD 0 |
#include <zephyr/net/socket.h>
zsock_shutdown: Shut down for reading
| #define ZSOCK_SHUT_RDWR 2 |
#include <zephyr/net/socket.h>
zsock_shutdown: Shut down for both reading and writing
| #define ZSOCK_SHUT_WR 1 |
#include <zephyr/net/socket.h>
zsock_shutdown: Shut down for writing
| #define ZSOCK_SO_ACCEPTCONN 30 |
#include <zephyr/net/socket.h>
Socket accepts incoming connections (ignored, for compatibility)
| #define ZSOCK_SO_BINDTODEVICE 25 |
#include <zephyr/net/socket.h>
Bind a socket to an interface.
| #define ZSOCK_SO_BROADCAST 6 |
#include <zephyr/net/socket.h>
Transmission of broadcast messages is supported (ignored, for compatibility)
| #define ZSOCK_SO_DEBUG 1 |
#include <zephyr/net/socket.h>
Recording debugging information (ignored, for compatibility)
| #define ZSOCK_SO_DOMAIN 39 |
#include <zephyr/net/socket.h>
Domain used with SOCKET.
| #define ZSOCK_SO_DONTROUTE 5 |
#include <zephyr/net/socket.h>
Bypass normal routing and send directly to host (ignored, for compatibility)
| #define ZSOCK_SO_ERROR 4 |
#include <zephyr/net/socket.h>
Async error.
| #define ZSOCK_SO_KEEPALIVE 9 |
#include <zephyr/net/socket.h>
Enable sending keep-alive messages on connections.
| #define ZSOCK_SO_LINGER 13 |
#include <zephyr/net/socket.h>
Socket lingers on close (ignored, for compatibility)
| #define ZSOCK_SO_OOBINLINE 10 |
#include <zephyr/net/socket.h>
Place out-of-band data into receive stream (ignored, for compatibility)
| #define ZSOCK_SO_PRIORITY 12 |
#include <zephyr/net/socket.h>
Socket priority.
| #define ZSOCK_SO_PROTOCOL 38 |
#include <zephyr/net/socket.h>
Protocol used with the socket.
| #define ZSOCK_SO_RCVBUF 8 |
#include <zephyr/net/socket.h>
Size of socket recv buffer.
| #define ZSOCK_SO_RCVLOWAT 18 |
#include <zephyr/net/socket.h>
Receive low watermark (ignored, for compatibility)
| #define ZSOCK_SO_RCVTIMEO 20 |
#include <zephyr/net/socket.h>
Receive timeout Applies to receive functions like recv(), but not to connect()
| #define ZSOCK_SO_REUSEADDR 2 |
#include <zephyr/net/socket.h>
address reuse
| #define ZSOCK_SO_REUSEPORT 15 |
#include <zephyr/net/socket.h>
Allow multiple sockets to reuse a single port.
| #define ZSOCK_SO_SNDBUF 7 |
#include <zephyr/net/socket.h>
Size of socket send buffer.
| #define ZSOCK_SO_SNDLOWAT 19 |
#include <zephyr/net/socket.h>
Send low watermark (ignored, for compatibility)
| #define ZSOCK_SO_SNDTIMEO 21 |
#include <zephyr/net/socket.h>
Send timeout.
| #define ZSOCK_SO_SOCKS5 60 |
#include <zephyr/net/socket.h>
Enable SOCKS5 for Socket.
| #define ZSOCK_SO_TIMESTAMPING 37 |
#include <zephyr/net/socket.h>
Timestamp TX RX or both packets.
Supports multiple timestamp sources.
| #define ZSOCK_SO_TXTIME 61 |
#include <zephyr/net/socket.h>
Socket TX time (when the data should be sent)
| #define ZSOCK_SO_TYPE 3 |
#include <zephyr/net/socket.h>
Type of the socket.
| #define ZSOCK_SOF_TIMESTAMPING_RX_HARDWARE BIT(0) |
#include <zephyr/net/socket.h>
Timestamp generation flags.
Request RX timestamps generated by network adapter.
| #define ZSOCK_SOF_TIMESTAMPING_TX_HARDWARE BIT(1) |
#include <zephyr/net/socket.h>
Request TX timestamps generated by network adapter.
This can be enabled via socket option or control messages.
| #define ZSOCK_SOL_SOCKET 1 |
#include <zephyr/net/socket.h>
Socket-level option.
| #define ZSOCK_SOMAXCONN 128 |
#include <zephyr/net/socket.h>
listen: The maximum backlog queue length
| #define ZSOCK_TCP_KEEPCNT 4 |
#include <zephyr/net/socket.h>
Number of keepalives before dropping connection.
| #define ZSOCK_TCP_KEEPIDLE 2 |
#include <zephyr/net/socket.h>
Start keepalives after this period (seconds)
| #define ZSOCK_TCP_KEEPINTVL 3 |
#include <zephyr/net/socket.h>
Interval between keepalives (seconds)
| #define ZSOCK_TCP_NODELAY 1 |
#include <zephyr/net/socket.h>
Disable TCP buffering (ignored, for compatibility)
| typedef struct zvfs_fd_set zsock_fd_set |
#include <zephyr/net/socket_select.h>
Socket file descriptor set.
| int zsock_accept | ( | int | sock, |
| struct net_sockaddr * | addr, | ||
| net_socklen_t * | addrlen ) |
#include <zephyr/net/socket.h>
Accept a connection on listening socket.
See POSIX.1-2017 article http://pubs.opengroup.org/onlinepubs/9699919799/functions/accept.html for normative description. This function is also exposed as accept() if CONFIG_POSIX_API is defined.
| int zsock_bind | ( | int | sock, |
| const struct net_sockaddr * | addr, | ||
| net_socklen_t | addrlen ) |
#include <zephyr/net/socket.h>
Bind a socket to a local network address.
See POSIX.1-2017 article http://pubs.opengroup.org/onlinepubs/9699919799/functions/bind.html for normative description. This function is also exposed as bind() if CONFIG_POSIX_API is defined.
| int zsock_close | ( | int | sock | ) |
#include <zephyr/net/socket.h>
Close a network socket.
Close a network socket. This function is also exposed as close() if CONFIG_POSIX_API is defined (in which case it may conflict with generic POSIX close() function).
| int zsock_connect | ( | int | sock, |
| const struct net_sockaddr * | addr, | ||
| net_socklen_t | addrlen ) |
#include <zephyr/net/socket.h>
Connect a socket to a peer network address.
See POSIX.1-2017 article http://pubs.opengroup.org/onlinepubs/9699919799/functions/connect.html for normative description. This function is also exposed as connect() if CONFIG_POSIX_API is defined.
| int zsock_fcntl_impl | ( | int | sock, |
| int | cmd, | ||
| int | flags ) |
#include <zephyr/net/socket.h>
Control blocking/non-blocking mode of a socket.
This functions allow to (only) configure a socket for blocking or non-blocking operation (O_NONBLOCK). This function is also exposed as fcntl() if CONFIG_POSIX_API is defined (in which case it may conflict with generic POSIX fcntl() function).
|
inlinestatic |
#include <zephyr/net/socket_select.h>
Remove socket from fd_set.
See POSIX.1-2017 article http://pubs.opengroup.org/onlinepubs/9699919799/functions/select.html for normative description. This function is also exposed as FD_CLR() if CONFIG_POSIX_API is defined.
|
inlinestatic |
#include <zephyr/net/socket_select.h>
Check whether socket is a member of fd_set.
See POSIX.1-2017 article http://pubs.opengroup.org/onlinepubs/9699919799/functions/select.html for normative description. This function is also exposed as FD_ISSET() if CONFIG_POSIX_API is defined.
|
inlinestatic |
#include <zephyr/net/socket_select.h>
Add socket to fd_set.
See POSIX.1-2017 article http://pubs.opengroup.org/onlinepubs/9699919799/functions/select.html for normative description. This function is also exposed as FD_SET() if CONFIG_POSIX_API is defined.
|
inlinestatic |
#include <zephyr/net/socket_select.h>
Initialize (clear) fd_set.
See POSIX.1-2017 article http://pubs.opengroup.org/onlinepubs/9699919799/functions/select.html for normative description. This function is also exposed as FD_ZERO() if CONFIG_POSIX_API is defined.
| void zsock_freeaddrinfo | ( | struct zsock_addrinfo * | ai | ) |
#include <zephyr/net/socket.h>
Free results returned by zsock_getaddrinfo()
See POSIX.1-2017 article http://pubs.opengroup.org/onlinepubs/9699919799/functions/freeaddrinfo.html for normative description. This function is also exposed as freeaddrinfo() if CONFIG_POSIX_API is defined.
| const char * zsock_gai_strerror | ( | int | errcode | ) |
#include <zephyr/net/socket.h>
Convert zsock_getaddrinfo() error code to textual message.
See POSIX.1-2017 article http://pubs.opengroup.org/onlinepubs/9699919799/functions/gai_strerror.html for normative description. This function is also exposed as gai_strerror() if CONFIG_POSIX_API is defined.
| void * zsock_get_context_object | ( | int | sock | ) |
#include <zephyr/net/socket.h>
Obtain a file descriptor's associated net context.
With CONFIG_USERSPACE enabled, the kernel's object permission system must apply to socket file descriptors. When a socket is opened, by default only the caller has permission, access by other threads will fail unless they have been specifically granted permission.
This is achieved by tagging data structure definitions that implement the underlying object associated with a network socket file descriptor with __net_socket. All pointers to instances of these will be known to the kernel as kernel objects with type K_OBJ_NET_SOCKET.
This API is intended for threads that need to grant access to the object associated with a particular file descriptor to another thread. The returned pointer represents the underlying K_OBJ_NET_SOCKET and may be passed to APIs like k_object_access_grant().
In a system like Linux which has the notion of threads running in processes in a shared virtual address space, this sort of management is unnecessary as the scope of file descriptors is implemented at the process level.
However in Zephyr the file descriptor scope is global, and MPU-based systems are not able to implement a process-like model due to the lack of memory virtualization hardware. They use discrete object permissions and memory domains instead to define thread access scope.
User threads will have no direct access to the returned object and will fault if they try to access its memory; the pointer can only be used to make permission assignment calls, which follow exactly the rules for other kernel objects like device drivers and IPC.
| sock | file descriptor |
| int zsock_getaddrinfo | ( | const char * | host, |
| const char * | service, | ||
| const struct zsock_addrinfo * | hints, | ||
| struct zsock_addrinfo ** | res ) |
#include <zephyr/net/socket.h>
Resolve a domain name to one or more network addresses.
See POSIX.1-2017 article http://pubs.opengroup.org/onlinepubs/9699919799/functions/getaddrinfo.html for normative description. This function is also exposed as getaddrinfo() if CONFIG_POSIX_API is defined.
| int zsock_gethostname | ( | char * | buf, |
| size_t | len ) |
#include <zephyr/net/socket.h>
Get local host name.
See POSIX.1-2017 article http://pubs.opengroup.org/onlinepubs/9699919799/functions/gethostname.html for normative description. This function is also exposed as gethostname() if CONFIG_POSIX_API is defined.
| int zsock_getnameinfo | ( | const struct net_sockaddr * | addr, |
| net_socklen_t | addrlen, | ||
| char * | host, | ||
| net_socklen_t | hostlen, | ||
| char * | serv, | ||
| net_socklen_t | servlen, | ||
| int | flags ) |
#include <zephyr/net/socket.h>
Resolve a network address to a domain name or ASCII address.
See POSIX.1-2017 article http://pubs.opengroup.org/onlinepubs/9699919799/functions/getnameinfo.html for normative description. This function is also exposed as getnameinfo() if CONFIG_POSIX_API is defined.
| int zsock_getpeername | ( | int | sock, |
| struct net_sockaddr * | addr, | ||
| net_socklen_t * | addrlen ) |
#include <zephyr/net/socket.h>
Get peer name.
See POSIX.1-2017 article http://pubs.opengroup.org/onlinepubs/9699919799/functions/getpeername.html for normative description. This function is also exposed as getpeername() if CONFIG_POSIX_API is defined.
| int zsock_getsockname | ( | int | sock, |
| struct net_sockaddr * | addr, | ||
| net_socklen_t * | addrlen ) |
#include <zephyr/net/socket.h>
Get socket name.
See POSIX.1-2017 article http://pubs.opengroup.org/onlinepubs/9699919799/functions/getsockname.html for normative description. This function is also exposed as getsockname() if CONFIG_POSIX_API is defined.
| int zsock_getsockopt | ( | int | sock, |
| int | level, | ||
| int | optname, | ||
| void * | optval, | ||
| net_socklen_t * | optlen ) |
#include <zephyr/net/socket.h>
Get various socket options.
See POSIX.1-2017 article http://pubs.opengroup.org/onlinepubs/9699919799/functions/getsockopt.html for normative description. In Zephyr this function supports a subset of socket options described by POSIX, but also some additional options available in Linux (some options are dummy and provided to ease porting of existing code). This function is also exposed as getsockopt() if CONFIG_POSIX_API is defined.
|
inlinestatic |
#include <zephyr/net/socket.h>
Convert network address from internal to numeric ASCII form.
See POSIX.1-2017 article http://pubs.opengroup.org/onlinepubs/9699919799/functions/inet_ntop.html for normative description. This function is also exposed as inet_ntop() if CONFIG_POSIX_API is defined.
| int zsock_inet_pton | ( | net_sa_family_t | family, |
| const char * | src, | ||
| void * | dst ) |
#include <zephyr/net/socket.h>
Convert network address from numeric ASCII form to internal representation.
See POSIX.1-2017 article http://pubs.opengroup.org/onlinepubs/9699919799/functions/inet_pton.html for normative description. This function is also exposed as inet_pton() if CONFIG_POSIX_API is defined.
| int zsock_ioctl_impl | ( | int | sock, |
| unsigned long | request, | ||
| va_list | ap ) |
#include <zephyr/net/socket.h>
Control underlying socket parameters.
See POSIX.1-2017 article https://pubs.opengroup.org/onlinepubs/9699919799/functions/ioctl.html for normative description. This function enables querying or manipulating underlying socket parameters. Currently supported request values include ZFD_IOCTL_FIONBIO, and ZFD_IOCTL_FIONREAD, to set non-blocking mode, and query the number of bytes available to read, respectively. This function is also exposed as ioctl() if CONFIG_POSIX_API is defined (in which case it may conflict with generic POSIX ioctl() function).
| int zsock_listen | ( | int | sock, |
| int | backlog ) |
#include <zephyr/net/socket.h>
Set up a STREAM socket to accept peer connections.
See POSIX.1-2017 article http://pubs.opengroup.org/onlinepubs/9699919799/functions/listen.html for normative description. This function is also exposed as listen() if CONFIG_POSIX_API is defined.
|
inlinestatic |
#include <zephyr/net/socket.h>
Efficiently poll multiple sockets for events.
See POSIX.1-2017 article http://pubs.opengroup.org/onlinepubs/9699919799/functions/poll.html for normative description. This function is also exposed as poll() if CONFIG_POSIX_API is defined (in which case it may conflict with generic POSIX poll() function).
#include <zephyr/net/socket.h>
Receive data from a connected peer.
See POSIX.1-2017 article http://pubs.opengroup.org/onlinepubs/9699919799/functions/recv.html for normative description. This function is also exposed as recv() if CONFIG_POSIX_API is defined.
| ssize_t zsock_recvfrom | ( | int | sock, |
| void * | buf, | ||
| size_t | max_len, | ||
| int | flags, | ||
| struct net_sockaddr * | src_addr, | ||
| net_socklen_t * | addrlen ) |
#include <zephyr/net/socket.h>
Receive data from an arbitrary network address.
See POSIX.1-2017 article http://pubs.opengroup.org/onlinepubs/9699919799/functions/recvfrom.html for normative description. This function is also exposed as recvfrom() if CONFIG_POSIX_API is defined.
| ssize_t zsock_recvmsg | ( | int | sock, |
| struct net_msghdr * | msg, | ||
| int | flags ) |
#include <zephyr/net/socket.h>
Receive a message from an arbitrary network address.
See POSIX.1-2017 article http://pubs.opengroup.org/onlinepubs/9699919799/functions/recvmsg.html for normative description. This function is also exposed as recvmsg() if CONFIG_POSIX_API is defined.
|
inlinestatic |
#include <zephyr/net/socket_select.h>
Legacy function to poll multiple sockets for events.
See POSIX.1-2017 article http://pubs.opengroup.org/onlinepubs/9699919799/functions/select.html for normative description. This function is provided to ease porting of existing code and not recommended for usage due to its inefficiency, use zsock_poll() instead. In Zephyr this function works only with sockets, not arbitrary file descriptors. This function is also exposed as select() if CONFIG_POSIX_API is defined (in which case it may conflict with generic POSIX select() function).
#include <zephyr/net/socket.h>
Send data to a connected peer.
See POSIX.1-2017 article http://pubs.opengroup.org/onlinepubs/9699919799/functions/send.html for normative description. This function is also exposed as send() if CONFIG_POSIX_API is defined.
| ssize_t zsock_sendmsg | ( | int | sock, |
| const struct net_msghdr * | msg, | ||
| int | flags ) |
#include <zephyr/net/socket.h>
Send data to an arbitrary network address.
See POSIX.1-2017 article http://pubs.opengroup.org/onlinepubs/9699919799/functions/sendmsg.html for normative description. This function is also exposed as sendmsg() if CONFIG_POSIX_API is defined.
| ssize_t zsock_sendto | ( | int | sock, |
| const void * | buf, | ||
| size_t | len, | ||
| int | flags, | ||
| const struct net_sockaddr * | dest_addr, | ||
| net_socklen_t | addrlen ) |
#include <zephyr/net/socket.h>
Send data to an arbitrary network address.
See POSIX.1-2017 article http://pubs.opengroup.org/onlinepubs/9699919799/functions/sendto.html for normative description. This function is also exposed as sendto() if CONFIG_POSIX_API is defined.
| int zsock_setsockopt | ( | int | sock, |
| int | level, | ||
| int | optname, | ||
| const void * | optval, | ||
| net_socklen_t | optlen ) |
#include <zephyr/net/socket.h>
Set various socket options.
See POSIX.1-2017 article http://pubs.opengroup.org/onlinepubs/9699919799/functions/setsockopt.html for normative description. In Zephyr this function supports a subset of socket options described by POSIX, but also some additional options available in Linux (some options are dummy and provided to ease porting of existing code). This function is also exposed as setsockopt() if CONFIG_POSIX_API is defined.
| int zsock_shutdown | ( | int | sock, |
| int | how ) |
#include <zephyr/net/socket.h>
Shutdown socket send/receive operations.
See POSIX.1-2017 article http://pubs.opengroup.org/onlinepubs/9699919799/functions/shutdown.html for normative description, but currently this function has no effect in Zephyr and provided solely for compatibility with existing code. This function is also exposed as shutdown() if CONFIG_POSIX_API is defined.
| int zsock_socket | ( | int | family, |
| int | type, | ||
| int | proto ) |
#include <zephyr/net/socket.h>
Create a network socket.
See POSIX.1-2017 article http://pubs.opengroup.org/onlinepubs/9699919799/functions/socket.html for normative description. This function is also exposed as socket() if CONFIG_POSIX_API is defined.
If CONFIG_USERSPACE is enabled, the caller will be granted access to the context object associated with the returned file descriptor.
| int zsock_socketpair | ( | int | family, |
| int | type, | ||
| int | proto, | ||
| int * | sv ) |
#include <zephyr/net/socket.h>
Create an unnamed pair of connected sockets.
See POSIX.1-2017 article https://pubs.opengroup.org/onlinepubs/009695399/functions/socketpair.html for normative description. This function is also exposed as socketpair() if CONFIG_POSIX_API is defined.