aboutsummaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authorAndrey Konovalov <andreyknvl@gmail.com>2017-04-08 20:19:49 +0200
committerGitHub <noreply@github.com>2017-04-08 20:19:49 +0200
commitf6f7c2edd8c853324638825048ee7784b5dbf61d (patch)
treedc259a9ca1ffa7c9f53d849e828a14cb0e859f4f /sys
parent095ce7caa2d5221a676176cd8e5ce37c6e9bec8e (diff)
parent581bd38d0fcbf05fdd83b555cf3544622c6839ee (diff)
Merge pull request #159 from xairy/up-improve-sockets
Improve sockets descriptions
Diffstat (limited to 'sys')
-rw-r--r--sys/socket.txt98
-rw-r--r--sys/socket_amd64.const70
-rw-r--r--sys/socket_arm64.const70
-rw-r--r--sys/socket_bluetooth.txt92
-rw-r--r--sys/socket_inet.txt156
-rw-r--r--sys/socket_inet6.txt81
-rw-r--r--sys/socket_inet6_amd64.const76
-rw-r--r--sys/socket_inet6_arm64.const76
-rw-r--r--sys/socket_inet6_ppc64le.const76
-rw-r--r--sys/socket_inet_amd64.const68
-rw-r--r--sys/socket_inet_arm64.const68
-rw-r--r--sys/socket_inet_dccp.txt18
-rw-r--r--sys/socket_inet_ppc64le.const68
-rwxr-xr-xsys/socket_inet_sctp.txt154
-rw-r--r--sys/socket_inet_tcp.txt18
-rw-r--r--sys/socket_inet_udp.txt12
-rw-r--r--sys/socket_ipx.txt16
-rwxr-xr-xsys/socket_kcm.txt10
-rw-r--r--sys/socket_netlink.txt18
-rwxr-xr-xsys/socket_netrom.txt32
-rw-r--r--sys/socket_nfc.txt4
-rw-r--r--sys/socket_ppc64le.const70
22 files changed, 879 insertions, 472 deletions
diff --git a/sys/socket.txt b/sys/socket.txt
index e36d40366..686b6aee1 100644
--- a/sys/socket.txt
+++ b/sys/socket.txt
@@ -3,13 +3,14 @@
# TODO: due to autobind a socket can bind to port 0, that will result in a random port which is not reproducible
+include <asm/ioctls.h>
include <linux/if_tun.h>
-include <linux/socket.h>
+include <linux/if_bridge.h>
include <linux/net.h>
include <linux/net_tstamp.h>
include <linux/route.h>
+include <linux/socket.h>
include <uapi/linux/in.h>
-include <asm/ioctls.h>
resource sock[fd]
@@ -81,6 +82,7 @@ sockaddr [
nfc sockaddr_nfc
# TODO: AF_VSOCK
# TODO: AF_QIPCRTR
+ ethernet sockaddr_ethernet
generic sockaddr_generic
]
@@ -124,6 +126,7 @@ sockaddr_all [
nfc_llcp sockaddr_nfc_llcp
# TODO: AF_VSOCK
# TODO: AF_QIPCRTR
+ ethernet sockaddr_ethernet
generic sockaddr_all_generic
] [varlen]
@@ -164,7 +167,9 @@ cmsghdr {
data array[int8]
} [align_ptr]
-# Generic socket options
+# Socket options
+
+# http://lxr.free-electrons.com/source/include/uapi/asm-generic/socket.h
setsockopt$sock_void(fd sock, level const[SOL_SOCKET], optname flags[sockopt_opt_sock_void], optval const[0], optlen const[0])
getsockopt$sock_int(fd sock, level const[SOL_SOCKET], optname flags[sockopt_opt_sock_int], optval ptr[out, int32], optlen ptr[inout, len[optval, int32]])
@@ -180,27 +185,67 @@ setsockopt$sock_attach_bpf(fd sock, level const[SOL_SOCKET], optname const[SO_AT
setsockopt$SO_TIMESTAMPING(fd sock, level const[SOL_SOCKET], optname const[SO_TIMESTAMPING], optval ptr[in, flags[sockopt_so_timestamping, int32]], optlen len[optval])
getsockopt$SO_TIMESTAMPING(fd sock, level const[SOL_SOCKET], optname const[SO_TIMESTAMPING], optval ptr[out, int32], optlen ptr[inout, len[optval, int32]])
setsockopt$SO_ATTACH_FILTER(fd sock, level const[SOL_SOCKET], optname const[SO_ATTACH_FILTER], optval ptr[in, sock_fprog], optlen len[optval])
+setsockopt$SO_BINDTODEVICE(fd sock, level const[SOL_SOCKET], optname const[SO_BINDTODEVICE], optval ptr[in, devname], optlen len[optval])
+getsockopt$SO_BINDTODEVICE(fd sock, level const[SOL_SOCKET], optname const[SO_BINDTODEVICE], optval ptr[out, devname], optlen len[optval])
+getsockopt$SO_PEERCRED(fd sock, level const[SOL_SOCKET], optname const[SO_PEERCRED], optval ptr[out, ucred], optlen len[optval])
getsockopt$sock_buf(fd sock, level const[SOL_SOCKET], optname flags[sockopt_opt_sock_buf], optval buffer[out], optlen ptr[inout, len[optval, int32]])
sockopt_opt_sock_void = SO_DETACH_FILTER, SO_MARK
sockopt_opt_sock_int = SO_ACCEPTCONN, SO_BROADCAST, SO_DEBUG, SO_DOMAIN, SO_ERROR, SO_DONTROUTE, SO_KEEPALIVE, SO_PEEK_OFF, SO_PRIORITY, SO_PROTOCOL, SO_RCVBUF, SO_RCVBUFFORCE, SO_RCVLOWAT, SO_SNDLOWAT, SO_REUSEADDR, SO_SNDBUF, SO_SNDBUFFORCE, SO_TIMESTAMP, SO_TYPE, SO_REUSEPORT, SO_OOBINLINE, SO_NO_CHECK, SO_PASSCRED, SO_TIMESTAMPNS, SO_LOCK_FILTER, SO_PASSSEC, SO_RXQ_OVFL, SO_WIFI_STATUS, SO_NOFCS, SO_SELECT_ERR_QUEUE, SO_BUSY_POLL, SO_MAX_PACING_RATE
sockopt_opt_sock_timeval = SO_RCVTIMEO, SO_SNDTIMEO
-sockopt_opt_sock_buf = SO_BINDTODEVICE, SO_PEERCRED, SO_PEERNAME, SO_PEERSEC, SO_GET_FILTER
+sockopt_opt_sock_buf = SO_PEERNAME, SO_PEERSEC, SO_GET_FILTER
sockopt_so_timestamping = SOF_TIMESTAMPING_TX_HARDWARE, SOF_TIMESTAMPING_TX_SOFTWARE, SOF_TIMESTAMPING_RX_HARDWARE, SOF_TIMESTAMPING_RX_SOFTWARE, SOF_TIMESTAMPING_SOFTWARE, SOF_TIMESTAMPING_SYS_HARDWARE, SOF_TIMESTAMPING_RAW_HARDWARE, SOF_TIMESTAMPING_OPT_ID, SOF_TIMESTAMPING_TX_SCHED, SOF_TIMESTAMPING_TX_ACK, SOF_TIMESTAMPING_OPT_CMSG, SOF_TIMESTAMPING_OPT_TSONLY
-# Generic socket ioctls
+# Socket ioctls
+
+# Since some socket ioctls are forwarded to the network device, adding device ioctls here as well.
# http://lxr.free-electrons.com/source/include/uapi/linux/sockios.h
-ioctl$SIOCOUTQ(fd sock, cmd const[SIOCOUTQ], arg ptr[out, int32])
-ioctl$SIOCINQ(fd sock, cmd const[SIOCINQ], arg ptr[out, int32])
-ioctl$SIOCGIFNAME(fd sock, cmd const[SIOCGIFNAME], arg ptr[inout, ifreq])
+# http://lxr.free-electrons.com/source/include/uapi/asm-generic/sockios.h
+
+# TODO: SIOCADDRT, SIOCDELRT, SIOCRTMSG
+# TODO: ETHTOOL commands (SIOCETHTOOL, ...)
+# TODO: SIOCDRARP, SIOCGRARP, SIOCSRARP
+# TODO: SIOCGIFVLAN, SIOCSIFVLAN
+# TODO: SIOCGSTAMP, SIOCGSTAMPNS
+
+ioctl$sock_SIOCOUTQ(fd sock, cmd const[SIOCOUTQ], arg ptr[out, int32])
+ioctl$sock_SIOCINQ(fd sock, cmd const[SIOCINQ], arg ptr[out, int32])
+
+ioctl$sock_SIOCGIFCONF(fd sock, cmd const[SIOCGIFNAME], arg ptr[inout, ifconf])
+
+ifreq_ioctls = SIOCGIFNAME, SIOCSIFLINK, SIOCGIFFLAGS, SIOCSIFFLAGS, SIOCGIFADDR, SIOCSIFADDR, SIOCGIFDSTADDR, SIOCSIFDSTADDR, SIOCGIFBRDADDR, SIOCSIFBRDADDR, SIOCGIFNETMASK, SIOCSIFNETMASK, SIOCGIFMETRIC, SIOCSIFMETRIC, SIOCGIFMEM, SIOCSIFMEM, SIOCGIFMTU, SIOCSIFMTU, SIOCSIFNAME, SIOCSIFHWADDR, SIOCGIFENCAP, SIOCSIFENCAP, SIOCGIFHWADDR, SIOCGIFSLAVE, SIOCSIFSLAVE, SIOCADDMULTI, SIOCDELMULTI, SIOCGIFINDEX, SIOCSIFPFLAGS, SIOCGIFPFLAGS, SIOCDIFADDR, SIOCSIFHWBROADCAST, SIOCGIFCOUNT, SIOCGIFTXQLEN, SIOCSIFTXQLEN, SIOCETHTOOL, SIOCGMIIPHY, SIOCGMIIREG, SIOCSMIIREG, SIOCWANDEV, SIOCGIFMAP, SIOCSIFMAP, SIOCBONDENSLAVE, SIOCBONDRELEASE, SIOCBONDSETHWADDR, SIOCBONDSLAVEINFOQUERY, SIOCBONDINFOQUERY, SIOCBONDCHANGEACTIVE, SIOCBRADDIF, SIOCBRDELIF, SIOCSHWTSTAMP, SIOCGHWTSTAMP
+
+ioctl$sock_ifreq(fd sock, cmd flags[ifreq_ioctls], arg ptr[inout, ifreq])
+
+ioctl$sock_SIOCGIFBR(fd sock, cmd const[SIOCGIFBR], arg ptr[inout, brctl_arg])
+ioctl$sock_SIOCSIFBR(fd sock, cmd const[SIOCGIFBR], arg ptr[inout, brctl_arg])
+
+ioctl$sock_SIOCOUTQNSD(fd sock, cmd const[SIOCOUTQNSD], arg ptr[out, int32])
+
+ioctl$sock_SIOCGSKNS(fd sock, cmd const[SIOCGSKNS], arg ptr[inout, int32])
+
+ioctl$sock_SIOCADDDLCI(fd sock, cmd const[SIOCADDDLCI], arg ptr[inout, dlci_add])
+ioctl$sock_SIOCDELDLCI(fd sock, cmd const[SIOCDELDLCI], arg ptr[in, dlci_add])
-# SIOCSIFLINK not used
+ioctl$sock_SIOCBRADDBR(fd sock, cmd const[SIOCBRADDBR], arg ptr[in, devname])
+ioctl$sock_SIOCBRDELBR(fd sock, cmd const[SIOCBRDELBR], arg ptr[in, devname])
-ioctl$SIOCGIFCONF(fd sock, cmd const[SIOCGIFNAME], arg ptr[inout, ifconf])
+define SIOCDEVPRIVATE_BEG (SIOCDEVPRIVATE)
+define SIOCDEVPRIVATE_END (SIOCDEVPRIVATE + 15)
-# TODO: more here
+define SIOCPROTOPRIVATE_BEG (SIOCPROTOPRIVATE)
+define SIOCPROTOPRIVATE_END (SIOCPROTOPRIVATE + 15)
+
+ioctl$sock_netdev_private(fd sock, cmd int16[SIOCDEVPRIVATE_BEG:SIOCDEVPRIVATE_END], arg ptr[in, array[int8]])
+ioctl$sock_proto_private(fd sock, cmd int16[SIOCPROTOPRIVATE_BEG:SIOCPROTOPRIVATE_END], arg ptr[in, array[int8]])
+
+ioctl$sock_FIOSETOWN(fd sock, cmd const[FIOSETOWN], arg ptr[in, pid])
+ioctl$sock_SIOCSPGRP(fd sock, cmd const[SIOCSPGRP], arg ptr[in, pid])
+
+ioctl$sock_FIOGETOWN(fd sock, cmd const[FIOGETOWN], arg ptr[out, pid])
+ioctl$sock_SIOCGPGRP(fd sock, cmd const[SIOCGPGRP], arg ptr[out, pid])
ifreq {
ifr_ifrn devname
@@ -315,3 +360,34 @@ ifconf_req {
ifc_len len[ifcu_req, int32]
ifcu_req ptr[inout, ifreq, opt]
}
+
+brctl_cmds = BRCTL_GET_VERSION, BRCTL_GET_BRIDGES, BRCTL_ADD_BRIDGE, BRCTL_DEL_BRIDGE
+
+brctl_arg [
+ get brctl_arg_get
+ add_del brctl_arg_add_del
+ generic brctl_arg_generic
+]
+
+brctl_arg_get {
+ cmd const[BRCTL_GET_BRIDGES, int64]
+ buf ptr[out, array[int8]]
+ indices int64
+}
+
+brctl_arg_add_del {
+ cmd const[BRCTL_ADD_BRIDGE, int64]
+ devname ptr[in, devname]
+ pad int64
+}
+
+brctl_arg_generic {
+ a0 int64
+ a1 int64
+ a2 int64
+}
+
+dlci_add {
+ devname devname
+ dlci int16
+}
diff --git a/sys/socket_amd64.const b/sys/socket_amd64.const
index 2da848af5..894687482 100644
--- a/sys/socket_amd64.const
+++ b/sys/socket_amd64.const
@@ -9,6 +9,12 @@ AF_NETLINK = 16
AF_PACKET = 17
AF_UNIX = 1
AF_X25 = 9
+BRCTL_ADD_BRIDGE = 2
+BRCTL_DEL_BRIDGE = 3
+BRCTL_GET_BRIDGES = 1
+BRCTL_GET_VERSION = 0
+FIOGETOWN = 35075
+FIOSETOWN = 35073
IFF_ATTACH_QUEUE = 512
IFF_DETACH_QUEUE = 1024
IFF_MULTI_QUEUE = 256
@@ -40,9 +46,73 @@ MSG_WAITALL = 256
MSG_WAITFORONE = 65536
SHUT_RD = 0
SHUT_WR = 1
+SIOCADDDLCI = 35200
+SIOCADDMULTI = 35121
+SIOCBONDCHANGEACTIVE = 35221
+SIOCBONDENSLAVE = 35216
+SIOCBONDINFOQUERY = 35220
+SIOCBONDRELEASE = 35217
+SIOCBONDSETHWADDR = 35218
+SIOCBONDSLAVEINFOQUERY = 35219
+SIOCBRADDBR = 35232
+SIOCBRADDIF = 35234
+SIOCBRDELBR = 35233
+SIOCBRDELIF = 35235
+SIOCDELDLCI = 35201
+SIOCDELMULTI = 35122
+SIOCDEVPRIVATE_BEG = 35312
+SIOCDEVPRIVATE_END = 35327
+SIOCDIFADDR = 35126
+SIOCETHTOOL = 35142
+SIOCGHWTSTAMP = 35249
+SIOCGIFADDR = 35093
+SIOCGIFBR = 35136
+SIOCGIFBRDADDR = 35097
+SIOCGIFCOUNT = 35128
+SIOCGIFDSTADDR = 35095
+SIOCGIFENCAP = 35109
+SIOCGIFFLAGS = 35091
+SIOCGIFHWADDR = 35111
+SIOCGIFINDEX = 35123
+SIOCGIFMAP = 35184
+SIOCGIFMEM = 35103
+SIOCGIFMETRIC = 35101
+SIOCGIFMTU = 35105
SIOCGIFNAME = 35088
+SIOCGIFNETMASK = 35099
+SIOCGIFPFLAGS = 35125
+SIOCGIFSLAVE = 35113
+SIOCGIFTXQLEN = 35138
+SIOCGMIIPHY = 35143
+SIOCGMIIREG = 35144
+SIOCGPGRP = 35076
+SIOCGSKNS = 35148
SIOCINQ = 21531
SIOCOUTQ = 21521
+SIOCOUTQNSD = 35147
+SIOCPROTOPRIVATE_BEG = 35296
+SIOCPROTOPRIVATE_END = 35311
+SIOCSHWTSTAMP = 35248
+SIOCSIFADDR = 35094
+SIOCSIFBRDADDR = 35098
+SIOCSIFDSTADDR = 35096
+SIOCSIFENCAP = 35110
+SIOCSIFFLAGS = 35092
+SIOCSIFHWADDR = 35108
+SIOCSIFHWBROADCAST = 35127
+SIOCSIFLINK = 35089
+SIOCSIFMAP = 35185
+SIOCSIFMEM = 35104
+SIOCSIFMETRIC = 35102
+SIOCSIFMTU = 35106
+SIOCSIFNAME = 35107
+SIOCSIFNETMASK = 35100
+SIOCSIFPFLAGS = 35124
+SIOCSIFSLAVE = 35120
+SIOCSIFTXQLEN = 35139
+SIOCSMIIREG = 35145
+SIOCSPGRP = 35074
+SIOCWANDEV = 35146
SOCK_CLOEXEC = 524288
SOCK_DGRAM = 2
SOCK_NONBLOCK = 2048
diff --git a/sys/socket_arm64.const b/sys/socket_arm64.const
index aef08d7a2..bbf0e6628 100644
--- a/sys/socket_arm64.const
+++ b/sys/socket_arm64.const
@@ -9,6 +9,12 @@ AF_NETLINK = 16
AF_PACKET = 17
AF_UNIX = 1
AF_X25 = 9
+BRCTL_ADD_BRIDGE = 2
+BRCTL_DEL_BRIDGE = 3
+BRCTL_GET_BRIDGES = 1
+BRCTL_GET_VERSION = 0
+FIOGETOWN = 35075
+FIOSETOWN = 35073
IFF_ATTACH_QUEUE = 512
IFF_DETACH_QUEUE = 1024
IFF_MULTI_QUEUE = 256
@@ -40,9 +46,73 @@ MSG_WAITALL = 256
MSG_WAITFORONE = 65536
SHUT_RD = 0
SHUT_WR = 1
+SIOCADDDLCI = 35200
+SIOCADDMULTI = 35121
+SIOCBONDCHANGEACTIVE = 35221
+SIOCBONDENSLAVE = 35216
+SIOCBONDINFOQUERY = 35220
+SIOCBONDRELEASE = 35217
+SIOCBONDSETHWADDR = 35218
+SIOCBONDSLAVEINFOQUERY = 35219
+SIOCBRADDBR = 35232
+SIOCBRADDIF = 35234
+SIOCBRDELBR = 35233
+SIOCBRDELIF = 35235
+SIOCDELDLCI = 35201
+SIOCDELMULTI = 35122
+SIOCDEVPRIVATE_BEG = 35312
+SIOCDEVPRIVATE_END = 35327
+SIOCDIFADDR = 35126
+SIOCETHTOOL = 35142
+SIOCGHWTSTAMP = 35249
+SIOCGIFADDR = 35093
+SIOCGIFBR = 35136
+SIOCGIFBRDADDR = 35097
+SIOCGIFCOUNT = 35128
+SIOCGIFDSTADDR = 35095
+SIOCGIFENCAP = 35109
+SIOCGIFFLAGS = 35091
+SIOCGIFHWADDR = 35111
+SIOCGIFINDEX = 35123
+SIOCGIFMAP = 35184
+SIOCGIFMEM = 35103
+SIOCGIFMETRIC = 35101
+SIOCGIFMTU = 35105
SIOCGIFNAME = 35088
+SIOCGIFNETMASK = 35099
+SIOCGIFPFLAGS = 35125
+SIOCGIFSLAVE = 35113
+SIOCGIFTXQLEN = 35138
+SIOCGMIIPHY = 35143
+SIOCGMIIREG = 35144
+SIOCGPGRP = 35076
+SIOCGSKNS = 35148
SIOCINQ = 21531
SIOCOUTQ = 21521
+SIOCOUTQNSD = 35147
+SIOCPROTOPRIVATE_BEG = 35296
+SIOCPROTOPRIVATE_END = 35311
+SIOCSHWTSTAMP = 35248
+SIOCSIFADDR = 35094
+SIOCSIFBRDADDR = 35098
+SIOCSIFDSTADDR = 35096
+SIOCSIFENCAP = 35110
+SIOCSIFFLAGS = 35092
+SIOCSIFHWADDR = 35108
+SIOCSIFHWBROADCAST = 35127
+SIOCSIFLINK = 35089
+SIOCSIFMAP = 35185
+SIOCSIFMEM = 35104
+SIOCSIFMETRIC = 35102
+SIOCSIFMTU = 35106
+SIOCSIFNAME = 35107
+SIOCSIFNETMASK = 35100
+SIOCSIFPFLAGS = 35124
+SIOCSIFSLAVE = 35120
+SIOCSIFTXQLEN = 35139
+SIOCSMIIREG = 35145
+SIOCSPGRP = 35074
+SIOCWANDEV = 35146
SOCK_CLOEXEC = 524288
SOCK_DGRAM = 2
SOCK_NONBLOCK = 2048
diff --git a/sys/socket_bluetooth.txt b/sys/socket_bluetooth.txt
index 4dbb1cbe5..5b1893d4d 100644
--- a/sys/socket_bluetooth.txt
+++ b/sys/socket_bluetooth.txt
@@ -21,10 +21,10 @@ resource sock_bt_hci[sock_bt]
socket$bt_hci(fam const[AF_BLUETOOTH], type const[SOCK_RAW], proto const[BTPROTO_HCI]) sock_bt_hci
bind$bt_hci(fd sock_bt_hci, addr ptr[in, sockaddr_hci], addrlen len[addr])
-ioctl$bt_hci(fd sock_bt_hci, cmd flags[bt_hci_ioctl], arg buffer[inout])
-setsockopt$HCI_DATA_DIR(fd sock_bt_hci, level const[0], opt const[HCI_DATA_DIR], arg ptr[in, int32], arglen len[arg])
-setsockopt$HCI_TIME_STAMP(fd sock_bt_hci, level const[0], opt const[HCI_TIME_STAMP], arg ptr[in, int32], arglen len[arg])
-setsockopt$HCI_FILTER(fd sock_bt_hci, level const[0], opt const[HCI_FILTER], arg ptr[in, hci_ufilter], arglen len[arg])
+ioctl$sock_bt_hci(fd sock_bt_hci, cmd flags[bt_hci_ioctl], arg buffer[inout])
+setsockopt$bt_hci_HCI_DATA_DIR(fd sock_bt_hci, level const[0], opt const[HCI_DATA_DIR], arg ptr[in, int32], arglen len[arg])
+setsockopt$bt_hci_HCI_TIME_STAMP(fd sock_bt_hci, level const[0], opt const[HCI_TIME_STAMP], arg ptr[in, int32], arglen len[arg])
+setsockopt$bt_hci_HCI_FILTER(fd sock_bt_hci, level const[0], opt const[HCI_FILTER], arg ptr[in, hci_ufilter], arglen len[arg])
getsockopt$bt_hci(fd sock, level const[0], opt flags[bt_hci_sockopt], arg buffer[out], arglen ptr[inout, len[arg, int32]])
resource sock_bt_sco[sock_bt]
@@ -32,72 +32,72 @@ resource sock_bt_sco[sock_bt]
socket$bt_sco(fam const[AF_BLUETOOTH], type const[SOCK_SEQPACKET], proto const[BTPROTO_SCO]) sock_bt_sco
bind$bt_sco(fd sock_bt_sco, addr ptr[in, sockaddr_sco], addrlen len[addr])
connect$bt_sco(fd sock_bt_sco, addr ptr[in, sockaddr_sco], addrlen len[addr])
-getsockopt$SCO_OPTIONS(fd sock_bt_sco, level const[SOL_SCO], opt const[SCO_OPTIONS], arg buffer[out], arglen ptr[inout, len[arg, int32]])
-getsockopt$SCO_CONNINFO(fd sock_bt_sco, level const[SOL_SCO], opt const[SCO_CONNINFO], arg buffer[out], arglen ptr[inout, len[arg, int32]])
+getsockopt$bt_sco_SCO_OPTIONS(fd sock_bt_sco, level const[SOL_SCO], opt const[SCO_OPTIONS], arg buffer[out], arglen ptr[inout, len[arg, int32]])
+getsockopt$bt_sco_SCO_CONNINFO(fd sock_bt_sco, level const[SOL_SCO], opt const[SCO_CONNINFO], arg buffer[out], arglen ptr[inout, len[arg, int32]])
resource sock_bt_l2cap[sock_bt]
socket$bt_l2cap(fam const[AF_BLUETOOTH], type flags[bt_l2cap_type], proto const[BTPROTO_L2CAP]) sock_bt_l2cap
bind$bt_l2cap(fd sock_bt_l2cap, addr ptr[in, sockaddr_l2], addrlen len[addr])
connect$bt_l2cap(fd sock_bt_l2cap, addr ptr[in, sockaddr_l2], addrlen len[addr])
-setsockopt$L2CAP_OPTIONS(fd sock_bt_l2cap, level const[SOL_L2CAP], opt const[L2CAP_OPTIONS], arg ptr[in, l2cap_options], arglen len[arg])
-getsockopt$L2CAP_OPTIONS(fd sock_bt_l2cap, level const[SOL_L2CAP], opt const[L2CAP_OPTIONS], arg ptr[out, l2cap_options], arglen ptr[inout, len[arg, int32]])
-setsockopt$L2CAP_LM(fd sock_bt_l2cap, level const[SOL_L2CAP], opt const[L2CAP_LM], arg ptr[in, flags[bt_l2cap_lm, int32]], arglen len[arg])
-getsockopt$L2CAP_LM(fd sock_bt_l2cap, level const[SOL_L2CAP], opt const[L2CAP_LM], arg ptr[out, int32], arglen ptr[inout, len[arg, int32]])
-setsockopt$L2CAP_CONNINFO(fd sock_bt_l2cap, level const[SOL_L2CAP], opt const[L2CAP_CONNINFO], arg ptr[in, l2cap_conninfo], arglen len[arg])
-getsockopt$L2CAP_CONNINFO(fd sock_bt_l2cap, level const[SOL_L2CAP], opt const[L2CAP_CONNINFO], arg ptr[out, l2cap_conninfo], arglen ptr[inout, len[arg, int32]])
+setsockopt$bt_l2cap_L2CAP_OPTIONS(fd sock_bt_l2cap, level const[SOL_L2CAP], opt const[L2CAP_OPTIONS], arg ptr[in, l2cap_options], arglen len[arg])
+getsockopt$bt_l2cap_L2CAP_OPTIONS(fd sock_bt_l2cap, level const[SOL_L2CAP], opt const[L2CAP_OPTIONS], arg ptr[out, l2cap_options], arglen ptr[inout, len[arg, int32]])
+setsockopt$bt_l2cap_L2CAP_LM(fd sock_bt_l2cap, level const[SOL_L2CAP], opt const[L2CAP_LM], arg ptr[in, flags[bt_l2cap_lm, int32]], arglen len[arg])
+getsockopt$bt_l2cap_L2CAP_LM(fd sock_bt_l2cap, level const[SOL_L2CAP], opt const[L2CAP_LM], arg ptr[out, int32], arglen ptr[inout, len[arg, int32]])
+setsockopt$bt_l2cap_L2CAP_CONNINFO(fd sock_bt_l2cap, level const[SOL_L2CAP], opt const[L2CAP_CONNINFO], arg ptr[in, l2cap_conninfo], arglen len[arg])
+getsockopt$bt_l2cap_L2CAP_CONNINFO(fd sock_bt_l2cap, level const[SOL_L2CAP], opt const[L2CAP_CONNINFO], arg ptr[out, l2cap_conninfo], arglen ptr[inout, len[arg, int32]])
resource sock_bt_rfcomm[sock_bt]
socket$bt_rfcomm(fam const[AF_BLUETOOTH], type flags[bt_rfcomm_type], proto const[BTPROTO_RFCOMM]) sock_bt_rfcomm
bind$bt_rfcomm(fd sock_bt_rfcomm, addr ptr[in, sockaddr_rc], addrlen len[addr])
connect$bt_rfcomm(fd sock_bt_rfcomm, addr ptr[in, sockaddr_rc], addrlen len[addr])
-setsockopt$RFCOMM_LM(fd sock_bt_rfcomm, level const[SOL_RFCOMM], opt const[RFCOMM_LM], arg ptr[in, flags[bt_l2cap_lm, int32]], arglen len[arg])
-getsockopt$RFCOMM_LM(fd sock_bt_rfcomm, level const[SOL_RFCOMM], opt const[RFCOMM_LM], arg ptr[out, int32], arglen ptr[inout, len[arg, int32]])
-getsockopt$RFCOMM_CONNINFO(fd sock_bt_rfcomm, level const[SOL_RFCOMM], opt const[RFCOMM_CONNINFO], arg buffer[out], arglen ptr[inout, len[arg, int32]])
+setsockopt$bt_rfcomm_RFCOMM_LM(fd sock_bt_rfcomm, level const[SOL_RFCOMM], opt const[RFCOMM_LM], arg ptr[in, flags[bt_l2cap_lm, int32]], arglen len[arg])
+getsockopt$bt_rfcomm_RFCOMM_LM(fd sock_bt_rfcomm, level const[SOL_RFCOMM], opt const[RFCOMM_LM], arg ptr[out, int32], arglen ptr[inout, len[arg, int32]])
+getsockopt$bt_rfcomm_RFCOMM_CONNINFO(fd sock_bt_rfcomm, level const[SOL_RFCOMM], opt const[RFCOMM_CONNINFO], arg buffer[out], arglen ptr[inout, len[arg, int32]])
resource sock_bt_hidp[sock_bt]
socket$bt_hidp(fam const[AF_BLUETOOTH], type const[SOCK_RAW], proto const[BTPROTO_HIDP]) sock_bt_hidp
-ioctl$HIDPCONNADD(fd sock_bt_hidp, cmd const[HIDPCONNADD], arg ptr[in, hidp_connadd_req])
-ioctl$HIDPCONNDEL(fd sock_bt_hidp, cmd const[HIDPCONNDEL], arg ptr[in, hidp_conndel_req])
-ioctl$HIDPGETCONNLIST(fd sock_bt_hidp, cmd const[HIDPGETCONNLIST], arg ptr[in, hidp_connlist_req])
-ioctl$HIDPGETCONNINFO(fd sock_bt_hidp, cmd const[HIDPGETCONNINFO], arg ptr[in, hidp_conninfo])
+ioctl$sock_bt_hidp_HIDPCONNADD(fd sock_bt_hidp, cmd const[HIDPCONNADD], arg ptr[in, hidp_connadd_req])
+ioctl$sock_bt_hidp_HIDPCONNDEL(fd sock_bt_hidp, cmd const[HIDPCONNDEL], arg ptr[in, hidp_conndel_req])
+ioctl$sock_bt_hidp_HIDPGETCONNLIST(fd sock_bt_hidp, cmd const[HIDPGETCONNLIST], arg ptr[in, hidp_connlist_req])
+ioctl$sock_bt_hidp_HIDPGETCONNINFO(fd sock_bt_hidp, cmd const[HIDPGETCONNINFO], arg ptr[in, hidp_conninfo])
resource sock_bt_cmtp[sock_bt]
socket$bt_cmtp(fam const[AF_BLUETOOTH], type const[SOCK_RAW], proto const[BTPROTO_CMTP]) sock_bt_cmtp
-ioctl$CMTPCONNADD(fd sock_bt_cmtp, cmd const[CMTPCONNADD], arg ptr[in, cmtp_connadd_req])
-ioctl$CMTPCONNDEL(fd sock_bt_cmtp, cmd const[CMTPCONNDEL], arg ptr[in, cmtp_conndel_req])
-ioctl$CMTPGETCONNLIST(fd sock_bt_cmtp, cmd const[CMTPGETCONNLIST], arg ptr[in, cmtp_connlist_req])
-ioctl$CMTPGETCONNINFO(fd sock_bt_cmtp, cmd const[CMTPGETCONNINFO], arg ptr[in, cmtp_conninfo])
+ioctl$sock_bt_cmtp_CMTPCONNADD(fd sock_bt_cmtp, cmd const[CMTPCONNADD], arg ptr[in, cmtp_connadd_req])
+ioctl$sock_bt_cmtp_CMTPCONNDEL(fd sock_bt_cmtp, cmd const[CMTPCONNDEL], arg ptr[in, cmtp_conndel_req])
+ioctl$sock_bt_cmtp_CMTPGETCONNLIST(fd sock_bt_cmtp, cmd const[CMTPGETCONNLIST], arg ptr[in, cmtp_connlist_req])
+ioctl$sock_bt_cmtp_CMTPGETCONNINFO(fd sock_bt_cmtp, cmd const[CMTPGETCONNINFO], arg ptr[in, cmtp_conninfo])
resource sock_bt_bnep[sock_bt]
socket$bt_bnep(fam const[AF_BLUETOOTH], type const[SOCK_RAW], proto const[BTPROTO_BNEP]) sock_bt_bnep
-ioctl$BNEPCONNADD(fd sock_bt_bnep, cmd const[BNEPCONNADD], arg ptr[in, bnep_connadd_req])
-ioctl$BNEPCONNDEL(fd sock_bt_bnep, cmd const[BNEPCONNDEL], arg ptr[in, bnep_conndel_req])
-ioctl$BNEPGETCONNLIST(fd sock_bt_bnep, cmd const[BNEPGETCONNLIST], arg ptr[in, bnep_connlist_req])
-ioctl$BNEPGETCONNINFO(fd sock_bt_bnep, cmd const[BNEPGETCONNINFO], arg ptr[in, bnep_conninfo])
-ioctl$BNEPGETSUPPFEAT(fd sock_bt_bnep, cmd const[BNEPGETSUPPFEAT], arg ptr[in, int32])
-
-ioctl$bt(fd sock_bt, cmd flags[bt_ioctl], arg buffer[inout])
-setsockopt$BT_SECURITY(fd sock_bt, level const[SOL_BLUETOOTH], opt const[BT_SECURITY], arg ptr[in, bt_security], arglen len[arg])
-getsockopt$BT_SECURITY(fd sock_bt, level const[SOL_BLUETOOTH], opt const[BT_SECURITY], arg ptr[out, bt_security], arglen len[arg])
-setsockopt$BT_DEFER_SETUP(fd sock_bt, level const[SOL_BLUETOOTH], opt const[BT_DEFER_SETUP], arg ptr[in, int32], arglen len[arg])
-getsockopt$BT_DEFER_SETUP(fd sock_bt, level const[SOL_BLUETOOTH], opt const[BT_DEFER_SETUP], arg ptr[in, int32], arglen ptr[in, len[arg, intptr]])
-setsockopt$BT_VOICE(fd sock_bt, level const[SOL_BLUETOOTH], opt const[BT_VOICE], arg ptr[in, int16], arglen len[arg])
-getsockopt$BT_VOICE(fd sock_bt, level const[SOL_BLUETOOTH], opt const[BT_VOICE], arg ptr[in, int16], arglen ptr[in, len[arg, intptr]])
-setsockopt$BT_FLUSHABLE(fd sock_bt, level const[SOL_BLUETOOTH], opt const[BT_FLUSHABLE], arg ptr[in, int32], arglen len[arg])
-getsockopt$BT_FLUSHABLE(fd sock_bt, level const[SOL_BLUETOOTH], opt const[BT_FLUSHABLE], arg ptr[in, int32], arglen ptr[in, len[arg, intptr]])
-setsockopt$BT_POWER(fd sock_bt, level const[SOL_BLUETOOTH], opt const[BT_POWER], arg ptr[in, int8], arglen len[arg])
-getsockopt$BT_POWER(fd sock_bt, level const[SOL_BLUETOOTH], opt const[BT_POWER], arg ptr[in, int8], arglen ptr[in, len[arg, intptr]])
-setsockopt$BT_CHANNEL_POLICY(fd sock_bt, level const[SOL_BLUETOOTH], opt const[BT_CHANNEL_POLICY], arg ptr[in, int32], arglen len[arg])
-getsockopt$BT_CHANNEL_POLICY(fd sock_bt, level const[SOL_BLUETOOTH], opt const[BT_CHANNEL_POLICY], arg ptr[in, int32], arglen ptr[in, len[arg, intptr]])
-setsockopt$BT_SNDMTU(fd sock_bt, level const[SOL_BLUETOOTH], opt const[BT_SNDMTU], arg ptr[in, int16], arglen len[arg])
-getsockopt$BT_SNDMTU(fd sock_bt, level const[SOL_BLUETOOTH], opt const[BT_SNDMTU], arg ptr[in, int16], arglen ptr[in, len[arg, intptr]])
-setsockopt$BT_RCVMTU(fd sock_bt, level const[SOL_BLUETOOTH], opt const[BT_RCVMTU], arg ptr[in, int16], arglen len[arg])
-getsockopt$BT_RCVMTU(fd sock_bt, level const[SOL_BLUETOOTH], opt const[BT_RCVMTU], arg ptr[in, int16], arglen ptr[in, len[arg, intptr]])
+ioctl$sock_bt_bnep_BNEPCONNADD(fd sock_bt_bnep, cmd const[BNEPCONNADD], arg ptr[in, bnep_connadd_req])
+ioctl$sock_bt_bnep_BNEPCONNDEL(fd sock_bt_bnep, cmd const[BNEPCONNDEL], arg ptr[in, bnep_conndel_req])
+ioctl$sock_bt_bnep_BNEPGETCONNLIST(fd sock_bt_bnep, cmd const[BNEPGETCONNLIST], arg ptr[in, bnep_connlist_req])
+ioctl$sock_bt_bnep_BNEPGETCONNINFO(fd sock_bt_bnep, cmd const[BNEPGETCONNINFO], arg ptr[in, bnep_conninfo])
+ioctl$sock_bt_bnep_BNEPGETSUPPFEAT(fd sock_bt_bnep, cmd const[BNEPGETSUPPFEAT], arg ptr[in, int32])
+
+ioctl$sock_bt(fd sock_bt, cmd flags[bt_ioctl], arg buffer[inout])
+setsockopt$bt_BT_SECURITY(fd sock_bt, level const[SOL_BLUETOOTH], opt const[BT_SECURITY], arg ptr[in, bt_security], arglen len[arg])
+getsockopt$bt_BT_SECURITY(fd sock_bt, level const[SOL_BLUETOOTH], opt const[BT_SECURITY], arg ptr[out, bt_security], arglen len[arg])
+setsockopt$bt_BT_DEFER_SETUP(fd sock_bt, level const[SOL_BLUETOOTH], opt const[BT_DEFER_SETUP], arg ptr[in, int32], arglen len[arg])
+getsockopt$bt_BT_DEFER_SETUP(fd sock_bt, level const[SOL_BLUETOOTH], opt const[BT_DEFER_SETUP], arg ptr[in, int32], arglen ptr[in, len[arg, intptr]])
+setsockopt$bt_BT_VOICE(fd sock_bt, level const[SOL_BLUETOOTH], opt const[BT_VOICE], arg ptr[in, int16], arglen len[arg])
+getsockopt$bt_BT_VOICE(fd sock_bt, level const[SOL_BLUETOOTH], opt const[BT_VOICE], arg ptr[in, int16], arglen ptr[in, len[arg, intptr]])
+setsockopt$bt_BT_FLUSHABLE(fd sock_bt, level const[SOL_BLUETOOTH], opt const[BT_FLUSHABLE], arg ptr[in, int32], arglen len[arg])
+getsockopt$bt_BT_FLUSHABLE(fd sock_bt, level const[SOL_BLUETOOTH], opt const[BT_FLUSHABLE], arg ptr[in, int32], arglen ptr[in, len[arg, intptr]])
+setsockopt$bt_BT_POWER(fd sock_bt, level const[SOL_BLUETOOTH], opt const[BT_POWER], arg ptr[in, int8], arglen len[arg])
+getsockopt$bt_BT_POWER(fd sock_bt, level const[SOL_BLUETOOTH], opt const[BT_POWER], arg ptr[in, int8], arglen ptr[in, len[arg, intptr]])
+setsockopt$bt_BT_CHANNEL_POLICY(fd sock_bt, level const[SOL_BLUETOOTH], opt const[BT_CHANNEL_POLICY], arg ptr[in, int32], arglen len[arg])
+getsockopt$bt_BT_CHANNEL_POLICY(fd sock_bt, level const[SOL_BLUETOOTH], opt const[BT_CHANNEL_POLICY], arg ptr[in, int32], arglen ptr[in, len[arg, intptr]])
+setsockopt$bt_BT_SNDMTU(fd sock_bt, level const[SOL_BLUETOOTH], opt const[BT_SNDMTU], arg ptr[in, int16], arglen len[arg])
+getsockopt$bt_BT_SNDMTU(fd sock_bt, level const[SOL_BLUETOOTH], opt const[BT_SNDMTU], arg ptr[in, int16], arglen ptr[in, len[arg, intptr]])
+setsockopt$bt_BT_RCVMTU(fd sock_bt, level const[SOL_BLUETOOTH], opt const[BT_RCVMTU], arg ptr[in, int16], arglen len[arg])
+getsockopt$bt_BT_RCVMTU(fd sock_bt, level const[SOL_BLUETOOTH], opt const[BT_RCVMTU], arg ptr[in, int16], arglen ptr[in, len[arg, intptr]])
sockaddr_hci {
fam const[AF_BLUETOOTH, int16]
diff --git a/sys/socket_inet.txt b/sys/socket_inet.txt
index 0d73c286b..a9e1834f5 100644
--- a/sys/socket_inet.txt
+++ b/sys/socket_inet.txt
@@ -4,6 +4,7 @@
include <linux/ip.h>
include <linux/ipv6.h>
include <linux/route.h>
+include <uapi/linux/if_arp.h>
include <uapi/linux/netfilter_ipv6/ip6_tables.h>
# IP sockets
@@ -42,104 +43,34 @@ recvfrom$inet(fd sock_in, buf buffer[out], len len[buf], f flags[recv_flags], ad
getsockname$inet(fd sock_in, addr ptr[out, sockaddr_in], addrlen ptr[inout, len[addr, int32]])
getpeername$inet(fd sock_in, peer ptr[out, sockaddr_in], peerlen ptr[inout, len[peer, int32]])
-# IPv6 sockets
-
-resource sock_in6[sock]
-
-sock_in6_pair {
- f0 sock_in6
- f1 sock_in6
-}
-
-
-in6_addr_empty {
- a0 const[0, int64be]
- a1 const[0, int64be]
-}
-
-in6_addr_loopback {
- a0 const[0, int64be]
- a1 const[1, int64be]
-}
-
-in6_addr [
- empty in6_addr_empty
- loopback in6_addr_loopback
-]
-
-sockaddr_in6 {
- family const[AF_INET6, int16]
- port proc[int16be, 20000, 4]
- flow int32
- addr in6_addr
- scope int32
-}
-
-sockaddr_storage_in {
- addr sockaddr_in
- pad array[const[0, int64], 15]
-}
-
-sockaddr_storage_in6 {
- addr sockaddr_in6
- pad array[const[0, int64], 12]
-}
-
-sockaddr_storage [
- in sockaddr_storage_in
- in6 sockaddr_storage_in6
-]
-
-socket$inet6(domain const[AF_INET6], type flags[socket_type], proto int8) sock_in6
-socketpair$inet6(domain const[AF_INET6], type flags[socket_type], proto int8, fds ptr[out, sock_in6_pair])
-accept$inet6(fd sock_in6, peer ptr[out, sockaddr_in6, opt], peerlen ptr[inout, len[peer, int32]]) sock_in6
-accept4$inet6(fd sock_in6, peer ptr[out, sockaddr_in6, opt], peerlen ptr[inout, len[peer, int32]], flags flags[accept_flags]) sock_in6
-bind$inet6(fd sock_in6, addr ptr[in, sockaddr_in6], addrlen len[addr])
-connect$inet6(fd sock_in6, addr ptr[in, sockaddr_in6], addrlen len[addr])
-sendto$inet6(fd sock_in6, buf buffer[in], len len[buf], f flags[send_flags], addr ptr[in, sockaddr_in6, opt], addrlen len[addr])
-recvfrom$inet6(fd sock_in6, buf buffer[out], len len[buf], f flags[recv_flags], addr ptr[in, sockaddr_in6, opt], addrlen len[addr])
-getsockname$inet6(fd sock_in6, addr ptr[out, sockaddr_in6], addrlen ptr[inout, len[addr, int32]])
-getpeername$inet6(fd sock_in6, peer ptr[out, sockaddr_in6], peerlen ptr[inout, len[peer, int32]])
-
# Generic IP options
inet_option_types_int = IP_TOS, IP_TTL, IP_HDRINCL, IP_ROUTER_ALERT, IP_RECVOPTS, IP_RETOPTS, IP_PKTINFO, IP_MTU_DISCOVER, IP_RECVERR, IP_RECVTTL, IP_RECVTOS, IP_MTU, IP_FREEBIND, IP_PASSSEC, IP_TRANSPARENT, IP_RECVORIGDSTADDR, IP_MINTTL, IP_NODEFRAG, IP_CHECKSUM, IP_BIND_ADDRESS_NO_PORT, IP_MULTICAST_TTL, IP_MULTICAST_LOOP, IP_MULTICAST_ALL, IP_UNICAST_IF
inet_option_types_buf = IP_OPTIONS, IP_PKTOPTIONS, IP_IPSEC_POLICY, IP_XFRM_POLICY, IP_MULTICAST_IF, IP_ADD_MEMBERSHIP, IP_DROP_MEMBERSHIP, IP_UNBLOCK_SOURCE, IP_BLOCK_SOURCE, IP_ADD_SOURCE_MEMBERSHIP, IP_DROP_SOURCE_MEMBERSHIP, IP_MSFILTER, MCAST_JOIN_GROUP, MCAST_BLOCK_SOURCE, MCAST_UNBLOCK_SOURCE, MCAST_LEAVE_GROUP, MCAST_JOIN_SOURCE_GROUP, MCAST_LEAVE_SOURCE_GROUP, MCAST_MSFILTER
-getsockopt$ip_int(fd sock_in, level const[IPPROTO_IP], optname flags[inet_option_types_int], optval ptr[out, int32], optlen ptr[inout, len[optval, int32]])
-setsockopt$ip_int(fd sock_in, level const[IPPROTO_IP], optname flags[inet_option_types_int], optval ptr[in, int32], optlen len[optval])
-getsockopt$ip_buf(fd sock_in, level const[IPPROTO_IP], optname flags[inet_option_types_buf], optval buffer[out], optlen ptr[inout, len[optval, int32]])
-setsockopt$ip_buf(fd sock_in, level const[IPPROTO_IP], optname flags[inet_option_types_buf], optval buffer[in], optlen len[optval])
-
-# Generic IPv6 options
-
-inet6_option_types_int = IPV6_ADDRFORM, IPV6_2292PKTINFO, IPV6_2292HOPOPTS, IPV6_2292DSTOPTS, IPV6_2292RTHDR, IPV6_CHECKSUM, IPV6_2292HOPLIMIT, IPV6_NEXTHOP, IPV6_AUTHHDR, IPV6_FLOWINFO, IPV6_UNICAST_HOPS, IPV6_MULTICAST_IF, IPV6_MULTICAST_HOPS, IPV6_MULTICAST_LOOP, IPV6_ROUTER_ALERT, IPV6_MTU_DISCOVER, IPV6_MTU, IPV6_RECVERR, IPV6_V6ONLY, IPV6_FLOWINFO_SEND, IPV6_HDRINCL, IPV6_RECVPKTINFO, IPV6_RECVHOPLIMIT, IPV6_HOPLIMIT, IPV6_RECVHOPOPTS, IPV6_RECVRTHDR, IPV6_RECVDSTOPTS, IPV6_RECVPATHMTU, IPV6_DONTFRAG, IPV6_RECVTCLASS, IPV6_TCLASS, IP6T_SO_ORIGINAL_DST, IPV6_AUTOFLOWLABEL, IPV6_ADDR_PREFERENCES, IPV6_MINHOPCOUNT, IPV6_RECVORIGDSTADDR, IPV6_TRANSPARENT, IPV6_UNICAST_IF
-
-inet6_option_types_buf = IPV6_2292PKTOPTIONS, IPV6_ADD_MEMBERSHIP, IPV6_DROP_MEMBERSHIP, IPV6_JOIN_ANYCAST, IPV6_LEAVE_ANYCAST, IPV6_FLOWLABEL_MGR, IPV6_IPSEC_POLICY, IPV6_XFRM_POLICY, MCAST_JOIN_GROUP, MCAST_BLOCK_SOURCE, MCAST_UNBLOCK_SOURCE, MCAST_LEAVE_GROUP, MCAST_JOIN_SOURCE_GROUP, MCAST_LEAVE_SOURCE_GROUP, MCAST_MSFILTER, IPV6_PKTINFO, IPV6_HOPOPTS, IPV6_RTHDRDSTOPTS, IPV6_RTHDR, IPV6_DSTOPTS, IPV6_PATHMTU, IP6T_SO_GET_REVISION_MATCH, IP6T_SO_GET_REVISION_TARGET
-
-getsockopt$ip6_int(fd sock_in6, level const[IPPROTO_IPV6], optname flags[inet6_option_types_int], optval ptr[out, int32], optlen ptr[inout, len[optval, int32]])
-setsockopt$ip6_int(fd sock_in6, level const[IPPROTO_IPV6], optname flags[inet6_option_types_int], optval ptr[in, int32], optlen len[optval])
-getsockopt$ip6_buf(fd sock_in6, level const[IPPROTO_IPV6], optname flags[inet6_option_types_buf], optval buffer[out], optlen ptr[inout, len[optval, int32]])
-setsockopt$ip6_buf(fd sock_in6, level const[IPPROTO_IPV6], optname flags[inet6_option_types_buf], optval buffer[in], optlen len[optval])
+getsockopt$inet_int(fd sock_in, level const[IPPROTO_IP], optname flags[inet_option_types_int], optval ptr[out, int32], optlen ptr[inout, len[optval, int32]])
+setsockopt$inet_int(fd sock_in, level const[IPPROTO_IP], optname flags[inet_option_types_int], optval ptr[in, int32], optlen len[optval])
+getsockopt$inet_buf(fd sock_in, level const[IPPROTO_IP], optname flags[inet_option_types_buf], optval buffer[out], optlen ptr[inout, len[optval, int32]])
+setsockopt$inet_buf(fd sock_in, level const[IPPROTO_IP], optname flags[inet_option_types_buf], optval buffer[in], optlen len[optval])
# Specific IP options
-getsockopt$ip_mreq(fd sock_in, level const[IPPROTO_IP], optname flags[sockopt_opt_ip_mreq], optval ptr[out, ip_mreq], optlen ptr[inout, len[optval, int32]])
-setsockopt$ip_mreq(fd sock_in, level const[IPPROTO_IP], optname flags[sockopt_opt_ip_mreq], optval ptr[in, ip_mreq], optlen len[optval])
-getsockopt$ip_mreqn(fd sock_in, level const[IPPROTO_IP], optname flags[sockopt_opt_ip_mreq], optval ptr[out, ip_mreqn], optlen ptr[inout, len[optval, int32]])
-setsockopt$ip_mreqn(fd sock_in, level const[IPPROTO_IP], optname flags[sockopt_opt_ip_mreq], optval ptr[in, ip_mreqn], optlen len[optval])
-getsockopt$ip_mreqsrc(fd sock_in, level const[IPPROTO_IP], optname flags[sockopt_opt_ip_mreqsrc], optval ptr[out, ip_mreq_source], optlen ptr[inout, len[optval, int32]])
-setsockopt$ip_mreqsrc(fd sock_in, level const[IPPROTO_IP], optname flags[sockopt_opt_ip_mreqsrc], optval ptr[in, ip_mreq_source], optlen len[optval])
-setsockopt$ip_msfilter(fd sock_in, level const[IPPROTO_IP], optname const[IP_MSFILTER], optval ptr[in, ip_msfilter], optlen len[optval])
-getsockopt$ip_mtu(fd sock_in, level const[IPPROTO_IP], optname const[IP_MTU_DISCOVER], optval ptr[out, flags[ip_mtu_discover, int32]], optlen ptr[inout, len[optval, int32]])
-setsockopt$ip_mtu(fd sock_in, level const[IPPROTO_IP], optname const[IP_MTU_DISCOVER], optval ptr[in, flags[ip_mtu_discover, int32]], optlen len[optval])
-getsockopt$ip_opts(fd sock_in, level const[IPPROTO_IP], optname flags[sockopt_opt_ip_opts], optval buffer[out], optlen ptr[inout, len[optval, int32]])
-setsockopt$ip_opts(fd sock_in, level const[IPPROTO_IP], optname flags[sockopt_opt_ip_opts], optval buffer[in], optlen len[optval])
-getsockopt$ip_pktinfo(fd sock_in, level const[IPPROTO_IP], optname const[IP_PKTINFO], optval ptr[out, in_pktinfo], optlen ptr[inout, len[optval, int32]])
-setsockopt$ip_pktinfo(fd sock_in, level const[IPPROTO_IP], optname const[IP_PKTINFO], optval ptr[in, in_pktinfo], optlen len[optval])
-getsockopt$ip_ipsec(fd sock_in, level const[IPPROTO_IP], optname const[IP_IPSEC_POLICY], optval ptr[out, xfrm_filer], optlen ptr[inout, len[optval, int32]])
-setsockopt$ip_ipsec(fd sock_in, level const[IPPROTO_IP], optname const[IP_IPSEC_POLICY], optval ptr[in, xfrm_filer], optlen len[optval])
+getsockopt$inet_mreq(fd sock_in, level const[IPPROTO_IP], optname flags[sockopt_opt_ip_mreq], optval ptr[out, ip_mreq], optlen ptr[inout, len[optval, int32]])
+setsockopt$inet_mreq(fd sock_in, level const[IPPROTO_IP], optname flags[sockopt_opt_ip_mreq], optval ptr[in, ip_mreq], optlen len[optval])
+getsockopt$inet_mreqn(fd sock_in, level const[IPPROTO_IP], optname flags[sockopt_opt_ip_mreq], optval ptr[out, ip_mreqn], optlen ptr[inout, len[optval, int32]])
+setsockopt$inet_mreqn(fd sock_in, level const[IPPROTO_IP], optname flags[sockopt_opt_ip_mreq], optval ptr[in, ip_mreqn], optlen len[optval])
+getsockopt$inet_mreqsrc(fd sock_in, level const[IPPROTO_IP], optname flags[sockopt_opt_ip_mreqsrc], optval ptr[out, ip_mreq_source], optlen ptr[inout, len[optval, int32]])
+setsockopt$inet_mreqsrc(fd sock_in, level const[IPPROTO_IP], optname flags[sockopt_opt_ip_mreqsrc], optval ptr[in, ip_mreq_source], optlen len[optval])
+setsockopt$inet_msfilter(fd sock_in, level const[IPPROTO_IP], optname const[IP_MSFILTER], optval ptr[in, ip_msfilter], optlen len[optval])
+getsockopt$inet_mtu(fd sock_in, level const[IPPROTO_IP], optname const[IP_MTU_DISCOVER], optval ptr[out, flags[ip_mtu_discover, int32]], optlen ptr[inout, len[optval, int32]])
+setsockopt$inet_mtu(fd sock_in, level const[IPPROTO_IP], optname const[IP_MTU_DISCOVER], optval ptr[in, flags[ip_mtu_discover, int32]], optlen len[optval])
+getsockopt$inet_opts(fd sock_in, level const[IPPROTO_IP], optname flags[sockopt_opt_ip_opts], optval buffer[out], optlen ptr[inout, len[optval, int32]])
+setsockopt$inet_opts(fd sock_in, level const[IPPROTO_IP], optname flags[sockopt_opt_ip_opts], optval buffer[in], optlen len[optval])
+getsockopt$inet_pktinfo(fd sock_in, level const[IPPROTO_IP], optname const[IP_PKTINFO], optval ptr[out, in_pktinfo], optlen ptr[inout, len[optval, int32]])
+setsockopt$inet_pktinfo(fd sock_in, level const[IPPROTO_IP], optname const[IP_PKTINFO], optval ptr[in, in_pktinfo], optlen len[optval])
+getsockopt$inet_ipsec(fd sock_in, level const[IPPROTO_IP], optname const[IP_IPSEC_POLICY], optval ptr[out, xfrm_filer], optlen ptr[inout, len[optval, int32]])
+setsockopt$inet_ipsec(fd sock_in, level const[IPPROTO_IP], optname const[IP_IPSEC_POLICY], optval ptr[in, xfrm_filer], optlen len[optval])
sockopt_opt_ip_mreq = IP_ADD_MEMBERSHIP, IP_DROP_MEMBERSHIP, IP_MULTICAST_IF
sockopt_opt_ip_mreqsrc = IP_ADD_SOURCE_MEMBERSHIP, IP_BLOCK_SOURCE, IP_DROP_SOURCE_MEMBERSHIP, IP_UNBLOCK_SOURCE
@@ -252,33 +183,22 @@ xfrm_in_addr [
in6 in6_addr
]
-# Specific IPv6 options
-
-getsockopt$ipv6_mreq(fd sock_in6, level const[IPPROTO_IPV6], optname flags[sockopt_opt_ipv6_mreq], optval ptr[out, ipv6_mreq], optlen ptr[inout, len[optval, int32]])
-setsockopt$ipv6_mreq(fd sock_in6, level const[IPPROTO_IPV6], optname flags[sockopt_opt_ipv6_mreq], optval ptr[in, ipv6_mreq], optlen len[optval])
-getsockopt$ipv6_mtu(fd sock_in6, level const[IPPROTO_IPV6], optname const[IPV6_MTU_DISCOVER], optval ptr[out, flags[ip_mtu_discover, int32]], optlen ptr[inout, len[optval, int32]])
-setsockopt$ipv6_mtu(fd sock_in6, level const[IPPROTO_IPV6], optname const[IPV6_MTU_DISCOVER], optval ptr[in, flags[ip_mtu_discover, int32]], optlen len[optval])
-getsockopt$ipv6_opts(fd sock_in6, level const[IPPROTO_IPV6], optname const[IPV6_2292PKTOPTIONS], optval buffer[out], optlen ptr[inout, len[optval, int32]])
-setsockopt$ipv6_opts(fd sock_in6, level const[IPPROTO_IPV6], optname const[IPV6_2292PKTOPTIONS], optval buffer[in], optlen len[optval])
-
-sockopt_opt_ipv6_int = IPV6_ADDRFORM, IPV6_MTU, IPV6_MULTICAST_HOPS, IPV6_MULTICAST_IF, IPV6_MULTICAST_LOOP, IPV6_RECVPKTINFO, IPV6_RECVERR, IPV6_ROUTER_ALERT, IPV6_UNICAST_HOPS, IPV6_V6ONLY, IPV6_RTHDR, IPV6_AUTHHDR, IPV6_DSTOPTS, IPV6_HOPOPTS, IPV6_FLOWINFO, IPV6_HOPLIMIT, IPV6_CHECKSUM, IPV6_2292PKTINFO, IPV6_2292HOPOPTS, IPV6_2292DSTOPTS, IPV6_2292RTHDR, IPV6_2292HOPLIMIT
-sockopt_opt_ipv6_mreq = IPV6_ADD_MEMBERSHIP, IPV6_DROP_MEMBERSHIP, IPV6_JOIN_ANYCAST, IPV6_LEAVE_ANYCAST
-
-ipv6_mreq {
- multi in6_addr
- ifindex int32
-}
-
# IP ioctls
# http://lxr.free-electrons.com/source/include/uapi/linux/sockios.h
-ioctl$inet_SIOCADDRT(fd sock_in, cmd const[SIOCADDRT], arg ptr[in, rtentry_in])
-ioctl$inet_SIOCDELRT(fd sock_in, cmd const[SIOCDELRT], arg ptr[in, rtentry_in])
-ioctl$inet_SIOCRTMSG(fd sock_in, cmd const[SIOCRTMSG], arg ptr[in, rtentry_in])
+ioctl$sock_inet_SIOCADDRT(fd sock_in, cmd const[SIOCADDRT], arg ptr[in, rtentry_in])
+ioctl$sock_inet_SIOCDELRT(fd sock_in, cmd const[SIOCDELRT], arg ptr[in, rtentry_in])
+ioctl$sock_inet_SIOCRTMSG(fd sock_in, cmd const[SIOCRTMSG], arg ptr[in, rtentry_in])
+
+ioctl$sock_inet_SIOCDARP(fd sock_in, cmd const[SIOCDARP], arg ptr[in, arpreq_in])
+ioctl$sock_inet_SIOCGARP(fd sock_in, cmd const[SIOCGARP], arg ptr[inout, arpreq_in])
+ioctl$sock_inet_SIOCSARP(fd sock_in, cmd const[SIOCSARP], arg ptr[in, arpreq_in])
# TODO: more here
+rt_flags = RTF_UP, RTF_GATEWAY, RTF_HOST, RTF_REINSTATE, RTF_DYNAMIC, RTF_MODIFIED, RTF_MTU, RTF_WINDOW, RTF_IRTT, RTF_REJECT
+
rtentry_in {
rt_pad1 int64
rt_dst sockaddr_in
@@ -295,6 +215,20 @@ rtentry_in {
rt_irtt int16
}
-rt_flags = RTF_UP, RTF_GATEWAY, RTF_HOST, RTF_REINSTATE, RTF_DYNAMIC, RTF_MODIFIED, RTF_MTU, RTF_WINDOW, RTF_IRTT, RTF_REJECT
+sockaddr_ethernet_family = ARPHRD_ETHER, ARPHRD_FDDI, ARPHRD_IEEE802
-# TODO: ipv6 ioctls
+sockaddr_ethernet {
+ sa_family flags[sockaddr_ethernet_family, int16]
+ sa_data mac_addr
+ pad array[const[0, int8], 8]
+}
+
+arp_flags = ATF_COM, ATF_PERM, ATF_PUBL, ATF_USETRAILERS, ATF_NETMASK, ATF_DONTPUB
+
+arpreq_in {
+ arp_pa sockaddr_in
+ arp_ha sockaddr_ethernet
+ arp_flags flags[arp_flags, int32]
+ arp_netmask sockaddr_in
+ arp_dev devname
+}
diff --git a/sys/socket_inet6.txt b/sys/socket_inet6.txt
new file mode 100644
index 000000000..c0bd80e2c
--- /dev/null
+++ b/sys/socket_inet6.txt
@@ -0,0 +1,81 @@
+# Copyright 2017 syzkaller project authors. All rights reserved.
+# Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file.
+
+include <linux/ip.h>
+include <linux/ipv6.h>
+include <linux/route.h>
+include <uapi/linux/netfilter_ipv6/ip6_tables.h>
+
+# IPv6 sockets
+
+resource sock_in6[sock]
+
+sock_in6_pair {
+ f0 sock_in6
+ f1 sock_in6
+}
+
+
+in6_addr_empty {
+ a0 const[0, int64be]
+ a1 const[0, int64be]
+}
+
+in6_addr_loopback {
+ a0 const[0, int64be]
+ a1 const[1, int64be]
+}
+
+in6_addr [
+ empty in6_addr_empty
+ loopback in6_addr_loopback
+]
+
+sockaddr_in6 {
+ family const[AF_INET6, int16]
+ port proc[int16be, 20000, 4]
+ flow int32
+ addr in6_addr
+ scope int32
+}
+
+socket$inet6(domain const[AF_INET6], type flags[socket_type], proto int8) sock_in6
+socketpair$inet6(domain const[AF_INET6], type flags[socket_type], proto int8, fds ptr[out, sock_in6_pair])
+accept$inet6(fd sock_in6, peer ptr[out, sockaddr_in6, opt], peerlen ptr[inout, len[peer, int32]]) sock_in6
+accept4$inet6(fd sock_in6, peer ptr[out, sockaddr_in6, opt], peerlen ptr[inout, len[peer, int32]], flags flags[accept_flags]) sock_in6
+bind$inet6(fd sock_in6, addr ptr[in, sockaddr_in6], addrlen len[addr])
+connect$inet6(fd sock_in6, addr ptr[in, sockaddr_in6], addrlen len[addr])
+sendto$inet6(fd sock_in6, buf buffer[in], len len[buf], f flags[send_flags], addr ptr[in, sockaddr_in6, opt], addrlen len[addr])
+recvfrom$inet6(fd sock_in6, buf buffer[out], len len[buf], f flags[recv_flags], addr ptr[in, sockaddr_in6, opt], addrlen len[addr])
+getsockname$inet6(fd sock_in6, addr ptr[out, sockaddr_in6], addrlen ptr[inout, len[addr, int32]])
+getpeername$inet6(fd sock_in6, peer ptr[out, sockaddr_in6], peerlen ptr[inout, len[peer, int32]])
+
+# Generic IPv6 options
+
+inet6_option_types_int = IPV6_ADDRFORM, IPV6_2292PKTINFO, IPV6_2292HOPOPTS, IPV6_2292DSTOPTS, IPV6_2292RTHDR, IPV6_CHECKSUM, IPV6_2292HOPLIMIT, IPV6_NEXTHOP, IPV6_AUTHHDR, IPV6_FLOWINFO, IPV6_UNICAST_HOPS, IPV6_MULTICAST_IF, IPV6_MULTICAST_HOPS, IPV6_MULTICAST_LOOP, IPV6_ROUTER_ALERT, IPV6_MTU_DISCOVER, IPV6_MTU, IPV6_RECVERR, IPV6_V6ONLY, IPV6_FLOWINFO_SEND, IPV6_HDRINCL, IPV6_RECVPKTINFO, IPV6_RECVHOPLIMIT, IPV6_HOPLIMIT, IPV6_RECVHOPOPTS, IPV6_RECVRTHDR, IPV6_RECVDSTOPTS, IPV6_RECVPATHMTU, IPV6_DONTFRAG, IPV6_RECVTCLASS, IPV6_TCLASS, IP6T_SO_ORIGINAL_DST, IPV6_AUTOFLOWLABEL, IPV6_ADDR_PREFERENCES, IPV6_MINHOPCOUNT, IPV6_RECVORIGDSTADDR, IPV6_TRANSPARENT, IPV6_UNICAST_IF
+
+inet6_option_types_buf = IPV6_2292PKTOPTIONS, IPV6_ADD_MEMBERSHIP, IPV6_DROP_MEMBERSHIP, IPV6_JOIN_ANYCAST, IPV6_LEAVE_ANYCAST, IPV6_FLOWLABEL_MGR, IPV6_IPSEC_POLICY, IPV6_XFRM_POLICY, MCAST_JOIN_GROUP, MCAST_BLOCK_SOURCE, MCAST_UNBLOCK_SOURCE, MCAST_LEAVE_GROUP, MCAST_JOIN_SOURCE_GROUP, MCAST_LEAVE_SOURCE_GROUP, MCAST_MSFILTER, IPV6_PKTINFO, IPV6_HOPOPTS, IPV6_RTHDRDSTOPTS, IPV6_RTHDR, IPV6_DSTOPTS, IPV6_PATHMTU, IP6T_SO_GET_REVISION_MATCH, IP6T_SO_GET_REVISION_TARGET
+
+getsockopt$inet6_int(fd sock_in6, level const[IPPROTO_IPV6], optname flags[inet6_option_types_int], optval ptr[out, int32], optlen ptr[inout, len[optval, int32]])
+setsockopt$inet6_int(fd sock_in6, level const[IPPROTO_IPV6], optname flags[inet6_option_types_int], optval ptr[in, int32], optlen len[optval])
+getsockopt$inet6_buf(fd sock_in6, level const[IPPROTO_IPV6], optname flags[inet6_option_types_buf], optval buffer[out], optlen ptr[inout, len[optval, int32]])
+setsockopt$inet6_buf(fd sock_in6, level const[IPPROTO_IPV6], optname flags[inet6_option_types_buf], optval buffer[in], optlen len[optval])
+
+# Specific IPv6 options
+
+getsockopt$inet6_mreq(fd sock_in6, level const[IPPROTO_IPV6], optname flags[sockopt_opt_ipv6_mreq], optval ptr[out, ipv6_mreq], optlen ptr[inout, len[optval, int32]])
+setsockopt$inet6_mreq(fd sock_in6, level const[IPPROTO_IPV6], optname flags[sockopt_opt_ipv6_mreq], optval ptr[in, ipv6_mreq], optlen len[optval])
+getsockopt$inet6_mtu(fd sock_in6, level const[IPPROTO_IPV6], optname const[IPV6_MTU_DISCOVER], optval ptr[out, flags[ip_mtu_discover, int32]], optlen ptr[inout, len[optval, int32]])
+setsockopt$inet6_mtu(fd sock_in6, level const[IPPROTO_IPV6], optname const[IPV6_MTU_DISCOVER], optval ptr[in, flags[ip_mtu_discover, int32]], optlen len[optval])
+getsockopt$inet6_opts(fd sock_in6, level const[IPPROTO_IPV6], optname const[IPV6_2292PKTOPTIONS], optval buffer[out], optlen ptr[inout, len[optval, int32]])
+setsockopt$inet6_opts(fd sock_in6, level const[IPPROTO_IPV6], optname const[IPV6_2292PKTOPTIONS], optval buffer[in], optlen len[optval])
+
+sockopt_opt_ipv6_int = IPV6_ADDRFORM, IPV6_MTU, IPV6_MULTICAST_HOPS, IPV6_MULTICAST_IF, IPV6_MULTICAST_LOOP, IPV6_RECVPKTINFO, IPV6_RECVERR, IPV6_ROUTER_ALERT, IPV6_UNICAST_HOPS, IPV6_V6ONLY, IPV6_RTHDR, IPV6_AUTHHDR, IPV6_DSTOPTS, IPV6_HOPOPTS, IPV6_FLOWINFO, IPV6_HOPLIMIT, IPV6_CHECKSUM, IPV6_2292PKTINFO, IPV6_2292HOPOPTS, IPV6_2292DSTOPTS, IPV6_2292RTHDR, IPV6_2292HOPLIMIT
+sockopt_opt_ipv6_mreq = IPV6_ADD_MEMBERSHIP, IPV6_DROP_MEMBERSHIP, IPV6_JOIN_ANYCAST, IPV6_LEAVE_ANYCAST
+
+ipv6_mreq {
+ multi in6_addr
+ ifindex int32
+}
+
+# TODO: ipv6 ioctls
diff --git a/sys/socket_inet6_amd64.const b/sys/socket_inet6_amd64.const
new file mode 100644
index 000000000..73d453519
--- /dev/null
+++ b/sys/socket_inet6_amd64.const
@@ -0,0 +1,76 @@
+# AUTOGENERATED FILE
+AF_INET6 = 10
+IP6T_SO_GET_REVISION_MATCH = 68
+IP6T_SO_GET_REVISION_TARGET = 69
+IP6T_SO_ORIGINAL_DST = 80
+IPPROTO_IPV6 = 41
+IPV6_2292DSTOPTS = 4
+IPV6_2292HOPLIMIT = 8
+IPV6_2292HOPOPTS = 3
+IPV6_2292PKTINFO = 2
+IPV6_2292PKTOPTIONS = 6
+IPV6_2292RTHDR = 5
+IPV6_ADDRFORM = 1
+IPV6_ADDR_PREFERENCES = 72
+IPV6_ADD_MEMBERSHIP = 20
+IPV6_AUTHHDR = 10
+IPV6_AUTOFLOWLABEL = 70
+IPV6_CHECKSUM = 7
+IPV6_DONTFRAG = 62
+IPV6_DROP_MEMBERSHIP = 21
+IPV6_DSTOPTS = 59
+IPV6_FLOWINFO = 11
+IPV6_FLOWINFO_SEND = 33
+IPV6_FLOWLABEL_MGR = 32
+IPV6_HDRINCL = 36
+IPV6_HOPLIMIT = 52
+IPV6_HOPOPTS = 54
+IPV6_IPSEC_POLICY = 34
+IPV6_JOIN_ANYCAST = 27
+IPV6_LEAVE_ANYCAST = 28
+IPV6_MINHOPCOUNT = 73
+IPV6_MTU = 24
+IPV6_MTU_DISCOVER = 23
+IPV6_MULTICAST_HOPS = 18
+IPV6_MULTICAST_IF = 17
+IPV6_MULTICAST_LOOP = 19
+IPV6_NEXTHOP = 9
+IPV6_PATHMTU = 61
+IPV6_PKTINFO = 50
+IPV6_RECVDSTOPTS = 58
+IPV6_RECVERR = 25
+IPV6_RECVHOPLIMIT = 51
+IPV6_RECVHOPOPTS = 53
+IPV6_RECVORIGDSTADDR = 74
+IPV6_RECVPATHMTU = 60
+IPV6_RECVPKTINFO = 49
+IPV6_RECVRTHDR = 56
+IPV6_RECVTCLASS = 66
+IPV6_ROUTER_ALERT = 22
+IPV6_RTHDR = 57
+IPV6_RTHDRDSTOPTS = 55
+IPV6_TCLASS = 67
+IPV6_TRANSPARENT = 75
+IPV6_UNICAST_HOPS = 16
+IPV6_UNICAST_IF = 76
+IPV6_V6ONLY = 26
+IPV6_XFRM_POLICY = 35
+MCAST_BLOCK_SOURCE = 43
+MCAST_JOIN_GROUP = 42
+MCAST_JOIN_SOURCE_GROUP = 46
+MCAST_LEAVE_GROUP = 45
+MCAST_LEAVE_SOURCE_GROUP = 47
+MCAST_MSFILTER = 48
+MCAST_UNBLOCK_SOURCE = 44
+__NR_accept = 43
+__NR_accept4 = 288
+__NR_bind = 49
+__NR_connect = 42
+__NR_getpeername = 52
+__NR_getsockname = 51
+__NR_getsockopt = 55
+__NR_recvfrom = 45
+__NR_sendto = 44
+__NR_setsockopt = 54
+__NR_socket = 41
+__NR_socketpair = 53
diff --git a/sys/socket_inet6_arm64.const b/sys/socket_inet6_arm64.const
new file mode 100644
index 000000000..41e764410
--- /dev/null
+++ b/sys/socket_inet6_arm64.const
@@ -0,0 +1,76 @@
+# AUTOGENERATED FILE
+AF_INET6 = 10
+IP6T_SO_GET_REVISION_MATCH = 68
+IP6T_SO_GET_REVISION_TARGET = 69
+IP6T_SO_ORIGINAL_DST = 80
+IPPROTO_IPV6 = 41
+IPV6_2292DSTOPTS = 4
+IPV6_2292HOPLIMIT = 8
+IPV6_2292HOPOPTS = 3
+IPV6_2292PKTINFO = 2
+IPV6_2292PKTOPTIONS = 6
+IPV6_2292RTHDR = 5
+IPV6_ADDRFORM = 1
+IPV6_ADDR_PREFERENCES = 72
+IPV6_ADD_MEMBERSHIP = 20
+IPV6_AUTHHDR = 10
+IPV6_AUTOFLOWLABEL = 70
+IPV6_CHECKSUM = 7
+IPV6_DONTFRAG = 62
+IPV6_DROP_MEMBERSHIP = 21
+IPV6_DSTOPTS = 59
+IPV6_FLOWINFO = 11
+IPV6_FLOWINFO_SEND = 33
+IPV6_FLOWLABEL_MGR = 32
+IPV6_HDRINCL = 36
+IPV6_HOPLIMIT = 52
+IPV6_HOPOPTS = 54
+IPV6_IPSEC_POLICY = 34
+IPV6_JOIN_ANYCAST = 27
+IPV6_LEAVE_ANYCAST = 28
+IPV6_MINHOPCOUNT = 73
+IPV6_MTU = 24
+IPV6_MTU_DISCOVER = 23
+IPV6_MULTICAST_HOPS = 18
+IPV6_MULTICAST_IF = 17
+IPV6_MULTICAST_LOOP = 19
+IPV6_NEXTHOP = 9
+IPV6_PATHMTU = 61
+IPV6_PKTINFO = 50
+IPV6_RECVDSTOPTS = 58
+IPV6_RECVERR = 25
+IPV6_RECVHOPLIMIT = 51
+IPV6_RECVHOPOPTS = 53
+IPV6_RECVORIGDSTADDR = 74
+IPV6_RECVPATHMTU = 60
+IPV6_RECVPKTINFO = 49
+IPV6_RECVRTHDR = 56
+IPV6_RECVTCLASS = 66
+IPV6_ROUTER_ALERT = 22
+IPV6_RTHDR = 57
+IPV6_RTHDRDSTOPTS = 55
+IPV6_TCLASS = 67
+IPV6_TRANSPARENT = 75
+IPV6_UNICAST_HOPS = 16
+IPV6_UNICAST_IF = 76
+IPV6_V6ONLY = 26
+IPV6_XFRM_POLICY = 35
+MCAST_BLOCK_SOURCE = 43
+MCAST_JOIN_GROUP = 42
+MCAST_JOIN_SOURCE_GROUP = 46
+MCAST_LEAVE_GROUP = 45
+MCAST_LEAVE_SOURCE_GROUP = 47
+MCAST_MSFILTER = 48
+MCAST_UNBLOCK_SOURCE = 44
+__NR_accept = 202
+__NR_accept4 = 242
+__NR_bind = 200
+__NR_connect = 203
+__NR_getpeername = 205
+__NR_getsockname = 204
+__NR_getsockopt = 209
+__NR_recvfrom = 207
+__NR_sendto = 206
+__NR_setsockopt = 208
+__NR_socket = 198
+__NR_socketpair = 199
diff --git a/sys/socket_inet6_ppc64le.const b/sys/socket_inet6_ppc64le.const
new file mode 100644
index 000000000..5c4bd7348
--- /dev/null
+++ b/sys/socket_inet6_ppc64le.const
@@ -0,0 +1,76 @@
+# AUTOGENERATED FILE
+AF_INET6 = 10
+IP6T_SO_GET_REVISION_MATCH = 68
+IP6T_SO_GET_REVISION_TARGET = 69
+IP6T_SO_ORIGINAL_DST = 80
+IPPROTO_IPV6 = 41
+IPV6_2292DSTOPTS = 4
+IPV6_2292HOPLIMIT = 8
+IPV6_2292HOPOPTS = 3
+IPV6_2292PKTINFO = 2
+IPV6_2292PKTOPTIONS = 6
+IPV6_2292RTHDR = 5
+IPV6_ADDRFORM = 1
+IPV6_ADDR_PREFERENCES = 72
+IPV6_ADD_MEMBERSHIP = 20
+IPV6_AUTHHDR = 10
+IPV6_AUTOFLOWLABEL = 70
+IPV6_CHECKSUM = 7
+IPV6_DONTFRAG = 62
+IPV6_DROP_MEMBERSHIP = 21
+IPV6_DSTOPTS = 59
+IPV6_FLOWINFO = 11
+IPV6_FLOWINFO_SEND = 33
+IPV6_FLOWLABEL_MGR = 32
+IPV6_HDRINCL = 36
+IPV6_HOPLIMIT = 52
+IPV6_HOPOPTS = 54
+IPV6_IPSEC_POLICY = 34
+IPV6_JOIN_ANYCAST = 27
+IPV6_LEAVE_ANYCAST = 28
+IPV6_MINHOPCOUNT = 73
+IPV6_MTU = 24
+IPV6_MTU_DISCOVER = 23
+IPV6_MULTICAST_HOPS = 18
+IPV6_MULTICAST_IF = 17
+IPV6_MULTICAST_LOOP = 19
+IPV6_NEXTHOP = 9
+IPV6_PATHMTU = 61
+IPV6_PKTINFO = 50
+IPV6_RECVDSTOPTS = 58
+IPV6_RECVERR = 25
+IPV6_RECVHOPLIMIT = 51
+IPV6_RECVHOPOPTS = 53
+IPV6_RECVORIGDSTADDR = 74
+IPV6_RECVPATHMTU = 60
+IPV6_RECVPKTINFO = 49
+IPV6_RECVRTHDR = 56
+IPV6_RECVTCLASS = 66
+IPV6_ROUTER_ALERT = 22
+IPV6_RTHDR = 57
+IPV6_RTHDRDSTOPTS = 55
+IPV6_TCLASS = 67
+IPV6_TRANSPARENT = 75
+IPV6_UNICAST_HOPS = 16
+IPV6_UNICAST_IF = 76
+IPV6_V6ONLY = 26
+IPV6_XFRM_POLICY = 35
+MCAST_BLOCK_SOURCE = 43
+MCAST_JOIN_GROUP = 42
+MCAST_JOIN_SOURCE_GROUP = 46
+MCAST_LEAVE_GROUP = 45
+MCAST_LEAVE_SOURCE_GROUP = 47
+MCAST_MSFILTER = 48
+MCAST_UNBLOCK_SOURCE = 44
+__NR_accept = 330
+__NR_accept4 = 344
+__NR_bind = 327
+__NR_connect = 328
+__NR_getpeername = 332
+__NR_getsockname = 331
+__NR_getsockopt = 340
+__NR_recvfrom = 337
+__NR_sendto = 335
+__NR_setsockopt = 339
+__NR_socket = 326
+__NR_socketpair = 333
diff --git a/sys/socket_inet_amd64.const b/sys/socket_inet_amd64.const
index 27e8f1c2c..116e43ae3 100644
--- a/sys/socket_inet_amd64.const
+++ b/sys/socket_inet_amd64.const
@@ -1,62 +1,15 @@
# AUTOGENERATED FILE
AF_INET = 2
-AF_INET6 = 10
-IP6T_SO_GET_REVISION_MATCH = 68
-IP6T_SO_GET_REVISION_TARGET = 69
-IP6T_SO_ORIGINAL_DST = 80
+ARPHRD_ETHER = 1
+ARPHRD_FDDI = 774
+ARPHRD_IEEE802 = 6
+ATF_COM = 2
+ATF_DONTPUB = 64
+ATF_NETMASK = 32
+ATF_PERM = 4
+ATF_PUBL = 8
+ATF_USETRAILERS = 16
IPPROTO_IP = 0
-IPPROTO_IPV6 = 41
-IPV6_2292DSTOPTS = 4
-IPV6_2292HOPLIMIT = 8
-IPV6_2292HOPOPTS = 3
-IPV6_2292PKTINFO = 2
-IPV6_2292PKTOPTIONS = 6
-IPV6_2292RTHDR = 5
-IPV6_ADDRFORM = 1
-IPV6_ADDR_PREFERENCES = 72
-IPV6_ADD_MEMBERSHIP = 20
-IPV6_AUTHHDR = 10
-IPV6_AUTOFLOWLABEL = 70
-IPV6_CHECKSUM = 7
-IPV6_DONTFRAG = 62
-IPV6_DROP_MEMBERSHIP = 21
-IPV6_DSTOPTS = 59
-IPV6_FLOWINFO = 11
-IPV6_FLOWINFO_SEND = 33
-IPV6_FLOWLABEL_MGR = 32
-IPV6_HDRINCL = 36
-IPV6_HOPLIMIT = 52
-IPV6_HOPOPTS = 54
-IPV6_IPSEC_POLICY = 34
-IPV6_JOIN_ANYCAST = 27
-IPV6_LEAVE_ANYCAST = 28
-IPV6_MINHOPCOUNT = 73
-IPV6_MTU = 24
-IPV6_MTU_DISCOVER = 23
-IPV6_MULTICAST_HOPS = 18
-IPV6_MULTICAST_IF = 17
-IPV6_MULTICAST_LOOP = 19
-IPV6_NEXTHOP = 9
-IPV6_PATHMTU = 61
-IPV6_PKTINFO = 50
-IPV6_RECVDSTOPTS = 58
-IPV6_RECVERR = 25
-IPV6_RECVHOPLIMIT = 51
-IPV6_RECVHOPOPTS = 53
-IPV6_RECVORIGDSTADDR = 74
-IPV6_RECVPATHMTU = 60
-IPV6_RECVPKTINFO = 49
-IPV6_RECVRTHDR = 56
-IPV6_RECVTCLASS = 66
-IPV6_ROUTER_ALERT = 22
-IPV6_RTHDR = 57
-IPV6_RTHDRDSTOPTS = 55
-IPV6_TCLASS = 67
-IPV6_TRANSPARENT = 75
-IPV6_UNICAST_HOPS = 16
-IPV6_UNICAST_IF = 76
-IPV6_V6ONLY = 26
-IPV6_XFRM_POLICY = 35
IP_ADD_MEMBERSHIP = 35
IP_ADD_SOURCE_MEMBERSHIP = 39
IP_BIND_ADDRESS_NO_PORT = 24
@@ -119,8 +72,11 @@ RTF_REJECT = 512
RTF_UP = 1
RTF_WINDOW = 128
SIOCADDRT = 35083
+SIOCDARP = 35155
SIOCDELRT = 35084
+SIOCGARP = 35156
SIOCRTMSG = 35085
+SIOCSARP = 35157
__NR_accept = 43
__NR_accept4 = 288
__NR_bind = 49
diff --git a/sys/socket_inet_arm64.const b/sys/socket_inet_arm64.const
index ff57ab6e0..aaba7ef8d 100644
--- a/sys/socket_inet_arm64.const
+++ b/sys/socket_inet_arm64.const
@@ -1,62 +1,15 @@
# AUTOGENERATED FILE
AF_INET = 2
-AF_INET6 = 10
-IP6T_SO_GET_REVISION_MATCH = 68
-IP6T_SO_GET_REVISION_TARGET = 69
-IP6T_SO_ORIGINAL_DST = 80
+ARPHRD_ETHER = 1
+ARPHRD_FDDI = 774
+ARPHRD_IEEE802 = 6
+ATF_COM = 2
+ATF_DONTPUB = 64
+ATF_NETMASK = 32
+ATF_PERM = 4
+ATF_PUBL = 8
+ATF_USETRAILERS = 16
IPPROTO_IP = 0
-IPPROTO_IPV6 = 41
-IPV6_2292DSTOPTS = 4
-IPV6_2292HOPLIMIT = 8
-IPV6_2292HOPOPTS = 3
-IPV6_2292PKTINFO = 2
-IPV6_2292PKTOPTIONS = 6
-IPV6_2292RTHDR = 5
-IPV6_ADDRFORM = 1
-IPV6_ADDR_PREFERENCES = 72
-IPV6_ADD_MEMBERSHIP = 20
-IPV6_AUTHHDR = 10
-IPV6_AUTOFLOWLABEL = 70
-IPV6_CHECKSUM = 7
-IPV6_DONTFRAG = 62
-IPV6_DROP_MEMBERSHIP = 21
-IPV6_DSTOPTS = 59
-IPV6_FLOWINFO = 11
-IPV6_FLOWINFO_SEND = 33
-IPV6_FLOWLABEL_MGR = 32
-IPV6_HDRINCL = 36
-IPV6_HOPLIMIT = 52
-IPV6_HOPOPTS = 54
-IPV6_IPSEC_POLICY = 34
-IPV6_JOIN_ANYCAST = 27
-IPV6_LEAVE_ANYCAST = 28
-IPV6_MINHOPCOUNT = 73
-IPV6_MTU = 24
-IPV6_MTU_DISCOVER = 23
-IPV6_MULTICAST_HOPS = 18
-IPV6_MULTICAST_IF = 17
-IPV6_MULTICAST_LOOP = 19
-IPV6_NEXTHOP = 9
-IPV6_PATHMTU = 61
-IPV6_PKTINFO = 50
-IPV6_RECVDSTOPTS = 58
-IPV6_RECVERR = 25
-IPV6_RECVHOPLIMIT = 51
-IPV6_RECVHOPOPTS = 53
-IPV6_RECVORIGDSTADDR = 74
-IPV6_RECVPATHMTU = 60
-IPV6_RECVPKTINFO = 49
-IPV6_RECVRTHDR = 56
-IPV6_RECVTCLASS = 66
-IPV6_ROUTER_ALERT = 22
-IPV6_RTHDR = 57
-IPV6_RTHDRDSTOPTS = 55
-IPV6_TCLASS = 67
-IPV6_TRANSPARENT = 75
-IPV6_UNICAST_HOPS = 16
-IPV6_UNICAST_IF = 76
-IPV6_V6ONLY = 26
-IPV6_XFRM_POLICY = 35
IP_ADD_MEMBERSHIP = 35
IP_ADD_SOURCE_MEMBERSHIP = 39
IP_BIND_ADDRESS_NO_PORT = 24
@@ -119,8 +72,11 @@ RTF_REJECT = 512
RTF_UP = 1
RTF_WINDOW = 128
SIOCADDRT = 35083
+SIOCDARP = 35155
SIOCDELRT = 35084
+SIOCGARP = 35156
SIOCRTMSG = 35085
+SIOCSARP = 35157
__NR_accept = 202
__NR_accept4 = 242
__NR_bind = 200
diff --git a/sys/socket_inet_dccp.txt b/sys/socket_inet_dccp.txt
index b392d8b44..1a233da78 100644
--- a/sys/socket_inet_dccp.txt
+++ b/sys/socket_inet_dccp.txt
@@ -31,12 +31,12 @@ dccp_option_types_int = DCCP_SOCKOPT_PACKET_SIZE, DCCP_SOCKOPT_CHANGE_L, DCCP_SO
dccp_option_types_buf = DCCP_SOCKOPT_SERVICE, DCCP_SOCKOPT_AVAILABLE_CCIDS, DCCP_SOCKOPT_CCID, DCCP_SOCKOPT_TX_CCID, DCCP_SOCKOPT_RX_CCID, DCCP_SOCKOPT_CCID_RX_INFO, DCCP_SOCKOPT_CCID_TX_INFO
-getsockopt$dccp_int(fd sock_dccp, level const[IPPROTO_DCCP], optname flags[dccp_option_types_int], optval ptr[out, int32], optlen ptr[inout, len[optval, int32]])
-setsockopt$dccp_int(fd sock_dccp, level const[IPPROTO_DCCP], optname flags[dccp_option_types_int], optval ptr[in, int32], optlen len[optval])
-getsockopt$dccp6_int(fd sock_dccp6, level const[IPPROTO_DCCP], optname flags[dccp_option_types_int], optval ptr[out, int32], optlen ptr[inout, len[optval, int32]])
-setsockopt$dccp6_int(fd sock_dccp6, level const[IPPROTO_DCCP], optname flags[dccp_option_types_int], optval ptr[in, int32], optlen len[optval])
-
-getsockopt$dccp_buf(fd sock_dccp, level const[IPPROTO_DCCP], optname flags[dccp_option_types_buf], optval buffer[out], optlen ptr[inout, len[optval, int32]])
-setsockopt$dccp_buf(fd sock_dccp, level const[IPPROTO_DCCP], optname flags[dccp_option_types_buf], optval buffer[in], optlen len[optval])
-getsockopt$dccp6_buf(fd sock_dccp6, level const[IPPROTO_DCCP], optname flags[dccp_option_types_buf], optval buffer[out], optlen ptr[inout, len[optval, int32]])
-setsockopt$dccp6_buf(fd sock_dccp6, level const[IPPROTO_DCCP], optname flags[dccp_option_types_buf], optval buffer[in], optlen len[optval])
+getsockopt$inet_dccp_int(fd sock_dccp, level const[IPPROTO_DCCP], optname flags[dccp_option_types_int], optval ptr[out, int32], optlen ptr[inout, len[optval, int32]])
+setsockopt$inet_dccp_int(fd sock_dccp, level const[IPPROTO_DCCP], optname flags[dccp_option_types_int], optval ptr[in, int32], optlen len[optval])
+getsockopt$inet6_dccp_int(fd sock_dccp6, level const[IPPROTO_DCCP], optname flags[dccp_option_types_int], optval ptr[out, int32], optlen ptr[inout, len[optval, int32]])
+setsockopt$inet6_dccp_int(fd sock_dccp6, level const[IPPROTO_DCCP], optname flags[dccp_option_types_int], optval ptr[in, int32], optlen len[optval])
+
+getsockopt$inet_dccp_buf(fd sock_dccp, level const[IPPROTO_DCCP], optname flags[dccp_option_types_buf], optval buffer[out], optlen ptr[inout, len[optval, int32]])
+setsockopt$inet_dccp_buf(fd sock_dccp, level const[IPPROTO_DCCP], optname flags[dccp_option_types_buf], optval buffer[in], optlen len[optval])
+getsockopt$inet6_dccp_buf(fd sock_dccp6, level const[IPPROTO_DCCP], optname flags[dccp_option_types_buf], optval buffer[out], optlen ptr[inout, len[optval, int32]])
+setsockopt$inet6_dccp_buf(fd sock_dccp6, level const[IPPROTO_DCCP], optname flags[dccp_option_types_buf], optval buffer[in], optlen len[optval])
diff --git a/sys/socket_inet_ppc64le.const b/sys/socket_inet_ppc64le.const
index 2ac853db0..238b647d8 100644
--- a/sys/socket_inet_ppc64le.const
+++ b/sys/socket_inet_ppc64le.const
@@ -1,62 +1,15 @@
# AUTOGENERATED FILE
AF_INET = 2
-AF_INET6 = 10
-IP6T_SO_GET_REVISION_MATCH = 68
-IP6T_SO_GET_REVISION_TARGET = 69
-IP6T_SO_ORIGINAL_DST = 80
+ARPHRD_ETHER = 1
+ARPHRD_FDDI = 774
+ARPHRD_IEEE802 = 6
+ATF_COM = 2
+ATF_DONTPUB = 64
+ATF_NETMASK = 32
+ATF_PERM = 4
+ATF_PUBL = 8
+ATF_USETRAILERS = 16
IPPROTO_IP = 0
-IPPROTO_IPV6 = 41
-IPV6_2292DSTOPTS = 4
-IPV6_2292HOPLIMIT = 8
-IPV6_2292HOPOPTS = 3
-IPV6_2292PKTINFO = 2
-IPV6_2292PKTOPTIONS = 6
-IPV6_2292RTHDR = 5
-IPV6_ADDRFORM = 1
-IPV6_ADDR_PREFERENCES = 72
-IPV6_ADD_MEMBERSHIP = 20
-IPV6_AUTHHDR = 10
-IPV6_AUTOFLOWLABEL = 70
-IPV6_CHECKSUM = 7
-IPV6_DONTFRAG = 62
-IPV6_DROP_MEMBERSHIP = 21
-IPV6_DSTOPTS = 59
-IPV6_FLOWINFO = 11
-IPV6_FLOWINFO_SEND = 33
-IPV6_FLOWLABEL_MGR = 32
-IPV6_HDRINCL = 36
-IPV6_HOPLIMIT = 52
-IPV6_HOPOPTS = 54
-IPV6_IPSEC_POLICY = 34
-IPV6_JOIN_ANYCAST = 27
-IPV6_LEAVE_ANYCAST = 28
-IPV6_MINHOPCOUNT = 73
-IPV6_MTU = 24
-IPV6_MTU_DISCOVER = 23
-IPV6_MULTICAST_HOPS = 18
-IPV6_MULTICAST_IF = 17
-IPV6_MULTICAST_LOOP = 19
-IPV6_NEXTHOP = 9
-IPV6_PATHMTU = 61
-IPV6_PKTINFO = 50
-IPV6_RECVDSTOPTS = 58
-IPV6_RECVERR = 25
-IPV6_RECVHOPLIMIT = 51
-IPV6_RECVHOPOPTS = 53
-IPV6_RECVORIGDSTADDR = 74
-IPV6_RECVPATHMTU = 60
-IPV6_RECVPKTINFO = 49
-IPV6_RECVRTHDR = 56
-IPV6_RECVTCLASS = 66
-IPV6_ROUTER_ALERT = 22
-IPV6_RTHDR = 57
-IPV6_RTHDRDSTOPTS = 55
-IPV6_TCLASS = 67
-IPV6_TRANSPARENT = 75
-IPV6_UNICAST_HOPS = 16
-IPV6_UNICAST_IF = 76
-IPV6_V6ONLY = 26
-IPV6_XFRM_POLICY = 35
IP_ADD_MEMBERSHIP = 35
IP_ADD_SOURCE_MEMBERSHIP = 39
IP_BIND_ADDRESS_NO_PORT = 24
@@ -119,8 +72,11 @@ RTF_REJECT = 512
RTF_UP = 1
RTF_WINDOW = 128
SIOCADDRT = 35083
+SIOCDARP = 35155
SIOCDELRT = 35084
+SIOCGARP = 35156
SIOCRTMSG = 35085
+SIOCSARP = 35157
__NR_accept = 330
__NR_accept4 = 344
__NR_bind = 327
diff --git a/sys/socket_inet_sctp.txt b/sys/socket_inet_sctp.txt
index e3bbdcb1a..ac2ebc50c 100755
--- a/sys/socket_inet_sctp.txt
+++ b/sys/socket_inet_sctp.txt
@@ -22,78 +22,78 @@ recvfrom$sctp(fd sock_sctp, buf buffer[out], len len[buf], f flags[recv_flags],
getsockname$sctp(fd sock_sctp, addr ptr[out, sockaddr_sctp], addrlen ptr[inout, len[addr, int32]])
getpeername$sctp(fd sock_sctp, peer ptr[out, sockaddr_sctp], peerlen ptr[inout, len[peer, int32]])
-setsockopt$SCTP_SOCKOPT_BINDX_ADD(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_SOCKOPT_BINDX_ADD], val ptr[in, array[sockaddr_sctp]], len bytesize[val])
-setsockopt$SCTP_SOCKOPT_BINDX_REM(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_SOCKOPT_BINDX_REM], val ptr[in, array[sockaddr_sctp]], len len[val])
-setsockopt$SCTP_SOCKOPT_CONNECTX_OLD(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_SOCKOPT_CONNECTX_OLD], val ptr[in, sockaddr_sctp], len len[val])
-setsockopt$SCTP_SOCKOPT_CONNECTX(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_SOCKOPT_CONNECTX], val ptr[in, sockaddr_sctp], len len[val])
-setsockopt$SCTP_DISABLE_FRAGMENTS(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_DISABLE_FRAGMENTS], val ptr[in, int32], len len[val])
-setsockopt$SCTP_EVENTS(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_EVENTS], val ptr[in, sctp_event_subscribe], len len[val])
-setsockopt$SCTP_AUTOCLOSE(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_AUTOCLOSE], val ptr[in, int32], len len[val])
-setsockopt$SCTP_PEER_ADDR_PARAMS(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_PEER_ADDR_PARAMS], val ptr[in, sctp_paddrparams], len len[val])
-setsockopt$SCTP_DELAYED_SACK(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_DELAYED_SACK], val ptr[in, sctp_delayed_sack], len len[val])
-setsockopt$SCTP_PARTIAL_DELIVERY_POINT(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_PARTIAL_DELIVERY_POINT], val ptr[in, int32], len len[val])
-setsockopt$SCTP_INITMSG(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_INITMSG], val ptr[in, sctp_initmsg], len len[val])
-setsockopt$SCTP_DEFAULT_SEND_PARAM(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_DEFAULT_SEND_PARAM], val ptr[in, sctp_sndrcvinfo], len len[val])
-setsockopt$SCTP_DEFAULT_SNDINFO(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_DEFAULT_SNDINFO], val ptr[in, sctp_sndinfo], len len[val])
-setsockopt$SCTP_PRIMARY_ADDR(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_PRIMARY_ADDR], val ptr[in, sctp_prim], len len[val])
-setsockopt$SCTP_SET_PEER_PRIMARY_ADDR(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_SET_PEER_PRIMARY_ADDR], val ptr[in, sctp_prim], len len[val])
-setsockopt$SCTP_NODELAY(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_NODELAY], val ptr[in, int32], len len[val])
-setsockopt$SCTP_RTOINFO(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_RTOINFO], val ptr[in, sctp_rtoinfo], len len[val])
-setsockopt$SCTP_ASSOCINFO(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_ASSOCINFO], val ptr[in, sctp_assocparams], len len[val])
-setsockopt$SCTP_I_WANT_MAPPED_V4_ADDR(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_I_WANT_MAPPED_V4_ADDR], val ptr[in, int32], len len[val])
-setsockopt$SCTP_MAXSEG(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_MAXSEG], val ptr[in, sctp_maxseg], len len[val])
-setsockopt$SCTP_ADAPTATION_LAYER(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_ADAPTATION_LAYER], val ptr[in, int32], len len[val])
-setsockopt$SCTP_CONTEXT(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_CONTEXT], val ptr[in, sctp_assoc_value], len len[val])
-setsockopt$SCTP_FRAGMENT_INTERLEAVE(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_FRAGMENT_INTERLEAVE], val ptr[in, int32], len len[val])
-setsockopt$SCTP_MAX_BURST(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_MAX_BURST], val ptr[in, sctp_max_burst], len len[val])
-setsockopt$SCTP_AUTH_CHUNK(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_AUTH_CHUNK], val ptr[in, int8], len len[val])
-setsockopt$SCTP_HMAC_IDENT(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_HMAC_IDENT], val ptr[in, sctp_hmacalgo], len len[val])
-setsockopt$SCTP_AUTH_KEY(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_AUTH_KEY], val ptr[in, sctp_authkey], len len[val])
-setsockopt$SCTP_AUTH_ACTIVE_KEY(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_AUTH_ACTIVE_KEY], val ptr[in, sctp_authkeyid], len len[val])
-setsockopt$SCTP_AUTH_DELETE_KEY(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_AUTH_DELETE_KEY], val ptr[in, sctp_authkeyid], len len[val])
-setsockopt$SCTP_AUTO_ASCONF(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_AUTO_ASCONF], val ptr[in, int32], len len[val])
-setsockopt$SCTP_PEER_ADDR_THLDS(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_PEER_ADDR_THLDS], val ptr[in, sctp_paddrthlds], len len[val])
-setsockopt$SCTP_RECVRCVINFO(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_RECVRCVINFO], val ptr[in, int32], len len[val])
-setsockopt$SCTP_RECVNXTINFO(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_RECVNXTINFO], val ptr[in, int32], len len[val])
-
-getsockopt$SCTP_STATUS(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_STATUS], val ptr[inout, sctp_status], len ptr[inout, len[val, int32]] )
-getsockopt$SCTP_DISABLE_FRAGMENTS(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_DISABLE_FRAGMENTS], val ptr[out, int32], len ptr[inout, len[val, int32]] )
-getsockopt$SCTP_EVENTS(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_EVENTS], val ptr[out, sctp_event_subscribe], len ptr[inout, len[val, int32]] )
-getsockopt$SCTP_AUTOCLOSE(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_AUTOCLOSE], val ptr[out, int32], len ptr[inout, len[val, int32]] )
-getsockopt$SCTP_SOCKOPT_PEELOFF(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_SOCKOPT_PEELOFF], val ptr[inout, sctp_peeloff_arg_t], len ptr[inout, len[val, int32]] )
-getsockopt$SCTP_PEER_ADDR_PARAMS(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_PEER_ADDR_PARAMS], val ptr[inout, sctp_paddrparams], len ptr[inout, len[val, int32]] )
-getsockopt$SCTP_DELAYED_SACK(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_DELAYED_SACK], val ptr[inout, sctp_sack_info], len ptr[inout, len[val, int32]] )
-getsockopt$SCTP_INITMSG(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_INITMSG], val ptr[out, sctp_initmsg], len ptr[inout, len[val, int32]] )
-getsockopt$SCTP_GET_PEER_ADDRS(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_GET_PEER_ADDRS], val ptr[inout, sctp_getaddrs], len ptr[inout, len[val, int32]] )
-getsockopt$SCTP_GET_LOCAL_ADDRS(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_GET_LOCAL_ADDRS], val ptr[inout, sctp_getaddrs], len ptr[inout, len[val, int32]] )
-getsockopt$SCTP_SOCKOPT_CONNECTX3(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_SOCKOPT_CONNECTX3], val ptr[inout, sctp_getaddrs_old], len ptr[inout, len[val, int32]] )
-getsockopt$SCTP_DEFAULT_SEND_PARAM(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_DEFAULT_SEND_PARAM], val ptr[inout, sctp_sndrcvinfo], len ptr[inout, len[val, int32]] )
-getsockopt$SCTP_DEFAULT_SNDINFO(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_DEFAULT_SNDINFO], val ptr[inout, sctp_sndinfo], len ptr[inout, len[val, int32]] )
-getsockopt$SCTP_PRIMARY_ADDR(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_PRIMARY_ADDR], val ptr[inout, sctp_prim], len ptr[inout, len[val, int32]] )
-getsockopt$SCTP_NODELAY(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_NODELAY], val ptr[out, int32], len ptr[inout, len[val, int32]] )
-getsockopt$SCTP_RTOINFO(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_RTOINFO], val ptr[inout, sctp_rtoinfo], len ptr[inout, len[val, int32]] )
-getsockopt$SCTP_ASSOCINFO(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_ASSOCINFO], val ptr[inout, sctp_sndinfo], len ptr[inout, len[val, int32]] )
-getsockopt$SCTP_I_WANT_MAPPED_V4_ADDR(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_I_WANT_MAPPED_V4_ADDR], val ptr[out, int32], len ptr[inout, len[val, int32]] )
-getsockopt$SCTP_MAXSEG(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_MAXSEG], val ptr[inout, sctp_assoc_value], len ptr[inout, len[val, int32]] )
-getsockopt$SCTP_GET_PEER_ADDR_INFO(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_GET_PEER_ADDR_INFO], val ptr[inout, sctp_paddrinfo], len ptr[inout, len[val, int32]] )
-getsockopt$SCTP_ADAPTATION_LAYER(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_ADAPTATION_LAYER], val ptr[out, sctp_setadaptation], len ptr[inout, len[val, int32]] )
-getsockopt$SCTP_CONTEXT(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_CONTEXT], val ptr[inout, sctp_assoc_value], len ptr[inout, len[val, int32]] )
-getsockopt$SCTP_FRAGMENT_INTERLEAVE(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_FRAGMENT_INTERLEAVE], val ptr[out, int32], len ptr[inout, len[val, int32]] )
-getsockopt$SCTP_PARTIAL_DELIVERY_POINT(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_PARTIAL_DELIVERY_POINT], val ptr[inout, sctp_assoc_value], len ptr[inout, len[val, int32]] )
-getsockopt$SCTP_MAX_BURST(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_MAX_BURST], val ptr[out, int32], len ptr[inout, len[val, int32]] )
-getsockopt$SCTP_HMAC_IDENT(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_HMAC_IDENT], val ptr[inout, sctp_authkeyid], len ptr[inout, len[val, int32]] )
-getsockopt$SCTP_AUTH_ACTIVE_KEY(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_AUTH_ACTIVE_KEY], val ptr[inout, sctp_authkeyid], len ptr[inout, len[val, int32]] )
-getsockopt$SCTP_PEER_AUTH_CHUNKS(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_PEER_AUTH_CHUNKS], val ptr[inout, sctp_authchunks], len ptr[inout, len[val, int32]] )
-getsockopt$SCTP_LOCAL_AUTH_CHUNKS(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_LOCAL_AUTH_CHUNKS], val ptr[inout, sctp_authchunks], len ptr[inout, len[val, int32]] )
-getsockopt$SCTP_GET_ASSOC_NUMBER(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_GET_ASSOC_NUMBER], val ptr[out, int32], len ptr[inout, len[val, int32]] )
-getsockopt$SCTP_GET_ASSOC_ID_LIST(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_GET_ASSOC_ID_LIST], val ptr[out, sctp_assoc_ids], len ptr[inout, len[val, int32]] )
-getsockopt$SCTP_AUTO_ASCONF(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_AUTO_ASCONF], val ptr[out, int32], len ptr[inout, len[val, int32]] )
-getsockopt$SCTP_PEER_ADDR_THLDS(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_PEER_ADDR_THLDS], val ptr[inout, sctp_paddrthlds], len ptr[inout, len[val, int32]] )
-getsockopt$SCTP_GET_ASSOC_STATS(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_GET_ASSOC_STATS], val ptr[inout, sctp_assoc_stats], len ptr[inout, len[val, int32]] )
-getsockopt$SCTP_RECVRCVINFO(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_RECVRCVINFO], val ptr[out, int32], len ptr[inout, len[val, int32]] )
-getsockopt$SCTP_RECVNXTINFO(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_RECVNXTINFO], val ptr[out, int32], len ptr[inout, len[val, int32]] )
-
-ioctl$SCTP_SIOCINQ(fd sock_sctp, cmd const[SIOCINQ], arg ptr[out, int32])
+setsockopt$inet_sctp_SCTP_SOCKOPT_BINDX_ADD(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_SOCKOPT_BINDX_ADD], val ptr[in, array[sockaddr_sctp]], len bytesize[val])
+setsockopt$inet_sctp_SCTP_SOCKOPT_BINDX_REM(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_SOCKOPT_BINDX_REM], val ptr[in, array[sockaddr_sctp]], len len[val])
+setsockopt$inet_sctp_SCTP_SOCKOPT_CONNECTX_OLD(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_SOCKOPT_CONNECTX_OLD], val ptr[in, sockaddr_sctp], len len[val])
+setsockopt$inet_sctp_SCTP_SOCKOPT_CONNECTX(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_SOCKOPT_CONNECTX], val ptr[in, sockaddr_sctp], len len[val])
+setsockopt$inet_sctp_SCTP_DISABLE_FRAGMENTS(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_DISABLE_FRAGMENTS], val ptr[in, int32], len len[val])
+setsockopt$inet_sctp_SCTP_EVENTS(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_EVENTS], val ptr[in, sctp_event_subscribe], len len[val])
+setsockopt$inet_sctp_SCTP_AUTOCLOSE(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_AUTOCLOSE], val ptr[in, int32], len len[val])
+setsockopt$inet_sctp_SCTP_PEER_ADDR_PARAMS(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_PEER_ADDR_PARAMS], val ptr[in, sctp_paddrparams], len len[val])
+setsockopt$inet_sctp_SCTP_DELAYED_SACK(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_DELAYED_SACK], val ptr[in, sctp_delayed_sack], len len[val])
+setsockopt$inet_sctp_SCTP_PARTIAL_DELIVERY_POINT(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_PARTIAL_DELIVERY_POINT], val ptr[in, int32], len len[val])
+setsockopt$inet_sctp_SCTP_INITMSG(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_INITMSG], val ptr[in, sctp_initmsg], len len[val])
+setsockopt$inet_sctp_SCTP_DEFAULT_SEND_PARAM(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_DEFAULT_SEND_PARAM], val ptr[in, sctp_sndrcvinfo], len len[val])
+setsockopt$inet_sctp_SCTP_DEFAULT_SNDINFO(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_DEFAULT_SNDINFO], val ptr[in, sctp_sndinfo], len len[val])
+setsockopt$inet_sctp_SCTP_PRIMARY_ADDR(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_PRIMARY_ADDR], val ptr[in, sctp_prim], len len[val])
+setsockopt$inet_sctp_SCTP_SET_PEER_PRIMARY_ADDR(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_SET_PEER_PRIMARY_ADDR], val ptr[in, sctp_prim], len len[val])
+setsockopt$inet_sctp_SCTP_NODELAY(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_NODELAY], val ptr[in, int32], len len[val])
+setsockopt$inet_sctp_SCTP_RTOINFO(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_RTOINFO], val ptr[in, sctp_rtoinfo], len len[val])
+setsockopt$inet_sctp_SCTP_ASSOCINFO(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_ASSOCINFO], val ptr[in, sctp_assocparams], len len[val])
+setsockopt$inet_sctp_SCTP_I_WANT_MAPPED_V4_ADDR(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_I_WANT_MAPPED_V4_ADDR], val ptr[in, int32], len len[val])
+setsockopt$inet_sctp_SCTP_MAXSEG(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_MAXSEG], val ptr[in, sctp_maxseg], len len[val])
+setsockopt$inet_sctp_SCTP_ADAPTATION_LAYER(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_ADAPTATION_LAYER], val ptr[in, int32], len len[val])
+setsockopt$inet_sctp_SCTP_CONTEXT(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_CONTEXT], val ptr[in, sctp_assoc_value], len len[val])
+setsockopt$inet_sctp_SCTP_FRAGMENT_INTERLEAVE(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_FRAGMENT_INTERLEAVE], val ptr[in, int32], len len[val])
+setsockopt$inet_sctp_SCTP_MAX_BURST(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_MAX_BURST], val ptr[in, sctp_max_burst], len len[val])
+setsockopt$inet_sctp_SCTP_AUTH_CHUNK(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_AUTH_CHUNK], val ptr[in, int8], len len[val])
+setsockopt$inet_sctp_SCTP_HMAC_IDENT(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_HMAC_IDENT], val ptr[in, sctp_hmacalgo], len len[val])
+setsockopt$inet_sctp_SCTP_AUTH_KEY(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_AUTH_KEY], val ptr[in, sctp_authkey], len len[val])
+setsockopt$inet_sctp_SCTP_AUTH_ACTIVE_KEY(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_AUTH_ACTIVE_KEY], val ptr[in, sctp_authkeyid], len len[val])
+setsockopt$inet_sctp_SCTP_AUTH_DELETE_KEY(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_AUTH_DELETE_KEY], val ptr[in, sctp_authkeyid], len len[val])
+setsockopt$inet_sctp_SCTP_AUTO_ASCONF(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_AUTO_ASCONF], val ptr[in, int32], len len[val])
+setsockopt$inet_sctp_SCTP_PEER_ADDR_THLDS(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_PEER_ADDR_THLDS], val ptr[in, sctp_paddrthlds], len len[val])
+setsockopt$inet_sctp_SCTP_RECVRCVINFO(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_RECVRCVINFO], val ptr[in, int32], len len[val])
+setsockopt$inet_sctp_SCTP_RECVNXTINFO(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_RECVNXTINFO], val ptr[in, int32], len len[val])
+
+getsockopt$inet_sctp_SCTP_STATUS(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_STATUS], val ptr[inout, sctp_status], len ptr[inout, len[val, int32]] )
+getsockopt$inet_sctp_SCTP_DISABLE_FRAGMENTS(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_DISABLE_FRAGMENTS], val ptr[out, int32], len ptr[inout, len[val, int32]] )
+getsockopt$inet_sctp_SCTP_EVENTS(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_EVENTS], val ptr[out, sctp_event_subscribe], len ptr[inout, len[val, int32]] )
+getsockopt$inet_sctp_SCTP_AUTOCLOSE(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_AUTOCLOSE], val ptr[out, int32], len ptr[inout, len[val, int32]] )
+getsockopt$inet_sctp_SCTP_SOCKOPT_PEELOFF(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_SOCKOPT_PEELOFF], val ptr[inout, sctp_peeloff_arg_t], len ptr[inout, len[val, int32]] )
+getsockopt$inet_sctp_SCTP_PEER_ADDR_PARAMS(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_PEER_ADDR_PARAMS], val ptr[inout, sctp_paddrparams], len ptr[inout, len[val, int32]] )
+getsockopt$inet_sctp_SCTP_DELAYED_SACK(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_DELAYED_SACK], val ptr[inout, sctp_sack_info], len ptr[inout, len[val, int32]] )
+getsockopt$inet_sctp_SCTP_INITMSG(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_INITMSG], val ptr[out, sctp_initmsg], len ptr[inout, len[val, int32]] )
+getsockopt$inet_sctp_SCTP_GET_PEER_ADDRS(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_GET_PEER_ADDRS], val ptr[inout, sctp_getaddrs], len ptr[inout, len[val, int32]] )
+getsockopt$inet_sctp_SCTP_GET_LOCAL_ADDRS(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_GET_LOCAL_ADDRS], val ptr[inout, sctp_getaddrs], len ptr[inout, len[val, int32]] )
+getsockopt$inet_sctp_SCTP_SOCKOPT_CONNECTX3(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_SOCKOPT_CONNECTX3], val ptr[inout, sctp_getaddrs_old], len ptr[inout, len[val, int32]] )
+getsockopt$inet_sctp_SCTP_DEFAULT_SEND_PARAM(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_DEFAULT_SEND_PARAM], val ptr[inout, sctp_sndrcvinfo], len ptr[inout, len[val, int32]] )
+getsockopt$inet_sctp_SCTP_DEFAULT_SNDINFO(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_DEFAULT_SNDINFO], val ptr[inout, sctp_sndinfo], len ptr[inout, len[val, int32]] )
+getsockopt$inet_sctp_SCTP_PRIMARY_ADDR(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_PRIMARY_ADDR], val ptr[inout, sctp_prim], len ptr[inout, len[val, int32]] )
+getsockopt$inet_sctp_SCTP_NODELAY(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_NODELAY], val ptr[out, int32], len ptr[inout, len[val, int32]] )
+getsockopt$inet_sctp_SCTP_RTOINFO(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_RTOINFO], val ptr[inout, sctp_rtoinfo], len ptr[inout, len[val, int32]] )
+getsockopt$inet_sctp_SCTP_ASSOCINFO(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_ASSOCINFO], val ptr[inout, sctp_sndinfo], len ptr[inout, len[val, int32]] )
+getsockopt$inet_sctp_SCTP_I_WANT_MAPPED_V4_ADDR(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_I_WANT_MAPPED_V4_ADDR], val ptr[out, int32], len ptr[inout, len[val, int32]] )
+getsockopt$inet_sctp_SCTP_MAXSEG(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_MAXSEG], val ptr[inout, sctp_assoc_value], len ptr[inout, len[val, int32]] )
+getsockopt$inet_sctp_SCTP_GET_PEER_ADDR_INFO(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_GET_PEER_ADDR_INFO], val ptr[inout, sctp_paddrinfo], len ptr[inout, len[val, int32]] )
+getsockopt$inet_sctp_SCTP_ADAPTATION_LAYER(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_ADAPTATION_LAYER], val ptr[out, sctp_setadaptation], len ptr[inout, len[val, int32]] )
+getsockopt$inet_sctp_SCTP_CONTEXT(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_CONTEXT], val ptr[inout, sctp_assoc_value], len ptr[inout, len[val, int32]] )
+getsockopt$inet_sctp_SCTP_FRAGMENT_INTERLEAVE(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_FRAGMENT_INTERLEAVE], val ptr[out, int32], len ptr[inout, len[val, int32]] )
+getsockopt$inet_sctp_SCTP_PARTIAL_DELIVERY_POINT(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_PARTIAL_DELIVERY_POINT], val ptr[inout, sctp_assoc_value], len ptr[inout, len[val, int32]] )
+getsockopt$inet_sctp_SCTP_MAX_BURST(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_MAX_BURST], val ptr[out, int32], len ptr[inout, len[val, int32]] )
+getsockopt$inet_sctp_SCTP_HMAC_IDENT(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_HMAC_IDENT], val ptr[inout, sctp_authkeyid], len ptr[inout, len[val, int32]] )
+getsockopt$inet_sctp_SCTP_AUTH_ACTIVE_KEY(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_AUTH_ACTIVE_KEY], val ptr[inout, sctp_authkeyid], len ptr[inout, len[val, int32]] )
+getsockopt$inet_sctp_SCTP_PEER_AUTH_CHUNKS(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_PEER_AUTH_CHUNKS], val ptr[inout, sctp_authchunks], len ptr[inout, len[val, int32]] )
+getsockopt$inet_sctp_SCTP_LOCAL_AUTH_CHUNKS(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_LOCAL_AUTH_CHUNKS], val ptr[inout, sctp_authchunks], len ptr[inout, len[val, int32]] )
+getsockopt$inet_sctp_SCTP_GET_ASSOC_NUMBER(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_GET_ASSOC_NUMBER], val ptr[out, int32], len ptr[inout, len[val, int32]] )
+getsockopt$inet_sctp_SCTP_GET_ASSOC_ID_LIST(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_GET_ASSOC_ID_LIST], val ptr[out, sctp_assoc_ids], len ptr[inout, len[val, int32]] )
+getsockopt$inet_sctp_SCTP_AUTO_ASCONF(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_AUTO_ASCONF], val ptr[out, int32], len ptr[inout, len[val, int32]] )
+getsockopt$inet_sctp_SCTP_PEER_ADDR_THLDS(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_PEER_ADDR_THLDS], val ptr[inout, sctp_paddrthlds], len ptr[inout, len[val, int32]] )
+getsockopt$inet_sctp_SCTP_GET_ASSOC_STATS(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_GET_ASSOC_STATS], val ptr[inout, sctp_assoc_stats], len ptr[inout, len[val, int32]] )
+getsockopt$inet_sctp_SCTP_RECVRCVINFO(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_RECVRCVINFO], val ptr[out, int32], len ptr[inout, len[val, int32]] )
+getsockopt$inet_sctp_SCTP_RECVNXTINFO(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_RECVNXTINFO], val ptr[out, int32], len ptr[inout, len[val, int32]] )
+
+ioctl$sock_inet_sctp_SIOCINQ(fd sock_sctp, cmd const[SIOCINQ], arg ptr[out, int32])
sctp_socket_type = SOCK_STREAM, SOCK_SEQPACKET
sctp_sndrcv_flags = SCTP_UNORDERED, SCTP_ADDR_OVER, SCTP_ABORT, SCTP_EOF
@@ -109,6 +109,16 @@ sockaddr_sctp [
in6 sockaddr_in6
] [varlen]
+sockaddr_storage_in {
+ addr sockaddr_in
+ pad array[const[0, int64], 15]
+}
+
+sockaddr_storage_in6 {
+ addr sockaddr_in6
+ pad array[const[0, int64], 12]
+}
+
sockaddr_storage_sctp [
in sockaddr_storage_in
in6 sockaddr_storage_in6
diff --git a/sys/socket_inet_tcp.txt b/sys/socket_inet_tcp.txt
index e3cb449ae..5dfe0c31c 100644
--- a/sys/socket_inet_tcp.txt
+++ b/sys/socket_inet_tcp.txt
@@ -31,12 +31,12 @@ tcp_option_types_int = TCP_NODELAY, TCP_MAXSEG, TCP_CORK, TCP_KEEPIDLE, TCP_KEEP
tcp_option_types_buf = TCP_INFO, TCP_CONGESTION, TCP_MD5SIG, TCP_REPAIR_OPTIONS, TCP_CC_INFO, TCP_SAVED_SYN, TCP_REPAIR_WINDOW
-getsockopt$tcp_int(fd sock_tcp, level const[IPPROTO_TCP], optname flags[tcp_option_types_int], optval ptr[out, int32], optlen ptr[inout, len[optval, int32]])
-setsockopt$tcp_int(fd sock_tcp, level const[IPPROTO_TCP], optname flags[tcp_option_types_int], optval ptr[in, int32], optlen len[optval])
-getsockopt$tcp6_int(fd sock_tcp6, level const[IPPROTO_TCP], optname flags[tcp_option_types_int], optval ptr[out, int32], optlen ptr[inout, len[optval, int32]])
-setsockopt$tcp6_int(fd sock_tcp6, level const[IPPROTO_TCP], optname flags[tcp_option_types_int], optval ptr[in, int32], optlen len[optval])
-
-getsockopt$tcp_buf(fd sock_tcp, level const[IPPROTO_TCP], optname flags[tcp_option_types_buf], optval buffer[out], optlen ptr[inout, len[optval, int32]])
-setsockopt$tcp_buf(fd sock_tcp, level const[IPPROTO_TCP], optname flags[tcp_option_types_buf], optval buffer[in], optlen len[optval])
-getsockopt$tcp6_buf(fd sock_tcp6, level const[IPPROTO_TCP], optname flags[tcp_option_types_buf], optval buffer[out], optlen ptr[inout, len[optval, int32]])
-setsockopt$tcp6_buf(fd sock_tcp6, level const[IPPROTO_TCP], optname flags[tcp_option_types_buf], optval buffer[in], optlen len[optval])
+getsockopt$inet_tcp_int(fd sock_tcp, level const[IPPROTO_TCP], optname flags[tcp_option_types_int], optval ptr[out, int32], optlen ptr[inout, len[optval, int32]])
+setsockopt$inet_tcp_int(fd sock_tcp, level const[IPPROTO_TCP], optname flags[tcp_option_types_int], optval ptr[in, int32], optlen len[optval])
+getsockopt$inet6_tcp_int(fd sock_tcp6, level const[IPPROTO_TCP], optname flags[tcp_option_types_int], optval ptr[out, int32], optlen ptr[inout, len[optval, int32]])
+setsockopt$inet6_tcp_int(fd sock_tcp6, level const[IPPROTO_TCP], optname flags[tcp_option_types_int], optval ptr[in, int32], optlen len[optval])
+
+getsockopt$inet_tcp_buf(fd sock_tcp, level const[IPPROTO_TCP], optname flags[tcp_option_types_buf], optval buffer[out], optlen ptr[inout, len[optval, int32]])
+setsockopt$inet_tcp_buf(fd sock_tcp, level const[IPPROTO_TCP], optname flags[tcp_option_types_buf], optval buffer[in], optlen len[optval])
+getsockopt$inet6_tcp_buf(fd sock_tcp6, level const[IPPROTO_TCP], optname flags[tcp_option_types_buf], optval buffer[out], optlen ptr[inout, len[optval, int32]])
+setsockopt$inet6_tcp_buf(fd sock_tcp6, level const[IPPROTO_TCP], optname flags[tcp_option_types_buf], optval buffer[in], optlen len[optval])
diff --git a/sys/socket_inet_udp.txt b/sys/socket_inet_udp.txt
index 3447a300e..dddb4bb20 100644
--- a/sys/socket_inet_udp.txt
+++ b/sys/socket_inet_udp.txt
@@ -29,16 +29,16 @@ socketpair$udp6(domain const[AF_INET6], type const[SOCK_DGRAM], proto const[0],
udp_option_types_int = UDP_CORK, UDP_ENCAP, UDP_NO_CHECK6_TX, UDP_NO_CHECK6_RX
-getsockopt$udp_int(fd sock_udp, level const[IPPROTO_UDP], optname flags[udp_option_types_int], optval ptr[out, int32], optlen ptr[inout, len[optval, int32]])
-setsockopt$udp_int(fd sock_udp, level const[IPPROTO_UDP], optname flags[udp_option_types_int], optval ptr[in, int32], optlen len[optval])
-getsockopt$udp6_int(fd sock_udp6, level const[IPPROTO_UDP], optname flags[udp_option_types_int], optval ptr[out, int32], optlen ptr[inout, len[optval, int32]])
-setsockopt$udp6_int(fd sock_udp6, level const[IPPROTO_UDP], optname flags[udp_option_types_int], optval ptr[in, int32], optlen len[optval])
+getsockopt$inet_udp_int(fd sock_udp, level const[IPPROTO_UDP], optname flags[udp_option_types_int], optval ptr[out, int32], optlen ptr[inout, len[optval, int32]])
+setsockopt$inet_udp_int(fd sock_udp, level const[IPPROTO_UDP], optname flags[udp_option_types_int], optval ptr[in, int32], optlen len[optval])
+getsockopt$inet6_udp_int(fd sock_udp6, level const[IPPROTO_UDP], optname flags[udp_option_types_int], optval ptr[out, int32], optlen ptr[inout, len[optval, int32]])
+setsockopt$inet6_udp_int(fd sock_udp6, level const[IPPROTO_UDP], optname flags[udp_option_types_int], optval ptr[in, int32], optlen len[optval])
# Specific UDP socket options
udp_encap_option_values = UDP_ENCAP_ESPINUDP_NON_IKE, UDP_ENCAP_ESPINUDP, UDP_ENCAP_L2TPINUDP, UDP_ENCAP_GTP0, UDP_ENCAP_GTP1U
-setsockopt$udp_encap(fd sock_udp, level const[IPPROTO_UDP], optname const[UDP_ENCAP], optval ptr[in, flags[udp_encap_option_values, int32]], optlen len[optval])
-setsockopt$udp6_encap(fd sock_udp6, level const[IPPROTO_UDP], optname const[UDP_ENCAP], optval ptr[in, flags[udp_encap_option_values, int32]], optlen len[optval])
+setsockopt$inet_udp_encap(fd sock_udp, level const[IPPROTO_UDP], optname const[UDP_ENCAP], optval ptr[in, flags[udp_encap_option_values, int32]], optlen len[optval])
+setsockopt$inet6_udp_encap(fd sock_udp6, level const[IPPROTO_UDP], optname const[UDP_ENCAP], optval ptr[in, flags[udp_encap_option_values, int32]], optlen len[optval])
# TODO: UDPLITE_SEND_CSCOV, UDPLITE_RECV_CSCOV
diff --git a/sys/socket_ipx.txt b/sys/socket_ipx.txt
index 7e6d1c61f..8166ceaa9 100644
--- a/sys/socket_ipx.txt
+++ b/sys/socket_ipx.txt
@@ -39,19 +39,19 @@ sockaddr_ipx {
# Specific options
-getsockopt$IPX_TYPE(fd sock_ipx, level const[SOL_IPX], optname const[IPX_TYPE], optval ptr[out, int32], optlen ptr[inout, len[optval, int32]])
-setsockopt$IPX_TYPE(fd sock_ipx, level const[SOL_IPX], optname const[IPX_TYPE], optval ptr[in, int32], optlen len[optval])
+getsockopt$ipx_IPX_TYPE(fd sock_ipx, level const[SOL_IPX], optname const[IPX_TYPE], optval ptr[out, int32], optlen ptr[inout, len[optval, int32]])
+setsockopt$ipx_IPX_TYPE(fd sock_ipx, level const[SOL_IPX], optname const[IPX_TYPE], optval ptr[in, int32], optlen len[optval])
# ioctls
# TODO: SIOCDELRT & SIOCADDRT (net/ipx/ipx_route.c)
-ioctl$SIOCSIFADDR(fd sock_ipx, cmd const[SIOCSIFADDR], arg ptr[in, ifreq_ipx])
-ioctl$SIOCGIFADDR(fd sock_ipx, cmd const[SIOCGIFADDR], arg ptr[inout, ifreq_ipx])
-ioctl$SIOCAIPXITFCRT(fd sock_ipx, cmd const[SIOCAIPXITFCRT], arg ptr[in, int32])
-ioctl$SIOCAIPXPRISLT(fd sock_ipx, cmd const[SIOCAIPXPRISLT], arg ptr[in, int32])
-ioctl$SIOCIPXCFGDATA(fd sock_ipx, cmd const[SIOCIPXCFGDATA], arg ptr[out, ipx_config_data])
-ioctl$SIOCIPXNCPCONN(fd sock_ipx, cmd const[SIOCIPXNCPCONN], arg ptr[in, int16])
+ioctl$sock_ipx_SIOCSIFADDR(fd sock_ipx, cmd const[SIOCSIFADDR], arg ptr[in, ifreq_ipx])
+ioctl$sock_ipx_SIOCGIFADDR(fd sock_ipx, cmd const[SIOCGIFADDR], arg ptr[inout, ifreq_ipx])
+ioctl$sock_ipx_SIOCAIPXITFCRT(fd sock_ipx, cmd const[SIOCAIPXITFCRT], arg ptr[in, int32])
+ioctl$sock_ipx_SIOCAIPXPRISLT(fd sock_ipx, cmd const[SIOCAIPXPRISLT], arg ptr[in, int32])
+ioctl$sock_ipx_SIOCIPXCFGDATA(fd sock_ipx, cmd const[SIOCIPXCFGDATA], arg ptr[out, ipx_config_data])
+ioctl$sock_ipx_SIOCIPXNCPCONN(fd sock_ipx, cmd const[SIOCIPXNCPCONN], arg ptr[in, int16])
ifreq_ipx {
ifrn_name array[int8, IFNAMSIZ]
diff --git a/sys/socket_kcm.txt b/sys/socket_kcm.txt
index feb7eb80c..83cd2fb95 100755
--- a/sys/socket_kcm.txt
+++ b/sys/socket_kcm.txt
@@ -8,14 +8,14 @@ include <linux/sockios.h>
resource sock_kcm[sock]
socket$kcm(domain const[AF_KCM], type flags[kcm_socket_type], proto const[KCMPROTO_CONNECTED]) sock_kcm
-setsockopt$KCM_RECV_DISABLE(fd sock_kcm, level const[SOL_KCM], opt const[KCM_RECV_DISABLE], val ptr[in, int32], len len[val])
-getsockopt$KCM_RECV_DISABLE(fd sock_kcm, level const[SOL_KCM], opt const[KCM_RECV_DISABLE], val ptr[out, int32], len len[val])
+setsockopt$kcm_KCM_RECV_DISABLE(fd sock_kcm, level const[SOL_KCM], opt const[KCM_RECV_DISABLE], val ptr[in, int32], len len[val])
+getsockopt$kcm_KCM_RECV_DISABLE(fd sock_kcm, level const[SOL_KCM], opt const[KCM_RECV_DISABLE], val ptr[out, int32], len len[val])
sendmsg$kcm(fd sock_kcm, msg ptr[in, send_msghdr], f flags[send_flags])
recvmsg$kcm(fd sock_kcm, msg ptr[in, recv_msghdr], f flags[recv_flags])
-ioctl$SIOCKCMATTACH(fd sock_kcm, cmd const[SIOCKCMATTACH], arg ptr[in, kcm_attach])
-ioctl$SIOCKCMUNATTACH(fd sock_kcm, cmd const[SIOCKCMUNATTACH], arg ptr[in, kcm_unattach])
-ioctl$SIOCKCMCLONE(fd sock_kcm, cmd const[SIOCKCMCLONE], arg ptr[inout, kcm_clone])
+ioctl$sock_kcm_SIOCKCMATTACH(fd sock_kcm, cmd const[SIOCKCMATTACH], arg ptr[in, kcm_attach])
+ioctl$sock_kcm_SIOCKCMUNATTACH(fd sock_kcm, cmd const[SIOCKCMUNATTACH], arg ptr[in, kcm_unattach])
+ioctl$sock_kcm_SIOCKCMCLONE(fd sock_kcm, cmd const[SIOCKCMCLONE], arg ptr[inout, kcm_clone])
kcm_socket_type = SOCK_DGRAM, SOCK_SEQPACKET
diff --git a/sys/socket_netlink.txt b/sys/socket_netlink.txt
index c58807fb5..3e2a35631 100644
--- a/sys/socket_netlink.txt
+++ b/sys/socket_netlink.txt
@@ -14,15 +14,15 @@ connect$netlink(fd sock_netlink, addr ptr[in, sockaddr_nl], addrlen len[addr])
getsockname$netlink(fd sock_netlink, addr ptr[out, sockaddr_nl], addrlen ptr[inout, len[addr, int32]])
getpeername$netlink(fd sock_netlink, peer ptr[out, sockaddr_nl], peerlen ptr[inout, len[peer, int32]])
sendmsg$netlink(fd sock_netlink, msg ptr[in, msghdr_netlink], f flags[send_flags])
-setsockopt$NETLINK_ADD_MEMBERSHIP(fd sock_netlink, level const[SOL_NETLINK], opt const[NETLINK_ADD_MEMBERSHIP], arg ptr[in, int32], arglen len[arg])
-setsockopt$NETLINK_DROP_MEMBERSHIP(fd sock_netlink, level const[SOL_NETLINK], opt const[NETLINK_DROP_MEMBERSHIP], arg ptr[in, int32], arglen len[arg])
-setsockopt$NETLINK_PKTINFO(fd sock_netlink, level const[SOL_NETLINK], opt const[NETLINK_PKTINFO], arg ptr[in, int32], arglen len[arg])
-setsockopt$NETLINK_BROADCAST_ERROR(fd sock_netlink, level const[SOL_NETLINK], opt const[NETLINK_BROADCAST_ERROR], arg ptr[in, int32], arglen len[arg])
-setsockopt$NETLINK_NO_ENOBUFS(fd sock_netlink, level const[SOL_NETLINK], opt const[NETLINK_NO_ENOBUFS], arg ptr[in, int32], arglen len[arg])
-setsockopt$NETLINK_RX_RING(fd sock_netlink, level const[SOL_NETLINK], opt const[NETLINK_RX_RING], arg ptr[in, nl_mmap_req], arglen len[arg])
-setsockopt$NETLINK_TX_RING(fd sock_netlink, level const[SOL_NETLINK], opt const[NETLINK_TX_RING], arg ptr[in, nl_mmap_req], arglen len[arg])
-setsockopt$NETLINK_LISTEN_ALL_NSID(fd sock_netlink, level const[SOL_NETLINK], opt const[NETLINK_LISTEN_ALL_NSID], arg ptr[in, int32], arglen len[arg])
-setsockopt$NETLINK_CAP_ACK(fd sock_netlink, level const[SOL_NETLINK], opt const[NETLINK_CAP_ACK], arg ptr[in, int32], arglen len[arg])
+setsockopt$netlink_NETLINK_ADD_MEMBERSHIP(fd sock_netlink, level const[SOL_NETLINK], opt const[NETLINK_ADD_MEMBERSHIP], arg ptr[in, int32], arglen len[arg])
+setsockopt$netlink_NETLINK_DROP_MEMBERSHIP(fd sock_netlink, level const[SOL_NETLINK], opt const[NETLINK_DROP_MEMBERSHIP], arg ptr[in, int32], arglen len[arg])
+setsockopt$netlink_NETLINK_PKTINFO(fd sock_netlink, level const[SOL_NETLINK], opt const[NETLINK_PKTINFO], arg ptr[in, int32], arglen len[arg])
+setsockopt$netlink_NETLINK_BROADCAST_ERROR(fd sock_netlink, level const[SOL_NETLINK], opt const[NETLINK_BROADCAST_ERROR], arg ptr[in, int32], arglen len[arg])
+setsockopt$netlink_NETLINK_NO_ENOBUFS(fd sock_netlink, level const[SOL_NETLINK], opt const[NETLINK_NO_ENOBUFS], arg ptr[in, int32], arglen len[arg])
+setsockopt$netlink_NETLINK_RX_RING(fd sock_netlink, level const[SOL_NETLINK], opt const[NETLINK_RX_RING], arg ptr[in, nl_mmap_req], arglen len[arg])
+setsockopt$netlink_NETLINK_TX_RING(fd sock_netlink, level const[SOL_NETLINK], opt const[NETLINK_TX_RING], arg ptr[in, nl_mmap_req], arglen len[arg])
+setsockopt$netlink_NETLINK_LISTEN_ALL_NSID(fd sock_netlink, level const[SOL_NETLINK], opt const[NETLINK_LISTEN_ALL_NSID], arg ptr[in, int32], arglen len[arg])
+setsockopt$netlink_NETLINK_CAP_ACK(fd sock_netlink, level const[SOL_NETLINK], opt const[NETLINK_CAP_ACK], arg ptr[in, int32], arglen len[arg])
getsockopt$netlink(fd sock_netlink, level const[SOL_NETLINK], opt flags[netlink_sockopts], arg buffer[out], arglen ptr[inout, len[arg, int32]])
netlink_family = AF_NETLINK, AF_UNSPEC
diff --git a/sys/socket_netrom.txt b/sys/socket_netrom.txt
index 37d709761..330abcf91 100755
--- a/sys/socket_netrom.txt
+++ b/sys/socket_netrom.txt
@@ -17,24 +17,24 @@ recvmsg$netrom(fd sock_netrom, msg ptr[in, msghdr_netrom], f flags[recv_flags])
getsockname$netrom(fd sock_netrom, addr ptr[out, sockaddr_netrom], addrlen ptr[inout, len[addr, int32]])
getpeername$netrom(fd sock_netrom, peer ptr[out, sockaddr_netrom], peerlen ptr[inout, len[peer, int32]])
-setsockopt$NETROM_T1(fd sock_netrom, level const[SOL_NETROM], opt const[NETROM_T1], arg ptr[in, int32], arglen len[arg])
-setsockopt$NETROM_T2(fd sock_netrom, level const[SOL_NETROM], opt const[NETROM_T2], arg ptr[in, int32], arglen len[arg])
-setsockopt$NETROM_N2(fd sock_netrom, level const[SOL_NETROM], opt const[NETROM_N2], arg ptr[in, int32], arglen len[arg])
-setsockopt$NETROM_T4(fd sock_netrom, level const[SOL_NETROM], opt const[NETROM_T4], arg ptr[in, int32], arglen len[arg])
-setsockopt$NETROM_IDLE(fd sock_netrom, level const[SOL_NETROM], opt const[NETROM_IDLE], arg ptr[in, int32], arglen len[arg])
-
-getsockopt$NETROM_T1(fd sock_netrom, level const[SOL_NETROM], opt const[NETROM_T1], arg ptr[out, int32], arglen ptr[inout, len[arg, int32]])
-getsockopt$NETROM_T2(fd sock_netrom, level const[SOL_NETROM], opt const[NETROM_T2], arg ptr[in, int32], arglen ptr[inout, len[arg, int32]])
-getsockopt$NETROM_N2(fd sock_netrom, level const[SOL_NETROM], opt const[NETROM_N2], arg ptr[in, int32], arglen ptr[inout, len[arg, int32]])
-getsockopt$NETROM_T4(fd sock_netrom, level const[SOL_NETROM], opt const[NETROM_T4], arg ptr[in, int32], arglen ptr[inout, len[arg, int32]])
-getsockopt$NETROM_IDLE(fd sock_netrom, level const[SOL_NETROM], opt const[NETROM_IDLE], arg ptr[in, int32], arglen ptr[inout, len[arg, int32]])
+setsockopt$netrom_NETROM_T1(fd sock_netrom, level const[SOL_NETROM], opt const[NETROM_T1], arg ptr[in, int32], arglen len[arg])
+setsockopt$netrom_NETROM_T2(fd sock_netrom, level const[SOL_NETROM], opt const[NETROM_T2], arg ptr[in, int32], arglen len[arg])
+setsockopt$netrom_NETROM_N2(fd sock_netrom, level const[SOL_NETROM], opt const[NETROM_N2], arg ptr[in, int32], arglen len[arg])
+setsockopt$netrom_NETROM_T4(fd sock_netrom, level const[SOL_NETROM], opt const[NETROM_T4], arg ptr[in, int32], arglen len[arg])
+setsockopt$netrom_NETROM_IDLE(fd sock_netrom, level const[SOL_NETROM], opt const[NETROM_IDLE], arg ptr[in, int32], arglen len[arg])
+
+getsockopt$netrom_NETROM_T1(fd sock_netrom, level const[SOL_NETROM], opt const[NETROM_T1], arg ptr[out, int32], arglen ptr[inout, len[arg, int32]])
+getsockopt$netrom_NETROM_T2(fd sock_netrom, level const[SOL_NETROM], opt const[NETROM_T2], arg ptr[in, int32], arglen ptr[inout, len[arg, int32]])
+getsockopt$netrom_NETROM_N2(fd sock_netrom, level const[SOL_NETROM], opt const[NETROM_N2], arg ptr[in, int32], arglen ptr[inout, len[arg, int32]])
+getsockopt$netrom_NETROM_T4(fd sock_netrom, level const[SOL_NETROM], opt const[NETROM_T4], arg ptr[in, int32], arglen ptr[inout, len[arg, int32]])
+getsockopt$netrom_NETROM_IDLE(fd sock_netrom, level const[SOL_NETROM], opt const[NETROM_IDLE], arg ptr[in, int32], arglen ptr[inout, len[arg, int32]])
# TODO: make these more generic
-ioctl$NETROM_TIOCOUTQ(fd sock_netrom, cmd const[TIOCOUTQ], arg ptr[out, int32])
-ioctl$NETROM_TIOCINQ(fd sock_netrom, cmd const[TIOCINQ], arg ptr[out, int32])
-ioctl$NETROM_SIOCGSTAMP(fd sock_netrom, cmd const[SIOCGSTAMP], arg ptr[out, int32])
-ioctl$NETROM_SIOCGSTAMPNS(fd sock_netrom, cmd const[SIOCGSTAMPNS], arg ptr[out, int32])
-ioctl$NETROM_SIOCADDRT(fd sock_netrom, cmd const[SIOCADDRT], arg ptr[out, int32])
+ioctl$sock_netrom_TIOCOUTQ(fd sock_netrom, cmd const[TIOCOUTQ], arg ptr[out, int32])
+ioctl$sock_netrom_TIOCINQ(fd sock_netrom, cmd const[TIOCINQ], arg ptr[out, int32])
+ioctl$sock_netrom_SIOCGSTAMP(fd sock_netrom, cmd const[SIOCGSTAMP], arg ptr[out, int32])
+ioctl$sock_netrom_SIOCGSTAMPNS(fd sock_netrom, cmd const[SIOCGSTAMPNS], arg ptr[out, int32])
+ioctl$sock_netrom_SIOCADDRT(fd sock_netrom, cmd const[SIOCADDRT], arg ptr[out, int32])
sockaddr_netrom [
ax25 sockaddr_ax25
diff --git a/sys/socket_nfc.txt b/sys/socket_nfc.txt
index db388f49e..d3d4216de 100644
--- a/sys/socket_nfc.txt
+++ b/sys/socket_nfc.txt
@@ -13,8 +13,8 @@ socket$nfc_llcp(domain const[AF_NFC], type flags[nfc_llcp_type], proto const[NFC
bind$nfc_llcp(fd sock_nfc_llcp, addr ptr[in, sockaddr_nfc_llcp], addrlen len[addr])
connect$nfc_llcp(fd sock_nfc_llcp, addr ptr[in, sockaddr_nfc_llcp], addrlen len[addr])
accept$nfc_llcp(fd sock_nfc_llcp, peer ptr[out, sockaddr_nfc_llcp, opt], peerlen ptr[inout, len[peer, int32]]) sock_nfc_llcp
-setsockopt$NFC_LLCP_RW(fd sock_nfc_llcp, level const[SOL_NFC], opt const[NFC_LLCP_RW], arg ptr[in, int32], arglen len[arg])
-setsockopt$NFC_LLCP_MIUX(fd sock_nfc_llcp, level const[SOL_NFC], opt const[NFC_LLCP_MIUX], arg ptr[in, int32], arglen len[arg])
+setsockopt$nfc_llcp_NFC_LLCP_RW(fd sock_nfc_llcp, level const[SOL_NFC], opt const[NFC_LLCP_RW], arg ptr[in, int32], arglen len[arg])
+setsockopt$nfc_llcp_NFC_LLCP_MIUX(fd sock_nfc_llcp, level const[SOL_NFC], opt const[NFC_LLCP_MIUX], arg ptr[in, int32], arglen len[arg])
getsockopt$nfc_llcp(fd sock_nfc_llcp, level const[SOL_NFC], opt flags[nfc_llcp_opts], arg buffer[out], arglen len[arg])
sendmsg$nfc_llcp(fd sock_nfc_llcp, msg ptr[in, nfc_llcp_send_msghdr], f flags[send_flags])
sendmmsg$nfc_llcp(fd sock_nfc_llcp, mmsg ptr[in, array[nfc_llcp_send_msghdr]], vlen len[mmsg], f flags[send_flags])
diff --git a/sys/socket_ppc64le.const b/sys/socket_ppc64le.const
index d4243b037..d66e232e1 100644
--- a/sys/socket_ppc64le.const
+++ b/sys/socket_ppc64le.const
@@ -9,6 +9,12 @@ AF_NETLINK = 16
AF_PACKET = 17
AF_UNIX = 1
AF_X25 = 9
+BRCTL_ADD_BRIDGE = 2
+BRCTL_DEL_BRIDGE = 3
+BRCTL_GET_BRIDGES = 1
+BRCTL_GET_VERSION = 0
+FIOGETOWN = 35075
+FIOSETOWN = 35073
IFF_ATTACH_QUEUE = 512
IFF_DETACH_QUEUE = 1024
IFF_MULTI_QUEUE = 256
@@ -40,9 +46,73 @@ MSG_WAITALL = 256
MSG_WAITFORONE = 65536
SHUT_RD = 0
SHUT_WR = 1
+SIOCADDDLCI = 35200
+SIOCADDMULTI = 35121
+SIOCBONDCHANGEACTIVE = 35221
+SIOCBONDENSLAVE = 35216
+SIOCBONDINFOQUERY = 35220
+SIOCBONDRELEASE = 35217
+SIOCBONDSETHWADDR = 35218
+SIOCBONDSLAVEINFOQUERY = 35219
+SIOCBRADDBR = 35232
+SIOCBRADDIF = 35234
+SIOCBRDELBR = 35233
+SIOCBRDELIF = 35235
+SIOCDELDLCI = 35201
+SIOCDELMULTI = 35122
+SIOCDEVPRIVATE_BEG = 35312
+SIOCDEVPRIVATE_END = 35327
+SIOCDIFADDR = 35126
+SIOCETHTOOL = 35142
+SIOCGHWTSTAMP = 35249
+SIOCGIFADDR = 35093
+SIOCGIFBR = 35136
+SIOCGIFBRDADDR = 35097
+SIOCGIFCOUNT = 35128
+SIOCGIFDSTADDR = 35095
+SIOCGIFENCAP = 35109
+SIOCGIFFLAGS = 35091
+SIOCGIFHWADDR = 35111
+SIOCGIFINDEX = 35123
+SIOCGIFMAP = 35184
+SIOCGIFMEM = 35103
+SIOCGIFMETRIC = 35101
+SIOCGIFMTU = 35105
SIOCGIFNAME = 35088
+SIOCGIFNETMASK = 35099
+SIOCGIFPFLAGS = 35125
+SIOCGIFSLAVE = 35113
+SIOCGIFTXQLEN = 35138
+SIOCGMIIPHY = 35143
+SIOCGMIIREG = 35144
+SIOCGPGRP = 35076
+SIOCGSKNS = 35148
SIOCINQ = 1074030207
SIOCOUTQ = 1074033779
+SIOCOUTQNSD = 35147
+SIOCPROTOPRIVATE_BEG = 35296
+SIOCPROTOPRIVATE_END = 35311
+SIOCSHWTSTAMP = 35248
+SIOCSIFADDR = 35094
+SIOCSIFBRDADDR = 35098
+SIOCSIFDSTADDR = 35096
+SIOCSIFENCAP = 35110
+SIOCSIFFLAGS = 35092
+SIOCSIFHWADDR = 35108
+SIOCSIFHWBROADCAST = 35127
+SIOCSIFLINK = 35089
+SIOCSIFMAP = 35185
+SIOCSIFMEM = 35104
+SIOCSIFMETRIC = 35102
+SIOCSIFMTU = 35106
+SIOCSIFNAME = 35107
+SIOCSIFNETMASK = 35100
+SIOCSIFPFLAGS = 35124
+SIOCSIFSLAVE = 35120
+SIOCSIFTXQLEN = 35139
+SIOCSMIIREG = 35145
+SIOCSPGRP = 35074
+SIOCWANDEV = 35146
SOCK_CLOEXEC = 524288
SOCK_DGRAM = 2
SOCK_NONBLOCK = 2048