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