Home | History | Annotate | Download | only in linux
      1 /****************************************************************************
      2  ****************************************************************************
      3  ***
      4  ***   This header was automatically generated from a Linux kernel header
      5  ***   of the same name, to make information necessary for userspace to
      6  ***   call into the kernel available to libc.  It contains only constants,
      7  ***   structures, and macros generated from the original header, and thus,
      8  ***   contains no copyrightable information.
      9  ***
     10  ***   To edit the content of this header, modify the corresponding
     11  ***   source file (e.g. under external/kernel-headers/original/) then
     12  ***   run bionic/libc/kernel/tools/update_all.py
     13  ***
     14  ***   Any manual change here will be lost the next time this script will
     15  ***   be run. You've been warned!
     16  ***
     17  ****************************************************************************
     18  ****************************************************************************/
     19 #ifndef _UAPI_SCTP_H
     20 #define _UAPI_SCTP_H
     21 #include <linux/types.h>
     22 #include <linux/socket.h>
     23 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
     24 typedef __s32 sctp_assoc_t;
     25 #define SCTP_RTOINFO 0
     26 #define SCTP_ASSOCINFO 1
     27 #define SCTP_INITMSG 2
     28 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
     29 #define SCTP_NODELAY 3
     30 #define SCTP_AUTOCLOSE 4
     31 #define SCTP_SET_PEER_PRIMARY_ADDR 5
     32 #define SCTP_PRIMARY_ADDR 6
     33 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
     34 #define SCTP_ADAPTATION_LAYER 7
     35 #define SCTP_DISABLE_FRAGMENTS 8
     36 #define SCTP_PEER_ADDR_PARAMS 9
     37 #define SCTP_DEFAULT_SEND_PARAM 10
     38 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
     39 #define SCTP_EVENTS 11
     40 #define SCTP_I_WANT_MAPPED_V4_ADDR 12
     41 #define SCTP_MAXSEG 13
     42 #define SCTP_STATUS 14
     43 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
     44 #define SCTP_GET_PEER_ADDR_INFO 15
     45 #define SCTP_DELAYED_ACK_TIME 16
     46 #define SCTP_DELAYED_ACK SCTP_DELAYED_ACK_TIME
     47 #define SCTP_DELAYED_SACK SCTP_DELAYED_ACK_TIME
     48 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
     49 #define SCTP_CONTEXT 17
     50 #define SCTP_FRAGMENT_INTERLEAVE 18
     51 #define SCTP_PARTIAL_DELIVERY_POINT 19
     52 #define SCTP_MAX_BURST 20
     53 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
     54 #define SCTP_AUTH_CHUNK 21
     55 #define SCTP_HMAC_IDENT 22
     56 #define SCTP_AUTH_KEY 23
     57 #define SCTP_AUTH_ACTIVE_KEY 24
     58 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
     59 #define SCTP_AUTH_DELETE_KEY 25
     60 #define SCTP_PEER_AUTH_CHUNKS 26
     61 #define SCTP_LOCAL_AUTH_CHUNKS 27
     62 #define SCTP_GET_ASSOC_NUMBER 28
     63 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
     64 #define SCTP_GET_ASSOC_ID_LIST 29
     65 #define SCTP_AUTO_ASCONF 30
     66 #define SCTP_PEER_ADDR_THLDS 31
     67 #define SCTP_RECVRCVINFO 32
     68 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
     69 #define SCTP_RECVNXTINFO 33
     70 #define SCTP_DEFAULT_SNDINFO 34
     71 #define SCTP_SOCKOPT_BINDX_ADD 100
     72 #define SCTP_SOCKOPT_BINDX_REM 101
     73 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
     74 #define SCTP_SOCKOPT_PEELOFF 102
     75 #define SCTP_SOCKOPT_CONNECTX_OLD 107
     76 #define SCTP_GET_PEER_ADDRS 108
     77 #define SCTP_GET_LOCAL_ADDRS 109
     78 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
     79 #define SCTP_SOCKOPT_CONNECTX 110
     80 #define SCTP_SOCKOPT_CONNECTX3 111
     81 #define SCTP_GET_ASSOC_STATS 112
     82 #define SCTP_PR_SUPPORTED 113
     83 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
     84 #define SCTP_DEFAULT_PRINFO 114
     85 #define SCTP_PR_ASSOC_STATUS 115
     86 #define SCTP_PR_SCTP_NONE 0x0000
     87 #define SCTP_PR_SCTP_TTL 0x0010
     88 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
     89 #define SCTP_PR_SCTP_RTX 0x0020
     90 #define SCTP_PR_SCTP_PRIO 0x0030
     91 #define SCTP_PR_SCTP_MAX SCTP_PR_SCTP_PRIO
     92 #define SCTP_PR_SCTP_MASK 0x0030
     93 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
     94 #define __SCTP_PR_INDEX(x) ((x >> 4) - 1)
     95 #define SCTP_PR_INDEX(x) __SCTP_PR_INDEX(SCTP_PR_SCTP_ ##x)
     96 #define SCTP_PR_POLICY(x) ((x) & SCTP_PR_SCTP_MASK)
     97 #define SCTP_PR_SET_POLICY(flags,x) do { flags &= ~SCTP_PR_SCTP_MASK; flags |= x; } while(0)
     98 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
     99 #define SCTP_PR_TTL_ENABLED(x) (SCTP_PR_POLICY(x) == SCTP_PR_SCTP_TTL)
    100 #define SCTP_PR_RTX_ENABLED(x) (SCTP_PR_POLICY(x) == SCTP_PR_SCTP_RTX)
    101 #define SCTP_PR_PRIO_ENABLED(x) (SCTP_PR_POLICY(x) == SCTP_PR_SCTP_PRIO)
    102 enum sctp_msg_flags {
    103 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    104   MSG_NOTIFICATION = 0x8000,
    105 #define MSG_NOTIFICATION MSG_NOTIFICATION
    106 };
    107 struct sctp_initmsg {
    108 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    109   __u16 sinit_num_ostreams;
    110   __u16 sinit_max_instreams;
    111   __u16 sinit_max_attempts;
    112   __u16 sinit_max_init_timeo;
    113 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    114 };
    115 struct sctp_sndrcvinfo {
    116   __u16 sinfo_stream;
    117   __u16 sinfo_ssn;
    118 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    119   __u16 sinfo_flags;
    120   __u32 sinfo_ppid;
    121   __u32 sinfo_context;
    122   __u32 sinfo_timetolive;
    123 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    124   __u32 sinfo_tsn;
    125   __u32 sinfo_cumtsn;
    126   sctp_assoc_t sinfo_assoc_id;
    127 };
    128 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    129 struct sctp_sndinfo {
    130   __u16 snd_sid;
    131   __u16 snd_flags;
    132   __u32 snd_ppid;
    133 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    134   __u32 snd_context;
    135   sctp_assoc_t snd_assoc_id;
    136 };
    137 struct sctp_rcvinfo {
    138 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    139   __u16 rcv_sid;
    140   __u16 rcv_ssn;
    141   __u16 rcv_flags;
    142   __u32 rcv_ppid;
    143 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    144   __u32 rcv_tsn;
    145   __u32 rcv_cumtsn;
    146   __u32 rcv_context;
    147   sctp_assoc_t rcv_assoc_id;
    148 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    149 };
    150 struct sctp_nxtinfo {
    151   __u16 nxt_sid;
    152   __u16 nxt_flags;
    153 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    154   __u32 nxt_ppid;
    155   __u32 nxt_length;
    156   sctp_assoc_t nxt_assoc_id;
    157 };
    158 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    159 enum sctp_sinfo_flags {
    160   SCTP_UNORDERED = (1 << 0),
    161   SCTP_ADDR_OVER = (1 << 1),
    162   SCTP_ABORT = (1 << 2),
    163 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    164   SCTP_SACK_IMMEDIATELY = (1 << 3),
    165   SCTP_NOTIFICATION = MSG_NOTIFICATION,
    166   SCTP_EOF = MSG_FIN,
    167 };
    168 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    169 typedef union {
    170   __u8 raw;
    171   struct sctp_initmsg init;
    172   struct sctp_sndrcvinfo sndrcv;
    173 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    174 } sctp_cmsg_data_t;
    175 typedef enum sctp_cmsg_type {
    176   SCTP_INIT,
    177 #define SCTP_INIT SCTP_INIT
    178 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    179   SCTP_SNDRCV,
    180 #define SCTP_SNDRCV SCTP_SNDRCV
    181   SCTP_SNDINFO,
    182 #define SCTP_SNDINFO SCTP_SNDINFO
    183 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    184   SCTP_RCVINFO,
    185 #define SCTP_RCVINFO SCTP_RCVINFO
    186   SCTP_NXTINFO,
    187 #define SCTP_NXTINFO SCTP_NXTINFO
    188 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    189 } sctp_cmsg_t;
    190 struct sctp_assoc_change {
    191   __u16 sac_type;
    192   __u16 sac_flags;
    193 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    194   __u32 sac_length;
    195   __u16 sac_state;
    196   __u16 sac_error;
    197   __u16 sac_outbound_streams;
    198 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    199   __u16 sac_inbound_streams;
    200   sctp_assoc_t sac_assoc_id;
    201   __u8 sac_info[0];
    202 };
    203 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    204 enum sctp_sac_state {
    205   SCTP_COMM_UP,
    206   SCTP_COMM_LOST,
    207   SCTP_RESTART,
    208 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    209   SCTP_SHUTDOWN_COMP,
    210   SCTP_CANT_STR_ASSOC,
    211 };
    212 struct sctp_paddr_change {
    213 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    214   __u16 spc_type;
    215   __u16 spc_flags;
    216   __u32 spc_length;
    217   struct sockaddr_storage spc_aaddr;
    218 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    219   int spc_state;
    220   int spc_error;
    221   sctp_assoc_t spc_assoc_id;
    222 } __attribute__((packed, aligned(4)));
    223 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    224 enum sctp_spc_state {
    225   SCTP_ADDR_AVAILABLE,
    226   SCTP_ADDR_UNREACHABLE,
    227   SCTP_ADDR_REMOVED,
    228 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    229   SCTP_ADDR_ADDED,
    230   SCTP_ADDR_MADE_PRIM,
    231   SCTP_ADDR_CONFIRMED,
    232 };
    233 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    234 struct sctp_remote_error {
    235   __u16 sre_type;
    236   __u16 sre_flags;
    237   __u32 sre_length;
    238 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    239   __u16 sre_error;
    240   sctp_assoc_t sre_assoc_id;
    241   __u8 sre_data[0];
    242 };
    243 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    244 struct sctp_send_failed {
    245   __u16 ssf_type;
    246   __u16 ssf_flags;
    247   __u32 ssf_length;
    248 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    249   __u32 ssf_error;
    250   struct sctp_sndrcvinfo ssf_info;
    251   sctp_assoc_t ssf_assoc_id;
    252   __u8 ssf_data[0];
    253 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    254 };
    255 enum sctp_ssf_flags {
    256   SCTP_DATA_UNSENT,
    257   SCTP_DATA_SENT,
    258 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    259 };
    260 struct sctp_shutdown_event {
    261   __u16 sse_type;
    262   __u16 sse_flags;
    263 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    264   __u32 sse_length;
    265   sctp_assoc_t sse_assoc_id;
    266 };
    267 struct sctp_adaptation_event {
    268 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    269   __u16 sai_type;
    270   __u16 sai_flags;
    271   __u32 sai_length;
    272   __u32 sai_adaptation_ind;
    273 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    274   sctp_assoc_t sai_assoc_id;
    275 };
    276 struct sctp_pdapi_event {
    277   __u16 pdapi_type;
    278 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    279   __u16 pdapi_flags;
    280   __u32 pdapi_length;
    281   __u32 pdapi_indication;
    282   sctp_assoc_t pdapi_assoc_id;
    283 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    284 };
    285 enum {
    286   SCTP_PARTIAL_DELIVERY_ABORTED = 0,
    287 };
    288 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    289 struct sctp_authkey_event {
    290   __u16 auth_type;
    291   __u16 auth_flags;
    292   __u32 auth_length;
    293 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    294   __u16 auth_keynumber;
    295   __u16 auth_altkeynumber;
    296   __u32 auth_indication;
    297   sctp_assoc_t auth_assoc_id;
    298 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    299 };
    300 enum {
    301   SCTP_AUTH_NEWKEY = 0,
    302 };
    303 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    304 struct sctp_sender_dry_event {
    305   __u16 sender_dry_type;
    306   __u16 sender_dry_flags;
    307   __u32 sender_dry_length;
    308 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    309   sctp_assoc_t sender_dry_assoc_id;
    310 };
    311 struct sctp_event_subscribe {
    312   __u8 sctp_data_io_event;
    313 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    314   __u8 sctp_association_event;
    315   __u8 sctp_address_event;
    316   __u8 sctp_send_failure_event;
    317   __u8 sctp_peer_error_event;
    318 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    319   __u8 sctp_shutdown_event;
    320   __u8 sctp_partial_delivery_event;
    321   __u8 sctp_adaptation_layer_event;
    322   __u8 sctp_authentication_event;
    323 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    324   __u8 sctp_sender_dry_event;
    325 };
    326 union sctp_notification {
    327   struct {
    328 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    329     __u16 sn_type;
    330     __u16 sn_flags;
    331     __u32 sn_length;
    332   } sn_header;
    333 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    334   struct sctp_assoc_change sn_assoc_change;
    335   struct sctp_paddr_change sn_paddr_change;
    336   struct sctp_remote_error sn_remote_error;
    337   struct sctp_send_failed sn_send_failed;
    338 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    339   struct sctp_shutdown_event sn_shutdown_event;
    340   struct sctp_adaptation_event sn_adaptation_event;
    341   struct sctp_pdapi_event sn_pdapi_event;
    342   struct sctp_authkey_event sn_authkey_event;
    343 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    344   struct sctp_sender_dry_event sn_sender_dry_event;
    345 };
    346 enum sctp_sn_type {
    347   SCTP_SN_TYPE_BASE = (1 << 15),
    348 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    349   SCTP_ASSOC_CHANGE,
    350 #define SCTP_ASSOC_CHANGE SCTP_ASSOC_CHANGE
    351   SCTP_PEER_ADDR_CHANGE,
    352 #define SCTP_PEER_ADDR_CHANGE SCTP_PEER_ADDR_CHANGE
    353 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    354   SCTP_SEND_FAILED,
    355 #define SCTP_SEND_FAILED SCTP_SEND_FAILED
    356   SCTP_REMOTE_ERROR,
    357 #define SCTP_REMOTE_ERROR SCTP_REMOTE_ERROR
    358 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    359   SCTP_SHUTDOWN_EVENT,
    360 #define SCTP_SHUTDOWN_EVENT SCTP_SHUTDOWN_EVENT
    361   SCTP_PARTIAL_DELIVERY_EVENT,
    362 #define SCTP_PARTIAL_DELIVERY_EVENT SCTP_PARTIAL_DELIVERY_EVENT
    363 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    364   SCTP_ADAPTATION_INDICATION,
    365 #define SCTP_ADAPTATION_INDICATION SCTP_ADAPTATION_INDICATION
    366   SCTP_AUTHENTICATION_EVENT,
    367 #define SCTP_AUTHENTICATION_INDICATION SCTP_AUTHENTICATION_EVENT
    368 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    369   SCTP_SENDER_DRY_EVENT,
    370 #define SCTP_SENDER_DRY_EVENT SCTP_SENDER_DRY_EVENT
    371 };
    372 typedef enum sctp_sn_error {
    373 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    374   SCTP_FAILED_THRESHOLD,
    375   SCTP_RECEIVED_SACK,
    376   SCTP_HEARTBEAT_SUCCESS,
    377   SCTP_RESPONSE_TO_USER_REQ,
    378 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    379   SCTP_INTERNAL_ERROR,
    380   SCTP_SHUTDOWN_GUARD_EXPIRES,
    381   SCTP_PEER_FAULTY,
    382 } sctp_sn_error_t;
    383 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    384 struct sctp_rtoinfo {
    385   sctp_assoc_t srto_assoc_id;
    386   __u32 srto_initial;
    387   __u32 srto_max;
    388 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    389   __u32 srto_min;
    390 };
    391 struct sctp_assocparams {
    392   sctp_assoc_t sasoc_assoc_id;
    393 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    394   __u16 sasoc_asocmaxrxt;
    395   __u16 sasoc_number_peer_destinations;
    396   __u32 sasoc_peer_rwnd;
    397   __u32 sasoc_local_rwnd;
    398 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    399   __u32 sasoc_cookie_life;
    400 };
    401 struct sctp_setpeerprim {
    402   sctp_assoc_t sspp_assoc_id;
    403 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    404   struct sockaddr_storage sspp_addr;
    405 } __attribute__((packed, aligned(4)));
    406 struct sctp_prim {
    407   sctp_assoc_t ssp_assoc_id;
    408 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    409   struct sockaddr_storage ssp_addr;
    410 } __attribute__((packed, aligned(4)));
    411 #define sctp_setprim sctp_prim
    412 struct sctp_setadaptation {
    413 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    414   __u32 ssb_adaptation_ind;
    415 };
    416 enum sctp_spp_flags {
    417   SPP_HB_ENABLE = 1 << 0,
    418 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    419   SPP_HB_DISABLE = 1 << 1,
    420   SPP_HB = SPP_HB_ENABLE | SPP_HB_DISABLE,
    421   SPP_HB_DEMAND = 1 << 2,
    422   SPP_PMTUD_ENABLE = 1 << 3,
    423 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    424   SPP_PMTUD_DISABLE = 1 << 4,
    425   SPP_PMTUD = SPP_PMTUD_ENABLE | SPP_PMTUD_DISABLE,
    426   SPP_SACKDELAY_ENABLE = 1 << 5,
    427   SPP_SACKDELAY_DISABLE = 1 << 6,
    428 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    429   SPP_SACKDELAY = SPP_SACKDELAY_ENABLE | SPP_SACKDELAY_DISABLE,
    430   SPP_HB_TIME_IS_ZERO = 1 << 7,
    431 };
    432 struct sctp_paddrparams {
    433 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    434   sctp_assoc_t spp_assoc_id;
    435   struct sockaddr_storage spp_address;
    436   __u32 spp_hbinterval;
    437   __u16 spp_pathmaxrxt;
    438 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    439   __u32 spp_pathmtu;
    440   __u32 spp_sackdelay;
    441   __u32 spp_flags;
    442 } __attribute__((packed, aligned(4)));
    443 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    444 struct sctp_authchunk {
    445   __u8 sauth_chunk;
    446 };
    447 enum {
    448 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    449   SCTP_AUTH_HMAC_ID_SHA1 = 1,
    450   SCTP_AUTH_HMAC_ID_SHA256 = 3,
    451 };
    452 struct sctp_hmacalgo {
    453 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    454   __u32 shmac_num_idents;
    455   __u16 shmac_idents[];
    456 };
    457 #define shmac_number_of_idents shmac_num_idents
    458 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    459 struct sctp_authkey {
    460   sctp_assoc_t sca_assoc_id;
    461   __u16 sca_keynumber;
    462   __u16 sca_keylength;
    463 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    464   __u8 sca_key[];
    465 };
    466 struct sctp_authkeyid {
    467   sctp_assoc_t scact_assoc_id;
    468 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    469   __u16 scact_keynumber;
    470 };
    471 struct sctp_sack_info {
    472   sctp_assoc_t sack_assoc_id;
    473 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    474   uint32_t sack_delay;
    475   uint32_t sack_freq;
    476 };
    477 struct sctp_assoc_value {
    478 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    479   sctp_assoc_t assoc_id;
    480   uint32_t assoc_value;
    481 };
    482 struct sctp_paddrinfo {
    483 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    484   sctp_assoc_t spinfo_assoc_id;
    485   struct sockaddr_storage spinfo_address;
    486   __s32 spinfo_state;
    487   __u32 spinfo_cwnd;
    488 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    489   __u32 spinfo_srtt;
    490   __u32 spinfo_rto;
    491   __u32 spinfo_mtu;
    492 } __attribute__((packed, aligned(4)));
    493 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    494 enum sctp_spinfo_state {
    495   SCTP_INACTIVE,
    496   SCTP_PF,
    497   SCTP_ACTIVE,
    498 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    499   SCTP_UNCONFIRMED,
    500   SCTP_UNKNOWN = 0xffff
    501 };
    502 struct sctp_status {
    503 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    504   sctp_assoc_t sstat_assoc_id;
    505   __s32 sstat_state;
    506   __u32 sstat_rwnd;
    507   __u16 sstat_unackdata;
    508 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    509   __u16 sstat_penddata;
    510   __u16 sstat_instrms;
    511   __u16 sstat_outstrms;
    512   __u32 sstat_fragmentation_point;
    513 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    514   struct sctp_paddrinfo sstat_primary;
    515 };
    516 struct sctp_authchunks {
    517   sctp_assoc_t gauth_assoc_id;
    518 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    519   __u32 gauth_number_of_chunks;
    520   uint8_t gauth_chunks[];
    521 };
    522 #define guth_number_of_chunks gauth_number_of_chunks
    523 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    524 enum sctp_sstat_state {
    525   SCTP_EMPTY = 0,
    526   SCTP_CLOSED = 1,
    527   SCTP_COOKIE_WAIT = 2,
    528 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    529   SCTP_COOKIE_ECHOED = 3,
    530   SCTP_ESTABLISHED = 4,
    531   SCTP_SHUTDOWN_PENDING = 5,
    532   SCTP_SHUTDOWN_SENT = 6,
    533 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    534   SCTP_SHUTDOWN_RECEIVED = 7,
    535   SCTP_SHUTDOWN_ACK_SENT = 8,
    536 };
    537 struct sctp_assoc_ids {
    538 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    539   __u32 gaids_number_of_ids;
    540   sctp_assoc_t gaids_assoc_id[];
    541 };
    542 struct sctp_getaddrs_old {
    543 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    544   sctp_assoc_t assoc_id;
    545   int addr_num;
    546   struct sockaddr * addrs;
    547 };
    548 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    549 struct sctp_getaddrs {
    550   sctp_assoc_t assoc_id;
    551   __u32 addr_num;
    552   __u8 addrs[0];
    553 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    554 };
    555 struct sctp_assoc_stats {
    556   sctp_assoc_t sas_assoc_id;
    557   struct sockaddr_storage sas_obs_rto_ipaddr;
    558 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    559   __u64 sas_maxrto;
    560   __u64 sas_isacks;
    561   __u64 sas_osacks;
    562   __u64 sas_opackets;
    563 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    564   __u64 sas_ipackets;
    565   __u64 sas_rtxchunks;
    566   __u64 sas_outofseqtsns;
    567   __u64 sas_idupchunks;
    568 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    569   __u64 sas_gapcnt;
    570   __u64 sas_ouodchunks;
    571   __u64 sas_iuodchunks;
    572   __u64 sas_oodchunks;
    573 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    574   __u64 sas_iodchunks;
    575   __u64 sas_octrlchunks;
    576   __u64 sas_ictrlchunks;
    577 };
    578 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    579 #define SCTP_BINDX_ADD_ADDR 0x01
    580 #define SCTP_BINDX_REM_ADDR 0x02
    581 typedef struct {
    582   sctp_assoc_t associd;
    583 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    584   int sd;
    585 } sctp_peeloff_arg_t;
    586 struct sctp_paddrthlds {
    587   sctp_assoc_t spt_assoc_id;
    588 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    589   struct sockaddr_storage spt_address;
    590   __u16 spt_pathmaxrxt;
    591   __u16 spt_pathpfthld;
    592 };
    593 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    594 struct sctp_prstatus {
    595   sctp_assoc_t sprstat_assoc_id;
    596   __u16 sprstat_sid;
    597   __u16 sprstat_policy;
    598 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    599   __u64 sprstat_abandoned_unsent;
    600   __u64 sprstat_abandoned_sent;
    601 };
    602 struct sctp_default_prinfo {
    603 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    604   sctp_assoc_t pr_assoc_id;
    605   __u32 pr_value;
    606   __u16 pr_policy;
    607 };
    608 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    609 struct sctp_info {
    610   __u32 sctpi_tag;
    611   __u32 sctpi_state;
    612   __u32 sctpi_rwnd;
    613 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    614   __u16 sctpi_unackdata;
    615   __u16 sctpi_penddata;
    616   __u16 sctpi_instrms;
    617   __u16 sctpi_outstrms;
    618 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    619   __u32 sctpi_fragmentation_point;
    620   __u32 sctpi_inqueue;
    621   __u32 sctpi_outqueue;
    622   __u32 sctpi_overall_error;
    623 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    624   __u32 sctpi_max_burst;
    625   __u32 sctpi_maxseg;
    626   __u32 sctpi_peer_rwnd;
    627   __u32 sctpi_peer_tag;
    628 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    629   __u8 sctpi_peer_capable;
    630   __u8 sctpi_peer_sack;
    631   __u16 __reserved1;
    632   __u64 sctpi_isacks;
    633 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    634   __u64 sctpi_osacks;
    635   __u64 sctpi_opackets;
    636   __u64 sctpi_ipackets;
    637   __u64 sctpi_rtxchunks;
    638 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    639   __u64 sctpi_outofseqtsns;
    640   __u64 sctpi_idupchunks;
    641   __u64 sctpi_gapcnt;
    642   __u64 sctpi_ouodchunks;
    643 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    644   __u64 sctpi_iuodchunks;
    645   __u64 sctpi_oodchunks;
    646   __u64 sctpi_iodchunks;
    647   __u64 sctpi_octrlchunks;
    648 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    649   __u64 sctpi_ictrlchunks;
    650   struct sockaddr_storage sctpi_p_address;
    651   __s32 sctpi_p_state;
    652   __u32 sctpi_p_cwnd;
    653 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    654   __u32 sctpi_p_srtt;
    655   __u32 sctpi_p_rto;
    656   __u32 sctpi_p_hbinterval;
    657   __u32 sctpi_p_pathmaxrxt;
    658 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    659   __u32 sctpi_p_sackdelay;
    660   __u32 sctpi_p_sackfreq;
    661   __u32 sctpi_p_ssthresh;
    662   __u32 sctpi_p_partial_bytes_acked;
    663 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    664   __u32 sctpi_p_flight_size;
    665   __u16 sctpi_p_error;
    666   __u16 __reserved2;
    667   __u32 sctpi_s_autoclose;
    668 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    669   __u32 sctpi_s_adaptation_ind;
    670   __u32 sctpi_s_pd_point;
    671   __u8 sctpi_s_nodelay;
    672   __u8 sctpi_s_disable_fragments;
    673 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    674   __u8 sctpi_s_v4mapped;
    675   __u8 sctpi_s_frag_interleave;
    676   __u32 sctpi_s_type;
    677   __u32 __reserved3;
    678 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
    679 };
    680 #endif
    681