summaryrefslogtreecommitdiffstats
path: root/net/sctp/sm_make_chunk.c
diff options
context:
space:
mode:
authorMichio Honda <micchie@sfc.wide.ad.jp>2011-06-17 04:03:23 +0200
committerDavid S. Miller <davem@davemloft.net>2011-11-08 21:11:29 +0100
commitddc4bbee6ef1ed20314be3888dd39ceefe233e79 (patch)
treed52c0d7e64e83dd8f17fd0340c3c62402c7cd7ce /net/sctp/sm_make_chunk.c
parentnet: better pcpu data alignment (diff)
downloadlinux-ddc4bbee6ef1ed20314be3888dd39ceefe233e79.tar.xz
linux-ddc4bbee6ef1ed20314be3888dd39ceefe233e79.zip
sctp: fasthandoff with ASCONF at mobile-node
Fast retransmission after changing the last address with ASCONF negotiation Signed-off-by: Michio Honda <micchie@sfc.wide.ad.jp> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/sctp/sm_make_chunk.c')
-rw-r--r--net/sctp/sm_make_chunk.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/net/sctp/sm_make_chunk.c b/net/sctp/sm_make_chunk.c
index 0121e0ab0351..a85eeeb55dd0 100644
--- a/net/sctp/sm_make_chunk.c
+++ b/net/sctp/sm_make_chunk.c
@@ -3400,8 +3400,10 @@ int sctp_process_asconf_ack(struct sctp_association *asoc,
asconf_len -= length;
}
- if (no_err && asoc->src_out_of_asoc_ok)
+ if (no_err && asoc->src_out_of_asoc_ok) {
asoc->src_out_of_asoc_ok = 0;
+ sctp_transport_immediate_rtx(asoc->peer.primary_path);
+ }
/* Free the cached last sent asconf chunk. */
list_del_init(&asconf->transmitted_list);