.. | .. |
---|
59 | 59 | |
---|
60 | 60 | typedef __s32 sctp_assoc_t; |
---|
61 | 61 | |
---|
| 62 | +#define SCTP_FUTURE_ASSOC 0 |
---|
| 63 | +#define SCTP_CURRENT_ASSOC 1 |
---|
| 64 | +#define SCTP_ALL_ASSOC 2 |
---|
| 65 | + |
---|
62 | 66 | /* The following symbols come from the Sockets API Extensions for |
---|
63 | 67 | * SCTP <draft-ietf-tsvwg-sctpsocket-07.txt>. |
---|
64 | 68 | */ |
---|
.. | .. |
---|
101 | 105 | #define SCTP_DEFAULT_SNDINFO 34 |
---|
102 | 106 | #define SCTP_AUTH_DEACTIVATE_KEY 35 |
---|
103 | 107 | #define SCTP_REUSE_PORT 36 |
---|
| 108 | +#define SCTP_PEER_ADDR_THLDS_V2 37 |
---|
104 | 109 | |
---|
105 | 110 | /* Internal Socket Options. Some of the sctp library functions are |
---|
106 | 111 | * implemented using these socket options. |
---|
.. | .. |
---|
129 | 134 | #define SCTP_STREAM_SCHEDULER_VALUE 124 |
---|
130 | 135 | #define SCTP_INTERLEAVING_SUPPORTED 125 |
---|
131 | 136 | #define SCTP_SENDMSG_CONNECT 126 |
---|
| 137 | +#define SCTP_EVENT 127 |
---|
| 138 | +#define SCTP_ASCONF_SUPPORTED 128 |
---|
| 139 | +#define SCTP_AUTH_SUPPORTED 129 |
---|
| 140 | +#define SCTP_ECN_SUPPORTED 130 |
---|
| 141 | +#define SCTP_EXPOSE_POTENTIALLY_FAILED_STATE 131 |
---|
| 142 | +#define SCTP_EXPOSE_PF_STATE SCTP_EXPOSE_POTENTIALLY_FAILED_STATE |
---|
132 | 143 | |
---|
133 | 144 | /* PR-SCTP policies */ |
---|
134 | 145 | #define SCTP_PR_SCTP_NONE 0x0000 |
---|
.. | .. |
---|
402 | 413 | SCTP_ADDR_ADDED, |
---|
403 | 414 | SCTP_ADDR_MADE_PRIM, |
---|
404 | 415 | SCTP_ADDR_CONFIRMED, |
---|
| 416 | + SCTP_ADDR_POTENTIALLY_FAILED, |
---|
| 417 | +#define SCTP_ADDR_PF SCTP_ADDR_POTENTIALLY_FAILED |
---|
405 | 418 | }; |
---|
406 | 419 | |
---|
407 | 420 | |
---|
.. | .. |
---|
437 | 450 | __u32 ssf_length; |
---|
438 | 451 | __u32 ssf_error; |
---|
439 | 452 | struct sctp_sndrcvinfo ssf_info; |
---|
| 453 | + sctp_assoc_t ssf_assoc_id; |
---|
| 454 | + __u8 ssf_data[0]; |
---|
| 455 | +}; |
---|
| 456 | + |
---|
| 457 | +struct sctp_send_failed_event { |
---|
| 458 | + __u16 ssf_type; |
---|
| 459 | + __u16 ssf_flags; |
---|
| 460 | + __u32 ssf_length; |
---|
| 461 | + __u32 ssf_error; |
---|
| 462 | + struct sctp_sndinfo ssfe_info; |
---|
440 | 463 | sctp_assoc_t ssf_assoc_id; |
---|
441 | 464 | __u8 ssf_data[0]; |
---|
442 | 465 | }; |
---|
.. | .. |
---|
597 | 620 | __u8 sctp_stream_reset_event; |
---|
598 | 621 | __u8 sctp_assoc_reset_event; |
---|
599 | 622 | __u8 sctp_stream_change_event; |
---|
| 623 | + __u8 sctp_send_failure_event_event; |
---|
600 | 624 | }; |
---|
601 | 625 | |
---|
602 | 626 | /* |
---|
.. | .. |
---|
624 | 648 | struct sctp_stream_reset_event sn_strreset_event; |
---|
625 | 649 | struct sctp_assoc_reset_event sn_assocreset_event; |
---|
626 | 650 | struct sctp_stream_change_event sn_strchange_event; |
---|
| 651 | + struct sctp_send_failed_event sn_send_failed_event; |
---|
627 | 652 | }; |
---|
628 | 653 | |
---|
629 | 654 | /* Section 5.3.1 |
---|
.. | .. |
---|
632 | 657 | */ |
---|
633 | 658 | |
---|
634 | 659 | enum sctp_sn_type { |
---|
635 | | - SCTP_SN_TYPE_BASE = (1<<15), |
---|
| 660 | + SCTP_SN_TYPE_BASE = (1<<15), |
---|
| 661 | + SCTP_DATA_IO_EVENT = SCTP_SN_TYPE_BASE, |
---|
| 662 | +#define SCTP_DATA_IO_EVENT SCTP_DATA_IO_EVENT |
---|
636 | 663 | SCTP_ASSOC_CHANGE, |
---|
637 | 664 | #define SCTP_ASSOC_CHANGE SCTP_ASSOC_CHANGE |
---|
638 | 665 | SCTP_PEER_ADDR_CHANGE, |
---|
.. | .. |
---|
657 | 684 | #define SCTP_ASSOC_RESET_EVENT SCTP_ASSOC_RESET_EVENT |
---|
658 | 685 | SCTP_STREAM_CHANGE_EVENT, |
---|
659 | 686 | #define SCTP_STREAM_CHANGE_EVENT SCTP_STREAM_CHANGE_EVENT |
---|
| 687 | + SCTP_SEND_FAILED_EVENT, |
---|
| 688 | +#define SCTP_SEND_FAILED_EVENT SCTP_SEND_FAILED_EVENT |
---|
| 689 | + SCTP_SN_TYPE_MAX = SCTP_SEND_FAILED_EVENT, |
---|
| 690 | +#define SCTP_SN_TYPE_MAX SCTP_SN_TYPE_MAX |
---|
660 | 691 | }; |
---|
661 | 692 | |
---|
662 | 693 | /* Notification error codes used to fill up the error fields in some |
---|
.. | .. |
---|
907 | 938 | enum sctp_spinfo_state { |
---|
908 | 939 | SCTP_INACTIVE, |
---|
909 | 940 | SCTP_PF, |
---|
| 941 | +#define SCTP_POTENTIALLY_FAILED SCTP_PF |
---|
910 | 942 | SCTP_ACTIVE, |
---|
911 | 943 | SCTP_UNCONFIRMED, |
---|
912 | 944 | SCTP_UNKNOWN = 0xffff /* Value used for transport state unknown */ |
---|
.. | .. |
---|
1056 | 1088 | __u16 spt_pathpfthld; |
---|
1057 | 1089 | }; |
---|
1058 | 1090 | |
---|
| 1091 | +/* Use a new structure with spt_pathcpthld for back compatibility */ |
---|
| 1092 | +struct sctp_paddrthlds_v2 { |
---|
| 1093 | + sctp_assoc_t spt_assoc_id; |
---|
| 1094 | + struct sockaddr_storage spt_address; |
---|
| 1095 | + __u16 spt_pathmaxrxt; |
---|
| 1096 | + __u16 spt_pathpfthld; |
---|
| 1097 | + __u16 spt_pathcpthld; |
---|
| 1098 | +}; |
---|
| 1099 | + |
---|
1059 | 1100 | /* |
---|
1060 | 1101 | * Socket Option for Getting the Association/Stream-Specific PR-SCTP Status |
---|
1061 | 1102 | */ |
---|
.. | .. |
---|
1150 | 1191 | uint16_t sas_outstrms; |
---|
1151 | 1192 | }; |
---|
1152 | 1193 | |
---|
| 1194 | +struct sctp_event { |
---|
| 1195 | + sctp_assoc_t se_assoc_id; |
---|
| 1196 | + uint16_t se_type; |
---|
| 1197 | + uint8_t se_on; |
---|
| 1198 | +}; |
---|
| 1199 | + |
---|
1153 | 1200 | /* SCTP Stream schedulers */ |
---|
1154 | 1201 | enum sctp_sched_type { |
---|
1155 | 1202 | SCTP_SS_FCFS, |
---|