1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53#ifndef _UAPI_SCTP_H
54#define _UAPI_SCTP_H
55
56#include <linux/types.h>
57#include <linux/socket.h>
58
59typedef __s32 sctp_assoc_t;
60
61
62
63
64#define SCTP_RTOINFO 0
65#define SCTP_ASSOCINFO 1
66#define SCTP_INITMSG 2
67#define SCTP_NODELAY 3
68#define SCTP_AUTOCLOSE 4
69#define SCTP_SET_PEER_PRIMARY_ADDR 5
70#define SCTP_PRIMARY_ADDR 6
71#define SCTP_ADAPTATION_LAYER 7
72#define SCTP_DISABLE_FRAGMENTS 8
73#define SCTP_PEER_ADDR_PARAMS 9
74#define SCTP_DEFAULT_SEND_PARAM 10
75#define SCTP_EVENTS 11
76#define SCTP_I_WANT_MAPPED_V4_ADDR 12
77#define SCTP_MAXSEG 13
78#define SCTP_STATUS 14
79#define SCTP_GET_PEER_ADDR_INFO 15
80#define SCTP_DELAYED_ACK_TIME 16
81#define SCTP_DELAYED_ACK SCTP_DELAYED_ACK_TIME
82#define SCTP_DELAYED_SACK SCTP_DELAYED_ACK_TIME
83#define SCTP_CONTEXT 17
84#define SCTP_FRAGMENT_INTERLEAVE 18
85#define SCTP_PARTIAL_DELIVERY_POINT 19
86#define SCTP_MAX_BURST 20
87#define SCTP_AUTH_CHUNK 21
88#define SCTP_HMAC_IDENT 22
89#define SCTP_AUTH_KEY 23
90#define SCTP_AUTH_ACTIVE_KEY 24
91#define SCTP_AUTH_DELETE_KEY 25
92#define SCTP_PEER_AUTH_CHUNKS 26
93#define SCTP_LOCAL_AUTH_CHUNKS 27
94#define SCTP_GET_ASSOC_NUMBER 28
95#define SCTP_GET_ASSOC_ID_LIST 29
96#define SCTP_AUTO_ASCONF 30
97#define SCTP_PEER_ADDR_THLDS 31
98#define SCTP_RECVRCVINFO 32
99#define SCTP_RECVNXTINFO 33
100#define SCTP_DEFAULT_SNDINFO 34
101
102
103
104
105#define SCTP_SOCKOPT_BINDX_ADD 100
106#define SCTP_SOCKOPT_BINDX_REM 101
107#define SCTP_SOCKOPT_PEELOFF 102
108
109#define SCTP_SOCKOPT_CONNECTX_OLD 107
110#define SCTP_GET_PEER_ADDRS 108
111#define SCTP_GET_LOCAL_ADDRS 109
112#define SCTP_SOCKOPT_CONNECTX 110
113#define SCTP_SOCKOPT_CONNECTX3 111
114#define SCTP_GET_ASSOC_STATS 112
115#define SCTP_PR_SUPPORTED 113
116#define SCTP_DEFAULT_PRINFO 114
117#define SCTP_PR_ASSOC_STATUS 115
118
119
120#define SCTP_PR_SCTP_NONE 0x0000
121#define SCTP_PR_SCTP_TTL 0x0010
122#define SCTP_PR_SCTP_RTX 0x0020
123#define SCTP_PR_SCTP_PRIO 0x0030
124#define SCTP_PR_SCTP_MAX SCTP_PR_SCTP_PRIO
125#define SCTP_PR_SCTP_MASK 0x0030
126
127#define __SCTP_PR_INDEX(x) ((x >> 4) - 1)
128#define SCTP_PR_INDEX(x) __SCTP_PR_INDEX(SCTP_PR_SCTP_ ## x)
129
130#define SCTP_PR_POLICY(x) ((x) & SCTP_PR_SCTP_MASK)
131#define SCTP_PR_SET_POLICY(flags, x) \
132 do { \
133 flags &= ~SCTP_PR_SCTP_MASK; \
134 flags |= x; \
135 } while (0)
136
137#define SCTP_PR_TTL_ENABLED(x) (SCTP_PR_POLICY(x) == SCTP_PR_SCTP_TTL)
138#define SCTP_PR_RTX_ENABLED(x) (SCTP_PR_POLICY(x) == SCTP_PR_SCTP_RTX)
139#define SCTP_PR_PRIO_ENABLED(x) (SCTP_PR_POLICY(x) == SCTP_PR_SCTP_PRIO)
140
141
142
143enum sctp_msg_flags {
144 MSG_NOTIFICATION = 0x8000,
145#define MSG_NOTIFICATION MSG_NOTIFICATION
146};
147
148
149
150
151
152
153
154
155
156
157
158
159struct sctp_initmsg {
160 __u16 sinit_num_ostreams;
161 __u16 sinit_max_instreams;
162 __u16 sinit_max_attempts;
163 __u16 sinit_max_init_timeo;
164};
165
166
167
168
169
170
171
172
173
174
175
176struct sctp_sndrcvinfo {
177 __u16 sinfo_stream;
178 __u16 sinfo_ssn;
179 __u16 sinfo_flags;
180 __u32 sinfo_ppid;
181 __u32 sinfo_context;
182 __u32 sinfo_timetolive;
183 __u32 sinfo_tsn;
184 __u32 sinfo_cumtsn;
185 sctp_assoc_t sinfo_assoc_id;
186};
187
188
189
190
191
192
193
194
195
196struct sctp_sndinfo {
197 __u16 snd_sid;
198 __u16 snd_flags;
199 __u32 snd_ppid;
200 __u32 snd_context;
201 sctp_assoc_t snd_assoc_id;
202};
203
204
205
206
207
208
209
210
211
212
213struct sctp_rcvinfo {
214 __u16 rcv_sid;
215 __u16 rcv_ssn;
216 __u16 rcv_flags;
217 __u32 rcv_ppid;
218 __u32 rcv_tsn;
219 __u32 rcv_cumtsn;
220 __u32 rcv_context;
221 sctp_assoc_t rcv_assoc_id;
222};
223
224
225
226
227
228
229
230
231
232
233
234
235struct sctp_nxtinfo {
236 __u16 nxt_sid;
237 __u16 nxt_flags;
238 __u32 nxt_ppid;
239 __u32 nxt_length;
240 sctp_assoc_t nxt_assoc_id;
241};
242
243
244
245
246
247
248
249enum sctp_sinfo_flags {
250 SCTP_UNORDERED = (1 << 0),
251 SCTP_ADDR_OVER = (1 << 1),
252 SCTP_ABORT = (1 << 2),
253 SCTP_SACK_IMMEDIATELY = (1 << 3),
254 SCTP_NOTIFICATION = MSG_NOTIFICATION,
255 SCTP_EOF = MSG_FIN,
256};
257
258typedef union {
259 __u8 raw;
260 struct sctp_initmsg init;
261 struct sctp_sndrcvinfo sndrcv;
262} sctp_cmsg_data_t;
263
264
265typedef enum sctp_cmsg_type {
266 SCTP_INIT,
267#define SCTP_INIT SCTP_INIT
268 SCTP_SNDRCV,
269#define SCTP_SNDRCV SCTP_SNDRCV
270 SCTP_SNDINFO,
271#define SCTP_SNDINFO SCTP_SNDINFO
272 SCTP_RCVINFO,
273#define SCTP_RCVINFO SCTP_RCVINFO
274 SCTP_NXTINFO,
275#define SCTP_NXTINFO SCTP_NXTINFO
276} sctp_cmsg_t;
277
278
279
280
281
282
283
284
285
286
287struct sctp_assoc_change {
288 __u16 sac_type;
289 __u16 sac_flags;
290 __u32 sac_length;
291 __u16 sac_state;
292 __u16 sac_error;
293 __u16 sac_outbound_streams;
294 __u16 sac_inbound_streams;
295 sctp_assoc_t sac_assoc_id;
296 __u8 sac_info[0];
297};
298
299
300
301
302
303
304
305
306
307
308enum sctp_sac_state {
309 SCTP_COMM_UP,
310 SCTP_COMM_LOST,
311 SCTP_RESTART,
312 SCTP_SHUTDOWN_COMP,
313 SCTP_CANT_STR_ASSOC,
314};
315
316
317
318
319
320
321
322
323struct sctp_paddr_change {
324 __u16 spc_type;
325 __u16 spc_flags;
326 __u32 spc_length;
327 struct sockaddr_storage spc_aaddr;
328 int spc_state;
329 int spc_error;
330 sctp_assoc_t spc_assoc_id;
331} __attribute__((packed, aligned(4)));
332
333
334
335
336
337
338
339enum sctp_spc_state {
340 SCTP_ADDR_AVAILABLE,
341 SCTP_ADDR_UNREACHABLE,
342 SCTP_ADDR_REMOVED,
343 SCTP_ADDR_ADDED,
344 SCTP_ADDR_MADE_PRIM,
345 SCTP_ADDR_CONFIRMED,
346};
347
348
349
350
351
352
353
354
355
356
357
358
359struct sctp_remote_error {
360 __u16 sre_type;
361 __u16 sre_flags;
362 __u32 sre_length;
363 __u16 sre_error;
364 sctp_assoc_t sre_assoc_id;
365 __u8 sre_data[0];
366};
367
368
369
370
371
372
373
374
375struct sctp_send_failed {
376 __u16 ssf_type;
377 __u16 ssf_flags;
378 __u32 ssf_length;
379 __u32 ssf_error;
380 struct sctp_sndrcvinfo ssf_info;
381 sctp_assoc_t ssf_assoc_id;
382 __u8 ssf_data[0];
383};
384
385
386
387
388
389
390
391
392
393
394
395
396
397enum sctp_ssf_flags {
398 SCTP_DATA_UNSENT,
399 SCTP_DATA_SENT,
400};
401
402
403
404
405
406
407
408struct sctp_shutdown_event {
409 __u16 sse_type;
410 __u16 sse_flags;
411 __u32 sse_length;
412 sctp_assoc_t sse_assoc_id;
413};
414
415
416
417
418
419
420
421
422struct sctp_adaptation_event {
423 __u16 sai_type;
424 __u16 sai_flags;
425 __u32 sai_length;
426 __u32 sai_adaptation_ind;
427 sctp_assoc_t sai_assoc_id;
428};
429
430
431
432
433
434
435
436
437struct sctp_pdapi_event {
438 __u16 pdapi_type;
439 __u16 pdapi_flags;
440 __u32 pdapi_length;
441 __u32 pdapi_indication;
442 sctp_assoc_t pdapi_assoc_id;
443};
444
445enum { SCTP_PARTIAL_DELIVERY_ABORTED=0, };
446
447
448
449
450
451
452
453struct sctp_authkey_event {
454 __u16 auth_type;
455 __u16 auth_flags;
456 __u32 auth_length;
457 __u16 auth_keynumber;
458 __u16 auth_altkeynumber;
459 __u32 auth_indication;
460 sctp_assoc_t auth_assoc_id;
461};
462
463enum { SCTP_AUTH_NEWKEY = 0, };
464
465
466
467
468
469
470
471
472
473struct sctp_sender_dry_event {
474 __u16 sender_dry_type;
475 __u16 sender_dry_flags;
476 __u32 sender_dry_length;
477 sctp_assoc_t sender_dry_assoc_id;
478};
479
480
481
482
483
484struct sctp_event_subscribe {
485 __u8 sctp_data_io_event;
486 __u8 sctp_association_event;
487 __u8 sctp_address_event;
488 __u8 sctp_send_failure_event;
489 __u8 sctp_peer_error_event;
490 __u8 sctp_shutdown_event;
491 __u8 sctp_partial_delivery_event;
492 __u8 sctp_adaptation_layer_event;
493 __u8 sctp_authentication_event;
494 __u8 sctp_sender_dry_event;
495};
496
497
498
499
500
501
502
503
504union sctp_notification {
505 struct {
506 __u16 sn_type;
507 __u16 sn_flags;
508 __u32 sn_length;
509 } sn_header;
510 struct sctp_assoc_change sn_assoc_change;
511 struct sctp_paddr_change sn_paddr_change;
512 struct sctp_remote_error sn_remote_error;
513 struct sctp_send_failed sn_send_failed;
514 struct sctp_shutdown_event sn_shutdown_event;
515 struct sctp_adaptation_event sn_adaptation_event;
516 struct sctp_pdapi_event sn_pdapi_event;
517 struct sctp_authkey_event sn_authkey_event;
518 struct sctp_sender_dry_event sn_sender_dry_event;
519};
520
521
522
523
524
525
526enum sctp_sn_type {
527 SCTP_SN_TYPE_BASE = (1<<15),
528 SCTP_ASSOC_CHANGE,
529#define SCTP_ASSOC_CHANGE SCTP_ASSOC_CHANGE
530 SCTP_PEER_ADDR_CHANGE,
531#define SCTP_PEER_ADDR_CHANGE SCTP_PEER_ADDR_CHANGE
532 SCTP_SEND_FAILED,
533#define SCTP_SEND_FAILED SCTP_SEND_FAILED
534 SCTP_REMOTE_ERROR,
535#define SCTP_REMOTE_ERROR SCTP_REMOTE_ERROR
536 SCTP_SHUTDOWN_EVENT,
537#define SCTP_SHUTDOWN_EVENT SCTP_SHUTDOWN_EVENT
538 SCTP_PARTIAL_DELIVERY_EVENT,
539#define SCTP_PARTIAL_DELIVERY_EVENT SCTP_PARTIAL_DELIVERY_EVENT
540 SCTP_ADAPTATION_INDICATION,
541#define SCTP_ADAPTATION_INDICATION SCTP_ADAPTATION_INDICATION
542 SCTP_AUTHENTICATION_EVENT,
543#define SCTP_AUTHENTICATION_INDICATION SCTP_AUTHENTICATION_EVENT
544 SCTP_SENDER_DRY_EVENT,
545#define SCTP_SENDER_DRY_EVENT SCTP_SENDER_DRY_EVENT
546};
547
548
549
550
551
552
553
554
555typedef enum sctp_sn_error {
556 SCTP_FAILED_THRESHOLD,
557 SCTP_RECEIVED_SACK,
558 SCTP_HEARTBEAT_SUCCESS,
559 SCTP_RESPONSE_TO_USER_REQ,
560 SCTP_INTERNAL_ERROR,
561 SCTP_SHUTDOWN_GUARD_EXPIRES,
562 SCTP_PEER_FAULTY,
563} sctp_sn_error_t;
564
565
566
567
568
569
570
571
572struct sctp_rtoinfo {
573 sctp_assoc_t srto_assoc_id;
574 __u32 srto_initial;
575 __u32 srto_max;
576 __u32 srto_min;
577};
578
579
580
581
582
583
584
585struct sctp_assocparams {
586 sctp_assoc_t sasoc_assoc_id;
587 __u16 sasoc_asocmaxrxt;
588 __u16 sasoc_number_peer_destinations;
589 __u32 sasoc_peer_rwnd;
590 __u32 sasoc_local_rwnd;
591 __u32 sasoc_cookie_life;
592};
593
594
595
596
597
598
599
600
601
602struct sctp_setpeerprim {
603 sctp_assoc_t sspp_assoc_id;
604 struct sockaddr_storage sspp_addr;
605} __attribute__((packed, aligned(4)));
606
607
608
609
610
611
612
613
614
615struct sctp_prim {
616 sctp_assoc_t ssp_assoc_id;
617 struct sockaddr_storage ssp_addr;
618} __attribute__((packed, aligned(4)));
619
620
621#define sctp_setprim sctp_prim
622
623
624
625
626
627
628
629struct sctp_setadaptation {
630 __u32 ssb_adaptation_ind;
631};
632
633
634
635
636
637
638
639
640
641
642
643enum sctp_spp_flags {
644 SPP_HB_ENABLE = 1<<0,
645 SPP_HB_DISABLE = 1<<1,
646 SPP_HB = SPP_HB_ENABLE | SPP_HB_DISABLE,
647 SPP_HB_DEMAND = 1<<2,
648 SPP_PMTUD_ENABLE = 1<<3,
649 SPP_PMTUD_DISABLE = 1<<4,
650 SPP_PMTUD = SPP_PMTUD_ENABLE | SPP_PMTUD_DISABLE,
651 SPP_SACKDELAY_ENABLE = 1<<5,
652 SPP_SACKDELAY_DISABLE = 1<<6,
653 SPP_SACKDELAY = SPP_SACKDELAY_ENABLE | SPP_SACKDELAY_DISABLE,
654 SPP_HB_TIME_IS_ZERO = 1<<7,
655};
656
657struct sctp_paddrparams {
658 sctp_assoc_t spp_assoc_id;
659 struct sockaddr_storage spp_address;
660 __u32 spp_hbinterval;
661 __u16 spp_pathmaxrxt;
662 __u32 spp_pathmtu;
663 __u32 spp_sackdelay;
664 __u32 spp_flags;
665} __attribute__((packed, aligned(4)));
666
667
668
669
670
671
672
673
674struct sctp_authchunk {
675 __u8 sauth_chunk;
676};
677
678
679
680
681
682
683
684#ifndef __KERNEL__
685
686
687
688enum {
689 SCTP_AUTH_HMAC_ID_SHA1 = 1,
690 SCTP_AUTH_HMAC_ID_SHA256 = 3,
691};
692#endif
693
694struct sctp_hmacalgo {
695 __u32 shmac_num_idents;
696 __u16 shmac_idents[];
697};
698
699
700
701
702#define shmac_number_of_idents shmac_num_idents
703
704
705
706
707
708
709
710struct sctp_authkey {
711 sctp_assoc_t sca_assoc_id;
712 __u16 sca_keynumber;
713 __u16 sca_keylength;
714 __u8 sca_key[];
715};
716
717
718
719
720
721
722
723
724struct sctp_authkeyid {
725 sctp_assoc_t scact_assoc_id;
726 __u16 scact_keynumber;
727};
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744struct sctp_sack_info {
745 sctp_assoc_t sack_assoc_id;
746 uint32_t sack_delay;
747 uint32_t sack_freq;
748};
749
750struct sctp_assoc_value {
751 sctp_assoc_t assoc_id;
752 uint32_t assoc_value;
753};
754
755
756
757
758
759
760
761
762
763
764struct sctp_paddrinfo {
765 sctp_assoc_t spinfo_assoc_id;
766 struct sockaddr_storage spinfo_address;
767 __s32 spinfo_state;
768 __u32 spinfo_cwnd;
769 __u32 spinfo_srtt;
770 __u32 spinfo_rto;
771 __u32 spinfo_mtu;
772} __attribute__((packed, aligned(4)));
773
774
775
776
777
778
779
780
781
782
783enum sctp_spinfo_state {
784 SCTP_INACTIVE,
785 SCTP_PF,
786 SCTP_ACTIVE,
787 SCTP_UNCONFIRMED,
788 SCTP_UNKNOWN = 0xffff
789};
790
791
792
793
794
795
796
797
798
799
800struct sctp_status {
801 sctp_assoc_t sstat_assoc_id;
802 __s32 sstat_state;
803 __u32 sstat_rwnd;
804 __u16 sstat_unackdata;
805 __u16 sstat_penddata;
806 __u16 sstat_instrms;
807 __u16 sstat_outstrms;
808 __u32 sstat_fragmentation_point;
809 struct sctp_paddrinfo sstat_primary;
810};
811
812
813
814
815
816
817
818
819struct sctp_authchunks {
820 sctp_assoc_t gauth_assoc_id;
821 __u32 gauth_number_of_chunks;
822 uint8_t gauth_chunks[];
823};
824
825
826
827
828#define guth_number_of_chunks gauth_number_of_chunks
829
830
831enum sctp_sstat_state {
832 SCTP_EMPTY = 0,
833 SCTP_CLOSED = 1,
834 SCTP_COOKIE_WAIT = 2,
835 SCTP_COOKIE_ECHOED = 3,
836 SCTP_ESTABLISHED = 4,
837 SCTP_SHUTDOWN_PENDING = 5,
838 SCTP_SHUTDOWN_SENT = 6,
839 SCTP_SHUTDOWN_RECEIVED = 7,
840 SCTP_SHUTDOWN_ACK_SENT = 8,
841};
842
843
844
845
846
847
848
849
850struct sctp_assoc_ids {
851 __u32 gaids_number_of_ids;
852 sctp_assoc_t gaids_assoc_id[];
853};
854
855
856
857
858
859
860
861struct sctp_getaddrs_old {
862 sctp_assoc_t assoc_id;
863 int addr_num;
864#ifdef __KERNEL__
865 struct sockaddr __user *addrs;
866#else
867 struct sockaddr *addrs;
868#endif
869};
870
871struct sctp_getaddrs {
872 sctp_assoc_t assoc_id;
873 __u32 addr_num;
874 __u8 addrs[0];
875};
876
877
878
879
880
881
882struct sctp_assoc_stats {
883 sctp_assoc_t sas_assoc_id;
884
885 struct sockaddr_storage sas_obs_rto_ipaddr;
886 __u64 sas_maxrto;
887 __u64 sas_isacks;
888 __u64 sas_osacks;
889 __u64 sas_opackets;
890 __u64 sas_ipackets;
891 __u64 sas_rtxchunks;
892 __u64 sas_outofseqtsns;
893 __u64 sas_idupchunks;
894 __u64 sas_gapcnt;
895 __u64 sas_ouodchunks;
896 __u64 sas_iuodchunks;
897 __u64 sas_oodchunks;
898 __u64 sas_iodchunks;
899 __u64 sas_octrlchunks;
900 __u64 sas_ictrlchunks;
901};
902
903
904
905
906
907
908
909#define SCTP_BINDX_ADD_ADDR 0x01
910#define SCTP_BINDX_REM_ADDR 0x02
911
912
913
914
915typedef struct {
916 sctp_assoc_t associd;
917 int sd;
918} sctp_peeloff_arg_t;
919
920
921
922
923struct sctp_paddrthlds {
924 sctp_assoc_t spt_assoc_id;
925 struct sockaddr_storage spt_address;
926 __u16 spt_pathmaxrxt;
927 __u16 spt_pathpfthld;
928};
929
930
931
932
933struct sctp_prstatus {
934 sctp_assoc_t sprstat_assoc_id;
935 __u16 sprstat_sid;
936 __u16 sprstat_policy;
937 __u64 sprstat_abandoned_unsent;
938 __u64 sprstat_abandoned_sent;
939};
940
941struct sctp_default_prinfo {
942 sctp_assoc_t pr_assoc_id;
943 __u32 pr_value;
944 __u16 pr_policy;
945};
946
947struct sctp_info {
948 __u32 sctpi_tag;
949 __u32 sctpi_state;
950 __u32 sctpi_rwnd;
951 __u16 sctpi_unackdata;
952 __u16 sctpi_penddata;
953 __u16 sctpi_instrms;
954 __u16 sctpi_outstrms;
955 __u32 sctpi_fragmentation_point;
956 __u32 sctpi_inqueue;
957 __u32 sctpi_outqueue;
958 __u32 sctpi_overall_error;
959 __u32 sctpi_max_burst;
960 __u32 sctpi_maxseg;
961 __u32 sctpi_peer_rwnd;
962 __u32 sctpi_peer_tag;
963 __u8 sctpi_peer_capable;
964 __u8 sctpi_peer_sack;
965 __u16 __reserved1;
966
967
968 __u64 sctpi_isacks;
969 __u64 sctpi_osacks;
970 __u64 sctpi_opackets;
971 __u64 sctpi_ipackets;
972 __u64 sctpi_rtxchunks;
973 __u64 sctpi_outofseqtsns;
974 __u64 sctpi_idupchunks;
975 __u64 sctpi_gapcnt;
976 __u64 sctpi_ouodchunks;
977 __u64 sctpi_iuodchunks;
978 __u64 sctpi_oodchunks;
979 __u64 sctpi_iodchunks;
980 __u64 sctpi_octrlchunks;
981 __u64 sctpi_ictrlchunks;
982
983
984 struct sockaddr_storage sctpi_p_address;
985 __s32 sctpi_p_state;
986 __u32 sctpi_p_cwnd;
987 __u32 sctpi_p_srtt;
988 __u32 sctpi_p_rto;
989 __u32 sctpi_p_hbinterval;
990 __u32 sctpi_p_pathmaxrxt;
991 __u32 sctpi_p_sackdelay;
992 __u32 sctpi_p_sackfreq;
993 __u32 sctpi_p_ssthresh;
994 __u32 sctpi_p_partial_bytes_acked;
995 __u32 sctpi_p_flight_size;
996 __u16 sctpi_p_error;
997 __u16 __reserved2;
998
999
1000 __u32 sctpi_s_autoclose;
1001 __u32 sctpi_s_adaptation_ind;
1002 __u32 sctpi_s_pd_point;
1003 __u8 sctpi_s_nodelay;
1004 __u8 sctpi_s_disable_fragments;
1005 __u8 sctpi_s_v4mapped;
1006 __u8 sctpi_s_frag_interleave;
1007 __u32 sctpi_s_type;
1008 __u32 __reserved3;
1009};
1010
1011#endif
1012