Commit a3f865f6 authored by Marcelo Ricardo Leitner's avatar Marcelo Ricardo Leitner Committed by Luis Henriques

sctp: convert sack_needed and sack_generation to bits

commit 38ee8fb6 upstream.

They don't need to be any bigger than that and with this we start a new
bitfield for tracking association runtime stuff, like zero window
situation.
Signed-off-by: default avatarMarcelo Ricardo Leitner <marcelo.leitner@gmail.com>
Acked-by: default avatarVlad Yasevich <vyasevich@gmail.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
[ kamal: 3.19-stable prereq for
  8a0d19c5 sctp: start t5 timer only when peer rwnd is 0 and local state is SHUTDOWN_PENDING ]
Signed-off-by: default avatarKamal Mostafa <kamal@canonical.com>
Signed-off-by: default avatarLuis Henriques <luis.henriques@canonical.com>
parent 26e0e9c2
...@@ -773,10 +773,10 @@ struct sctp_transport { ...@@ -773,10 +773,10 @@ struct sctp_transport {
hb_sent:1, hb_sent:1,
/* Is the Path MTU update pending on this tranport */ /* Is the Path MTU update pending on this tranport */
pmtu_pending:1; pmtu_pending:1,
/* Has this transport moved the ctsn since we last sacked */ /* Has this transport moved the ctsn since we last sacked */
__u32 sack_generation; sack_generation:1;
u32 dst_cookie; u32 dst_cookie;
struct flowi fl; struct flowi fl;
...@@ -1481,19 +1481,19 @@ struct sctp_association { ...@@ -1481,19 +1481,19 @@ struct sctp_association {
prsctp_capable:1, /* Can peer do PR-SCTP? */ prsctp_capable:1, /* Can peer do PR-SCTP? */
auth_capable:1; /* Is peer doing SCTP-AUTH? */ auth_capable:1; /* Is peer doing SCTP-AUTH? */
/* Ack State : This flag indicates if the next received /* sack_needed : This flag indicates if the next received
* : packet is to be responded to with a * : packet is to be responded to with a
* : SACK. This is initializedto 0. When a packet * : SACK. This is initialized to 0. When a packet
* : is received it is incremented. If this value * : is received sack_cnt is incremented. If this value
* : reaches 2 or more, a SACK is sent and the * : reaches 2 or more, a SACK is sent and the
* : value is reset to 0. Note: This is used only * : value is reset to 0. Note: This is used only
* : when no DATA chunks are received out of * : when no DATA chunks are received out of
* : order. When DATA chunks are out of order, * : order. When DATA chunks are out of order,
* : SACK's are not delayed (see Section 6). * : SACK's are not delayed (see Section 6).
*/ */
__u8 sack_needed; /* Do we need to sack the peer? */ __u8 sack_needed:1, /* Do we need to sack the peer? */
sack_generation:1;
__u32 sack_cnt; __u32 sack_cnt;
__u32 sack_generation;
__u32 adaptation_ind; /* Adaptation Code point. */ __u32 adaptation_ind; /* Adaptation Code point. */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment