hc
2023-12-11 1f93a7dfd1f8d5ff7a5c53246c7534fe2332d6f4
kernel/include/uapi/linux/sctp.h
....@@ -59,6 +59,10 @@
5959
6060 typedef __s32 sctp_assoc_t;
6161
62
+#define SCTP_FUTURE_ASSOC 0
63
+#define SCTP_CURRENT_ASSOC 1
64
+#define SCTP_ALL_ASSOC 2
65
+
6266 /* The following symbols come from the Sockets API Extensions for
6367 * SCTP <draft-ietf-tsvwg-sctpsocket-07.txt>.
6468 */
....@@ -101,6 +105,7 @@
101105 #define SCTP_DEFAULT_SNDINFO 34
102106 #define SCTP_AUTH_DEACTIVATE_KEY 35
103107 #define SCTP_REUSE_PORT 36
108
+#define SCTP_PEER_ADDR_THLDS_V2 37
104109
105110 /* Internal Socket Options. Some of the sctp library functions are
106111 * implemented using these socket options.
....@@ -129,6 +134,12 @@
129134 #define SCTP_STREAM_SCHEDULER_VALUE 124
130135 #define SCTP_INTERLEAVING_SUPPORTED 125
131136 #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
132143
133144 /* PR-SCTP policies */
134145 #define SCTP_PR_SCTP_NONE 0x0000
....@@ -402,6 +413,8 @@
402413 SCTP_ADDR_ADDED,
403414 SCTP_ADDR_MADE_PRIM,
404415 SCTP_ADDR_CONFIRMED,
416
+ SCTP_ADDR_POTENTIALLY_FAILED,
417
+#define SCTP_ADDR_PF SCTP_ADDR_POTENTIALLY_FAILED
405418 };
406419
407420
....@@ -437,6 +450,16 @@
437450 __u32 ssf_length;
438451 __u32 ssf_error;
439452 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;
440463 sctp_assoc_t ssf_assoc_id;
441464 __u8 ssf_data[0];
442465 };
....@@ -597,6 +620,7 @@
597620 __u8 sctp_stream_reset_event;
598621 __u8 sctp_assoc_reset_event;
599622 __u8 sctp_stream_change_event;
623
+ __u8 sctp_send_failure_event_event;
600624 };
601625
602626 /*
....@@ -624,6 +648,7 @@
624648 struct sctp_stream_reset_event sn_strreset_event;
625649 struct sctp_assoc_reset_event sn_assocreset_event;
626650 struct sctp_stream_change_event sn_strchange_event;
651
+ struct sctp_send_failed_event sn_send_failed_event;
627652 };
628653
629654 /* Section 5.3.1
....@@ -632,7 +657,9 @@
632657 */
633658
634659 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
636663 SCTP_ASSOC_CHANGE,
637664 #define SCTP_ASSOC_CHANGE SCTP_ASSOC_CHANGE
638665 SCTP_PEER_ADDR_CHANGE,
....@@ -657,6 +684,10 @@
657684 #define SCTP_ASSOC_RESET_EVENT SCTP_ASSOC_RESET_EVENT
658685 SCTP_STREAM_CHANGE_EVENT,
659686 #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
660691 };
661692
662693 /* Notification error codes used to fill up the error fields in some
....@@ -907,6 +938,7 @@
907938 enum sctp_spinfo_state {
908939 SCTP_INACTIVE,
909940 SCTP_PF,
941
+#define SCTP_POTENTIALLY_FAILED SCTP_PF
910942 SCTP_ACTIVE,
911943 SCTP_UNCONFIRMED,
912944 SCTP_UNKNOWN = 0xffff /* Value used for transport state unknown */
....@@ -1056,6 +1088,15 @@
10561088 __u16 spt_pathpfthld;
10571089 };
10581090
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
+
10591100 /*
10601101 * Socket Option for Getting the Association/Stream-Specific PR-SCTP Status
10611102 */
....@@ -1150,6 +1191,12 @@
11501191 uint16_t sas_outstrms;
11511192 };
11521193
1194
+struct sctp_event {
1195
+ sctp_assoc_t se_assoc_id;
1196
+ uint16_t se_type;
1197
+ uint8_t se_on;
1198
+};
1199
+
11531200 /* SCTP Stream schedulers */
11541201 enum sctp_sched_type {
11551202 SCTP_SS_FCFS,