summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVlad Yasevich2007-01-16 04:20:21 +0100
committerDavid S. Miller2007-01-24 05:25:47 +0100
commit732ba35e759112be5cecd79d4351084edf88dba7 (patch)
treec47f981ee6fd8f05f8802d3321cf8c390777227d
parent[SCTP]: Correctly handle unexpected INIT-ACK chunk. (diff)
downloadkernel-qcow2-linux-732ba35e759112be5cecd79d4351084edf88dba7.tar.gz
kernel-qcow2-linux-732ba35e759112be5cecd79d4351084edf88dba7.tar.xz
kernel-qcow2-linux-732ba35e759112be5cecd79d4351084edf88dba7.zip
[SCTP]: Fix SACK sequence during shutdown
Currently, when association enters SHUTDOWN state,the implementation will SACK any DATA first and then transmit the SHUTDOWN chunk. This is against the order required by 2960bis spec. SHUTDOWN must always be first, followed by SACK. This change forces this order and also enables bundling. Signed-off-by: Vlad Yasevich <vladislav.yasevich@hp.com> Signed-off-by: Sridhar Samudrala <sri@us.ibm.com> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--net/sctp/sm_sideeffect.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/net/sctp/sm_sideeffect.c b/net/sctp/sm_sideeffect.c
index 7bbc6156e455..8bd30976cdee 100644
--- a/net/sctp/sm_sideeffect.c
+++ b/net/sctp/sm_sideeffect.c
@@ -217,7 +217,7 @@ static int sctp_gen_sack(struct sctp_association *asoc, int force,
asoc->peer.sack_needed = 0;
- error = sctp_outq_tail(&asoc->outqueue, sack);
+ sctp_add_cmd_sf(commands, SCTP_CMD_REPLY, SCTP_CHUNK(sack));
/* Stop the SACK timer. */
sctp_add_cmd_sf(commands, SCTP_CMD_TIMER_STOP,