#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_*.
* - 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).
* - 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 {
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,
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_
* 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_
* - iucv: Iucv.
* - kcm: Kcm.
* - llc: Llc.
+ * - mctp: Mctp.
+ * - mptcp: MPTCP.
* - netbeui: Netbeui.
* - netlink: Netlink.
* - nfc: Nfc.
* - 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 {
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,
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.
* - 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.
* - 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.
* - 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,
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,
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,
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,
* 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.
* - 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,
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
* - 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).
* - 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 {
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,
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_