github.com/google/syzkaller@v0.0.0-20240517125934-c0f1611a36d6/sys/freebsd/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 <netinet/sctp.h>
     7  
     8  resource sock_sctp[sock_in]
     9  
    10  socket$inet_sctp(domain const[AF_INET], type flags[sctp_socket_type], proto const[IPPROTO_SCTP]) sock_sctp
    11  
    12  sctp_socket_type = SOCK_STREAM, SOCK_SEQPACKET
    13  
    14  resource sock_sctp6[sock_in6]
    15  
    16  socket$inet6_sctp(domain const[AF_INET6], type flags[sctp_socket_type], proto const[IPPROTO_SCTP]) sock_sctp6
    17  
    18  sendmsg$inet_sctp(fd sock_sctp, msg ptr[in, msghdr_sctp], f flags[send_flags])
    19  sendmsg$inet6_sctp(fd sock_sctp6, msg ptr[in, msghdr_sctp], f flags[send_flags])
    20  
    21  msghdr_sctp {
    22  	msg_name	ptr[in, sockaddr_sctp]
    23  	msg_namelen	len[msg_name, int32]
    24  	msg_iov		ptr[in, array[iovec_in]]
    25  	msg_iovlen	len[msg_iov, int32]
    26  	msg_control	ptr[in, array[cmsghdr_sctp], opt]
    27  	msg_controllen	bytesize[msg_control, int32]
    28  	msg_flags	flags[send_flags, int32]
    29  }
    30  
    31  cmsghdr_sctp [
    32  	init		cmsghdr_sctp_init
    33  	sndrcv		cmsghdr_sctp_sndrcv
    34  	sndinfo		cmsghdr_sctp_sndinfo
    35  	prinfo		cmsghdr_sctp_prinfo
    36  	authinfo	cmsghdr_sctp_authinfo
    37  	dstaddrv4	cmsghdr_sctp_dstaddrv4
    38  	dstaddrv6	cmsghdr_sctp_dstaddrv6
    39  ] [varlen]
    40  
    41  cmsghdr_sctp_init {
    42  	len	len[parent, int32]
    43  	level	const[IPPROTO_SCTP, int32]
    44  	type	const[SCTP_INIT, int32]
    45  	msg	sctp_initmsg
    46  }
    47  
    48  cmsghdr_sctp_sndrcv {
    49  	len	len[parent, int32]
    50  	level	const[IPPROTO_SCTP, int32]
    51  	type	const[SCTP_SNDRCV, int32]
    52  	msg	sctp_sndrcvinfo
    53  }
    54  
    55  cmsghdr_sctp_sndinfo {
    56  	len	len[parent, int32]
    57  	level	const[IPPROTO_SCTP, int32]
    58  	type	const[SCTP_SNDINFO, int32]
    59  	msg	sctp_sndinfo
    60  }
    61  
    62  cmsghdr_sctp_prinfo {
    63  	len	len[parent, int32]
    64  	level	const[IPPROTO_SCTP, int32]
    65  	type	const[SCTP_PRINFO, int32]
    66  	msg	sctp_prinfo
    67  }
    68  
    69  sctp_prinfo {
    70  	pr_policy	flags[sctp_pr_policies, int16]
    71  	pr_value	int32
    72  }
    73  
    74  cmsghdr_sctp_authinfo {
    75  	len	len[parent, int32]
    76  	level	const[IPPROTO_SCTP, int32]
    77  	type	const[SCTP_AUTHINFO, int32]
    78  	msg	sctp_authinfo
    79  }
    80  
    81  sctp_authinfo {
    82  	auth_keynumber	int16
    83  }
    84  
    85  cmsghdr_sctp_dstaddrv4 {
    86  	len	len[parent, int32]
    87  	level	const[IPPROTO_SCTP, int32]
    88  	type	const[SCTP_DSTADDRV4, int32]
    89  	msg	ipv4_addr
    90  }
    91  
    92  cmsghdr_sctp_dstaddrv6 {
    93  	len	len[parent, int32]
    94  	level	const[IPPROTO_SCTP, int32]
    95  	type	const[SCTP_DSTADDRV6, int32]
    96  	msg	ipv6_addr
    97  }
    98  
    99  # Specific SCTP socket options
   100  
   101  resource assoc_id[int32]: 0
   102  
   103  setsockopt$inet_sctp_SCTP_RTOINFO(fd sock_sctp, level const[IPPROTO_SCTP], opt const[SCTP_RTOINFO], val ptr[in, sctp_rtoinfo], len len[val])
   104  setsockopt$inet6_sctp_SCTP_RTOINFO(fd sock_sctp6, level const[IPPROTO_SCTP], opt const[SCTP_RTOINFO], val ptr[in, sctp_rtoinfo], len len[val])
   105  getsockopt$inet_sctp_SCTP_RTOINFO(fd sock_sctp, level const[IPPROTO_SCTP], opt const[SCTP_RTOINFO], val ptr[inout, sctp_rtoinfo], len ptr[inout, len[val, int32]])
   106  getsockopt$inet6_sctp_SCTP_RTOINFO(fd sock_sctp6, level const[IPPROTO_SCTP], opt const[SCTP_RTOINFO], val ptr[inout, sctp_rtoinfo], len ptr[inout, len[val, int32]])
   107  
   108  setsockopt$inet_sctp_SCTP_ASSOCINFO(fd sock_sctp, level const[IPPROTO_SCTP], opt const[SCTP_ASSOCINFO], val ptr[in, sctp_assocparams], len len[val])
   109  setsockopt$inet6_sctp_SCTP_ASSOCINFO(fd sock_sctp6, level const[IPPROTO_SCTP], opt const[SCTP_ASSOCINFO], val ptr[in, sctp_assocparams], len len[val])
   110  getsockopt$inet_sctp_SCTP_ASSOCINFO(fd sock_sctp, level const[IPPROTO_SCTP], opt const[SCTP_ASSOCINFO], val ptr[inout, sctp_assocparams], len ptr[inout, len[val, int32]])
   111  getsockopt$inet6_sctp_SCTP_ASSOCINFO(fd sock_sctp6, level const[IPPROTO_SCTP], opt const[SCTP_ASSOCINFO], val ptr[inout, sctp_assocparams], len ptr[inout, len[val, int32]])
   112  
   113  setsockopt$inet_sctp_SCTP_INITMSG(fd sock_sctp, level const[IPPROTO_SCTP], opt const[SCTP_INITMSG], val ptr[in, sctp_initmsg], len len[val])
   114  setsockopt$inet6_sctp_SCTP_INITMSG(fd sock_sctp6, level const[IPPROTO_SCTP], opt const[SCTP_INITMSG], val ptr[in, sctp_initmsg], len len[val])
   115  getsockopt$inet_sctp_SCTP_INITMSG(fd sock_sctp, level const[IPPROTO_SCTP], opt const[SCTP_INITMSG], val ptr[out, sctp_initmsg], len ptr[inout, len[val, int32]])
   116  getsockopt$inet6_sctp_SCTP_INITMSG(fd sock_sctp6, level const[IPPROTO_SCTP], opt const[SCTP_INITMSG], val ptr[out, sctp_initmsg], len ptr[inout, len[val, int32]])
   117  
   118  setsockopt$inet_sctp_SCTP_NODELAY(fd sock_sctp, level const[IPPROTO_SCTP], opt const[SCTP_NODELAY], val ptr[in, int32], len len[val])
   119  setsockopt$inet6_sctp_SCTP_NODELAY(fd sock_sctp6, level const[IPPROTO_SCTP], opt const[SCTP_NODELAY], val ptr[in, int32], len len[val])
   120  getsockopt$inet_sctp_SCTP_NODELAY(fd sock_sctp, level const[IPPROTO_SCTP], opt const[SCTP_NODELAY], val ptr[out, int32], len ptr[inout, len[val, int32]])
   121  getsockopt$inet6_sctp_SCTP_NODELAY(fd sock_sctp6, level const[IPPROTO_SCTP], opt const[SCTP_NODELAY], val ptr[out, int32], len ptr[inout, len[val, int32]])
   122  
   123  setsockopt$inet_sctp_SCTP_AUTOCLOSE(fd sock_sctp, level const[IPPROTO_SCTP], opt const[SCTP_AUTOCLOSE], val ptr[in, int32], len len[val])
   124  setsockopt$inet6_sctp_SCTP_AUTOCLOSE(fd sock_sctp6, level const[IPPROTO_SCTP], opt const[SCTP_AUTOCLOSE], val ptr[in, int32], len len[val])
   125  getsockopt$inet_sctp_SCTP_AUTOCLOSE(fd sock_sctp, level const[IPPROTO_SCTP], opt const[SCTP_AUTOCLOSE], val ptr[out, int32], len ptr[inout, len[val, int32]])
   126  getsockopt$inet6_sctp_SCTP_AUTOCLOSE(fd sock_sctp6, level const[IPPROTO_SCTP], opt const[SCTP_AUTOCLOSE], val ptr[out, int32], len ptr[inout, len[val, int32]])
   127  
   128  setsockopt$inet_sctp_SCTP_SET_PEER_PRIMARY_ADDR(fd sock_sctp, level const[IPPROTO_SCTP], opt const[SCTP_SET_PEER_PRIMARY_ADDR], val ptr[in, sctp_prim], len len[val])
   129  setsockopt$inet6_sctp_SCTP_SET_PEER_PRIMARY_ADDR(fd sock_sctp6, level const[IPPROTO_SCTP], opt const[SCTP_SET_PEER_PRIMARY_ADDR], val ptr[in, sctp_prim], len len[val])
   130  
   131  setsockopt$inet_sctp_SCTP_PRIMARY_ADDR(fd sock_sctp, level const[IPPROTO_SCTP], opt const[SCTP_PRIMARY_ADDR], val ptr[in, sctp_prim], len len[val])
   132  setsockopt$inet6_sctp_SCTP_PRIMARY_ADDR(fd sock_sctp6, level const[IPPROTO_SCTP], opt const[SCTP_PRIMARY_ADDR], val ptr[in, sctp_prim], len len[val])
   133  getsockopt$inet_sctp_SCTP_PRIMARY_ADDR(fd sock_sctp, level const[IPPROTO_SCTP], opt const[SCTP_PRIMARY_ADDR], val ptr[inout, sctp_prim], len ptr[inout, len[val, int32]])
   134  getsockopt$inet6_sctp_SCTP_PRIMARY_ADDR(fd sock_sctp6, level const[IPPROTO_SCTP], opt const[SCTP_PRIMARY_ADDR], val ptr[inout, sctp_prim], len ptr[inout, len[val, int32]])
   135  
   136  setsockopt$inet_sctp_SCTP_ADAPTATION_LAYER(fd sock_sctp, level const[IPPROTO_SCTP], opt const[SCTP_ADAPTATION_LAYER], val ptr[in, sctp_setadaptation], len len[val])
   137  setsockopt$inet6_sctp_SCTP_ADAPTATION_LAYER(fd sock_sctp6, level const[IPPROTO_SCTP], opt const[SCTP_ADAPTATION_LAYER], val ptr[in, sctp_setadaptation], len len[val])
   138  getsockopt$inet_sctp_SCTP_ADAPTATION_LAYER(fd sock_sctp, level const[IPPROTO_SCTP], opt const[SCTP_ADAPTATION_LAYER], val ptr[out, sctp_setadaptation], len ptr[inout, len[val, int32]])
   139  getsockopt$inet6_sctp_SCTP_ADAPTATION_LAYER(fd sock_sctp6, level const[IPPROTO_SCTP], opt const[SCTP_ADAPTATION_LAYER], val ptr[out, sctp_setadaptation], len ptr[inout, len[val, int32]])
   140  
   141  setsockopt$inet_sctp_SCTP_DISABLE_FRAGMENTS(fd sock_sctp, level const[IPPROTO_SCTP], opt const[SCTP_DISABLE_FRAGMENTS], val ptr[in, int32], len len[val])
   142  setsockopt$inet6_sctp_SCTP_DISABLE_FRAGMENTS(fd sock_sctp6, level const[IPPROTO_SCTP], opt const[SCTP_DISABLE_FRAGMENTS], val ptr[in, int32], len len[val])
   143  getsockopt$inet_sctp_SCTP_DISABLE_FRAGMENTS(fd sock_sctp, level const[IPPROTO_SCTP], opt const[SCTP_DISABLE_FRAGMENTS], val ptr[out, int32], len ptr[inout, len[val, int32]])
   144  getsockopt$inet6_sctp_SCTP_DISABLE_FRAGMENTS(fd sock_sctp6, level const[IPPROTO_SCTP], opt const[SCTP_DISABLE_FRAGMENTS], val ptr[out, int32], len ptr[inout, len[val, int32]])
   145  
   146  setsockopt$inet_sctp_SCTP_PEER_ADDR_PARAMS(fd sock_sctp, level const[IPPROTO_SCTP], opt const[SCTP_PEER_ADDR_PARAMS], val ptr[in, sctp_paddrparams], len len[val])
   147  setsockopt$inet6_sctp_SCTP_PEER_ADDR_PARAMS(fd sock_sctp6, level const[IPPROTO_SCTP], opt const[SCTP_PEER_ADDR_PARAMS], val ptr[in, sctp_paddrparams], len len[val])
   148  getsockopt$inet_sctp_SCTP_PEER_ADDR_PARAMS(fd sock_sctp, level const[IPPROTO_SCTP], opt const[SCTP_PEER_ADDR_PARAMS], val ptr[inout, sctp_paddrparams], len ptr[inout, len[val, int32]])
   149  getsockopt$inet6_sctp_SCTP_PEER_ADDR_PARAMS(fd sock_sctp6, level const[IPPROTO_SCTP], opt const[SCTP_PEER_ADDR_PARAMS], val ptr[inout, sctp_paddrparams], len ptr[inout, len[val, int32]])
   150  
   151  setsockopt$inet_sctp_SCTP_DEFAULT_SEND_PARAM(fd sock_sctp, level const[IPPROTO_SCTP], opt const[SCTP_DEFAULT_SEND_PARAM], val ptr[in, sctp_sndrcvinfo], len len[val])
   152  setsockopt$inet6_sctp_SCTP_DEFAULT_SEND_PARAM(fd sock_sctp6, level const[IPPROTO_SCTP], opt const[SCTP_DEFAULT_SEND_PARAM], val ptr[in, sctp_sndrcvinfo], len len[val])
   153  getsockopt$inet_sctp_SCTP_DEFAULT_SEND_PARAM(fd sock_sctp, level const[IPPROTO_SCTP], opt const[SCTP_DEFAULT_SEND_PARAM], val ptr[inout, sctp_sndrcvinfo], len ptr[inout, len[val, int32]])
   154  getsockopt$inet6_sctp_SCTP_DEFAULT_SEND_PARAM(fd sock_sctp6, level const[IPPROTO_SCTP], opt const[SCTP_DEFAULT_SEND_PARAM], val ptr[inout, sctp_sndrcvinfo], len ptr[inout, len[val, int32]])
   155  
   156  setsockopt$inet_sctp_SCTP_EVENTS(fd sock_sctp, level const[IPPROTO_SCTP], opt const[SCTP_EVENTS], val ptr[in, sctp_event_subscribe], len len[val])
   157  setsockopt$inet6_sctp_SCTP_EVENTS(fd sock_sctp6, level const[IPPROTO_SCTP], opt const[SCTP_EVENTS], val ptr[in, sctp_event_subscribe], len len[val])
   158  getsockopt$inet_sctp_SCTP_EVENTS(fd sock_sctp, level const[IPPROTO_SCTP], opt const[SCTP_EVENTS], val ptr[out, sctp_event_subscribe], len ptr[inout, len[val, int32]])
   159  getsockopt$inet6_sctp_SCTP_EVENTS(fd sock_sctp6, level const[IPPROTO_SCTP], opt const[SCTP_EVENTS], val ptr[out, sctp_event_subscribe], len ptr[inout, len[val, int32]])
   160  
   161  setsockopt$inet_sctp_SCTP_I_WANT_MAPPED_V4_ADDR(fd sock_sctp, level const[IPPROTO_SCTP], opt const[SCTP_I_WANT_MAPPED_V4_ADDR], val ptr[in, int32], len len[val])
   162  setsockopt$inet6_sctp_SCTP_I_WANT_MAPPED_V4_ADDR(fd sock_sctp6, level const[IPPROTO_SCTP], opt const[SCTP_I_WANT_MAPPED_V4_ADDR], val ptr[in, int32], len len[val])
   163  getsockopt$inet_sctp_SCTP_I_WANT_MAPPED_V4_ADDR(fd sock_sctp, level const[IPPROTO_SCTP], opt const[SCTP_I_WANT_MAPPED_V4_ADDR], val ptr[out, int32], len ptr[inout, len[val, int32]])
   164  getsockopt$inet6_sctp_SCTP_I_WANT_MAPPED_V4_ADDR(fd sock_sctp6, level const[IPPROTO_SCTP], opt const[SCTP_I_WANT_MAPPED_V4_ADDR], val ptr[out, int32], len ptr[inout, len[val, int32]])
   165  
   166  setsockopt$inet_sctp_SCTP_MAXSEG(fd sock_sctp, level const[IPPROTO_SCTP], opt const[SCTP_MAXSEG], val ptr[in, sctp_assoc_value], len len[val])
   167  setsockopt$inet6_sctp_SCTP_MAXSEG(fd sock_sctp6, level const[IPPROTO_SCTP], opt const[SCTP_MAXSEG], val ptr[in, sctp_assoc_value], len len[val])
   168  getsockopt$inet_sctp_SCTP_MAXSEG(fd sock_sctp, level const[IPPROTO_SCTP], opt const[SCTP_MAXSEG], val ptr[inout, sctp_assoc_value], len ptr[inout, len[val, int32]])
   169  getsockopt$inet6_sctp_SCTP_MAXSEG(fd sock_sctp6, level const[IPPROTO_SCTP], opt const[SCTP_MAXSEG], val ptr[inout, sctp_assoc_value], len ptr[inout, len[val, int32]])
   170  
   171  setsockopt$inet_sctp_SCTP_DELAYED_SACK(fd sock_sctp, level const[IPPROTO_SCTP], opt const[SCTP_DELAYED_SACK], val ptr[in, sctp_sack_info], len len[val])
   172  setsockopt$inet6_sctp_SCTP_DELAYED_SACK(fd sock_sctp6, level const[IPPROTO_SCTP], opt const[SCTP_DELAYED_SACK], val ptr[in, sctp_sack_info], len len[val])
   173  getsockopt$inet_sctp_SCTP_DELAYED_SACK(fd sock_sctp, level const[IPPROTO_SCTP], opt const[SCTP_DELAYED_SACK], val ptr[inout, sctp_sack_info], len ptr[inout, len[val, int32]])
   174  getsockopt$inet6_sctp_SCTP_DELAYED_SACK(fd sock_sctp6, level const[IPPROTO_SCTP], opt const[SCTP_DELAYED_SACK], val ptr[inout, sctp_sack_info], len ptr[inout, len[val, int32]])
   175  
   176  setsockopt$inet_sctp_SCTP_FRAGMENT_INTERLEAVE(fd sock_sctp, level const[IPPROTO_SCTP], opt const[SCTP_FRAGMENT_INTERLEAVE], val ptr[in, int32], len len[val])
   177  setsockopt$inet6_sctp_SCTP_FRAGMENT_INTERLEAVE(fd sock_sctp6, level const[IPPROTO_SCTP], opt const[SCTP_FRAGMENT_INTERLEAVE], val ptr[in, int32], len len[val])
   178  getsockopt$inet_sctp_SCTP_FRAGMENT_INTERLEAVE(fd sock_sctp, level const[IPPROTO_SCTP], opt const[SCTP_FRAGMENT_INTERLEAVE], val ptr[out, int32], len ptr[inout, len[val, int32]])
   179  getsockopt$inet6_sctp_SCTP_FRAGMENT_INTERLEAVE(fd sock_sctp6, level const[IPPROTO_SCTP], opt const[SCTP_FRAGMENT_INTERLEAVE], val ptr[out, int32], len ptr[inout, len[val, int32]])
   180  
   181  setsockopt$inet_sctp_SCTP_PARTIAL_DELIVERY_POINT(fd sock_sctp, level const[IPPROTO_SCTP], opt const[SCTP_PARTIAL_DELIVERY_POINT], val ptr[in, int32], len len[val])
   182  setsockopt$inet6_sctp_SCTP_PARTIAL_DELIVERY_POINT(fd sock_sctp6, level const[IPPROTO_SCTP], opt const[SCTP_PARTIAL_DELIVERY_POINT], val ptr[in, int32], len len[val])
   183  getsockopt$inet_sctp_SCTP_PARTIAL_DELIVERY_POINT(fd sock_sctp, level const[IPPROTO_SCTP], opt const[SCTP_PARTIAL_DELIVERY_POINT], val ptr[out, int32], len ptr[inout, len[val, int32]])
   184  getsockopt$inet6_sctp_SCTP_PARTIAL_DELIVERY_POINT(fd sock_sctp6, level const[IPPROTO_SCTP], opt const[SCTP_PARTIAL_DELIVERY_POINT], val ptr[out, int32], len ptr[inout, len[val, int32]])
   185  
   186  setsockopt$inet_sctp_SCTP_AUTH_CHUNK(fd sock_sctp, level const[IPPROTO_SCTP], opt const[SCTP_AUTH_CHUNK], val ptr[in, sctp_authchunk], len len[val])
   187  setsockopt$inet6_sctp_SCTP_AUTH_CHUNK(fd sock_sctp6, level const[IPPROTO_SCTP], opt const[SCTP_AUTH_CHUNK], val ptr[in, sctp_authchunk], len len[val])
   188  
   189  setsockopt$inet_sctp_SCTP_AUTH_KEY(fd sock_sctp, level const[IPPROTO_SCTP], opt const[SCTP_AUTH_KEY], val ptr[in, sctp_authkey], len len[val])
   190  setsockopt$inet6_sctp_SCTP_AUTH_KEY(fd sock_sctp6, level const[IPPROTO_SCTP], opt const[SCTP_AUTH_KEY], val ptr[in, sctp_authkey], len len[val])
   191  
   192  setsockopt$inet_sctp_SCTP_HMAC_IDENT(fd sock_sctp, level const[IPPROTO_SCTP], opt const[SCTP_HMAC_IDENT], val ptr[in, sctp_hmacalgo], len len[val])
   193  setsockopt$inet6_sctp_SCTP_HMAC_IDENT(fd sock_sctp6, level const[IPPROTO_SCTP], opt const[SCTP_HMAC_IDENT], val ptr[in, sctp_hmacalgo], len len[val])
   194  getsockopt$inet_sctp_SCTP_HMAC_IDENT(fd sock_sctp, level const[IPPROTO_SCTP], opt const[SCTP_HMAC_IDENT], val ptr[inout, sctp_hmacalgo], len ptr[inout, len[val, int32]])
   195  getsockopt$inet6_sctp_SCTP_HMAC_IDENT(fd sock_sctp6, level const[IPPROTO_SCTP], opt const[SCTP_HMAC_IDENT], val ptr[inout, sctp_hmacalgo], len ptr[inout, len[val, int32]])
   196  
   197  setsockopt$inet_sctp_SCTP_AUTH_ACTIVE_KEY(fd sock_sctp, level const[IPPROTO_SCTP], opt const[SCTP_AUTH_ACTIVE_KEY], val ptr[in, sctp_authkeyid], len len[val])
   198  setsockopt$inet6_sctp_SCTP_AUTH_ACTIVE_KEY(fd sock_sctp6, level const[IPPROTO_SCTP], opt const[SCTP_AUTH_ACTIVE_KEY], val ptr[in, sctp_authkeyid], len len[val])
   199  getsockopt$inet_sctp_SCTP_AUTH_ACTIVE_KEY(fd sock_sctp, level const[IPPROTO_SCTP], opt const[SCTP_AUTH_ACTIVE_KEY], val ptr[inout, sctp_authkeyid], len ptr[inout, len[val, int32]])
   200  getsockopt$inet6_sctp_SCTP_AUTH_ACTIVE_KEY(fd sock_sctp6, level const[IPPROTO_SCTP], opt const[SCTP_AUTH_ACTIVE_KEY], val ptr[inout, sctp_authkeyid], len ptr[inout, len[val, int32]])
   201  
   202  setsockopt$inet_sctp_SCTP_AUTH_DELETE_KEY(fd sock_sctp, level const[IPPROTO_SCTP], opt const[SCTP_AUTH_DELETE_KEY], val ptr[in, sctp_authkeyid], len len[val])
   203  setsockopt$inet6_sctp_SCTP_AUTH_DELETE_KEY(fd sock_sctp6, level const[IPPROTO_SCTP], opt const[SCTP_AUTH_DELETE_KEY], val ptr[in, sctp_authkeyid], len len[val])
   204  
   205  setsockopt$inet_sctp_SCTP_AUTO_ASCONF(fd sock_sctp, level const[IPPROTO_SCTP], opt const[SCTP_AUTO_ASCONF], val ptr[in, int32], len len[val])
   206  setsockopt$inet6_sctp_SCTP_AUTO_ASCONF(fd sock_sctp6, level const[IPPROTO_SCTP], opt const[SCTP_AUTO_ASCONF], val ptr[in, int32], len len[val])
   207  getsockopt$inet_sctp_SCTP_AUTO_ASCONF(fd sock_sctp, level const[IPPROTO_SCTP], opt const[SCTP_AUTO_ASCONF], val ptr[out, int32], len ptr[inout, len[val, int32]])
   208  getsockopt$inet6_sctp_SCTP_AUTO_ASCONF(fd sock_sctp6, level const[IPPROTO_SCTP], opt const[SCTP_AUTO_ASCONF], val ptr[out, int32], len ptr[inout, len[val, int32]])
   209  
   210  setsockopt$inet_sctp_SCTP_MAX_BURST(fd sock_sctp, level const[IPPROTO_SCTP], opt const[SCTP_MAX_BURST], val ptr[in, sctp_assoc_value], len len[val])
   211  setsockopt$inet6_sctp_SCTP_MAX_BURST(fd sock_sctp6, level const[IPPROTO_SCTP], opt const[SCTP_MAX_BURST], val ptr[in, sctp_assoc_value], len len[val])
   212  getsockopt$inet_sctp_SCTP_MAX_BURST(fd sock_sctp, level const[IPPROTO_SCTP], opt const[SCTP_MAX_BURST], val ptr[inout, sctp_assoc_value], len ptr[inout, len[val, int32]])
   213  getsockopt$inet6_sctp_SCTP_MAX_BURST(fd sock_sctp6, level const[IPPROTO_SCTP], opt const[SCTP_MAX_BURST], val ptr[inout, sctp_assoc_value], len ptr[inout, len[val, int32]])
   214  
   215  setsockopt$inet_sctp_SCTP_CONTEXT(fd sock_sctp, level const[IPPROTO_SCTP], opt const[SCTP_CONTEXT], val ptr[in, sctp_assoc_value], len len[val])
   216  setsockopt$inet6_sctp_SCTP_CONTEXT(fd sock_sctp6, level const[IPPROTO_SCTP], opt const[SCTP_CONTEXT], val ptr[in, sctp_assoc_value], len len[val])
   217  getsockopt$inet_sctp_SCTP_CONTEXT(fd sock_sctp, level const[IPPROTO_SCTP], opt const[SCTP_CONTEXT], val ptr[inout, sctp_assoc_value], len ptr[inout, len[val, int32]])
   218  getsockopt$inet6_sctp_SCTP_CONTEXT(fd sock_sctp6, level const[IPPROTO_SCTP], opt const[SCTP_CONTEXT], val ptr[inout, sctp_assoc_value], len ptr[inout, len[val, int32]])
   219  
   220  setsockopt$inet_sctp_SCTP_EXPLICIT_EOR(fd sock_sctp, level const[IPPROTO_SCTP], opt const[SCTP_EXPLICIT_EOR], val ptr[in, int32], len len[val])
   221  setsockopt$inet6_sctp_SCTP_EXPLICIT_EOR(fd sock_sctp6, level const[IPPROTO_SCTP], opt const[SCTP_EXPLICIT_EOR], val ptr[in, int32], len len[val])
   222  getsockopt$inet_sctp_SCTP_EXPLICIT_EOR(fd sock_sctp, level const[IPPROTO_SCTP], opt const[SCTP_EXPLICIT_EOR], val ptr[out, int32], len ptr[inout, len[val, int32]])
   223  getsockopt$inet6_sctp_SCTP_EXPLICIT_EOR(fd sock_sctp6, level const[IPPROTO_SCTP], opt const[SCTP_EXPLICIT_EOR], val ptr[out, int32], len ptr[inout, len[val, int32]])
   224  
   225  setsockopt$inet_sctp_SCTP_REUSE_PORT(fd sock_sctp, level const[IPPROTO_SCTP], opt const[SCTP_REUSE_PORT], val ptr[in, int32], len len[val])
   226  setsockopt$inet6_sctp_SCTP_REUSE_PORT(fd sock_sctp6, level const[IPPROTO_SCTP], opt const[SCTP_REUSE_PORT], val ptr[in, int32], len len[val])
   227  getsockopt$inet_sctp_SCTP_REUSE_PORT(fd sock_sctp, level const[IPPROTO_SCTP], opt const[SCTP_REUSE_PORT], val ptr[out, int32], len ptr[inout, len[val, int32]])
   228  getsockopt$inet6_sctp_SCTP_REUSE_PORT(fd sock_sctp6, level const[IPPROTO_SCTP], opt const[SCTP_REUSE_PORT], val ptr[out, int32], len ptr[inout, len[val, int32]])
   229  
   230  setsockopt$inet_sctp_SCTP_AUTH_DEACTIVATE_KEY(fd sock_sctp, level const[IPPROTO_SCTP], opt const[SCTP_AUTH_DEACTIVATE_KEY], val ptr[in, sctp_authkeyid], len len[val])
   231  setsockopt$inet6_sctp_SCTP_AUTH_DEACTIVATE_KEY(fd sock_sctp6, level const[IPPROTO_SCTP], opt const[SCTP_AUTH_DEACTIVATE_KEY], val ptr[in, sctp_authkeyid], len len[val])
   232  
   233  setsockopt$inet_sctp_SCTP_EVENT(fd sock_sctp, level const[IPPROTO_SCTP], opt const[SCTP_EVENT], val ptr[in, sctp_event], len len[val])
   234  setsockopt$inet6_sctp_SCTP_EVENT(fd sock_sctp6, level const[IPPROTO_SCTP], opt const[SCTP_EVENT], val ptr[in, sctp_event], len len[val])
   235  getsockopt$inet_sctp_SCTP_EVENT(fd sock_sctp, level const[IPPROTO_SCTP], opt const[SCTP_EVENT], val ptr[inout, sctp_event], len ptr[inout, len[val, int32]])
   236  getsockopt$inet6_sctp_SCTP_EVENT(fd sock_sctp6, level const[IPPROTO_SCTP], opt const[SCTP_EVENT], val ptr[inout, sctp_event], len ptr[inout, len[val, int32]])
   237  
   238  setsockopt$inet_sctp_SCTP_RECVRCVINFO(fd sock_sctp, level const[IPPROTO_SCTP], opt const[SCTP_RECVRCVINFO], val ptr[in, int32], len len[val])
   239  setsockopt$inet6_sctp_SCTP_RECVRCVINFO(fd sock_sctp6, level const[IPPROTO_SCTP], opt const[SCTP_RECVRCVINFO], val ptr[in, int32], len len[val])
   240  getsockopt$inet_sctp_SCTP_RECVRCVINFO(fd sock_sctp, level const[IPPROTO_SCTP], opt const[SCTP_RECVRCVINFO], val ptr[out, int32], len ptr[inout, len[val, int32]])
   241  getsockopt$inet6_sctp_SCTP_RECVRCVINFO(fd sock_sctp6, level const[IPPROTO_SCTP], opt const[SCTP_RECVRCVINFO], val ptr[out, int32], len ptr[inout, len[val, int32]])
   242  
   243  setsockopt$inet_sctp_SCTP_RECVNXTINFO(fd sock_sctp, level const[IPPROTO_SCTP], opt const[SCTP_RECVNXTINFO], val ptr[in, int32], len len[val])
   244  setsockopt$inet6_sctp_SCTP_RECVNXTINFO(fd sock_sctp6, level const[IPPROTO_SCTP], opt const[SCTP_RECVNXTINFO], val ptr[in, int32], len len[val])
   245  getsockopt$inet_sctp_SCTP_RECVNXTINFO(fd sock_sctp, level const[IPPROTO_SCTP], opt const[SCTP_RECVNXTINFO], val ptr[out, int32], len ptr[inout, len[val, int32]])
   246  getsockopt$inet6_sctp_SCTP_RECVNXTINFO(fd sock_sctp6, level const[IPPROTO_SCTP], opt const[SCTP_RECVNXTINFO], val ptr[out, int32], len ptr[inout, len[val, int32]])
   247  
   248  setsockopt$inet_sctp_SCTP_DEFAULT_SNDINFO(fd sock_sctp, level const[IPPROTO_SCTP], opt const[SCTP_DEFAULT_SNDINFO], val ptr[in, sctp_sndinfo], len len[val])
   249  setsockopt$inet6_sctp_SCTP_DEFAULT_SNDINFO(fd sock_sctp6, level const[IPPROTO_SCTP], opt const[SCTP_DEFAULT_SNDINFO], val ptr[in, sctp_sndinfo], len len[val])
   250  getsockopt$inet_sctp_SCTP_DEFAULT_SNDINFO(fd sock_sctp, level const[IPPROTO_SCTP], opt const[SCTP_DEFAULT_SNDINFO], val ptr[inout, sctp_sndinfo], len ptr[inout, len[val, int32]])
   251  getsockopt$inet6_sctp_SCTP_DEFAULT_SNDINFO(fd sock_sctp6, level const[IPPROTO_SCTP], opt const[SCTP_DEFAULT_SNDINFO], val ptr[inout, sctp_sndinfo], len ptr[inout, len[val, int32]])
   252  
   253  setsockopt$inet_sctp_SCTP_DEFAULT_PRINFO(fd sock_sctp, level const[IPPROTO_SCTP], opt const[SCTP_DEFAULT_PRINFO], val ptr[in, sctp_default_prinfo], len len[val])
   254  setsockopt$inet6_sctp_SCTP_DEFAULT_PRINFO(fd sock_sctp6, level const[IPPROTO_SCTP], opt const[SCTP_DEFAULT_PRINFO], val ptr[in, sctp_default_prinfo], len len[val])
   255  getsockopt$inet_sctp_SCTP_DEFAULT_PRINFO(fd sock_sctp, level const[IPPROTO_SCTP], opt const[SCTP_DEFAULT_PRINFO], val ptr[inout, sctp_default_prinfo], len ptr[inout, len[val, int32]])
   256  getsockopt$inet6_sctp_SCTP_DEFAULT_PRINFO(fd sock_sctp6, level const[IPPROTO_SCTP], opt const[SCTP_DEFAULT_PRINFO], val ptr[inout, sctp_default_prinfo], len ptr[inout, len[val, int32]])
   257  
   258  setsockopt$inet_sctp_SCTP_PEER_ADDR_THLDS(fd sock_sctp, level const[IPPROTO_SCTP], opt const[SCTP_PEER_ADDR_THLDS], val ptr[in, sctp_paddrthlds], len len[val])
   259  setsockopt$inet6_sctp_SCTP_PEER_ADDR_THLDS(fd sock_sctp6, level const[IPPROTO_SCTP], opt const[SCTP_PEER_ADDR_THLDS], val ptr[in, sctp_paddrthlds], len len[val])
   260  getsockopt$inet_sctp_SCTP_PEER_ADDR_THLDS(fd sock_sctp, level const[IPPROTO_SCTP], opt const[SCTP_PEER_ADDR_THLDS], val ptr[inout, sctp_paddrthlds], len ptr[inout, len[val, int32]])
   261  getsockopt$inet6_sctp_SCTP_PEER_ADDR_THLDS(fd sock_sctp6, level const[IPPROTO_SCTP], opt const[SCTP_PEER_ADDR_THLDS], val ptr[inout, sctp_paddrthlds], len ptr[inout, len[val, int32]])
   262  
   263  setsockopt$inet_sctp_SCTP_PR_SUPPORTED(fd sock_sctp, level const[IPPROTO_SCTP], opt const[SCTP_PR_SUPPORTED], val ptr[in, sctp_assoc_value], len len[val])
   264  setsockopt$inet6_sctp_SCTP_PR_SUPPORTED(fd sock_sctp6, level const[IPPROTO_SCTP], opt const[SCTP_PR_SUPPORTED], val ptr[in, sctp_assoc_value], len len[val])
   265  getsockopt$inet_sctp_SCTP_PR_SUPPORTED(fd sock_sctp, level const[IPPROTO_SCTP], opt const[SCTP_PR_SUPPORTED], val ptr[inout, sctp_assoc_value], len ptr[inout, len[val, int32]])
   266  getsockopt$inet6_sctp_SCTP_PR_SUPPORTED(fd sock_sctp6, level const[IPPROTO_SCTP], opt const[SCTP_PR_SUPPORTED], val ptr[inout, sctp_assoc_value], len ptr[inout, len[val, int32]])
   267  
   268  setsockopt$inet_sctp_SCTP_RECONFIG_SUPPORTED(fd sock_sctp, level const[IPPROTO_SCTP], opt const[SCTP_RECONFIG_SUPPORTED], val ptr[in, sctp_assoc_value], len len[val])
   269  setsockopt$inet6_sctp_SCTP_RECONFIG_SUPPORTED(fd sock_sctp6, level const[IPPROTO_SCTP], opt const[SCTP_RECONFIG_SUPPORTED], val ptr[in, sctp_assoc_value], len len[val])
   270  getsockopt$inet_sctp_SCTP_RECONFIG_SUPPORTED(fd sock_sctp, level const[IPPROTO_SCTP], opt const[SCTP_RECONFIG_SUPPORTED], val ptr[inout, sctp_assoc_value], len ptr[inout, len[val, int32]])
   271  getsockopt$inet6_sctp_SCTP_RECONFIG_SUPPORTED(fd sock_sctp6, level const[IPPROTO_SCTP], opt const[SCTP_RECONFIG_SUPPORTED], val ptr[inout, sctp_assoc_value], len ptr[inout, len[val, int32]])
   272  
   273  getsockopt$inet_sctp_SCTP_STATUS(fd sock_sctp, level const[IPPROTO_SCTP], opt const[SCTP_STATUS], val ptr[inout, sctp_status], len ptr[inout, len[val, int32]])
   274  getsockopt$inet6_sctp_SCTP_STATUS(fd sock_sctp6, level const[IPPROTO_SCTP], opt const[SCTP_STATUS], val ptr[inout, sctp_status], len ptr[inout, len[val, int32]])
   275  
   276  getsockopt$inet_sctp_SCTP_GET_PEER_ADDR_INFO(fd sock_sctp, level const[IPPROTO_SCTP], opt const[SCTP_GET_PEER_ADDR_INFO], val ptr[inout, sctp_paddrinfo], len ptr[inout, len[val, int32]])
   277  getsockopt$inet6_sctp_SCTP_GET_PEER_ADDR_INFO(fd sock_sctp6, level const[IPPROTO_SCTP], opt const[SCTP_GET_PEER_ADDR_INFO], val ptr[inout, sctp_paddrinfo], len ptr[inout, len[val, int32]])
   278  
   279  getsockopt$inet_sctp_SCTP_PEER_AUTH_CHUNKS(fd sock_sctp, level const[IPPROTO_SCTP], opt const[SCTP_PEER_AUTH_CHUNKS], val ptr[inout, sctp_authchunks], len ptr[inout, len[val, int32]])
   280  getsockopt$inet6_sctp_SCTP_PEER_AUTH_CHUNKS(fd sock_sctp6, level const[IPPROTO_SCTP], opt const[SCTP_PEER_AUTH_CHUNKS], val ptr[inout, sctp_authchunks], len ptr[inout, len[val, int32]])
   281  
   282  getsockopt$inet_sctp_SCTP_LOCAL_AUTH_CHUNKS(fd sock_sctp, level const[IPPROTO_SCTP], opt const[SCTP_LOCAL_AUTH_CHUNKS], val ptr[inout, sctp_authchunks], len ptr[inout, len[val, int32]])
   283  getsockopt$inet6_sctp_SCTP_LOCAL_AUTH_CHUNKS(fd sock_sctp6, level const[IPPROTO_SCTP], opt const[SCTP_LOCAL_AUTH_CHUNKS], val ptr[inout, sctp_authchunks], len ptr[inout, len[val, int32]])
   284  
   285  getsockopt$inet_sctp_SCTP_GET_ASSOC_NUMBER(fd sock_sctp, level const[IPPROTO_SCTP], opt const[SCTP_GET_ASSOC_NUMBER], val ptr[out, int32], len ptr[inout, len[val, int32]])
   286  getsockopt$inet6_sctp_SCTP_GET_ASSOC_NUMBER(fd sock_sctp6, level const[IPPROTO_SCTP], opt const[SCTP_GET_ASSOC_NUMBER], val ptr[out, int32], len ptr[inout, len[val, int32]])
   287  
   288  getsockopt$inet_sctp_SCTP_GET_ASSOC_ID_LIST(fd sock_sctp, level const[IPPROTO_SCTP], opt const[SCTP_GET_ASSOC_ID_LIST], val ptr[out, sctp_assoc_ids], len ptr[inout, len[val, int32]])
   289  getsockopt$inet6_sctp_SCTP_GET_ASSOC_ID_LIST(fd sock_sctp6, level const[IPPROTO_SCTP], opt const[SCTP_GET_ASSOC_ID_LIST], val ptr[out, sctp_assoc_ids], len ptr[inout, len[val, int32]])
   290  
   291  getsockopt$inet_sctp_SCTP_PR_STREAM_STATUS(fd sock_sctp, level const[IPPROTO_SCTP], opt const[SCTP_PR_STREAM_STATUS], val ptr[inout, sctp_prstatus], len ptr[inout, len[val, int32]])
   292  getsockopt$inet6_sctp_SCTP_PR_STREAM_STATUS(fd sock_sctp6, level const[IPPROTO_SCTP], opt const[SCTP_PR_STREAM_STATUS], val ptr[inout, sctp_prstatus], len ptr[inout, len[val, int32]])
   293  
   294  getsockopt$inet_sctp_SCTP_PR_ASSOC_STATUS(fd sock_sctp, level const[IPPROTO_SCTP], opt const[SCTP_PR_ASSOC_STATUS], val ptr[inout, sctp_prstatus], len ptr[inout, len[val, int32]])
   295  getsockopt$inet6_sctp_SCTP_PR_ASSOC_STATUS(fd sock_sctp6, level const[IPPROTO_SCTP], opt const[SCTP_PR_ASSOC_STATUS], val ptr[inout, sctp_prstatus], len ptr[inout, len[val, int32]])
   296  
   297  setsockopt$inet_sctp_SCTP_ENABLE_STREAM_RESET(fd sock_sctp, level const[IPPROTO_SCTP], opt const[SCTP_ENABLE_STREAM_RESET], val ptr[in, sctp_assoc_value], len len[val])
   298  setsockopt$inet6_sctp_SCTP_ENABLE_STREAM_RESET(fd sock_sctp6, level const[IPPROTO_SCTP], opt const[SCTP_ENABLE_STREAM_RESET], val ptr[in, sctp_assoc_value], len len[val])
   299  getsockopt$inet_sctp_SCTP_ENABLE_STREAM_RESET(fd sock_sctp, level const[IPPROTO_SCTP], opt const[SCTP_ENABLE_STREAM_RESET], val ptr[inout, sctp_assoc_value], len ptr[inout, len[val, int32]])
   300  getsockopt$inet6_sctp_SCTP_ENABLE_STREAM_RESET(fd sock_sctp6, level const[IPPROTO_SCTP], opt const[SCTP_ENABLE_STREAM_RESET], val ptr[inout, sctp_assoc_value], len ptr[inout, len[val, int32]])
   301  
   302  setsockopt$inet_sctp_SCTP_RESET_STREAMS(fd sock_sctp, level const[IPPROTO_SCTP], opt const[SCTP_RESET_STREAMS], val ptr[in, sctp_reset_streams], len len[val])
   303  setsockopt$inet6_sctp_SCTP_RESET_STREAMS(fd sock_sctp6, level const[IPPROTO_SCTP], opt const[SCTP_RESET_STREAMS], val ptr[in, sctp_reset_streams], len len[val])
   304  getsockopt$inet_sctp_SCTP_RESET_STREAMS(fd sock_sctp, level const[IPPROTO_SCTP], opt const[SCTP_RESET_STREAMS], val ptr[inout, sctp_reset_streams], len ptr[inout, len[val, int32]])
   305  getsockopt$inet6_sctp_SCTP_RESET_STREAMS(fd sock_sctp6, level const[IPPROTO_SCTP], opt const[SCTP_RESET_STREAMS], val ptr[inout, sctp_reset_streams], len ptr[inout, len[val, int32]])
   306  
   307  setsockopt$inet_sctp_SCTP_RESET_ASSOC(fd sock_sctp, level const[IPPROTO_SCTP], opt const[SCTP_RESET_ASSOC], val ptr[in, assoc_id], len len[val])
   308  setsockopt$inet6_sctp_SCTP_RESET_ASSOC(fd sock_sctp6, level const[IPPROTO_SCTP], opt const[SCTP_RESET_ASSOC], val ptr[in, assoc_id], len len[val])
   309  
   310  setsockopt$inet_sctp_SCTP_ADD_STREAMS(fd sock_sctp, level const[IPPROTO_SCTP], opt const[SCTP_ADD_STREAMS], val ptr[in, sctp_add_streams], len len[val])
   311  setsockopt$inet6_sctp_SCTP_ADD_STREAMS(fd sock_sctp6, level const[IPPROTO_SCTP], opt const[SCTP_ADD_STREAMS], val ptr[in, sctp_add_streams], len len[val])
   312  
   313  setsockopt$inet_sctp_SCTP_BINDX_ADD_ADDR(fd sock_sctp, level const[IPPROTO_SCTP], opt const[SCTP_BINDX_ADD_ADDR], val ptr[in, sockaddr_sctp], len ptr[inout, len[val, int32]])
   314  setsockopt$inet6_sctp_SCTP_BINDX_ADD_ADDR(fd sock_sctp6, level const[IPPROTO_SCTP], opt const[SCTP_BINDX_ADD_ADDR], val ptr[in, sockaddr_sctp], len ptr[inout, len[val, int32]])
   315  
   316  setsockopt$inet_sctp_SCTP_BINDX_REM_ADDR(fd sock_sctp, level const[IPPROTO_SCTP], opt const[SCTP_BINDX_REM_ADDR], val ptr[in, sockaddr_sctp], len ptr[inout, len[val, int32]])
   317  setsockopt$inet6_sctp_SCTP_BINDX_REM_ADDR(fd sock_sctp6, level const[IPPROTO_SCTP], opt const[SCTP_BINDX_REM_ADDR], val ptr[in, sockaddr_sctp], len ptr[inout, len[val, int32]])
   318  
   319  getsockopt$inet_sctp_SCTP_GET_PEER_ADDRESSES(fd sock_sctp, level const[IPPROTO_SCTP], opt const[SCTP_GET_PEER_ADDRESSES], val ptr[inout, sctp_getaddresses_out], len ptr[inout, len[val, int32]])
   320  getsockopt$inet6_sctp_SCTP_GET_PEER_ADDRESSES(fd sock_sctp6, level const[IPPROTO_SCTP], opt const[SCTP_GET_PEER_ADDRESSES], val ptr[inout, sctp_getaddresses_out], len ptr[inout, len[val, int32]])
   321  
   322  getsockopt$inet_sctp_SCTP_GET_LOCAL_ADDRESSES(fd sock_sctp, level const[IPPROTO_SCTP], opt const[SCTP_GET_LOCAL_ADDRESSES], val ptr[inout, sctp_getaddresses_out], len ptr[inout, len[val, int32]])
   323  getsockopt$inet6_sctp_SCTP_GET_LOCAL_ADDRESSES(fd sock_sctp6, level const[IPPROTO_SCTP], opt const[SCTP_GET_LOCAL_ADDRESSES], val ptr[inout, sctp_getaddresses_out], len ptr[inout, len[val, int32]])
   324  
   325  setsockopt$inet_sctp_SCTP_CONNECT_X(fd sock_sctp, level const[IPPROTO_SCTP], opt const[SCTP_CONNECT_X], val ptr[in, sctp_connectx], len ptr[inout, len[val, int32]])
   326  setsockopt$inet6_sctp_SCTP_CONNECT_X(fd sock_sctp6, level const[IPPROTO_SCTP], opt const[SCTP_CONNECT_X], val ptr[in, sctp_connectx], len ptr[inout, len[val, int32]])
   327  
   328  setsockopt$inet_sctp_SCTP_REMOTE_UDP_ENCAPS_PORT(fd sock_sctp, level const[IPPROTO_SCTP], opt const[SCTP_REMOTE_UDP_ENCAPS_PORT], val ptr[in, sctp_udpencaps], len len[val])
   329  setsockopt$inet6_sctp_SCTP_REMOTE_UDP_ENCAPS_PORT(fd sock_sctp6, level const[IPPROTO_SCTP], opt const[SCTP_REMOTE_UDP_ENCAPS_PORT], val ptr[in, sctp_udpencaps], len len[val])
   330  getsockopt$inet_sctp_SCTP_REMOTE_UDP_ENCAPS_PORT(fd sock_sctp, level const[IPPROTO_SCTP], opt const[SCTP_REMOTE_UDP_ENCAPS_PORT], val ptr[inout, sctp_udpencaps], len ptr[inout, len[val, int32]])
   331  getsockopt$inet6_sctp_SCTP_REMOTE_UDP_ENCAPS_PORT(fd sock_sctp6, level const[IPPROTO_SCTP], opt const[SCTP_REMOTE_UDP_ENCAPS_PORT], val ptr[inout, sctp_udpencaps], len ptr[inout, len[val, int32]])
   332  
   333  sctp_rtoinfo {
   334  	srto_assoc_id	assoc_id
   335  	srto_initial	int32
   336  	srto_max	int32
   337  	srto_min	int32
   338  }
   339  
   340  sctp_assocparams {
   341  	sasoc_assoc_id		assoc_id
   342  	sasoc_peer_rwnd		int32
   343  	sasoc_local_rwnd	int32
   344  	sasoc_cookie_life	int32
   345  	sasoc_asocmaxrxt	int16
   346  	sasoc_number_peer_dest	int16
   347  }
   348  
   349  sctp_initmsg {
   350  	sinit_num_ostreams	int16
   351  	sinit_max_instreams	int16
   352  	sinit_max_attempts	int16
   353  	sinit_max_init_timeo	int16
   354  }
   355  
   356  sctp_prim {
   357  	ssp_addr	sockaddr_storage_sctp
   358  	ssp_assoc_id	assoc_id
   359  }
   360  
   361  sockaddr_sctp [
   362  	in	sockaddr_in
   363  	in6	sockaddr_in6
   364  ] [varlen]
   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_address		sockaddr_storage_sctp
   377  	spp_assoc_id		assoc_id
   378  	spp_hbinterval		int32
   379  	spp_pathmtu		int32
   380  	spp_flags		flags[sctp_spp_flags, int32]
   381  	spp_ipv6_flowlabel	int32
   382  	spp_pathmaxrxt		int16
   383  	spp_dscp		int8
   384  }
   385  
   386  sctp_spp_flags = SPP_HB_ENABLE, SPP_HB_DISABLE, SPP_HB_DEMAND, SPP_PMTUD_ENABLE, SPP_PMTUD_DISABLE, SPP_HB_TIME_IS_ZERO, SPP_IPV6_FLOWLABEL, SPP_DSCP
   387  
   388  sctp_sndrcvinfo {
   389  	sinfo_stream		int16
   390  	sinfo_ssn		int16
   391  	sinfo_flags		flags[sctp_sndrcv_flags, int16]
   392  	sinfo_ppid		int32
   393  	sinfo_context		int32
   394  	sinfo_timetolive	int32
   395  	sinfo_tsn		int32
   396  	sinfo_cumtsn		int32
   397  	sinfo_assoc_id		assoc_id
   398  }
   399  
   400  sctp_sndrcv_flags = SCTP_NOTIFICATION, SCTP_COMPLETE, SCTP_EOF, SCTP_ABORT, SCTP_UNORDERED, SCTP_ADDR_OVER, SCTP_SENDALL, SCTP_EOR, SCTP_SACK_IMMEDIATELY
   401  
   402  sctp_event_subscribe {
   403  	sctp_data_io_event	int8
   404  	sctp_association_event	int8
   405  	sctp_address_event	int8
   406  	sctp_send_failure_event	int8
   407  	sctp_peer_error_event	int8
   408  	sctp_shutdown_event	int8
   409  	sctp_partial_delivery_e	int8
   410  	sctp_adaptation_layer_e	int8
   411  	sctp_authentication_e	int8
   412  	sctp_sender_dry_event	int8
   413  	sctp_stream_reset_event	int8
   414  }
   415  
   416  sctp_assoc_value {
   417  	assoc_id	assoc_id
   418  	assoc_value	int32
   419  }
   420  
   421  sctp_reset_streams {
   422  	srs_assoc_id		assoc_id
   423  	srs_flags		int16
   424  	srs_number_streams	len[srs_stream_list, int16]
   425  	srs_stream_list		array[int16]
   426  }
   427  
   428  sctp_status {
   429  	sstat_assoc_id		assoc_id
   430  	sstat_state		int32
   431  	sstat_rwnd		int32
   432  	sstat_unackdata		int16
   433  	sstat_penddata		int16
   434  	sstat_instrms		int16
   435  	sstat_outstrms		int16
   436  	sstat_fragmentation_p	int32
   437  	sstat_primary		sctp_paddrinfo
   438  }
   439  
   440  sctp_paddrinfo {
   441  	spinfo_address	sockaddr_storage_sctp
   442  	spinfo_assoc_id	assoc_id
   443  	spinfo_state	int32
   444  	spinfo_cwnd	int32
   445  	spinfo_srtt	int32
   446  	spinfo_rto	int32
   447  	spinfo_mtu	int32
   448  }
   449  
   450  sctp_sack_info {
   451  	sack_assoc_id	assoc_id
   452  	sack_delay	int32
   453  	sack_freq	int32
   454  }
   455  
   456  sctp_authchunk {
   457  	sauth_chunk	int8
   458  }
   459  
   460  sctp_hmacalgo {
   461  	shmac_num_idents	len[shmac_idents, int32]
   462  	shmac_idents		array[int16]
   463  }
   464  
   465  sctp_authkey {
   466  	sca_assoc_id	assoc_id
   467  	sca_keynumber	int16
   468  	sca_keylength	len[sca_key, int16]
   469  	sca_key		array[int8]
   470  }
   471  
   472  sctp_authkeyid {
   473  	scact_assoc_id	assoc_id
   474  	scact_keynumber	int16
   475  }
   476  
   477  sctp_authchunks {
   478  	gauth_assoc_id		assoc_id
   479  	gauth_number_of_chunks	len[gauth_chunks, int32]
   480  	gauth_chunks		array[int8]
   481  }
   482  
   483  sctp_event {
   484  	se_assoc_id	assoc_id
   485  	se_type		flags[sctp_event_types, int16]
   486  	se_on		int8
   487  }
   488  
   489  sctp_event_types = SCTP_ASSOC_CHANGE, SCTP_PEER_ADDR_CHANGE, SCTP_REMOTE_ERROR, SCTP_SEND_FAILED, SCTP_SHUTDOWN_EVENT, SCTP_ADAPTATION_INDICATION, SCTP_PARTIAL_DELIVERY_EVENT, SCTP_AUTHENTICATION_EVENT, SCTP_STREAM_RESET_EVENT, SCTP_SENDER_DRY_EVENT, SCTP_NOTIFICATIONS_STOPPED_EVENT, SCTP_ASSOC_RESET_EVENT, SCTP_STREAM_CHANGE_EVENT, SCTP_SEND_FAILED_EVENT
   490  
   491  sctp_assoc_ids {
   492  	gaids_number_of_ids	len[gaids_assoc_id, int32]
   493  	gaids_assoc_id		array[assoc_id]
   494  }
   495  
   496  sctp_paddrthlds {
   497  	spt_address	sockaddr_storage_sctp
   498  	spt_assoc_id	assoc_id
   499  	spt_pathmaxrxt	int16
   500  	spt_pathpfthld	int16
   501  	spt_pathcpthld	int16
   502  }
   503  
   504  sctp_sndinfo {
   505  	snd_sid		int16
   506  	snd_flags	flags[sctp_sndrcv_flags, int16]
   507  	snd_ppid	int32
   508  	snd_context	int32
   509  	snd_assoc_id	assoc_id
   510  }
   511  
   512  sctp_getaddresses_out {
   513  	sget_assoc_id	assoc_id
   514  	addr		ptr[out, array[sockaddr_sctp]]
   515  }
   516  
   517  sctp_connectx {
   518  	addrcnt	int32
   519  	addrs	ptr[in, array[sockaddr_sctp]]
   520  }
   521  
   522  sctp_default_prinfo {
   523  	pr_policy	flags[sctp_pr_policies, int16]
   524  	pr_value	int32
   525  	pr_assoc_id	assoc_id
   526  }
   527  
   528  sctp_pr_policies = SCTP_PR_SCTP_NONE, SCTP_PR_SCTP_TTL, SCTP_PR_SCTP_PRIO, SCTP_PR_SCTP_RTX, SCTP_PR_SCTP_ALL
   529  
   530  sctp_prstatus {
   531  	sprstat_assoc_id	assoc_id
   532  	sprstat_sid		int16
   533  	sprstat_policy		flags[sctp_pr_policies, int16]
   534  	sprstat_abandoned_uns	int64
   535  	sprstat_abandoned_sent	int64
   536  }
   537  
   538  sctp_add_streams {
   539  	sas_assoc_id	assoc_id
   540  	sas_instrms	int16
   541  	sas_outstrms	int16
   542  }
   543  
   544  sctp_udpencaps {
   545  	sue_assoc_id	assoc_id
   546  	sue_address	sockaddr_storage_sctp
   547  	sue_port	int16
   548  }