From: Kevin Day Date: Sun, 14 Dec 2025 23:31:47 +0000 (-0600) Subject: Update: Ensure sockets defines exist, add more defines, and remove redundancy. X-Git-Tag: 0.8.0~14 X-Git-Url: https://www.git.kevux.org/?a=commitdiff_plain;h=6e7d4d8eb32e39efd4c3df64b9bc342f924e7c7d;p=fll Update: Ensure sockets defines exist, add more defines, and remove redundancy. Make sure each standard define exists. If they do not, then create them. This provides a new disable define called `_di_f_socket_defines_d_`. Add a lot of missing defines. This especially includes a lot of protocols. The `f_socket_message_flag_e` enums are redundant, so remove them. --- diff --git a/build/disable/level_0/f_socket.h b/build/disable/level_0/f_socket.h index d65d27c..4ad90ef 100644 --- a/build/disable/level_0/f_socket.h +++ b/build/disable/level_0/f_socket.h @@ -12,6 +12,7 @@ #define _di_f_socket_create_ #define _di_f_socket_create_pair_ #define _di_f_socket_default_d_ +#define _di_f_socket_defines_d_ #define _di_f_socket_disconnect_ #define _di_f_socket_flag_e_ #define _di_f_socket_level_e_ diff --git a/level_0/f_socket/c/socket/common.h b/level_0/f_socket/c/socket/common.h index c7d7803..f852df2 100644 --- a/level_0/f_socket/c/socket/common.h +++ b/level_0/f_socket/c/socket/common.h @@ -31,6 +31,940 @@ extern "C" { #endif // _di_f_socket_default_d_ /** + * Provide socket define helpers in case the host system / libc fails to provide them. + */ +#ifndef _di_f_socket_defines_d_ + + // The PF_* defines. + #ifndef PF_UNSPEC + #define PF_UNSPEC 0 + #endif // PF_UNSPEC + + #ifndef PF_LOCAL + #define PF_LOCAL 1 + #endif // PF_LOCAL + + #ifndef PF_UNIX + #define PF_UNIX PF_LOCAL + #endif // PF_UNIX + + #ifndef PF_UNIX + #define PF_UNIX PF_LOCAL + #endif // PF_UNIX + + #ifndef PF_INET + #define PF_INET 2 + #endif // PF_INET + + #ifndef PF_AX25 + #define PF_AX25 3 + #endif // PF_AX25 + + #ifndef PF_IPX + #define PF_IPX 4 + #endif // PF_IPX + + #ifndef PF_APPLETALK + #define PF_APPLETALK 5 + #endif // PF_APPLETALK + + #ifndef PF_NETROM + #define PF_NETROM 6 + #endif // PF_NETROM + + #ifndef PF_BRIDGE + #define PF_BRIDGE 7 + #endif // PF_BRIDGE + + #ifndef PF_ATMPVC + #define PF_ATMPVC 8 + #endif // PF_ATMPVC + + #ifndef PF_X25 + #define PF_X25 9 + #endif // PF_X25 + + #ifndef PF_INET6 + #define PF_INET6 10 + #endif // PF_INET6 + + #ifndef PF_ROSE + #define PF_ROSE 11 + #endif // PF_ROSE + + #ifndef PF_DECnet + #define PF_DECnet 12 + #endif // PF_DECnet + + #ifndef PF_NETBEUI + #define PF_NETBEUI 13 + #endif // PF_NETBEUI + + #ifndef PF_SECURITY + #define PF_SECURITY 14 + #endif // PF_SECURITY + + #ifndef PF_KEY + #define PF_KEY 15 + #endif // PF_KEY + + #ifndef PF_NETLINK + #define PF_NETLINK 16 + #endif // PF_NETLINK + + #ifndef PF_ROUTE + #define PF_ROUTE PF_NETLINK + #endif // PF_ROUTE + + #ifndef PF_PACKET + #define PF_PACKET 17 + #endif // PF_PACKET + + #ifndef PF_ASH + #define PF_ASH 18 + #endif // PF_ASH + + #ifndef PF_ECONET + #define PF_ECONET 19 + #endif // PF_ECONET + + #ifndef PF_ATMSVC + #define PF_ATMSVC 20 + #endif // PF_ATMSVC + + #ifndef PF_RDS + #define PF_RDS 21 + #endif // PF_RDS + + #ifndef PF_SNA + #define PF_SNA 22 + #endif // PF_SNA + + #ifndef PF_IRDA + #define PF_IRDA 23 + #endif // PF_IRDA + + #ifndef PF_PPPOX + #define PF_PPPOX 24 + #endif // PF_PPPOX + + #ifndef PF_WANPIPE + #define PF_WANPIPE 25 + #endif // PF_WANPIPE + + #ifndef PF_LLC + #define PF_LLC 26 + #endif // PF_LLC + + #ifndef PF_IB + #define PF_IB 27 + #endif // PF_IB + + #ifndef PF_MPLS + #define PF_MPLS 28 + #endif // PF_MPLS + + #ifndef PF_CAN + #define PF_CAN 29 + #endif // PF_CAN + + #ifndef PF_TIPC + #define PF_TIPC 30 + #endif // PF_TIPC + + #ifndef PF_BLUETOOTH + #define PF_BLUETOOTH 31 + #endif // PF_BLUETOOTH + + #ifndef PF_IUCV + #define PF_IUCV 32 + #endif // PF_IUCV + + #ifndef PF_RXRPC + #define PF_RXRPC 33 + #endif // PF_RXRPC + + #ifndef PF_ISDN + #define PF_ISDN 34 + #endif // PF_ISDN + + #ifndef PF_PHONET + #define PF_PHONET 35 + #endif // PF_PHONET + + #ifndef PF_IEEE802154 + #define PF_IEEE802154 36 + #endif // PF_IEEE802154 + + #ifndef PF_CAIF + #define PF_CAIF 37 + #endif // PF_CAIF + + #ifndef PF_ALG + #define PF_ALG 38 + #endif // PF_ALG + + #ifndef PF_NFC + #define PF_NFC 39 + #endif // PF_NFC + + #ifndef PF_VSOCK + #define PF_VSOCK 40 + #endif // PF_VSOCK + + #ifndef PF_KCM + #define PF_KCM 41 + #endif // PF_KCM + + #ifndef PF_QIPCRTR + #define PF_QIPCRTR 42 + #endif // PF_QIPCRTR + + #ifndef PF_SMC + #define PF_SMC 43 + #endif // PF_SMC + + #ifndef PF_XDP + #define PF_XDP 44 + #endif // PF_XDP + + #ifndef PF_MCTP + #define PF_MCTP 45 + #endif // PF_MCTP + + #ifndef PF_MAX + #define PF_MAX 46 + #endif // PF_MAX + + + // The AF_* defines. + #ifndef AF_LOCAL + #define AF_LOCAL PF_LOCAL + #endif // AF_LOCAL + + #ifndef AF_UNIX + #define AF_UNIX PF_UNIX + #endif // AF_UNIX + + #ifndef AF_FILE + #define AF_FILE AF_LOCAL + #endif // AF_FILE + + #ifndef AF_INET + #define AF_INET PF_INET + #endif // AF_INET + + #ifndef AF_AX25 + #define AF_AX25 PF_AX25 + #endif // AF_AX25 + + #ifndef AF_IPX + #define AF_IPX PF_IPX + #endif // AF_IPX + + #ifndef AF_APPLETALK + #define AF_APPLETALK PF_APPLETALK + #endif // AF_APPLETALK + + #ifndef AF_NETROM + #define AF_NETROM PF_NETROM + #endif // AF_NETROM + + #ifndef AF_BRIDGE + #define AF_BRIDGE PF_BRIDGE + #endif // AF_BRIDGE + + #ifndef AF_ATMPVC + #define AF_ATMPVC PF_ATMPVC + #endif // AF_ATMPVC + + #ifndef AF_X25 + #define AF_X25 PF_X25 + #endif // AF_X25 + + #ifndef AF_ROSE + #define AF_ROSE PF_ROSE + #endif // AF_ROSE + + #ifndef AF_DECnet + #define AF_DECnet PF_DECnet + #endif // AF_DECnet + + #ifndef AF_NETBEUI + #define AF_NETBEUI PF_NETBEUI + #endif // AF_NETBEUI + + #ifndef AF_SECURITY + #define AF_SECURITY PF_SECURITY + #endif // AF_SECURITY + + #ifndef AF_KEY + #define AF_KEY PF_KEY + #endif // AF_KEY + + #ifndef AF_NETLINK + #define AF_NETLINK PF_NETLINK + #endif // AF_NETLINK + + #ifndef AF_ROUTE + #define AF_ROUTE PF_ROUTE + #endif // AF_ROUTE + + #ifndef AF_PACKET + #define AF_PACKET PF_PACKET + #endif // AF_PACKET + + #ifndef AF_ASH + #define AF_ASH PF_ASH + #endif // AF_ASH + + #ifndef AF_ECONET + #define AF_ECONET PF_ECONET + #endif // AF_ECONET + + #ifndef AF_ATMSVC + #define AF_ATMSVC PF_ATMSVC + #endif // AF_ATMSVC + + #ifndef AF_RDS + #define AF_RDS PF_RDS + #endif // AF_RDS + + #ifndef AF_SNA + #define AF_SNA PF_SNA + #endif // AF_SNA + + #ifndef AF_IRDA + #define AF_IRDA PF_IRDA + #endif // AF_IRDA + + #ifndef AF_PPPOX + #define AF_PPPOX PF_PPPOX + #endif // AF_PPPOX + + #ifndef AF_WANPIPE + #define AF_WANPIPE PF_WANPIPE + #endif // AF_WANPIPE + + #ifndef AF_LLC + #define AF_LLC PF_LLC + #endif // AF_LLC + + #ifndef AF_IB + #define AF_IB PF_IB + #endif // AF_IB + + #ifndef AF_MPLS + #define AF_MPLS PF_MPLS + #endif // AF_MPLS + + #ifndef AF_CAN + #define AF_CAN PF_CAN + #endif // AF_CAN + + #ifndef AF_TIPC + #define AF_TIPC PF_TIPC + #endif // AF_TIPC + + #ifndef AF_BLUETOOTH + #define AF_BLUETOOTH PF_BLUETOOTH + #endif // AF_BLUETOOTH + + #ifndef AF_IUCV + #define AF_IUCV PF_IUCV + #endif // AF_IUCV + + #ifndef AF_RXRPC + #define AF_RXRPC PF_RXRPC + #endif // AF_RXRPC + + #ifndef AF_ISDN + #define AF_ISDN PF_ISDN + #endif // AF_ISDN + + #ifndef AF_PHONET + #define AF_PHONET PF_PHONET + #endif // AF_PHONET + + #ifndef AF_IEEE802154 + #define AF_IEEE802154 PF_IEEE802154 + #endif // AF_IEEE802154 + + #ifndef AF_CAIF + #define AF_CAIF PF_CAIF + #endif // AF_CAIF + + #ifndef PF_ALG + #define PF_ALG 38 + #endif // PF_ALG + + #ifndef AF_ALG + #define AF_ALG PF_NFC + #endif // AF_ALG + + #ifndef AF_VSOCK + #define AF_VSOCK PF_VSOCK + #endif // AF_VSOCK + + #ifndef AF_KCM + #define AF_KCM PF_KCM + #endif // AF_KCM + + #ifndef AF_QIPCRTR + #define AF_QIPCRTR PF_QIPCRTR + #endif // AF_QIPCRTR + + #ifndef AF_SMC + #define AF_SMC PF_SMC + #endif // AF_SMC + + #ifndef AF_XDP + #define AF_XDP PF_XDP + #endif // AF_XDP + + #ifndef AF_MCTP + #define AF_MCTP PF_MCTP + #endif // AF_MCTP + + #ifndef AF_MAX + #define AF_MAX PF_MAX + #endif // AF_MAX + + + // The MSG_* defines. + #ifndef MSG_OOB + #define MSG_OOB 0x01 + #endif // MSG_OOB + + #ifndef MSG_PEEK + #define MSG_PEEK 0x02 + #endif // MSG_PEEK + + #ifndef MSG_TRYHARD + #define MSG_TRYHARD 0x04 + #endif // MSG_TRYHARD + + #ifndef MSG_CTRUNC + #define MSG_CTRUNC 0x08 + #endif // MSG_CTRUNC + + #ifndef MSG_PROXY + #define MSG_PROXY 0x10 + #endif // MSG_PROXY + + #ifndef MSG_TRUNC + #define MSG_TRUNC 0x20 + #endif // MSG_TRUNC + + #ifndef MSG_DONTWAIT + #define MSG_DONTWAIT 0x40 + #endif // MSG_DONTWAIT + + #ifndef MSG_EOR + #define MSG_EOR 0x80 + #endif // MSG_EOR + + #ifndef MSG_FIN + #define MSG_FIN 0x200 + #endif // MSG_FIN + + #ifndef MSG_SYN + #define MSG_SYN 0x400 + #endif // MSG_SYN + + #ifndef MSG_CONFIRM + #define MSG_CONFIRM 0x800 + #endif // MSG_CONFIRM + + #ifndef MSG_RST + #define MSG_RST 0x1000 + #endif // MSG_RST + + #ifndef MSG_ERRQUEUE + #define MSG_ERRQUEUE 0x2000 + #endif // MSG_ERRQUEUE + + #ifndef MSG_MORE + #define MSG_MORE 0x8000 + #endif // MSG_MORE + + #ifndef MSG_WAITFORONE + #define MSG_WAITFORONE 0x10000 + #endif // MSG_WAITFORONE + + #ifndef MSG_BATCH + #define MSG_BATCH 0x40000 + #endif // MSG_BATCH + + #ifndef MSG_ZEROCOPY + #define MSG_ZEROCOPY 0x4000000 + #endif // MSG_ZEROCOPY + + #ifndef MSG_FASTOPEN + #define MSG_FASTOPEN 0x20000000 + #endif // MSG_FASTOPEN + + #ifndef MSG_CMSG_CLOEXEC + #define MSG_CMSG_CLOEXEC 0x40000000 + #endif // MSG_CMSG_CLOEXEC + + // The SO_* defines. + #ifndef SOL_SOCKET + #define SOL_SOCKET 1 + #endif // SOL_SOCKET + + #ifndef SO_DEBUG + #define SO_DEBUG 1 + #endif // SO_DEBUG + + #ifndef SO_REUSEADDR + #define SO_REUSEADDR 2 + #endif // SO_REUSEADDR + + #ifndef SO_TYPE + #define SO_TYPE 3 + #endif // SO_TYPE + + #ifndef SO_ERROR + #define SO_ERROR 4 + #endif // SO_ERROR + + #ifndef SO_ERROR + #define SO_ERROR 5 + #endif // SO_ERROR + + #ifndef SO_BROADCAST + #define SO_BROADCAST 6 + #endif // SO_BROADCAST + + #ifndef SO_SNDBUF + #define SO_SNDBUF 7 + #endif // SO_SNDBUF + + #ifndef SO_RCVBUF + #define SO_RCVBUF 8 + #endif // SO_RCVBUF + + #ifndef SO_KEEPALIVE + #define SO_KEEPALIVE 9 + #endif // SO_KEEPALIVE + + #ifndef SO_OOBINLINE + #define SO_OOBINLINE 10 + #endif // SO_OOBINLINE + + #ifndef SO_NO_CHECK + #define SO_NO_CHECK 11 + #endif // SO_NO_CHECK + + #ifndef SO_PRIORITY + #define SO_PRIORITY 12 + #endif // SO_PRIORITY + + #ifndef SO_LINGER + #define SO_LINGER 13 + #endif // SO_LINGER + + #ifndef SO_BSDCOMPAT + #define SO_BSDCOMPAT 14 + #endif // SO_BSDCOMPAT + + #ifndef SO_REUSEPORT + #define SO_REUSEPORT 15 + #endif // SO_REUSEPORT + + #ifndef SO_PASSCRED + #define SO_PASSCRED 16 + #endif // SO_PASSCRED + + #ifndef SO_PEERCRED + #define SO_PEERCRED 17 + #endif // SO_PEERCRED + + #ifndef SO_RCVLOWAT + #define SO_RCVLOWAT 18 + #endif // SO_RCVLOWAT + + #ifndef SO_SNDLOWAT + #define SO_SNDLOWAT 19 + #endif // SO_SNDLOWAT + + #ifndef SO_RCVTIMEO_OLD + #define SO_RCVTIMEO_OLD 20 + #endif // SO_RCVTIMEO_OLD + + #ifndef SO_SNDTIMEO_OLD + #define SO_SNDTIMEO_OLD 21 + #endif // SO_SNDTIMEO_OLD + + #ifndef SO_SECURITY_AUTHENTICATION + #define SO_SECURITY_AUTHENTICATION 22 + #endif // SO_SECURITY_AUTHENTICATION + + #ifndef SO_SECURITY_ENCRYPTION_TRANSPORT + #define SO_SECURITY_ENCRYPTION_TRANSPORT 23 + #endif // SO_SECURITY_ENCRYPTION_TRANSPORT + + #ifndef SO_SECURITY_ENCRYPTION_NETWORK + #define SO_SECURITY_ENCRYPTION_NETWORK 24 + #endif // SO_SECURITY_ENCRYPTION_NETWORK + + #ifndef SO_BINDTODEVICE + #define SO_BINDTODEVICE 25 + #endif // SO_BINDTODEVICE + + #ifndef SO_ATTACH_FILTER + #define SO_ATTACH_FILTER 26 + #endif // SO_ATTACH_FILTER + + #ifndef SO_GET_FILTER + #define SO_GET_FILTER SO_ATTACH_FILTER + #endif // SO_GET_FILTER + + #ifndef SO_DETACH_FILTER + #define SO_DETACH_FILTER 27 + #endif // SO_DETACH_FILTER + + #ifndef SO_PEERNAME + #define SO_PEERNAME 28 + #endif // SO_PEERNAME + + #ifndef SO_TIMESTAMP_OLD + #define SO_TIMESTAMP_OLD 20 + #endif // SO_TIMESTAMP_OLD + + #ifndef SO_ACCEPTCONN + #define SO_ACCEPTCONN 30 + #endif // SO_ACCEPTCONN + + #ifndef SO_PEERSEC + #define SO_PEERSEC 31 + #endif // SO_PEERSEC + + #ifndef SO_SNDBUFFORCE + #define SO_SNDBUFFORCE 32 + #endif // SO_SNDBUFFORCE + + #ifndef SO_RCVBUFFORCE + #define SO_RCVBUFFORCE 33 + #endif // SO_RCVBUFFORCE + + #ifndef SO_PASSSEC + #define SO_PASSSEC 34 + #endif // SO_PASSSEC + + #ifndef SO_TIMESTAMPNS_OLD + #define SO_TIMESTAMPNS_OLD 35 + #endif // SO_TIMESTAMPNS_OLD + + #ifndef SO_MARK + #define SO_MARK 36 + #endif // SO_MARK + + #ifndef SO_TIMESTAMPING_OLD + #define SO_TIMESTAMPING_OLD 37 + #endif // SO_TIMESTAMPING_OLD + + #ifndef SO_PROTOCOL + #define SO_PROTOCOL 38 + #endif // SO_PROTOCOL + + #ifndef SO_DOMAIN + #define SO_DOMAIN 39 + #endif // SO_DOMAIN + + #ifndef SO_RXQ_OVFL + #define SO_RXQ_OVFL 40 + #endif // SO_RXQ_OVFL + + #ifndef SO_WIFI_STATUS + #define SO_WIFI_STATUS 41 + #endif // SO_WIFI_STATUS + + #ifndef SO_PEEK_OFF + #define SO_PEEK_OFF 42 + #endif // SO_PEEK_OFF + + #ifndef SO_NOFCS + #define SO_NOFCS 43 + #endif // SO_NOFCS + + #ifndef SO_LOCK_FILTER + #define SO_LOCK_FILTER 44 + #endif // SO_LOCK_FILTER + + #ifndef SO_SELECT_ERR_QUEUE + #define SO_SELECT_ERR_QUEUE 45 + #endif // SO_SELECT_ERR_QUEUE + + #ifndef SO_BUSY_POLL + #define SO_BUSY_POLL 46 + #endif // SO_BUSY_POLL + + #ifndef SO_MAX_PACING_RATE + #define SO_MAX_PACING_RATE 47 + #endif // SO_MAX_PACING_RATE + + #ifndef SO_BPF_EXTENSIONS + #define SO_BPF_EXTENSIONS 48 + #endif // SO_BPF_EXTENSIONS + + #ifndef SO_INCOMING_CPU + #define SO_INCOMING_CPU 49 + #endif // SO_INCOMING_CPU + + #ifndef SO_ATTACH_BPF + #define SO_ATTACH_BPF 50 + #endif // SO_ATTACH_BPF + + #ifndef SO_DETACH_BPF + #define SO_DETACH_BPF SO_DETACH_FILTER + #endif // SO_DETACH_BPF + + #ifndef SO_ATTACH_REUSEPORT_CBPF + #define SO_ATTACH_REUSEPORT_CBPF 51 + #endif // SO_ATTACH_REUSEPORT_CBPF + + #ifndef SO_ATTACH_REUSEPORT_EBPF + #define SO_ATTACH_REUSEPORT_EBPF 52 + #endif // SO_ATTACH_REUSEPORT_EBPF + + #ifndef SO_CNX_ADVICE + #define SO_CNX_ADVICE 53 + #endif // SO_CNX_ADVICE + + #ifndef SCM_TIMESTAMPING_OPT_STATS + #define SCM_TIMESTAMPING_OPT_STATS 54 + #endif // SCM_TIMESTAMPING_OPT_STATS + + #ifndef SO_MEMINFO + #define SO_MEMINFO 55 + #endif // SO_MEMINFO + + #ifndef SO_INCOMING_NAPI_ID + #define SO_INCOMING_NAPI_ID 56 + #endif // SO_INCOMING_NAPI_ID + + #ifndef SO_COOKIE + #define SO_COOKIE 57 + #endif // SO_COOKIE + + #ifndef SCM_TIMESTAMPING_PKTINFO + #define SCM_TIMESTAMPING_PKTINFO 58 + #endif // SCM_TIMESTAMPING_PKTINFO + + #ifndef SO_PEERGROUPS + #define SO_PEERGROUPS 59 + #endif // SO_PEERGROUPS + + #ifndef SO_ZEROCOPY + #define SO_ZEROCOPY 60 + #endif // SO_ZEROCOPY + + #ifndef SO_TXTIME + #define SO_TXTIME 61 + #endif // SO_TXTIME + + #ifndef SO_BINDTOIFINDEX + #define SO_BINDTOIFINDEX 62 + #endif // SO_BINDTOIFINDEX + + #ifndef SO_TIMESTAMP_NEW + #define SO_TIMESTAMP_NEW 63 + #endif // SO_TIMESTAMP_NEW + + #ifndef SO_TIMESTAMPNS_NEW + #define SO_TIMESTAMPNS_NEW 64 + #endif // SO_TIMESTAMPNS_NEW + + #ifndef SO_TIMESTAMPING_NEW + #define SO_TIMESTAMPING_NEW 65 + #endif // SO_TIMESTAMPING_NEW + + #ifndef SO_RCVTIMEO_NEW + #define SO_RCVTIMEO_NEW 66 + #endif // SO_RCVTIMEO_NEW + + #ifndef SO_SNDTIMEO_NEW + #define SO_SNDTIMEO_NEW 67 + #endif // SO_SNDTIMEO_NEW + + #ifndef SO_DETACH_REUSEPORT_BPF + #define SO_DETACH_REUSEPORT_BPF 68 + #endif // SO_DETACH_REUSEPORT_BPF + + #ifndef SO_PREFER_BUSY_POLL + #define SO_PREFER_BUSY_POLL 69 + #endif // SO_PREFER_BUSY_POLL + + #ifndef SO_BUSY_POLL_BUDGET + #define SO_BUSY_POLL_BUDGET 70 + #endif // SO_BUSY_POLL_BUDGET + + #ifndef SO_NETNS_COOKIE + #define SO_NETNS_COOKIE 71 + #endif // SO_NETNS_COOKIE + + #ifndef SO_BUF_LOCK + #define SO_BUF_LOCK 72 + #endif // SO_BUF_LOCK + + #ifndef SO_RESERVE_MEM + #define SO_RESERVE_MEM 73 + #endif // SO_RESERVE_MEM + + #ifndef SO_TXREHASH + #define SO_TXREHASH 74 + #endif // SO_TXREHASH + + #ifndef SO_RCVMARK + #define SO_RCVMARK 75 + #endif // SO_RCVMARK + + #ifndef SO_PASSPIDFD + #define SO_PASSPIDFD 76 + #endif // SO_PASSPIDFD + + #ifndef SO_PEERPIDFD + #define SO_PEERPIDFD 77 + #endif // SO_PEERPIDFD + + #ifndef SO_DEVMEM_LINEAR + #define SO_DEVMEM_LINEAR 78 + #endif // SO_DEVMEM_LINEAR + + #ifndef SO_DEVMEM_DMABUF + #define SO_DEVMEM_DMABUF 79 + #endif // SO_DEVMEM_DMABUF + + #ifndef SO_DEVMEM_DONTNEED + #define SO_DEVMEM_DONTNEED 80 + #endif // SO_DEVMEM_DONTNEED + + #ifndef SCM_TS_OPT_ID + #define SCM_TS_OPT_ID 81 + #endif // SCM_TS_OPT_ID + + #ifndef SO_RCVPRIORITY + #define SO_RCVPRIORITY 82 + #endif // SO_RCVPRIORITY + + + // The SOL_* defines. + #ifndef SOL_RAW + #define SOL_RAW 255 + #endif // SOL_RAW + + #ifndef SOL_DECNET + #define SOL_DECNET 261 + #endif // SOL_DECNET + + #ifndef SOL_X25 + #define SOL_X25 262 + #endif // SOL_X25 + + #ifndef SOL_PACKET + #define SOL_PACKET 263 + #endif // SOL_PACKET + + #ifndef SOL_ATM + #define SOL_ATM 264 + #endif // SOL_ATM + + #ifndef SOL_AAL + #define SOL_AAL 265 + #endif // SOL_AAL + + #ifndef SOL_IRDA + #define SOL_IRDA 266 + #endif // SOL_IRDA + + #ifndef SOL_NETBEUI + #define SOL_NETBEUI 267 + #endif // SOL_NETBEUI + + #ifndef SOL_LLC + #define SOL_LLC 268 + #endif // SOL_LLC + + #ifndef SOL_DCCP + #define SOL_DCCP 269 + #endif // SOL_DCCP + + #ifndef SOL_NETLINK + #define SOL_NETLINK 270 + #endif // SOL_NETLINK + + #ifndef SOL_TIPC + #define SOL_TIPC 271 + #endif // SOL_TIPC + + #ifndef SOL_RXRPC + #define SOL_RXRPC 272 + #endif // SOL_RXRPC + + #ifndef SOL_PPPOL2TP + #define SOL_PPPOL2TP 273 + #endif // SOL_PPPOL2TP + + #ifndef SOL_BLUETOOTH + #define SOL_BLUETOOTH 274 + #endif // SOL_BLUETOOTH + + #ifndef SOL_PNPIPE + #define SOL_PNPIPE 275 + #endif // SOL_PNPIPE + + #ifndef SOL_RDS + #define SOL_RDS 276 + #endif // SOL_RDS + + #ifndef SOL_IUCV + #define SOL_IUCV 277 + #endif // SOL_IUCV + + #ifndef SOL_CAIF + #define SOL_CAIF 278 + #endif // SOL_CAIF + + #ifndef SOL_ALG + #define SOL_ALG 279 + #endif // SOL_ALG + + #ifndef SOL_NFC + #define SOL_NFC 280 + #endif // SOL_NFC + + #ifndef SOL_KCM + #define SOL_KCM 281 + #endif // SOL_KCM + + #ifndef SOL_TLS + #define SOL_TLS 282 + #endif // SOL_TLS + + #ifndef SOL_XDP + #define SOL_XDP 283 + #endif // SOL_XDP + + #ifndef SOL_MPTCP + #define SOL_MPTCP 284 + #endif // SOL_MPTCP + + #ifndef SOL_MCTP + #define SOL_MCTP 285 + #endif // SOL_MCTP + + #ifndef SOL_SMC + #define SOL_SMC 286 + #endif // SOL_SMC + + #ifndef SOL_VSOCK + #define SOL_VSOCK 287 + #endif // SOL_VSOCK +#endif // _di_f_socket_defines_d_ + +/** * Socket address families. * * Many libc implementations have the AF_* directly map to PF_*. @@ -61,6 +995,8 @@ extern "C" { * - key: PF_KEY key management API. * - llc: Linux LLC. * - local: Localhost, pipes, Unix sockets, or file sockets (PF_LOCAL, PF_UNIX, PF_FILE). + * - max: The maximum value for known protocol families (this is not a protocol family). + * - mctp: MCTP. * - mpls: MPLS. * - netbeui: Reserved for 802.2LLC project. * - netlink: Netlink and BSD (PF_NETLINK and PF_ROUTE). @@ -79,8 +1015,8 @@ extern "C" { * - tipc: TIPC sockets. * - vsock: vSockets. * - wanpipe: Wanpipe API sockets. + * - xdp: XDP. * - x25: Reserved for X.25 project. - * - max: The maximum value for known protocol families (this is not a protocol family). */ #ifndef _di_f_socket_address_family_e_ enum { @@ -109,6 +1045,8 @@ extern "C" { f_socket_address_family_key_e = AF_KEY, f_socket_address_family_llc_e = AF_LLC, f_socket_address_family_local_e = AF_LOCAL, + f_socket_address_family_max_e = AF_MAX, + f_socket_address_family_mctp_e = AF_MCTP, f_socket_address_family_mpls_e = AF_MPLS, f_socket_address_family_netbeui_e = AF_NETBEUI, f_socket_address_family_netlink_e = AF_NETLINK, @@ -128,7 +1066,7 @@ extern "C" { f_socket_address_family_vsock_e = AF_VSOCK, f_socket_address_family_wanpipe_e = AF_WANPIPE, f_socket_address_family_x25_e = AF_X25, - f_socket_address_family_max_e = AF_MAX, + f_socket_address_family_xdp_e = AF_XDP, }; // enum #endif // _di_f_socket_address_family_e_ @@ -158,33 +1096,51 @@ extern "C" { * These are flags to pass to either socket receive or socket send functions. * * f_socket_flag_*_e: - * - close_on_exit: Set the close on exit flag for a UNIX socket. - * - confirm: Inform the network layer that "forward process" happened. - * - error_queue: Designate that queue errors should be received from the socket error queue. - * - more: Designate that there is more data to send. - * - out_of_band: Enable receiving out of band data. - * - peek: Process data from the queue without popping it off the stack. - * - record_end: Designate end of record, terminating a sequence. - * - route_not: Do not use a gateway to send this packet. - * - signal_not: Do not send SIGPIPE signal if remote end closed the connection in a stream oriented connection. - * - truncate: Return real length of the packet even if it is truncated to fit into the buffer. - * - wait_all: Block until the full request is satisfied. - * - wait_not: Use non-blocking. + * - batch: More messages are coming. + * - close_on_exit: Set the close on exit flag for a UNIX socket. + * - confirm: Inform the network layer that "forward process" happened. + * - error_queue: Designate that queue errors should be received from the socket error queue or no data received but extended error from the socket error queue is received.. + * - finish: Finish. + * - more: Designate that there is more data to send. + * - out_of_band: Enable receiving out of band data or the message is expedited or out of band data is received. + * - peek: Process data from the queue without popping it off the stack. + * - proxy: Supply or ask for additional address. + * - receive_memory: Receive device memory "skbs" as control message. + * - record_end: Designate end of record, terminating a sequence or end of record reached. + * - reset: Reset. + * - route_not: Do not use a gateway to send this packet. + * - signal_not: Do not send SIGPIPE signal if remote end closed the connection in a stream oriented connection. + * - synchronize: Synchronize. + * - truncate: Return real length of the packet even if it is truncated to fit into the buffer or the data has been truncated due to lack of space in the buffer. + * - truncate_control: Control data lost before delivery or the control data has been truncated due to lack of space in the buffer. + * - wait_all: Block until the full request is satisfied. + * - wait_not: Use non-blocking. + * - wait_one: Wait for at least one packet to return. + * - zero_copy: User data in kernel path. */ #ifndef _di_f_socket_flag_e_ enum { - f_socket_flag_close_on_exit_e = MSG_CMSG_CLOEXEC, - f_socket_flag_confirm_e = MSG_CONFIRM, - f_socket_flag_error_queue_e = MSG_ERRQUEUE, - f_socket_flag_more_e = MSG_MORE, - f_socket_flag_out_of_band_e = MSG_OOB, - f_socket_flag_peek_e = MSG_PEEK, - f_socket_flag_record_end_e = MSG_EOR, - f_socket_flag_route_not_e = MSG_DONTROUTE, - f_socket_flag_signal_not_e = MSG_NOSIGNAL, - f_socket_flag_truncate_e = MSG_TRUNC, - f_socket_flag_wait_all_e = MSG_WAITALL, - f_socket_flag_wait_not_e = MSG_DONTWAIT, + f_socket_flag_batch_e = MSG_BATCH, + f_socket_flag_close_on_exit_e = MSG_CMSG_CLOEXEC, + f_socket_flag_confirm_e = MSG_CONFIRM, + f_socket_flag_error_queue_e = MSG_ERRQUEUE, + f_socket_flag_finish_e = MSG_FIN, + f_socket_flag_more_e = MSG_MORE, + f_socket_flag_out_of_band_e = MSG_OOB, + f_socket_flag_peek_e = MSG_PEEK, + f_socket_flag_proxy_e = MSG_PROXY, + f_socket_flag_receive_memory_e = MSG_SOCK_DEVMEM, + f_socket_flag_record_end_e = MSG_EOR, + f_socket_flag_reset_e = MSG_RST, + f_socket_flag_route_not_e = MSG_DONTROUTE, + f_socket_flag_signal_not_e = MSG_NOSIGNAL, + f_socket_flag_synchronize_e = MSG_SYN, + f_socket_flag_truncate_e = MSG_TRUNC, + f_socket_flag_truncate_control_e = MSG_CTRUNC, + f_socket_flag_wait_all_e = MSG_WAITALL, + f_socket_flag_wait_not_e = MSG_DONTWAIT, + f_socket_flag_wait_one_e = MSG_WAITFORONE, + f_socket_flag_zero_copy_e = MSG_ZEROCOPY, }; // enum #endif // _di_f_socket_flag_e_ @@ -205,6 +1161,8 @@ extern "C" { * - iucv: Iucv. * - kcm: Kcm. * - llc: Llc. + * - mctp: Mctp. + * - mptcp: MPTCP. * - netbeui: Netbeui. * - netlink: Netlink. * - nfc: Nfc. @@ -214,9 +1172,12 @@ extern "C" { * - raw: Raw. * - rds: Rds. * - rxrpc: Rxrpc. + * - smc: Smc. * - tipc: Tipc. * - tls: Tls. + * - vsock: vSockets. * - x25: X25. + * - xdp: xdp. */ #ifndef _di_f_socket_level_e_ enum { @@ -231,6 +1192,8 @@ extern "C" { f_socket_level_iucv_e = SOL_IUCV, f_socket_level_kcm_e = SOL_KCM, f_socket_level_llc_e = SOL_LLC, + f_socket_level_mctp_e = SOL_MCTP, + f_socket_level_mptcp_e = SOL_MPTCP, f_socket_level_netbeui_e = SOL_NETBEUI, f_socket_level_netlink_e = SOL_NETLINK, f_socket_level_nfc_e = SOL_NFC, @@ -240,44 +1203,28 @@ extern "C" { f_socket_level_raw_e = SOL_RAW, f_socket_level_rds_e = SOL_RDS, f_socket_level_rxrpc_e = SOL_RXRPC, + f_socket_level_smc_e = SOL_SMC, f_socket_level_tipc_e = SOL_TIPC, f_socket_level_tls_e = SOL_TLS, + f_socket_level_vsock_e = SOL_VSOCK, f_socket_level_x25_e = SOL_X25, + f_socket_level_xdp_e = SOL_XDP, }; // enum #endif // _di_f_socket_level_e_ /** - * Socket Message Flags. - * - * These represent responses from socket messages (see recvmsg()). - * - * f_socket_message_flag_*_e: - * - error_queue: No data received but extended error from the socket error queue is received. - * - out_of_band: The message is expedited or out of band data is received. - * - record_end: End of record reached. - * - truncate: The data has been truncated due to lack of space in the buffer. - * - truncate_control: The control data has been truncated due to lack of space in the buffer. - */ -#ifndef _di_f_socket_message_flag_e_ - enum { - f_socket_message_flag_error_queue_e = MSG_ERRQUEUE, - f_socket_message_flag_out_of_band_e = MSG_OOB, - f_socket_message_flag_record_end_e = MSG_EOR, - f_socket_message_flag_truncate_e = MSG_TRUNC, - f_socket_message_flag_truncate_control_e = MSG_CTRUNC, - }; // enum -#endif // _di_f_socket_message_flag_e_ - -/** * Socket Options. * * f_socket_option_*: * - address_reuse: Re-use address. * - advice_cnx: CNX Advice. + * - bind_index: Bind to index. * - bpf_attach: Attach Berkeley Packet Filter. * - bpf_detach: Detach Berkeley Packet Filter. + * - bpf_detach_reuse: Detach Berkeley Packet Filter, re-use port. * - bpf_extensions: Berkeley Packet Filter extensions. * - broadcast: broadcast + * - buffer_lock: Lock buffer. * - buffer_receive: Receive buffer. * - buffer_receive_force: Receive buffer (forced). * - buffer_send: Send buffer. @@ -287,12 +1234,15 @@ extern "C" { * - compatibility_bsd: BSD compatibility. * - connection_accept: Accept connection. * - cookie: Cookie. + * - cookie_namespace: Network namespace cookie. * - cpu_incoming: Incomming CPU. * - credentials_pass: Pass credentials. * - credentials_peer: Peer credentials. * - debug: Debug setting. - * - device_bind: Bind device. * - domain: Domain. + * - descriptor_pass: Pass process id file descriptor. + * - descriptor_peer: Peer process id file descriptor. + * - device_bind: Bind device. * - ebpf_port_reuse_attach: Re-use port in E-Berkeley Packet Filter. * - error: Error. * - filter_attach: Attach filter. @@ -306,18 +1256,26 @@ extern "C" { * - low_at_receive: Low at receive. * - low_at_send: Low at send. * - mark: Mark. + * - memory_device_buffer_e: DMA buffered device memory. + * - memory_device_linear_e: Linear device memory. + * - memory_device_need_not_e: Device memory not needed. * - memory_information: Memory information. + * - memory_reserve: Reserve memory. * - name_peer: Peer name. * - napi_id_incoming: Incomming NAPI identifier. * - out_of_band_inline: Inline Out of Band. * - pacing_rate_max: Max pacing rate. * - peek_off: Peek off. * - poll_busy: Busy poll. + * - poll_busy_prefer: Busy poll (prefer). * - port_reuse: Re-use port. * - priority: Priority. * - protocol: Protocol. + * - receive_mark: Receive mark. * - receive_overflow: Receive Overflow. + * - receive_priority: Receive Priority. * - route_not: Don't Route. + * - scm_option: SCM Option identifier. * - security_authentication: Authentication security. * - security_network: Network security. * - security_pass: Pass security. @@ -325,25 +1283,37 @@ extern "C" { * - security_transport: Security transport. * - select_error_queue: Select error queue. * - time_out_receive: Receive time out. + * - time_out_receive_new: Receive time out (new). + * - time_out_receive_old: Receive time out (old). * - time_out_send: Send time out. + * - time_out_send_new: Send time out (new). + * - time_out_send_old: Send time out (old). * - time_stamp: Time stamp. * - time_stamp_namespace: Time stamp namespace. + * - time_stamp_namespace_new: Time stamp namespace (new). + * - time_stamp_namespace_old: Time stamp namespace (old). * - time_stamping: Time stamping. + * - time_stamping_new: Time stamping (new). + * - time_stamping_old: Time stamping (old). * - time_stamping_packet: Time stamping packet. * - time_stamping_stats: Time stamping statistics. * - time_transmit: Transmission time. + * - transmit_rehash: Re-hash transmission. * - type: Type. * - wifi_status: Wifi status. - * - zero_copy_d Zero copy. + * - zero_copy: Zero copy. */ #ifndef _di_f_socket_option_e_ enum { f_socket_option_address_reuse_e = SO_REUSEADDR, f_socket_option_advice_cnx_e = SO_CNX_ADVICE, + f_socket_option_bind_index_e = SO_BINDTOIFINDEX, f_socket_option_bpf_attach_e = SO_ATTACH_BPF, f_socket_option_bpf_detach_e = SO_DETACH_BPF, + f_socket_option_bpf_detach_reuse_e = SO_DETACH_REUSEPORT_BPF, f_socket_option_bpf_extensions_e = SO_BPF_EXTENSIONS, f_socket_option_broadcast_e = SO_BROADCAST, + f_socket_option_buffer_lock_e = SO_BUF_LOCK, f_socket_option_buffer_receive_e = SO_RCVBUF, f_socket_option_buffer_receive_force_e = SO_RCVBUFFORCE, f_socket_option_buffer_send_e = SO_SNDBUF, @@ -353,12 +1323,15 @@ extern "C" { f_socket_option_compatibility_bsd_e = SO_BSDCOMPAT, f_socket_option_connection_accept_e = SO_ACCEPTCONN, f_socket_option_cookie_e = SO_COOKIE, + f_socket_option_cookie_namespace_e = SO_NETNS_COOKIE, f_socket_option_cpu_incoming_e = SO_INCOMING_CPU, f_socket_option_credentials_pass_e = SO_PASSCRED, f_socket_option_credentials_peer_e = SO_PEERCRED, f_socket_option_debug_e = SO_DEBUG, - f_socket_option_device_bind_e = SO_BINDTODEVICE, f_socket_option_domain_e = SO_DOMAIN, + f_socket_option_descriptor_pass_e = SO_PASSPIDFD, + f_socket_option_descriptor_peer_e = SO_PEERPIDFD, + f_socket_option_device_bind_e = SO_BINDTODEVICE, f_socket_option_ebpf_port_reuse_attach_e = SO_ATTACH_REUSEPORT_EBPF, f_socket_option_error_e = SO_ERROR, f_socket_option_filter_attach_e = SO_ATTACH_FILTER, @@ -372,18 +1345,26 @@ extern "C" { f_socket_option_low_at_receive_e = SO_RCVLOWAT, f_socket_option_low_at_send_e = SO_SNDLOWAT, f_socket_option_mark_e = SO_MARK, + f_socket_option_memory_device_buffer_e = SO_DEVMEM_DMABUF, + f_socket_option_memory_device_linear_e = SO_DEVMEM_LINEAR, + f_socket_option_memory_device_need_not_e = SO_DEVMEM_DONTNEED, f_socket_option_memory_information_e = SO_MEMINFO, + f_socket_option_memory_reserve_e = SO_RESERVE_MEM, f_socket_option_name_peer_e = SO_PEERNAME, f_socket_option_napi_id_incoming_e = SO_INCOMING_NAPI_ID, f_socket_option_out_of_band_inline_e = SO_OOBINLINE, f_socket_option_pacing_rate_max_e = SO_MAX_PACING_RATE, f_socket_option_peek_off_e = SO_PEEK_OFF, f_socket_option_poll_busy_e = SO_BUSY_POLL, + f_socket_option_poll_busy_prefer_e = SO_PREFER_BUSY_POLL, f_socket_option_port_reuse_e = SO_REUSEPORT, f_socket_option_priority_e = SO_PRIORITY, f_socket_option_protocol_e = SO_PROTOCOL, + f_socket_option_receive_mark_e = SO_RCVMARK, f_socket_option_receive_overflow_e = SO_RXQ_OVFL, + f_socket_option_receive_priority_e = SO_RCVPRIORITY, f_socket_option_route_not_e = SO_DONTROUTE, + f_socket_option_scm_option_id = SCM_TS_OPT_ID, f_socket_option_security_authentication_e = SO_SECURITY_AUTHENTICATION, f_socket_option_security_network_e = SO_SECURITY_ENCRYPTION_NETWORK, f_socket_option_security_pass_e = SO_PASSSEC, @@ -391,13 +1372,22 @@ extern "C" { f_socket_option_security_transport_e = SO_SECURITY_ENCRYPTION_TRANSPORT, f_socket_option_select_error_queue_e = SO_SELECT_ERR_QUEUE, f_socket_option_time_out_receive_e = SO_RCVTIMEO, + f_socket_option_time_out_receive_new_e = SO_RCVTIMEO_NEW, + f_socket_option_time_out_receive_old_e = SO_RCVTIMEO_OLD, f_socket_option_time_out_send_e = SO_SNDTIMEO, + f_socket_option_time_out_send_new_e = SO_SNDTIMEO_NEW, + f_socket_option_time_out_send_old_e = SO_SNDTIMEO_OLD, f_socket_option_time_stamp_e = SO_TIMESTAMP, f_socket_option_time_stamp_namespace_e = SO_TIMESTAMPNS, + f_socket_option_time_stamp_namespace_new_e = SO_TIMESTAMPNS_NEW, + f_socket_option_time_stamp_namespace_old_e = SO_TIMESTAMPNS_OLD, f_socket_option_time_stamping_e = SO_TIMESTAMPING, + f_socket_option_time_stamping_new_e = SO_TIMESTAMPING_NEW, + f_socket_option_time_stamping_old_e = SO_TIMESTAMPING_OLD, f_socket_option_time_stamping_packet_e = SCM_TIMESTAMPING_PKTINFO, f_socket_option_time_stamping_stats_e = SCM_TIMESTAMPING_OPT_STATS, f_socket_option_time_transmit_e = SO_TXTIME, + f_socket_option_transmit_rehash_e = SO_TXREHASH, f_socket_option_type_e = SO_TYPE, f_socket_option_wifi_status_e = SO_WIFI_STATUS, f_socket_option_zero_copy_e = SO_ZEROCOPY, @@ -410,30 +1400,51 @@ extern "C" { * Disclaimer: This may be different from system to system depending on the libc and other factors. * * f_socket_protocol_*_e: - * - ip: Internet Protocol and pseudo protocol number or IPv6 Hop by Hop Option (RFC1883). + * - adfs: ADFS. * - ah: Authentication Header (RFC2402). + * - ahip: AHIP. + * - argus: Argus. * - ax25: AX.25 Frames. + * - bha: BHA. + * - brsatmon: BRSATMON. + * - cftp: CFTP. + * - chaos: Chaos. + * - cphb: CPHB. + * - cpnx: CPNX. * - dccp: Datagram Congestion Control Prot. (RFC4340). * - ddp: Datagram Delivery Protocol. + * - dgp: DGP. + * - done: DONE. + * - dstopts: DSTOPTS. * - egp: Exterior Gateway Protocol - * - eigrp: Enhanced Interior Routing Protocol. + * - emcon: EMCON. * - encap: Yet Another IP Encapsulation (RFC1241). * - encryption: Any private encryption scheme. + * - eon: EON. * - esp: Encapsulated Security Payload (RFC2406). * - etherip: Ethernet within IP Encapsulation (RFC3378). * - fc: Fibre Channel. * - ggp: Gateway-Gateway Protocol. + * - gmtp: GMTP. * - gre: General Routing Encapsulation. + * - hello: Hello. * - hip: Host Identity Protocol. * - hmp: Host Monitoring Protocol. * - icmp: internet control message protocol. * - idpr_cmtp: IDPR Control Message Transport. + * - idpr: IDPR. * - idrp: Inter-Domain Routing Protocol. * - igmp: Internet Group Management. * - igp: Any private Interior Gateway Protocol. + * - igrp: Enhanced Interior Routing Protocol. + * - inlsp: INLSP. + * - ip: Internet Protocol and pseudo protocol number or IPv6 Hop by Hop Option (RFC1883). * - ipcomp: IP Payload Compression Protocol. + * - ipcv: IPCV. * - ipencap: IP Encapsulated in IP. - * - ipip: IP within IP Encapsulation Protocol + * - ipeip: IP within IP Encapsulation Protocol + * - ippc: IPPC. + * - ipv4: Internet Protocol Version 4. * - ipv6: Internet Protocol Version 6. * - ipv6_frag: Internet Protocol Version 6 Fragment Header. * - ipv6_icmp: ICMP for IPv6. @@ -442,56 +1453,115 @@ extern "C" { * - ipv6_route: Internet Protocol Version 6 Routing Header. * - isis: IS-IS over IPv4. * - iso_tp4: ISO Transport Protocol class 4 (RFC905). + * - kryptolan: Krypto LAN. + * - larp: LARP. + * - leaf_1: LEAF 1. + * - leaf_2: LEAF 2. * - l2tp: Layer Two Tunneling Protocol (RFC2661). * - manet: MANET Protocols (RFC5498). + * - meas: MEAS. + * - mhrp: MHRP. + * - micp: MICP. + * - mobile: Mobile. * - mobility_header: Mobility Support for IPv6 (RFC3775). * - mpls_in_ip: MPLS-in-IP (RFC4023). - * - ospf: Open Shortest Path First IGP. + * - mtp: MTP. + * - mux: MUX. + * - nhrp: NHRP. + * - none: NONE. + * - nsp: NSP. + * - nvpii: NVPII. + * - ospfigp: Open Shortest Path First IGP. + * - pfsync: PFSYNC. + * - pgm: PGM. + * - pigp: PIGP. * - pim: Protocol Independent Multicast. + * - prm: PRM. * - pup: PARC Universal Packet. + * - pvp: PVP. + * - rccmon: RCCMON. * - rdp: Reliable Datagram Protocol. * - rohc: Robust Header Compression. * - rspf: Radio Shortest Path First. * - rsvp: Reservation Protocol. + * - rvd: RVD. + * - satexpak: SATEXPAK. + * - satmon: SATMON. + * - sccsp: SCCSP. * - sctp: Stream Control Transmission Protocol. * - shim6: Shim6 Protocol (RFC5533). * - skip: SKIP. + * - srpc: SRPC. * - st: ST datagram mode. + * - svmtp: SVMTP. + * - swipe: Swipe. + * - tcf: TCF. * - tcp: Transmission Control Protocol + * - tlsp: TLSP. + * - trunc_1: Trunc 1. + * - trunc_2: Trunc 2. + * - ttp: TTP. * - udp: User Datagram Protocol. * - udplite: UDP-Lite (RFC3828). + * - vines: VINES. + * - visa: VISA. * - vmtp: Versatile Message Transport. * - vrrp: Virtual Router Redundancy Protocol (RFC5798). + * - wbexpak: WBEXPAK. + * - wbmon: WBMON. * - wesp: Wrapped Encapsulating Security Payload. + * - wsn: WSN. + * - xnet: XNET. * - xns_idp: Xerox NS IDP. * - xtp: Xpress Transfer Protocol. */ #ifndef _di_f_socket_protocol_e_ enum { - f_socket_protocol_ip_e = 0, + f_socket_protocol_adfs_e = 68, f_socket_protocol_ah_e = 51, + f_socket_protocol_ahip_e = 61, + f_socket_protocol_argus_e = 13, f_socket_protocol_ax25_e = 93, + f_socket_protocol_bha_e = 49, + f_socket_protocol_brsatmon_e = 76, + f_socket_protocol_cftp_e = 62, + f_socket_protocol_chaos_e = 16, + f_socket_protocol_cphb_e = 73, + f_socket_protocol_cpnx_e = 72, f_socket_protocol_dccp_e = 33, f_socket_protocol_ddp_e = 37, + f_socket_protocol_dgp_e = 86, + f_socket_protocol_done_e = 257, + f_socket_protocol_dstopts_e = 60, f_socket_protocol_egp_e = 8, - f_socket_protocol_eigrp_e = 88, + f_socket_protocol_emcon_e = 14, f_socket_protocol_encap_e = 98, f_socket_protocol_encryption_e = 99, + f_socket_protocol_eon_e = 80, f_socket_protocol_esp_e = 50, f_socket_protocol_etherip_e = 97, f_socket_protocol_fc_e = 133, f_socket_protocol_ggp_e = 3, + f_socket_protocol_gmtp_e = 100, f_socket_protocol_gre_e = 47, + f_socket_protocol_hello_e = 63, f_socket_protocol_hip_e = 139, f_socket_protocol_hmp_e = 20, f_socket_protocol_icmp_e = 1, f_socket_protocol_idpr_cmtp_e = 38, + f_socket_protocol_idpr_e = 35, f_socket_protocol_idrp_e = 45, f_socket_protocol_igmp_e = 2, f_socket_protocol_igp_e = 9, + f_socket_protocol_igrp_e = 88, + f_socket_protocol_inlsp_e = 52, + f_socket_protocol_ip_e = 0, f_socket_protocol_ipcomp_e = 108, + f_socket_protocol_ipcv_e = 71, f_socket_protocol_ipencap_e = 4, - f_socket_protocol_ipip_e = 94, + f_socket_protocol_ipeip_e = 94, + f_socket_protocol_ippc_e = 67, + f_socket_protocol_ipv4_e = 4, f_socket_protocol_ipv6_e = 41, f_socket_protocol_ipv6_frag_e = 44, f_socket_protocol_ipv6_icmp_e = 58, @@ -500,27 +1570,65 @@ extern "C" { f_socket_protocol_ipv6_route_e = 43, f_socket_protocol_isis_e = 124, f_socket_protocol_iso_tp4_e = 29, + f_socket_protocol_kryptolan_e = 65, + f_socket_protocol_larp_e = 91, + f_socket_protocol_leaf_1_e = 25, + f_socket_protocol_leaf_2_e = 26, f_socket_protocol_l2tp_e = 115, f_socket_protocol_manet_e = 138, + f_socket_protocol_meas_e = 19, + f_socket_protocol_mhrp_e = 49, + f_socket_protocol_micp_e = 95, + f_socket_protocol_mobile_e = 55, f_socket_protocol_mobility_header_e = 135, f_socket_protocol_mpls_in_ip_e = 137, - f_socket_protocol_ospf_e = 89, + f_socket_protocol_mtp_e = 92, + f_socket_protocol_mux_e = 18, + f_socket_protocol_nhrp_e = 54, + f_socket_protocol_none_e = 59, + f_socket_protocol_nsp_e = 31, + f_socket_protocol_nvpii_e = 11, + f_socket_protocol_ospfigp_e = 89, + f_socket_protocol_pfsync_e = 240, + f_socket_protocol_pgm_e = 113, + f_socket_protocol_pigp_e = 9, f_socket_protocol_pim_e = 103, + f_socket_protocol_prm_e = 21, f_socket_protocol_pup_e = 12, + f_socket_protocol_pvp_e = 75, + f_socket_protocol_rccmon_e = 10, f_socket_protocol_rdp_e = 27, f_socket_protocol_rohc_e = 142, f_socket_protocol_rspf_e = 73, f_socket_protocol_rsvp_e = 46, + f_socket_protocol_rvd_e = 66, + f_socket_protocol_satexpak_e = 64, + f_socket_protocol_satmon_e = 69, + f_socket_protocol_sccsp_e = 96, f_socket_protocol_sctp_e = 132, f_socket_protocol_shim6_e = 140, f_socket_protocol_skip_e = 57, + f_socket_protocol_srpc_e = 90, f_socket_protocol_st_e = 5, + f_socket_protocol_svmtp_e = 82, + f_socket_protocol_swipe_e = 53, + f_socket_protocol_tcf_e = 87, f_socket_protocol_tcp_e = 6, + f_socket_protocol_tlsp_e = 56, + f_socket_protocol_trunc_1_e = 23, + f_socket_protocol_trunc_2_e = 24, + f_socket_protocol_ttp_e = 84, f_socket_protocol_udp_e = 17, f_socket_protocol_udplite_e = 136, + f_socket_protocol_vines_e = 83, + f_socket_protocol_visa_e = 70, f_socket_protocol_vmtp_e = 81, f_socket_protocol_vrrp_e = 112, + f_socket_protocol_wbexpak_e = 79, + f_socket_protocol_wbmon_e = 78, f_socket_protocol_wesp_e = 141, + f_socket_protocol_wsn_e = 74, + f_socket_protocol_xnet_e = 15, f_socket_protocol_xns_idp_e = 22, f_socket_protocol_xtp_e = 36, }; // enum @@ -555,6 +1663,8 @@ extern "C" { * - key: PF_KEY key management API. * - llc: Linux LLC. * - local: Localhost, pipes, Unix sockets, or file sockets (PF_LOCAL, PF_UNIX, PF_FILE). + * - max: The maximum value for known protocol families (this is not a protocol family). + * - mctp: MCTP. * - mpls: MPLS. * - netbeui: Reserved for 802.2LLC project. * - netlink: Netlink and BSD (PF_NETLINK and PF_ROUTE). @@ -574,7 +1684,7 @@ extern "C" { * - vsock: vSockets. * - wanpipe: Wanpipe API sockets. * - x25: Reserved for X.25 project. - * - max: The maximum value for known protocol families (this is not a protocol family). + * - xdp: XDP. */ #ifndef _di_f_socket_protocol_family_e_ enum { @@ -603,6 +1713,8 @@ extern "C" { f_socket_protocol_family_key_e = PF_KEY, f_socket_protocol_family_llc_e = PF_LLC, f_socket_protocol_family_local_e = PF_LOCAL, + f_socket_protocol_family_max_e = PF_MAX, + f_socket_protocol_family_mctp_e = PF_MCTP, f_socket_protocol_family_mpls_e = PF_MPLS, f_socket_protocol_family_netbeui_e = PF_NETBEUI, f_socket_protocol_family_netlink_e = PF_NETLINK, @@ -622,7 +1734,7 @@ extern "C" { f_socket_protocol_family_vsock_e = PF_VSOCK, f_socket_protocol_family_wanpipe_e = PF_WANPIPE, f_socket_protocol_family_x25_e = PF_X25, - f_socket_protocol_family_max_e = PF_MAX, + f_socket_protocol_family_xDP_e = PF_XDP, }; // enum #endif // _di_f_socket_protocol_family_e_