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