diff options
Diffstat (limited to 'include/net/sctp/structs.h')
-rw-r--r-- | include/net/sctp/structs.h | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/include/net/sctp/structs.h b/include/net/sctp/structs.h index c48f7999fe9b..3c22a30fd71b 100644 --- a/include/net/sctp/structs.h +++ b/include/net/sctp/structs.h | |||
@@ -84,7 +84,6 @@ struct sctp_ulpq; | |||
84 | struct sctp_ep_common; | 84 | struct sctp_ep_common; |
85 | struct crypto_shash; | 85 | struct crypto_shash; |
86 | struct sctp_stream; | 86 | struct sctp_stream; |
87 | struct sctp_stream_out; | ||
88 | 87 | ||
89 | 88 | ||
90 | #include <net/sctp/tsnmap.h> | 89 | #include <net/sctp/tsnmap.h> |
@@ -531,8 +530,12 @@ struct sctp_chunk { | |||
531 | /* How many times this chunk have been sent, for prsctp RTX policy */ | 530 | /* How many times this chunk have been sent, for prsctp RTX policy */ |
532 | int sent_count; | 531 | int sent_count; |
533 | 532 | ||
534 | /* This is our link to the per-transport transmitted list. */ | 533 | union { |
535 | struct list_head transmitted_list; | 534 | /* This is our link to the per-transport transmitted list. */ |
535 | struct list_head transmitted_list; | ||
536 | /* List in specific stream outq */ | ||
537 | struct list_head stream_list; | ||
538 | }; | ||
536 | 539 | ||
537 | /* This field is used by chunks that hold fragmented data. | 540 | /* This field is used by chunks that hold fragmented data. |
538 | * For the first fragment this is the list that holds the rest of | 541 | * For the first fragment this is the list that holds the rest of |
@@ -1019,6 +1022,9 @@ struct sctp_outq { | |||
1019 | /* Data pending that has never been transmitted. */ | 1022 | /* Data pending that has never been transmitted. */ |
1020 | struct list_head out_chunk_list; | 1023 | struct list_head out_chunk_list; |
1021 | 1024 | ||
1025 | /* Stream scheduler being used */ | ||
1026 | struct sctp_sched_ops *sched; | ||
1027 | |||
1022 | unsigned int out_qlen; /* Total length of queued data chunks. */ | 1028 | unsigned int out_qlen; /* Total length of queued data chunks. */ |
1023 | 1029 | ||
1024 | /* Error of send failed, may used in SCTP_SEND_FAILED event. */ | 1030 | /* Error of send failed, may used in SCTP_SEND_FAILED event. */ |
@@ -1325,6 +1331,7 @@ struct sctp_inithdr_host { | |||
1325 | struct sctp_stream_out_ext { | 1331 | struct sctp_stream_out_ext { |
1326 | __u64 abandoned_unsent[SCTP_PR_INDEX(MAX) + 1]; | 1332 | __u64 abandoned_unsent[SCTP_PR_INDEX(MAX) + 1]; |
1327 | __u64 abandoned_sent[SCTP_PR_INDEX(MAX) + 1]; | 1333 | __u64 abandoned_sent[SCTP_PR_INDEX(MAX) + 1]; |
1334 | struct list_head outq; /* chunks enqueued by this stream */ | ||
1328 | }; | 1335 | }; |
1329 | 1336 | ||
1330 | struct sctp_stream_out { | 1337 | struct sctp_stream_out { |
@@ -1342,6 +1349,8 @@ struct sctp_stream { | |||
1342 | struct sctp_stream_in *in; | 1349 | struct sctp_stream_in *in; |
1343 | __u16 outcnt; | 1350 | __u16 outcnt; |
1344 | __u16 incnt; | 1351 | __u16 incnt; |
1352 | /* Current stream being sent, if any */ | ||
1353 | struct sctp_stream_out *out_curr; | ||
1345 | }; | 1354 | }; |
1346 | 1355 | ||
1347 | #define SCTP_STREAM_CLOSED 0x00 | 1356 | #define SCTP_STREAM_CLOSED 0x00 |