aboutsummaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authorAndrey Konovalov <andreyknvl@gmail.com>2017-05-26 16:27:01 +0200
committerGitHub <noreply@github.com>2017-05-26 16:27:01 +0200
commitce6ca6a0c88412675313cbfbc3298f2e03661119 (patch)
treee40e6ab0821aa7439f45bed8a15a65365bdbfd9e /sys
parent8320ea0056ddf1f35ea1daf9584f9f9aa6ae4491 (diff)
parent45677c26fc5b2eb9e657217037b3465563424f74 (diff)
Merge pull request #181 from xairy/up-sctp-sockets
Refactor and improve SCTP socket descriptions
Diffstat (limited to 'sys')
-rwxr-xr-xsys/socket_inet_sctp.txt630
-rw-r--r--sys/socket_inet_sctp_amd64.const21
-rw-r--r--sys/socket_inet_sctp_arm64.const21
-rw-r--r--sys/socket_inet_sctp_ppc64le.const21
-rw-r--r--sys/sys_amd64.const2
-rw-r--r--sys/sys_arm64.const2
-rw-r--r--sys/sys_ppc64le.const2
7 files changed, 450 insertions, 249 deletions
diff --git a/sys/socket_inet_sctp.txt b/sys/socket_inet_sctp.txt
index 67ef363a0..4139a5733 100755
--- a/sys/socket_inet_sctp.txt
+++ b/sys/socket_inet_sctp.txt
@@ -6,114 +6,31 @@
include <linux/sctp.h>
include <asm/ioctls.h>
-resource sock_sctp[sock]
+resource sock_sctp[sock_in]
+
+sctp_pair {
+ f0 sock_sctp
+ f1 sock_sctp
+}
socket$inet_sctp(domain const[AF_INET], type flags[sctp_socket_type], proto const[IPPROTO_SCTP]) sock_sctp
-socket$inet6_sctp(domain const[AF_INET6], type flags[sctp_socket_type], proto const[IPPROTO_SCTP]) sock_sctp
socketpair$inet_sctp(domain const[AF_INET], type flags[sctp_socket_type], proto const[IPPROTO_SCTP], fds ptr[out, sctp_pair])
-socketpair$inet6_sctp(domain const[AF_INET6], type flags[sctp_socket_type], proto const[IPPROTO_SCTP], fds ptr[out, sctp_pair])
-bind$inet_sctp(fd sock_sctp, addr ptr[in, sockaddr_sctp], addrlen len[addr])
-connect$inet_sctp(fd sock_sctp, addr ptr[in, sockaddr_sctp], addrlen len[addr])
-accept$inet_sctp(fd sock_sctp, peer ptr[out, sockaddr_sctp, opt], peerlen ptr[inout, len[peer, int32]]) sock_sctp
-accept4$inet_sctp(fd sock_sctp, peer ptr[out, sockaddr_sctp, opt], peerlen ptr[inout, len[peer, int32]], flags flags[accept_flags]) sock_sctp
-sendto$inet_sctp(fd sock_sctp, buf buffer[in], len len[buf], f flags[send_flags], addr ptr[in, sockaddr_sctp, opt], addrlen len[addr])
-sendmsg$inet_sctp(fd sock_sctp, msg ptr[in, msghdr_sctp], f flags[send_flags])
-sendmmsg$inet_sctp(fd sock_sctp, mmsg ptr[in, array[msghdr_sctp]], vlen len[mmsg], f flags[send_flags])
-recvfrom$inet_sctp(fd sock_sctp, buf buffer[out], len len[buf], f flags[recv_flags], addr ptr[in, sockaddr_sctp, opt], addrlen len[addr])
-getsockname$inet_sctp(fd sock_sctp, addr ptr[out, sockaddr_sctp], addrlen ptr[inout, len[addr, int32]])
-getpeername$inet_sctp(fd sock_sctp, peer ptr[out, sockaddr_sctp], peerlen ptr[inout, len[peer, 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
-sctp_spp_flags = SPP_HB_ENABLE, SPP_HB_DISABLE, SPP_HB_DEMAND, SPP_HB_TIME_IS_ZERO, SPP_PMTUD_ENABLE, SPP_PMTUD_DISABLE, SPP_SACKDELAY_ENABLE, SPP_SACKDELAY_DISABLE
-sctp_pair {
- fd0 sock_sctp
- fd1 sock_sctp
+resource sock_sctp6[sock_in6]
+
+sctp6_pair {
+ f0 sock_sctp6
+ f1 sock_sctp6
}
-sockaddr_sctp [
- in sockaddr_in
- in6 sockaddr_in6
-] [varlen]
+socket$inet6_sctp(domain const[AF_INET6], type flags[sctp_socket_type], proto const[IPPROTO_SCTP]) sock_sctp6
+socketpair$inet6_sctp(domain const[AF_INET6], type flags[sctp_socket_type], proto const[IPPROTO_SCTP], fds ptr[out, sctp6_pair])
-sockaddr_storage_sctp [
- in sockaddr_storage_in
- in6 sockaddr_storage_in6
-]
+# TODO: separate for ip & ipv6
+sendmsg$inet_sctp(fd sock_sctp, msg ptr[in, msghdr_sctp], f flags[send_flags])
+sendmmsg$inet_sctp(fd sock_sctp, mmsg ptr[in, array[msghdr_sctp]], vlen len[mmsg], f flags[send_flags])
msghdr_sctp {
addr ptr[in, sockaddr_sctp]
@@ -138,13 +55,6 @@ cmsghdr_sctp_init {
msg sctp_initmsg
}
-sctp_initmsg {
- nostr int16
- minstr int16
- maxatt int16
- maxinit int16
-}
-
cmsghdr_sctp_sndrcv {
len len[parent, intptr]
level const[IPPROTO_SCTP, int32]
@@ -152,18 +62,6 @@ cmsghdr_sctp_sndrcv {
msg sctp_sndrcvinfo
}
-sctp_sndrcvinfo {
- stream int16
- ssn int16
- flags flags[sctp_sndrcv_flags, int16]
- ppid int32
- context int32
- ttl int32
- tsn int32
- cumtsn int32
- assoc int32
-}
-
cmsghdr_sctp_sndinfo {
len len[parent, intptr]
level const[IPPROTO_SCTP, int32]
@@ -171,155 +69,443 @@ cmsghdr_sctp_sndinfo {
msg sctp_sndinfo
}
-sctp_sndinfo {
- sid int16
- flags flags[sctp_sndrcv_flags, int16]
- ppid int32
- context int32
- assoc int32
+# Specific SCTP socket options
+
+resource assoc_id[int32]: 0
+
+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_sctp6_SCTP_RTOINFO(fd sock_sctp6, level const[SOL_SCTP], opt const[SCTP_RTOINFO], val ptr[in, sctp_rtoinfo], len len[val])
+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_sctp6_SCTP_RTOINFO(fd sock_sctp6, level const[SOL_SCTP], opt const[SCTP_RTOINFO], val ptr[inout, sctp_rtoinfo], len ptr[inout, len[val, int32]])
+
+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_sctp6_SCTP_ASSOCINFO(fd sock_sctp6, level const[SOL_SCTP], opt const[SCTP_ASSOCINFO], val ptr[in, sctp_assocparams], len len[val])
+getsockopt$inet_sctp_SCTP_ASSOCINFO(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_ASSOCINFO], val ptr[inout, sctp_assocparams], len ptr[inout, len[val, int32]])
+getsockopt$inet_sctp6_SCTP_ASSOCINFO(fd sock_sctp6, level const[SOL_SCTP], opt const[SCTP_ASSOCINFO], val ptr[inout, sctp_assocparams], len ptr[inout, len[val, int32]])
+
+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_sctp6_SCTP_INITMSG(fd sock_sctp6, level const[SOL_SCTP], opt const[SCTP_INITMSG], val ptr[in, sctp_initmsg], len len[val])
+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_sctp6_SCTP_INITMSG(fd sock_sctp6, level const[SOL_SCTP], opt const[SCTP_INITMSG], val ptr[out, sctp_initmsg], len ptr[inout, len[val, int32]])
+
+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_sctp6_SCTP_NODELAY(fd sock_sctp6, level const[SOL_SCTP], opt const[SCTP_NODELAY], val ptr[in, int32], len len[val])
+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_sctp6_SCTP_NODELAY(fd sock_sctp6, level const[SOL_SCTP], opt const[SCTP_NODELAY], val ptr[out, int32], len ptr[inout, len[val, int32]])
+
+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_sctp6_SCTP_AUTOCLOSE(fd sock_sctp6, level const[SOL_SCTP], opt const[SCTP_AUTOCLOSE], val ptr[in, int32], len len[val])
+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_sctp6_SCTP_AUTOCLOSE(fd sock_sctp6, level const[SOL_SCTP], opt const[SCTP_AUTOCLOSE], val ptr[out, int32], len ptr[inout, len[val, int32]])
+
+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_sctp6_SCTP_SET_PEER_PRIMARY_ADDR(fd sock_sctp6, level const[SOL_SCTP], opt const[SCTP_SET_PEER_PRIMARY_ADDR], val ptr[in, sctp_prim], 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_sctp6_SCTP_PRIMARY_ADDR(fd sock_sctp6, level const[SOL_SCTP], opt const[SCTP_PRIMARY_ADDR], val ptr[in, sctp_prim], len len[val])
+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_sctp6_SCTP_PRIMARY_ADDR(fd sock_sctp6, level const[SOL_SCTP], opt const[SCTP_PRIMARY_ADDR], val ptr[inout, sctp_prim], len ptr[inout, len[val, int32]])
+
+setsockopt$inet_sctp_SCTP_ADAPTATION_LAYER(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_ADAPTATION_LAYER], val ptr[in, sctp_setadaptation], len len[val])
+setsockopt$inet_sctp6_SCTP_ADAPTATION_LAYER(fd sock_sctp6, level const[SOL_SCTP], opt const[SCTP_ADAPTATION_LAYER], val ptr[in, sctp_setadaptation], len len[val])
+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_sctp6_SCTP_ADAPTATION_LAYER(fd sock_sctp6, level const[SOL_SCTP], opt const[SCTP_ADAPTATION_LAYER], val ptr[out, sctp_setadaptation], len ptr[inout, len[val, int32]])
+
+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_sctp6_SCTP_DISABLE_FRAGMENTS(fd sock_sctp6, level const[SOL_SCTP], opt const[SCTP_DISABLE_FRAGMENTS], val ptr[in, int32], len len[val])
+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_sctp6_SCTP_DISABLE_FRAGMENTS(fd sock_sctp6, level const[SOL_SCTP], opt const[SCTP_DISABLE_FRAGMENTS], val ptr[out, int32], len ptr[inout, len[val, int32]])
+
+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_sctp6_SCTP_PEER_ADDR_PARAMS(fd sock_sctp6, level const[SOL_SCTP], opt const[SCTP_PEER_ADDR_PARAMS], val ptr[in, sctp_paddrparams], len len[val])
+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_sctp6_SCTP_PEER_ADDR_PARAMS(fd sock_sctp6, level const[SOL_SCTP], opt const[SCTP_PEER_ADDR_PARAMS], val ptr[inout, sctp_paddrparams], len ptr[inout, len[val, int32]])
+
+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_sctp6_SCTP_DEFAULT_SEND_PARAM(fd sock_sctp6, level const[SOL_SCTP], opt const[SCTP_DEFAULT_SEND_PARAM], val ptr[in, sctp_sndrcvinfo], len len[val])
+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_sctp6_SCTP_DEFAULT_SEND_PARAM(fd sock_sctp6, level const[SOL_SCTP], opt const[SCTP_DEFAULT_SEND_PARAM], val ptr[inout, sctp_sndrcvinfo], len ptr[inout, len[val, int32]])
+
+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_sctp6_SCTP_EVENTS(fd sock_sctp6, level const[SOL_SCTP], opt const[SCTP_EVENTS], val ptr[in, sctp_event_subscribe], len len[val])
+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_sctp6_SCTP_EVENTS(fd sock_sctp6, level const[SOL_SCTP], opt const[SCTP_EVENTS], val ptr[out, sctp_event_subscribe], len ptr[inout, len[val, int32]])
+
+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_sctp6_SCTP_I_WANT_MAPPED_V4_ADDR(fd sock_sctp6, level const[SOL_SCTP], opt const[SCTP_I_WANT_MAPPED_V4_ADDR], val ptr[in, int32], len len[val])
+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_sctp6_SCTP_I_WANT_MAPPED_V4_ADDR(fd sock_sctp6, level const[SOL_SCTP], opt const[SCTP_I_WANT_MAPPED_V4_ADDR], val ptr[out, int32], len ptr[inout, len[val, int32]])
+
+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_sctp6_SCTP_MAXSEG(fd sock_sctp6, level const[SOL_SCTP], opt const[SCTP_MAXSEG], val ptr[in, sctp_maxseg], len len[val])
+getsockopt$inet_sctp_SCTP_MAXSEG(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_MAXSEG], val ptr[inout, sctp_maxseg], len ptr[inout, len[val, int32]])
+getsockopt$inet_sctp6_SCTP_MAXSEG(fd sock_sctp6, level const[SOL_SCTP], opt const[SCTP_MAXSEG], val ptr[inout, sctp_maxseg], len ptr[inout, len[val, int32]])
+
+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_sctp6_SCTP_STATUS(fd sock_sctp6, level const[SOL_SCTP], opt const[SCTP_STATUS], val ptr[inout, sctp_status], 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_sctp6_SCTP_GET_PEER_ADDR_INFO(fd sock_sctp6, level const[SOL_SCTP], opt const[SCTP_GET_PEER_ADDR_INFO], val ptr[inout, sctp_paddrinfo], len ptr[inout, len[val, int32]])
+
+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_sctp6_SCTP_DELAYED_SACK(fd sock_sctp6, level const[SOL_SCTP], opt const[SCTP_DELAYED_SACK], val ptr[in, sctp_delayed_sack], len len[val])
+getsockopt$inet_sctp_SCTP_DELAYED_SACK(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_DELAYED_SACK], val ptr[inout, sctp_delayed_sack], len ptr[inout, len[val, int32]])
+getsockopt$inet_sctp6_SCTP_DELAYED_SACK(fd sock_sctp6, level const[SOL_SCTP], opt const[SCTP_DELAYED_SACK], val ptr[inout, sctp_delayed_sack], len ptr[inout, len[val, int32]])
+
+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_sctp6_SCTP_CONTEXT(fd sock_sctp6, level const[SOL_SCTP], opt const[SCTP_CONTEXT], val ptr[in, sctp_assoc_value], len len[val])
+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_sctp6_SCTP_CONTEXT(fd sock_sctp6, level const[SOL_SCTP], opt const[SCTP_CONTEXT], val ptr[inout, sctp_assoc_value], len ptr[inout, len[val, int32]])
+
+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_sctp6_SCTP_FRAGMENT_INTERLEAVE(fd sock_sctp6, level const[SOL_SCTP], opt const[SCTP_FRAGMENT_INTERLEAVE], val ptr[in, int32], len len[val])
+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_sctp6_SCTP_FRAGMENT_INTERLEAVE(fd sock_sctp6, level const[SOL_SCTP], opt const[SCTP_FRAGMENT_INTERLEAVE], val ptr[out, int32], len ptr[inout, len[val, int32]])
+
+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_sctp6_SCTP_PARTIAL_DELIVERY_POINT(fd sock_sctp6, level const[SOL_SCTP], opt const[SCTP_PARTIAL_DELIVERY_POINT], val ptr[in, int32], len len[val])
+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_sctp6_SCTP_PARTIAL_DELIVERY_POINT(fd sock_sctp6, level const[SOL_SCTP], opt const[SCTP_PARTIAL_DELIVERY_POINT], val ptr[inout, sctp_assoc_value], len ptr[inout, len[val, int32]])
+
+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_sctp6_SCTP_MAX_BURST(fd sock_sctp6, level const[SOL_SCTP], opt const[SCTP_MAX_BURST], val ptr[in, sctp_max_burst], len len[val])
+getsockopt$inet_sctp_SCTP_MAX_BURST(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_MAX_BURST], val ptr[out, sctp_max_burst], len ptr[inout, len[val, int32]])
+getsockopt$inet_sctp6_SCTP_MAX_BURST(fd sock_sctp6, level const[SOL_SCTP], opt const[SCTP_MAX_BURST], val ptr[out, sctp_max_burst], len ptr[inout, len[val, int32]])
+
+setsockopt$inet_sctp_SCTP_AUTH_CHUNK(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_AUTH_CHUNK], val ptr[in, sctp_authchunk], len len[val])
+setsockopt$inet_sctp6_SCTP_AUTH_CHUNK(fd sock_sctp6, level const[SOL_SCTP], opt const[SCTP_AUTH_CHUNK], val ptr[in, sctp_authchunk], 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_sctp6_SCTP_HMAC_IDENT(fd sock_sctp6, level const[SOL_SCTP], opt const[SCTP_HMAC_IDENT], val ptr[in, sctp_hmacalgo], len len[val])
+getsockopt$inet_sctp_SCTP_HMAC_IDENT(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_HMAC_IDENT], val ptr[inout, sctp_hmacalgo], len ptr[inout, len[val, int32]])
+getsockopt$inet_sctp6_SCTP_HMAC_IDENT(fd sock_sctp6, level const[SOL_SCTP], opt const[SCTP_HMAC_IDENT], val ptr[inout, sctp_hmacalgo], len ptr[inout, len[val, int32]])
+
+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_sctp6_SCTP_AUTH_KEY(fd sock_sctp6, 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_sctp6_SCTP_AUTH_ACTIVE_KEY(fd sock_sctp6, level const[SOL_SCTP], opt const[SCTP_AUTH_ACTIVE_KEY], val ptr[in, sctp_authkeyid], len len[val])
+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_sctp6_SCTP_AUTH_ACTIVE_KEY(fd sock_sctp6, level const[SOL_SCTP], opt const[SCTP_AUTH_ACTIVE_KEY], val ptr[inout, sctp_authkeyid], len ptr[inout, len[val, int32]])
+
+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_sctp6_SCTP_AUTH_DELETE_KEY(fd sock_sctp6, level const[SOL_SCTP], opt const[SCTP_AUTH_DELETE_KEY], val ptr[in, sctp_authkeyid], len len[val])
+
+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_sctp6_SCTP_PEER_AUTH_CHUNKS(fd sock_sctp6, 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_sctp6_SCTP_LOCAL_AUTH_CHUNKS(fd sock_sctp6, 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_sctp6_SCTP_GET_ASSOC_NUMBER(fd sock_sctp6, 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_sctp6_SCTP_GET_ASSOC_ID_LIST(fd sock_sctp6, level const[SOL_SCTP], opt const[SCTP_GET_ASSOC_ID_LIST], val ptr[out, sctp_assoc_ids], len ptr[inout, len[val, int32]])
+
+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_sctp6_SCTP_AUTO_ASCONF(fd sock_sctp6, level const[SOL_SCTP], opt const[SCTP_AUTO_ASCONF], val ptr[in, int32], len len[val])
+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_sctp6_SCTP_AUTO_ASCONF(fd sock_sctp6, level const[SOL_SCTP], opt const[SCTP_AUTO_ASCONF], val ptr[out, int32], len ptr[inout, len[val, int32]])
+
+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_sctp6_SCTP_PEER_ADDR_THLDS(fd sock_sctp6, level const[SOL_SCTP], opt const[SCTP_PEER_ADDR_THLDS], val ptr[in, sctp_paddrthlds], len len[val])
+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_sctp6_SCTP_PEER_ADDR_THLDS(fd sock_sctp6, level const[SOL_SCTP], opt const[SCTP_PEER_ADDR_THLDS], val ptr[inout, sctp_paddrthlds], len ptr[inout, len[val, int32]])
+
+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_sctp6_SCTP_RECVRCVINFO(fd sock_sctp6, level const[SOL_SCTP], opt const[SCTP_RECVRCVINFO], val ptr[in, int32], len len[val])
+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_sctp6_SCTP_RECVRCVINFO(fd sock_sctp6, level const[SOL_SCTP], opt const[SCTP_RECVRCVINFO], val ptr[out, int32], len ptr[inout, len[val, int32]])
+
+setsockopt$inet_sctp_SCTP_RECVNXTINFO(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_RECVNXTINFO], val ptr[in, int32], len len[val])
+setsockopt$inet_sctp6_SCTP_RECVNXTINFO(fd sock_sctp6, level const[SOL_SCTP], opt const[SCTP_RECVNXTINFO], val ptr[in, int32], len len[val])
+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]])
+getsockopt$inet_sctp6_SCTP_RECVNXTINFO(fd sock_sctp6, level const[SOL_SCTP], opt const[SCTP_RECVNXTINFO], val ptr[out, int32], len ptr[inout, len[val, int32]])
+
+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_sctp6_SCTP_DEFAULT_SNDINFO(fd sock_sctp6, level const[SOL_SCTP], opt const[SCTP_DEFAULT_SNDINFO], val ptr[in, sctp_sndinfo], len len[val])
+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_sctp6_SCTP_DEFAULT_SNDINFO(fd sock_sctp6, level const[SOL_SCTP], opt const[SCTP_DEFAULT_SNDINFO], val ptr[inout, sctp_sndinfo], len ptr[inout, len[val, 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_sctp6_SCTP_SOCKOPT_BINDX_ADD(fd sock_sctp6, 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_sctp6_SCTP_SOCKOPT_BINDX_REM(fd sock_sctp6, level const[SOL_SCTP], opt const[SCTP_SOCKOPT_BINDX_REM], val ptr[in, array[sockaddr_sctp]], len len[val])
+
+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_sctp6_SCTP_SOCKOPT_PEELOFF(fd sock_sctp6, level const[SOL_SCTP], opt const[SCTP_SOCKOPT_PEELOFF], val ptr[inout, sctp_peeloff_arg_t], len ptr[inout, len[val, int32]])
+
+setsockopt$inet_sctp_SCTP_SOCKOPT_CONNECTX_OLD(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_SOCKOPT_CONNECTX_OLD], val ptr[in, array[sockaddr_sctp]], len len[val])
+setsockopt$inet_sctp6_SCTP_SOCKOPT_CONNECTX_OLD(fd sock_sctp6, level const[SOL_SCTP], opt const[SCTP_SOCKOPT_CONNECTX_OLD], val ptr[in, array[sockaddr_sctp]], len len[val])
+
+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_sctp6_SCTP_GET_PEER_ADDRS(fd sock_sctp6, 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_sctp6_SCTP_GET_LOCAL_ADDRS(fd sock_sctp6, level const[SOL_SCTP], opt const[SCTP_GET_LOCAL_ADDRS], val ptr[inout, sctp_getaddrs], len ptr[inout, len[val, int32]])
+
+setsockopt$inet_sctp_SCTP_SOCKOPT_CONNECTX(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_SOCKOPT_CONNECTX], val ptr[in, array[sockaddr_sctp]], len len[val])
+setsockopt$inet_sctp6_SCTP_SOCKOPT_CONNECTX(fd sock_sctp6, level const[SOL_SCTP], opt const[SCTP_SOCKOPT_CONNECTX], val ptr[in, array[sockaddr_sctp]], len len[val])
+
+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_sctp6_SCTP_SOCKOPT_CONNECTX3(fd sock_sctp6, 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_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_sctp6_SCTP_GET_ASSOC_STATS(fd sock_sctp6, level const[SOL_SCTP], opt const[SCTP_GET_ASSOC_STATS], val ptr[inout, sctp_assoc_stats], len ptr[inout, len[val, int32]])
+
+setsockopt$inet_sctp_SCTP_PR_SUPPORTED(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_PR_SUPPORTED], val ptr[in, sctp_assoc_value], len len[val])
+setsockopt$inet_sctp6_SCTP_PR_SUPPORTED(fd sock_sctp6, level const[SOL_SCTP], opt const[SCTP_PR_SUPPORTED], val ptr[in, sctp_assoc_value], len len[val])
+getsockopt$inet_sctp_SCTP_PR_SUPPORTED(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_PR_SUPPORTED], val ptr[inout, sctp_assoc_value], len ptr[inout, len[val, int32]])
+getsockopt$inet_sctp6_SCTP_PR_SUPPORTED(fd sock_sctp6, level const[SOL_SCTP], opt const[SCTP_PR_SUPPORTED], val ptr[inout, sctp_assoc_value], len ptr[inout, len[val, int32]])
+
+setsockopt$inet_sctp_SCTP_DEFAULT_PRINFO(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_DEFAULT_PRINFO], val ptr[in, sctp_default_prinfo], len len[val])
+setsockopt$inet_sctp6_SCTP_DEFAULT_PRINFO(fd sock_sctp6, level const[SOL_SCTP], opt const[SCTP_DEFAULT_PRINFO], val ptr[in, sctp_default_prinfo], len len[val])
+getsockopt$inet_sctp_SCTP_DEFAULT_PRINFO(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_DEFAULT_PRINFO], val ptr[inout, sctp_default_prinfo], len ptr[inout, len[val, int32]])
+getsockopt$inet_sctp6_SCTP_DEFAULT_PRINFO(fd sock_sctp6, level const[SOL_SCTP], opt const[SCTP_DEFAULT_PRINFO], val ptr[inout, sctp_default_prinfo], len ptr[inout, len[val, int32]])
+
+getsockopt$inet_sctp_SCTP_PR_ASSOC_STATUS(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_PR_ASSOC_STATUS], val ptr[inout, sctp_prstatus], len ptr[inout, len[val, int32]])
+getsockopt$inet_sctp6_SCTP_PR_ASSOC_STATUS(fd sock_sctp6, level const[SOL_SCTP], opt const[SCTP_PR_ASSOC_STATUS], val ptr[inout, sctp_prstatus], len ptr[inout, len[val, int32]])
+
+setsockopt$inet_sctp_SCTP_ENABLE_STREAM_RESET(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_ENABLE_STREAM_RESET], val ptr[in, sctp_assoc_value], len len[val])
+setsockopt$inet_sctp6_SCTP_ENABLE_STREAM_RESET(fd sock_sctp6, level const[SOL_SCTP], opt const[SCTP_ENABLE_STREAM_RESET], val ptr[in, sctp_assoc_value], len len[val])
+getsockopt$inet_sctp_SCTP_ENABLE_STREAM_RESET(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_ENABLE_STREAM_RESET], val ptr[inout, sctp_assoc_value], len ptr[inout, len[val, int32]])
+getsockopt$inet_sctp6_SCTP_ENABLE_STREAM_RESET(fd sock_sctp6, level const[SOL_SCTP], opt const[SCTP_ENABLE_STREAM_RESET], val ptr[inout, sctp_assoc_value], len ptr[inout, len[val, int32]])
+
+setsockopt$inet_sctp_SCTP_RESET_STREAMS(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_RESET_STREAMS], val ptr[in, sctp_assoc_value], len len[val])
+setsockopt$inet_sctp6_SCTP_RESET_STREAMS(fd sock_sctp6, level const[SOL_SCTP], opt const[SCTP_RESET_STREAMS], val ptr[in, sctp_assoc_value], len len[val])
+getsockopt$inet_sctp_SCTP_RESET_STREAMS(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_RESET_STREAMS], val ptr[inout, sctp_assoc_value], len ptr[inout, len[val, int32]])
+getsockopt$inet_sctp6_SCTP_RESET_STREAMS(fd sock_sctp6, level const[SOL_SCTP], opt const[SCTP_RESET_STREAMS], val ptr[inout, sctp_assoc_value], len ptr[inout, len[val, int32]])
+
+setsockopt$inet_sctp_SCTP_RESET_ASSOC(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_RESET_ASSOC], val ptr[in, assoc_id], len len[val])
+setsockopt$inet_sctp6_SCTP_RESET_ASSOC(fd sock_sctp6, level const[SOL_SCTP], opt const[SCTP_RESET_ASSOC], val ptr[in, assoc_id], len len[val])
+
+setsockopt$inet_sctp_SCTP_ADD_STREAMS(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_ADD_STREAMS], val ptr[in, int32], len len[val])
+setsockopt$inet_sctp6_SCTP_ADD_STREAMS(fd sock_sctp6, level const[SOL_SCTP], opt const[SCTP_ADD_STREAMS], val ptr[in, int32], len len[val])
+
+sctp_rtoinfo {
+ srto_assoc_id assoc_id
+ srto_initial int32
+ srto_max int32
+ srto_min int32
}
-sctp_delayed_sack [
- sack sctp_sack_info
- assoc sctp_assoc_value
-] [varlen]
+sctp_assocparams {
+ sasoc_assoc_id assoc_id
+ sasoc_asocmaxrxt int16
+ sasoc_number_peer_dest int16
+ sasoc_peer_rwnd int32
+ sasoc_local_rwnd int32
+ sasoc_cookie_life int32
+}
-sctp_sack_info {
- assoc int32
- delay int32
- freq int32
+sctp_initmsg {
+ sinit_num_ostreams int16
+ sinit_max_instreams int16
+ sinit_max_attempts int16
+ sinit_max_init_timeo int16
}
-sctp_maxseg [
- assoc sctp_assoc_value
- int int32
-] [varlen]
+sctp_prim {
+ ssp_assoc_id assoc_id
+ ssp_addr sockaddr_storage_sctp
+} [packed, align_4]
-sctp_max_burst [
- assoc sctp_assoc_value
- int int32
-] [varlen]
+sockaddr_storage_sctp [
+ in sockaddr_storage_in
+ in6 sockaddr_storage_in6
+]
-sctp_assoc_value {
- assoc int32
- value int32
+sctp_setadaptation {
+ ssb_adaptation_ind int32
+}
+
+sctp_paddrparams {
+ spp_assoc_id assoc_id
+ spp_address sockaddr_storage_sctp
+ spp_hbinterval int32
+ spp_pathmaxrxt int16
+ spp_pathmtu int32
+ spp_sackdelay int32
+ spp_flags flags[sctp_spp_flags, int32]
+} [packed, align_4]
+
+sctp_spp_flags = SPP_HB_ENABLE, SPP_HB_DISABLE, SPP_HB_DEMAND, SPP_HB_TIME_IS_ZERO, SPP_PMTUD_ENABLE, SPP_PMTUD_DISABLE, SPP_SACKDELAY_ENABLE, SPP_SACKDELAY_DISABLE
+
+sctp_sndrcvinfo {
+ sinfo_stream int16
+ sinfo_ssn int16
+ sinfo_flags flags[sctp_sndrcv_flags, int16]
+ sinfo_ppid int32
+ sinfo_context int32
+ sinfo_timetolive int32
+ sinfo_tsn int32
+ sinfo_cumtsn int32
+ sinfo_assoc_id assoc_id
}
+sctp_sndrcv_flags = SCTP_UNORDERED, SCTP_ADDR_OVER, SCTP_ABORT, SCTP_SACK_IMMEDIATELY, SCTP_NOTIFICATION, SCTP_EOF
sctp_event_subscribe {
- ev array[int8, 10]
+ sctp_data_io_event int8
+ sctp_association_event int8
+ sctp_address_event int8
+ sctp_send_failure_event int8
+ sctp_peer_error_event int8
+ sctp_shutdown_event int8
+ sctp_partial_delivery_e int8
+ sctp_adaptation_layer_e int8
+ sctp_authentication_e int8
+ sctp_sender_dry_event int8
+ sctp_stream_reset_event int8
}
-sctp_paddrparams {
- assoc int32
- addr sockaddr_storage_sctp
- interv int32
- maxrxt int16
- pathmtu int32
- sackdel int32
- spp int32
- flags flags[sctp_spp_flags, int32]
-} [packed, align_4]
+sctp_maxseg [
+ assoc_id assoc_id
+ assoc_value sctp_assoc_value
+] [varlen]
-sctp_authkey {
- assoc int32
- keynum int16
- keylen len[key, int16]
- key array[int8]
+sctp_assoc_value {
+ assoc_id assoc_id
+ assoc_value int32
}
-sctp_prim {
- assoc int32
- addr sockaddr_storage_sctp
+sctp_status {
+ sstat_assoc_id assoc_id
+ sstat_state int32
+ sstat_rwnd int32
+ sstat_unackdata int16
+ sstat_penddata int16
+ sstat_instrms int16
+ sstat_outstrms int16
+ sstat_fragmentation_p int32
+ sstat_primary sctp_paddrinfo
+}
+
+sctp_paddrinfo {
+ spinfo_assoc_id assoc_id
+ spinfo_address sockaddr_storage_sctp
+ spinfo_state int32
+ spinfo_cwnd int32
+ spinfo_srtt int32
+ spinfo_rto int32
+ spinfo_mtu int32
} [packed, align_4]
-sctp_rtoinfo {
- assoc int32
- init int32
- max int32
- min int32
+sctp_delayed_sack [
+ sack_info sctp_sack_info
+ assoc_value sctp_assoc_value
+] [varlen]
+
+sctp_sack_info {
+ sack_assoc_id assoc_id
+ sack_delay int32
+ sack_freq int32
}
-sctp_assocparams {
- assoc int32
- maxrxt int16
- ndest int16
- prwnd int32
- lrwnd int32
- life int32
+sctp_max_burst [
+ int int32
+ assoc_value sctp_assoc_value
+] [varlen]
+
+sctp_authchunk {
+ sauth_chunk int8
}
sctp_hmacalgo {
- nident len[ident, int32]
- ident array[int16]
+ shmac_num_idents len[shmac_idents, int32]
+ shmac_idents array[int16]
+}
+
+sctp_authkey {
+ sca_assoc_id assoc_id
+ sca_keynumber int16
+ sca_keylength len[sca_key, int16]
+ sca_key array[int8]
}
sctp_authkeyid {
- assoc int32
- keyn int16
+ scact_assoc_id assoc_id
+ scact_keynumber int16
}
-sctp_paddrthlds {
- assoc int32
- addr sockaddr_storage_sctp
- maxrxt int16
- pfthld int16
+sctp_authchunks {
+ gauth_assoc_id assoc_id
+ gauth_number_of_chunks len[gauth_chunks, int32]
+ gauth_chunks array[int8]
}
-sctp_paddrinfo {
- assoc int32
- addr sockaddr_storage_sctp
- state int32
- cwnd int32
- srtt int32
- rto int32
- mtu int32
-} [packed, align_4]
+sctp_assoc_ids {
+ gaids_number_of_ids len[gaids_assoc_id, int32]
+ gaids_assoc_id array[assoc_id]
+}
-sctp_status {
- assoc int32
- state int32
- rwnd int32
- unpack int16
- pend int16
- in int16
- out int16
- frag int32
- prim sctp_paddrinfo
+sctp_paddrthlds {
+ spt_assoc_id assoc_id
+ spt_address sockaddr_storage_sctp
+ spt_pathmaxrxt int16
+ spt_pathpfthld int16
}
-sctp_getaddrs_old {
- assoc int32
- num int32
- addrs ptr[in, sockaddr_sctp]
+sctp_sndinfo {
+ snd_sid int16
+ snd_flags flags[sctp_sndrcv_flags, int16]
+ snd_ppid int32
+ snd_context int32
+ snd_assoc_id assoc_id
+}
+
+sockaddr_sctp [
+ in sockaddr_in
+ in6 sockaddr_in6
+] [varlen]
+
+sctp_peeloff_arg_t {
+ assoc_id assoc_id
+ sd int32
}
sctp_getaddrs {
- assoc int32
- num int32
- addrs int8
+ assoc_id assoc_id
+ addr_num len[addrs, int32]
+ addrs array[int8]
}
-sctp_peeloff_arg_t {
- assoc int32
- sd int32
+sctp_getaddrs_old {
+ assoc_id assoc_id
+ addr_num len[addrs, int32]
+ addrs ptr[in, array[sockaddr_sctp]]
}
sctp_assoc_stats {
- assoc int32
- rto sockaddr_storage_sctp
- status array[int64, 15]
+ sas_assoc_id assoc_id
+ sas_obs_rto_ipaddr sockaddr_storage_sctp
+ status array[int64, 15]
}
-sctp_assoc_ids {
- num int32
- assoc array[int32]
+sctp_default_prinfo {
+ pr_assoc_id assoc_id
+ pr_value int32
+ pr_policy flags[sctp_pr_policies, int16]
}
-sctp_authchunks {
- chunk int8
+sctp_pr_policies = SCTP_PR_SCTP_NONE, SCTP_PR_SCTP_TTL, SCTP_PR_SCTP_RTX, SCTP_PR_SCTP_PRIO
+
+sctp_prstatus {
+ sprstat_assoc_id assoc_id
+ sprstat_sid int16
+ sprstat_policy flags[sctp_pr_policies, int16]
+ sprstat_abandoned_uns int64
+ sprstat_abandoned_sent int64
}
-sctp_setadaptation {
- adpt int32
+sctp_add_streams {
+ sas_assoc_id assoc_id
+ sas_instrms int16
+ sas_outstrms int16
}
+
+# SCTP ioctls
+
+ioctl$sock_inet_sctp_SIOCINQ(fd sock_sctp, cmd const[SIOCINQ], arg ptr[out, int32])
diff --git a/sys/socket_inet_sctp_amd64.const b/sys/socket_inet_sctp_amd64.const
index 920c8a073..168a328d5 100644
--- a/sys/socket_inet_sctp_amd64.const
+++ b/sys/socket_inet_sctp_amd64.const
@@ -5,6 +5,7 @@ IPPROTO_SCTP = 132
SCTP_ABORT = 4
SCTP_ADAPTATION_LAYER = 7
SCTP_ADDR_OVER = 2
+SCTP_ADD_STREAMS = 121
SCTP_ASSOCINFO = 1
SCTP_AUTH_ACTIVE_KEY = 24
SCTP_AUTH_CHUNK = 21
@@ -13,10 +14,12 @@ SCTP_AUTH_KEY = 23
SCTP_AUTOCLOSE = 4
SCTP_AUTO_ASCONF = 30
SCTP_CONTEXT = 17
+SCTP_DEFAULT_PRINFO = 114
SCTP_DEFAULT_SEND_PARAM = 10
SCTP_DEFAULT_SNDINFO = 34
SCTP_DELAYED_SACK = 16
SCTP_DISABLE_FRAGMENTS = 8
+SCTP_ENABLE_STREAM_RESET = 118
SCTP_EOF = 512
SCTP_EVENTS = 11
SCTP_FRAGMENT_INTERLEAVE = 18
@@ -34,14 +37,24 @@ SCTP_LOCAL_AUTH_CHUNKS = 27
SCTP_MAXSEG = 13
SCTP_MAX_BURST = 20
SCTP_NODELAY = 3
+SCTP_NOTIFICATION = 32768
SCTP_PARTIAL_DELIVERY_POINT = 19
SCTP_PEER_ADDR_PARAMS = 9
SCTP_PEER_ADDR_THLDS = 31
SCTP_PEER_AUTH_CHUNKS = 26
SCTP_PRIMARY_ADDR = 6
+SCTP_PR_ASSOC_STATUS = 115
+SCTP_PR_SCTP_NONE = 0
+SCTP_PR_SCTP_PRIO = 48
+SCTP_PR_SCTP_RTX = 32
+SCTP_PR_SCTP_TTL = 16
+SCTP_PR_SUPPORTED = 113
SCTP_RECVNXTINFO = 33
SCTP_RECVRCVINFO = 32
+SCTP_RESET_ASSOC = 120
+SCTP_RESET_STREAMS = 119
SCTP_RTOINFO = 0
+SCTP_SACK_IMMEDIATELY = 8
SCTP_SET_PEER_PRIMARY_ADDR = 5
SCTP_SNDINFO = 2
SCTP_SNDRCV = 1
@@ -65,18 +78,10 @@ SPP_PMTUD_DISABLE = 16
SPP_PMTUD_ENABLE = 8
SPP_SACKDELAY_DISABLE = 64
SPP_SACKDELAY_ENABLE = 32
-__NR_accept = 43
-__NR_accept4 = 288
-__NR_bind = 49
-__NR_connect = 42
-__NR_getpeername = 52
-__NR_getsockname = 51
__NR_getsockopt = 55
__NR_ioctl = 16
-__NR_recvfrom = 45
__NR_sendmmsg = 307
__NR_sendmsg = 46
-__NR_sendto = 44
__NR_setsockopt = 54
__NR_socket = 41
__NR_socketpair = 53
diff --git a/sys/socket_inet_sctp_arm64.const b/sys/socket_inet_sctp_arm64.const
index 145e44476..0dff31b3a 100644
--- a/sys/socket_inet_sctp_arm64.const
+++ b/sys/socket_inet_sctp_arm64.const
@@ -5,6 +5,7 @@ IPPROTO_SCTP = 132
SCTP_ABORT = 4
SCTP_ADAPTATION_LAYER = 7
SCTP_ADDR_OVER = 2
+SCTP_ADD_STREAMS = 121
SCTP_ASSOCINFO = 1
SCTP_AUTH_ACTIVE_KEY = 24
SCTP_AUTH_CHUNK = 21
@@ -13,10 +14,12 @@ SCTP_AUTH_KEY = 23
SCTP_AUTOCLOSE = 4
SCTP_AUTO_ASCONF = 30
SCTP_CONTEXT = 17
+SCTP_DEFAULT_PRINFO = 114
SCTP_DEFAULT_SEND_PARAM = 10
SCTP_DEFAULT_SNDINFO = 34
SCTP_DELAYED_SACK = 16
SCTP_DISABLE_FRAGMENTS = 8
+SCTP_ENABLE_STREAM_RESET = 118
SCTP_EOF = 512
SCTP_EVENTS = 11
SCTP_FRAGMENT_INTERLEAVE = 18
@@ -34,14 +37,24 @@ SCTP_LOCAL_AUTH_CHUNKS = 27
SCTP_MAXSEG = 13
SCTP_MAX_BURST = 20
SCTP_NODELAY = 3
+SCTP_NOTIFICATION = 32768
SCTP_PARTIAL_DELIVERY_POINT = 19
SCTP_PEER_ADDR_PARAMS = 9
SCTP_PEER_ADDR_THLDS = 31
SCTP_PEER_AUTH_CHUNKS = 26
SCTP_PRIMARY_ADDR = 6
+SCTP_PR_ASSOC_STATUS = 115
+SCTP_PR_SCTP_NONE = 0
+SCTP_PR_SCTP_PRIO = 48
+SCTP_PR_SCTP_RTX = 32
+SCTP_PR_SCTP_TTL = 16
+SCTP_PR_SUPPORTED = 113
SCTP_RECVNXTINFO = 33
SCTP_RECVRCVINFO = 32
+SCTP_RESET_ASSOC = 120
+SCTP_RESET_STREAMS = 119
SCTP_RTOINFO = 0
+SCTP_SACK_IMMEDIATELY = 8
SCTP_SET_PEER_PRIMARY_ADDR = 5
SCTP_SNDINFO = 2
SCTP_SNDRCV = 1
@@ -65,18 +78,10 @@ SPP_PMTUD_DISABLE = 16
SPP_PMTUD_ENABLE = 8
SPP_SACKDELAY_DISABLE = 64
SPP_SACKDELAY_ENABLE = 32
-__NR_accept = 202
-__NR_accept4 = 242
-__NR_bind = 200
-__NR_connect = 203
-__NR_getpeername = 205
-__NR_getsockname = 204
__NR_getsockopt = 209
__NR_ioctl = 29
-__NR_recvfrom = 207
__NR_sendmmsg = 269
__NR_sendmsg = 211
-__NR_sendto = 206
__NR_setsockopt = 208
__NR_socket = 198
__NR_socketpair = 199
diff --git a/sys/socket_inet_sctp_ppc64le.const b/sys/socket_inet_sctp_ppc64le.const
index b90794f9a..ed05ab3df 100644
--- a/sys/socket_inet_sctp_ppc64le.const
+++ b/sys/socket_inet_sctp_ppc64le.const
@@ -5,6 +5,7 @@ IPPROTO_SCTP = 132
SCTP_ABORT = 4
SCTP_ADAPTATION_LAYER = 7
SCTP_ADDR_OVER = 2
+SCTP_ADD_STREAMS = 121
SCTP_ASSOCINFO = 1
SCTP_AUTH_ACTIVE_KEY = 24
SCTP_AUTH_CHUNK = 21
@@ -13,10 +14,12 @@ SCTP_AUTH_KEY = 23
SCTP_AUTOCLOSE = 4
SCTP_AUTO_ASCONF = 30
SCTP_CONTEXT = 17
+SCTP_DEFAULT_PRINFO = 114
SCTP_DEFAULT_SEND_PARAM = 10
SCTP_DEFAULT_SNDINFO = 34
SCTP_DELAYED_SACK = 16
SCTP_DISABLE_FRAGMENTS = 8
+SCTP_ENABLE_STREAM_RESET = 118
SCTP_EOF = 512
SCTP_EVENTS = 11
SCTP_FRAGMENT_INTERLEAVE = 18
@@ -34,14 +37,24 @@ SCTP_LOCAL_AUTH_CHUNKS = 27
SCTP_MAXSEG = 13
SCTP_MAX_BURST = 20
SCTP_NODELAY = 3
+SCTP_NOTIFICATION = 32768
SCTP_PARTIAL_DELIVERY_POINT = 19
SCTP_PEER_ADDR_PARAMS = 9
SCTP_PEER_ADDR_THLDS = 31
SCTP_PEER_AUTH_CHUNKS = 26
SCTP_PRIMARY_ADDR = 6
+SCTP_PR_ASSOC_STATUS = 115
+SCTP_PR_SCTP_NONE = 0
+SCTP_PR_SCTP_PRIO = 48
+SCTP_PR_SCTP_RTX = 32
+SCTP_PR_SCTP_TTL = 16
+SCTP_PR_SUPPORTED = 113
SCTP_RECVNXTINFO = 33
SCTP_RECVRCVINFO = 32
+SCTP_RESET_ASSOC = 120
+SCTP_RESET_STREAMS = 119
SCTP_RTOINFO = 0
+SCTP_SACK_IMMEDIATELY = 8
SCTP_SET_PEER_PRIMARY_ADDR = 5
SCTP_SNDINFO = 2
SCTP_SNDRCV = 1
@@ -65,18 +78,10 @@ SPP_PMTUD_DISABLE = 16
SPP_PMTUD_ENABLE = 8
SPP_SACKDELAY_DISABLE = 64
SPP_SACKDELAY_ENABLE = 32
-__NR_accept = 330
-__NR_accept4 = 344
-__NR_bind = 327
-__NR_connect = 328
-__NR_getpeername = 332
-__NR_getsockname = 331
__NR_getsockopt = 340
__NR_ioctl = 54
-__NR_recvfrom = 337
__NR_sendmmsg = 349
__NR_sendmsg = 341
-__NR_sendto = 335
__NR_setsockopt = 339
__NR_socket = 326
__NR_socketpair = 333
diff --git a/sys/sys_amd64.const b/sys/sys_amd64.const
index d5e996395..66dabf1e8 100644
--- a/sys/sys_amd64.const
+++ b/sys/sys_amd64.const
@@ -51,7 +51,7 @@ DN_RENAME = 16
EFD_CLOEXEC = 524288
EFD_NONBLOCK = 2048
EFD_SEMAPHORE = 1
-EPOLLET = 18446744071562067968
+EPOLLET = 2147483648
EPOLLEXCLUSIVE = 268435456
EPOLLONESHOT = 1073741824
EPOLLWAKEUP = 536870912
diff --git a/sys/sys_arm64.const b/sys/sys_arm64.const
index 13f178c23..8ad0f36bb 100644
--- a/sys/sys_arm64.const
+++ b/sys/sys_arm64.const
@@ -51,7 +51,7 @@ DN_RENAME = 16
EFD_CLOEXEC = 524288
EFD_NONBLOCK = 2048
EFD_SEMAPHORE = 1
-EPOLLET = 18446744071562067968
+EPOLLET = 2147483648
EPOLLEXCLUSIVE = 268435456
EPOLLONESHOT = 1073741824
EPOLLWAKEUP = 536870912
diff --git a/sys/sys_ppc64le.const b/sys/sys_ppc64le.const
index fff488e21..4ea38474e 100644
--- a/sys/sys_ppc64le.const
+++ b/sys/sys_ppc64le.const
@@ -51,7 +51,7 @@ DN_RENAME = 16
EFD_CLOEXEC = 524288
EFD_NONBLOCK = 2048
EFD_SEMAPHORE = 1
-EPOLLET = 18446744071562067968
+EPOLLET = 2147483648
EPOLLEXCLUSIVE = 268435456
EPOLLONESHOT = 1073741824
EPOLLWAKEUP = 536870912