github.com/google/syzkaller@v0.0.0-20240517125934-c0f1611a36d6/sys/linux/socket_inet_sctp.txt (about) 1 # Copyright 2017 syzkaller project authors. All rights reserved. 2 # Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file. 3 4 # AF_INET and AF_INET6: SCTP support 5 6 include <linux/sctp.h> 7 include <linux/net.h> 8 include <asm/ioctls.h> 9 10 resource sock_sctp[sock_in] 11 12 socket$inet_sctp(domain const[AF_INET], type flags[sctp_socket_type], proto const[IPPROTO_SCTP]) sock_sctp 13 14 sctp_socket_type = SOCK_STREAM, SOCK_SEQPACKET 15 16 resource sock_sctp6[sock_in6] 17 18 socket$inet6_sctp(domain const[AF_INET6], type flags[sctp_socket_type], proto const[IPPROTO_SCTP]) sock_sctp6 19 20 # TODO: separate for ip & ipv6 21 sendmsg$inet_sctp(fd sock_sctp, msg ptr[in, msghdr_sctp], f flags[send_flags]) 22 sendmmsg$inet_sctp(fd sock_sctp, mmsg ptr[in, array[msghdr_sctp]], vlen len[mmsg], f flags[send_flags]) 23 24 msghdr_sctp { 25 addr ptr[in, sockaddr_sctp] 26 addrlen len[addr, int32] 27 vec ptr[in, array[iovec_in]] 28 vlen len[vec, intptr] 29 ctrl ptr[in, array[cmsghdr_sctp], opt] 30 ctrllen bytesize[ctrl, intptr] 31 f flags[send_flags, int32] 32 } 33 34 cmsghdr_sctp [ 35 init cmsghdr_sctp_init 36 sndrcv cmsghdr_sctp_sndrcv 37 sndinfo cmsghdr_sctp_sndinfo 38 prinfo cmsghdr_sctp_prinfo 39 authinfo cmsghdr_sctp_authinfo 40 dstaddrv4 cmsghdr_sctp_dstaddrv4 41 dstaddrv6 cmsghdr_sctp_dstaddrv6 42 ] [varlen] 43 44 cmsghdr_sctp_init { 45 len len[parent, intptr] 46 level const[IPPROTO_SCTP, int32] 47 type const[SCTP_INIT, int32] 48 msg sctp_initmsg 49 } [align[PTR_SIZE]] 50 51 cmsghdr_sctp_sndrcv { 52 len len[parent, intptr] 53 level const[IPPROTO_SCTP, int32] 54 type const[SCTP_SNDRCV, int32] 55 msg sctp_sndrcvinfo 56 } [align[PTR_SIZE]] 57 58 cmsghdr_sctp_sndinfo { 59 len len[parent, intptr] 60 level const[IPPROTO_SCTP, int32] 61 type const[SCTP_SNDINFO, int32] 62 msg sctp_sndinfo 63 } [align[PTR_SIZE]] 64 65 cmsghdr_sctp_prinfo { 66 len len[parent, intptr] 67 level const[IPPROTO_SCTP, int32] 68 type const[SCTP_PRINFO, int32] 69 msg sctp_prinfo 70 } [align[PTR_SIZE]] 71 72 sctp_prinfo { 73 pr_policy flags[sctp_pr_policies, int16] 74 pr_value int32 75 } 76 77 cmsghdr_sctp_authinfo { 78 len len[parent, intptr] 79 level const[IPPROTO_SCTP, int32] 80 type const[SCTP_AUTHINFO, int32] 81 msg sctp_authinfo 82 } [align[PTR_SIZE]] 83 84 sctp_authinfo { 85 auth_keynumber int16 86 } 87 88 cmsghdr_sctp_dstaddrv4 { 89 len len[parent, intptr] 90 level const[IPPROTO_SCTP, int32] 91 type const[SCTP_DSTADDRV4, int32] 92 msg ipv4_addr 93 } [align[PTR_SIZE]] 94 95 cmsghdr_sctp_dstaddrv6 { 96 len len[parent, intptr] 97 level const[IPPROTO_SCTP, int32] 98 type const[SCTP_DSTADDRV6, int32] 99 msg ipv6_addr 100 } [align[PTR_SIZE]] 101 102 # Specific SCTP socket options 103 104 resource assoc_id[int32]: 0 105 106 setsockopt$inet_sctp_SCTP_RTOINFO(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_RTOINFO], val ptr[in, sctp_rtoinfo], len len[val]) 107 setsockopt$inet_sctp6_SCTP_RTOINFO(fd sock_sctp6, level const[SOL_SCTP], opt const[SCTP_RTOINFO], val ptr[in, sctp_rtoinfo], len len[val]) 108 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]]) 109 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]]) 110 111 setsockopt$inet_sctp_SCTP_ASSOCINFO(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_ASSOCINFO], val ptr[in, sctp_assocparams], len len[val]) 112 setsockopt$inet_sctp6_SCTP_ASSOCINFO(fd sock_sctp6, level const[SOL_SCTP], opt const[SCTP_ASSOCINFO], val ptr[in, sctp_assocparams], len len[val]) 113 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]]) 114 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]]) 115 116 setsockopt$inet_sctp_SCTP_INITMSG(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_INITMSG], val ptr[in, sctp_initmsg], len len[val]) 117 setsockopt$inet_sctp6_SCTP_INITMSG(fd sock_sctp6, level const[SOL_SCTP], opt const[SCTP_INITMSG], val ptr[in, sctp_initmsg], len len[val]) 118 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]]) 119 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]]) 120 121 setsockopt$inet_sctp_SCTP_NODELAY(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_NODELAY], val ptr[in, int32], len len[val]) 122 setsockopt$inet_sctp6_SCTP_NODELAY(fd sock_sctp6, level const[SOL_SCTP], opt const[SCTP_NODELAY], val ptr[in, int32], len len[val]) 123 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]]) 124 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]]) 125 126 setsockopt$inet_sctp_SCTP_AUTOCLOSE(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_AUTOCLOSE], val ptr[in, int32], len len[val]) 127 setsockopt$inet_sctp6_SCTP_AUTOCLOSE(fd sock_sctp6, level const[SOL_SCTP], opt const[SCTP_AUTOCLOSE], val ptr[in, int32], len len[val]) 128 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]]) 129 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]]) 130 131 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]) 132 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]) 133 134 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]) 135 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]) 136 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]]) 137 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]]) 138 139 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]) 140 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]) 141 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]]) 142 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]]) 143 144 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]) 145 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]) 146 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]]) 147 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]]) 148 149 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]) 150 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]) 151 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]]) 152 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]]) 153 154 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]) 155 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]) 156 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]]) 157 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]]) 158 159 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]) 160 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]) 161 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]]) 162 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]]) 163 164 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]) 165 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]) 166 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]]) 167 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]]) 168 169 setsockopt$inet_sctp_SCTP_MAXSEG(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_MAXSEG], val ptr[in, sctp_maxseg], len len[val]) 170 setsockopt$inet_sctp6_SCTP_MAXSEG(fd sock_sctp6, level const[SOL_SCTP], opt const[SCTP_MAXSEG], val ptr[in, sctp_maxseg], len len[val]) 171 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]]) 172 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]]) 173 174 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]]) 175 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]]) 176 177 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]]) 178 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]]) 179 180 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]) 181 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]) 182 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]]) 183 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]]) 184 185 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]) 186 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]) 187 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]]) 188 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]]) 189 190 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]) 191 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]) 192 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]]) 193 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]]) 194 195 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]) 196 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]) 197 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]]) 198 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]]) 199 200 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]) 201 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]) 202 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]]) 203 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]]) 204 205 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]) 206 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]) 207 208 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]) 209 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]) 210 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]]) 211 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]]) 212 213 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]) 214 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]) 215 216 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]) 217 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]) 218 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]]) 219 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]]) 220 221 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]) 222 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]) 223 224 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]]) 225 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]]) 226 227 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]]) 228 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]]) 229 230 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]]) 231 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]]) 232 233 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]]) 234 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]]) 235 236 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]) 237 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]) 238 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]]) 239 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]]) 240 241 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]) 242 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]) 243 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]]) 244 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]]) 245 246 setsockopt$inet_sctp_SCTP_RECVRCVINFO(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_RECVRCVINFO], val ptr[in, int32], len len[val]) 247 setsockopt$inet_sctp6_SCTP_RECVRCVINFO(fd sock_sctp6, level const[SOL_SCTP], opt const[SCTP_RECVRCVINFO], val ptr[in, int32], len len[val]) 248 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]]) 249 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]]) 250 251 setsockopt$inet_sctp_SCTP_RECVNXTINFO(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_RECVNXTINFO], val ptr[in, int32], len len[val]) 252 setsockopt$inet_sctp6_SCTP_RECVNXTINFO(fd sock_sctp6, level const[SOL_SCTP], opt const[SCTP_RECVNXTINFO], val ptr[in, int32], len len[val]) 253 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]]) 254 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]]) 255 256 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]) 257 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]) 258 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]]) 259 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]]) 260 261 setsockopt$inet_sctp_SCTP_AUTH_DEACTIVATE_KEY(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_AUTH_DEACTIVATE_KEY], val ptr[in, sctp_authkeyid], len len[val]) 262 setsockopt$inet_sctp6_SCTP_AUTH_DEACTIVATE_KEY(fd sock_sctp6, level const[SOL_SCTP], opt const[SCTP_AUTH_DEACTIVATE_KEY], val ptr[in, sctp_authkeyid], len len[val]) 263 264 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]) 265 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]) 266 267 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 bytesize[val]) 268 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 bytesize[val]) 269 270 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]]) 271 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]]) 272 273 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 bytesize[val]) 274 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 bytesize[val]) 275 276 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]]) 277 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]]) 278 279 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]]) 280 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]]) 281 282 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 bytesize[val]) 283 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 bytesize[val]) 284 285 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]]) 286 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]]) 287 288 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]]) 289 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]]) 290 291 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]) 292 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]) 293 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]]) 294 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]]) 295 296 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]) 297 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]) 298 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]]) 299 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]]) 300 301 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]]) 302 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]]) 303 304 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]) 305 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]) 306 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]]) 307 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]]) 308 309 setsockopt$inet_sctp_SCTP_RESET_STREAMS(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_RESET_STREAMS], val ptr[in, sctp_reset_streams], len len[val]) 310 setsockopt$inet_sctp6_SCTP_RESET_STREAMS(fd sock_sctp6, level const[SOL_SCTP], opt const[SCTP_RESET_STREAMS], val ptr[in, sctp_reset_streams], len len[val]) 311 getsockopt$inet_sctp_SCTP_RESET_STREAMS(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_RESET_STREAMS], val ptr[inout, sctp_reset_streams], len ptr[inout, len[val, int32]]) 312 getsockopt$inet_sctp6_SCTP_RESET_STREAMS(fd sock_sctp6, level const[SOL_SCTP], opt const[SCTP_RESET_STREAMS], val ptr[inout, sctp_reset_streams], len ptr[inout, len[val, int32]]) 313 314 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]) 315 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]) 316 317 setsockopt$inet_sctp_SCTP_ADD_STREAMS(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_ADD_STREAMS], val ptr[in, sctp_add_streams], len len[val]) 318 setsockopt$inet_sctp6_SCTP_ADD_STREAMS(fd sock_sctp6, level const[SOL_SCTP], opt const[SCTP_ADD_STREAMS], val ptr[in, sctp_add_streams], len len[val]) 319 320 getsockopt$inet_sctp_SCTP_PR_STREAM_STATUS(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_PR_STREAM_STATUS], val ptr[out, array[int8]], len ptr[inout, len[val, int32]]) 321 getsockopt$inet_sctp6_SCTP_PR_STREAM_STATUS(fd sock_sctp6, level const[SOL_SCTP], opt const[SCTP_PR_STREAM_STATUS], val ptr[out, array[int8]], len ptr[inout, len[val, int32]]) 322 323 setsockopt$inet_sctp_SCTP_RECONFIG_SUPPORTED(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_RECONFIG_SUPPORTED], val ptr[in, sctp_assoc_value], len len[val]) 324 setsockopt$inet_sctp6_SCTP_RECONFIG_SUPPORTED(fd sock_sctp6, level const[SOL_SCTP], opt const[SCTP_RECONFIG_SUPPORTED], val ptr[in, sctp_assoc_value], len len[val]) 325 getsockopt$inet_sctp_SCTP_RECONFIG_SUPPORTED(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_RECONFIG_SUPPORTED], val ptr[inout, sctp_assoc_value], len ptr[inout, len[val, int32]]) 326 getsockopt$inet_sctp6_SCTP_RECONFIG_SUPPORTED(fd sock_sctp6, level const[SOL_SCTP], opt const[SCTP_RECONFIG_SUPPORTED], val ptr[inout, sctp_assoc_value], len ptr[inout, len[val, int32]]) 327 328 setsockopt$inet_sctp_SCTP_STREAM_SCHEDULER(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_STREAM_SCHEDULER], val ptr[in, sctp_assoc_value], len len[val]) 329 setsockopt$inet_sctp6_SCTP_STREAM_SCHEDULER(fd sock_sctp6, level const[SOL_SCTP], opt const[SCTP_STREAM_SCHEDULER], val ptr[in, sctp_assoc_value], len len[val]) 330 getsockopt$inet_sctp_SCTP_STREAM_SCHEDULER(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_STREAM_SCHEDULER], val ptr[inout, sctp_assoc_value], len ptr[inout, len[val, int32]]) 331 getsockopt$inet_sctp6_SCTP_STREAM_SCHEDULER(fd sock_sctp6, level const[SOL_SCTP], opt const[SCTP_STREAM_SCHEDULER], val ptr[inout, sctp_assoc_value], len ptr[inout, len[val, int32]]) 332 333 setsockopt$inet_sctp_SCTP_STREAM_SCHEDULER_VALUE(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_STREAM_SCHEDULER_VALUE], val ptr[in, sctp_stream_value], len len[val]) 334 setsockopt$inet_sctp6_SCTP_STREAM_SCHEDULER_VALUE(fd sock_sctp6, level const[SOL_SCTP], opt const[SCTP_STREAM_SCHEDULER_VALUE], val ptr[in, sctp_stream_value], len len[val]) 335 getsockopt$inet_sctp_SCTP_STREAM_SCHEDULER_VALUE(fd sock_sctp, level const[SOL_SCTP], opt const[SCTP_STREAM_SCHEDULER_VALUE], val ptr[inout, sctp_stream_value], len ptr[inout, len[val, int32]]) 336 getsockopt$inet_sctp6_SCTP_STREAM_SCHEDULER_VALUE(fd sock_sctp6, level const[SOL_SCTP], opt const[SCTP_STREAM_SCHEDULER_VALUE], val ptr[inout, sctp_stream_value], len ptr[inout, len[val, int32]]) 337 338 sctp_rtoinfo { 339 srto_assoc_id assoc_id 340 srto_initial int32 341 srto_max int32 342 srto_min int32 343 } 344 345 sctp_assocparams { 346 sasoc_assoc_id assoc_id 347 sasoc_asocmaxrxt int16 348 sasoc_number_peer_dest int16 349 sasoc_peer_rwnd int32 350 sasoc_local_rwnd int32 351 sasoc_cookie_life int32 352 } 353 354 sctp_initmsg { 355 sinit_num_ostreams int16 356 sinit_max_instreams int16 357 sinit_max_attempts int16 358 sinit_max_init_timeo int16 359 } 360 361 sctp_prim { 362 ssp_assoc_id assoc_id 363 ssp_addr sockaddr_storage_sctp 364 } [packed, align[4]] 365 366 sockaddr_storage_sctp [ 367 in sockaddr_storage_in 368 in6 sockaddr_storage_in6 369 ] 370 371 sctp_setadaptation { 372 ssb_adaptation_ind int32 373 } 374 375 sctp_paddrparams { 376 spp_assoc_id assoc_id 377 spp_address sockaddr_storage_sctp 378 spp_hbinterval int32 379 spp_pathmaxrxt int16 380 spp_pathmtu int32 381 spp_sackdelay int32 382 spp_flags flags[sctp_spp_flags, int32] 383 spp_ipv6_flowlabel int32 384 spp_dscp int8 385 } [packed, align[4]] 386 387 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 388 389 sctp_sndrcvinfo { 390 sinfo_stream int16 391 sinfo_ssn int16 392 sinfo_flags flags[sctp_sndrcv_flags, int16] 393 sinfo_ppid int32 394 sinfo_context int32 395 sinfo_timetolive int32 396 sinfo_tsn int32 397 sinfo_cumtsn int32 398 sinfo_assoc_id assoc_id 399 } 400 401 sctp_sndrcv_flags = SCTP_UNORDERED, SCTP_ADDR_OVER, SCTP_ABORT, SCTP_SACK_IMMEDIATELY, SCTP_NOTIFICATION, SCTP_EOF 402 403 sctp_event_subscribe { 404 sctp_data_io_event int8 405 sctp_association_event int8 406 sctp_address_event int8 407 sctp_send_failure_event int8 408 sctp_peer_error_event int8 409 sctp_shutdown_event int8 410 sctp_partial_delivery_e int8 411 sctp_adaptation_layer_e int8 412 sctp_authentication_e int8 413 sctp_sender_dry_event int8 414 sctp_stream_reset_event int8 415 sctp_assoc_reset_event int8 416 sctp_stream_change_event int8 417 sctp_send_failure_event_event int8 418 } 419 420 sctp_maxseg [ 421 assoc_id assoc_id 422 assoc_value sctp_assoc_value 423 ] [varlen] 424 425 sctp_assoc_value { 426 assoc_id assoc_id 427 assoc_value int32 428 } 429 430 sctp_reset_streams { 431 srs_assoc_id assoc_id 432 srs_flags int16 433 srs_number_streams len[srs_stream_list, int16] 434 srs_stream_list array[int16] 435 } 436 437 sctp_stream_value { 438 srs_assoc_id assoc_id 439 stream_id int16 440 stream_value int16 441 } 442 443 sctp_status { 444 sstat_assoc_id assoc_id 445 sstat_state int32 446 sstat_rwnd int32 447 sstat_unackdata int16 448 sstat_penddata int16 449 sstat_instrms int16 450 sstat_outstrms int16 451 sstat_fragmentation_p int32 452 sstat_primary sctp_paddrinfo 453 } 454 455 sctp_paddrinfo { 456 spinfo_assoc_id assoc_id 457 spinfo_address sockaddr_storage_sctp 458 spinfo_state int32 459 spinfo_cwnd int32 460 spinfo_srtt int32 461 spinfo_rto int32 462 spinfo_mtu int32 463 } [packed, align[4]] 464 465 sctp_delayed_sack [ 466 sack_info sctp_sack_info 467 assoc_value sctp_assoc_value 468 ] [varlen] 469 470 sctp_sack_info { 471 sack_assoc_id assoc_id 472 sack_delay int32 473 sack_freq int32 474 } 475 476 sctp_max_burst [ 477 int int32 478 assoc_value sctp_assoc_value 479 ] [varlen] 480 481 sctp_authchunk { 482 sauth_chunk int8 483 } 484 485 sctp_hmacalgo { 486 shmac_num_idents len[shmac_idents, int32] 487 shmac_idents array[int16] 488 } 489 490 sctp_authkey { 491 sca_assoc_id assoc_id 492 sca_keynumber int16 493 sca_keylength len[sca_key, int16] 494 sca_key array[int8] 495 } 496 497 sctp_authkeyid { 498 scact_assoc_id assoc_id 499 scact_keynumber int16 500 } 501 502 sctp_authchunks { 503 gauth_assoc_id assoc_id 504 gauth_number_of_chunks len[gauth_chunks, int32] 505 gauth_chunks array[int8] 506 } 507 508 sctp_assoc_ids { 509 gaids_number_of_ids len[gaids_assoc_id, int32] 510 gaids_assoc_id array[assoc_id] 511 } 512 513 sctp_paddrthlds { 514 spt_assoc_id assoc_id 515 spt_address sockaddr_storage_sctp 516 spt_pathmaxrxt int16 517 spt_pathpfthld int16 518 } 519 520 sctp_sndinfo { 521 snd_sid int16 522 snd_flags flags[sctp_sndrcv_flags, int16] 523 snd_ppid int32 524 snd_context int32 525 snd_assoc_id assoc_id 526 } 527 528 sockaddr_sctp [ 529 in sockaddr_in 530 in6 sockaddr_in6 531 ] [varlen] 532 533 sctp_peeloff_arg_t { 534 assoc_id assoc_id 535 sd int32 536 } 537 538 sctp_getaddrs { 539 assoc_id assoc_id 540 addr_num len[addrs, int32] 541 addrs array[int8] 542 } 543 544 sctp_getaddrs_old { 545 assoc_id assoc_id 546 addr_num bytesize[addrs, int32] 547 addrs ptr[in, array[sockaddr_sctp]] 548 } 549 550 sctp_assoc_stats { 551 sas_assoc_id assoc_id 552 sas_obs_rto_ipaddr sockaddr_storage_sctp 553 status array[int64, 15] 554 } 555 556 sctp_default_prinfo { 557 pr_assoc_id assoc_id 558 pr_value int32 559 pr_policy flags[sctp_pr_policies, int16] 560 } 561 562 sctp_pr_policies = SCTP_PR_SCTP_NONE, SCTP_PR_SCTP_TTL, SCTP_PR_SCTP_RTX, SCTP_PR_SCTP_PRIO 563 564 sctp_prstatus { 565 sprstat_assoc_id assoc_id 566 sprstat_sid int16 567 sprstat_policy flags[sctp_pr_policies, int16] 568 sprstat_abandoned_uns int64 569 sprstat_abandoned_sent int64 570 } 571 572 sctp_add_streams { 573 sas_assoc_id assoc_id 574 sas_instrms int16 575 sas_outstrms int16 576 } 577 578 # SCTP ioctls 579 580 ioctl$sock_inet_sctp_SIOCINQ(fd sock_sctp, cmd const[SIOCINQ], arg ptr[out, int32])