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