summaryrefslogtreecommitdiffstats
path: root/net/sctp/associola.c
diff options
context:
space:
mode:
authorVlad Yasevich <vladislav.yasevich@hp.com>2007-06-07 14:21:05 -0400
committerVladislav Yasevich <vxy@hera.kernel.org>2007-06-13 20:44:42 +0000
commit8a4794914f9cf2681235ec2311e189fe307c28c7 (patch)
tree029530de3f65445050e7f4c3ad4cd0195b127fa4 /net/sctp/associola.c
parentc910b47e1811b3f8b184108c48de3d7af3e2999b (diff)
downloadop-kernel-dev-8a4794914f9cf2681235ec2311e189fe307c28c7.zip
op-kernel-dev-8a4794914f9cf2681235ec2311e189fe307c28c7.tar.gz
[SCTP] Flag a pmtu change request
Currently, if the socket is owned by the user, we drop the ICMP message. As a result SCTP forgets that path MTU changed and never adjusting it's estimate. This causes all subsequent packets to be fragmented. With this patch, we'll flag the association that it needs to udpate it's estimate based on the already updated routing information. Signed-off-by: Vlad Yasevich <vladislav.yasevich@hp.com> Acked-by: Sridhar Samudrala <sri@us.ibm.com>
Diffstat (limited to 'net/sctp/associola.c')
-rw-r--r--net/sctp/associola.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/net/sctp/associola.c b/net/sctp/associola.c
index df94e3c..498edb0 100644
--- a/net/sctp/associola.c
+++ b/net/sctp/associola.c
@@ -1231,6 +1231,10 @@ void sctp_assoc_sync_pmtu(struct sctp_association *asoc)
/* Get the lowest pmtu of all the transports. */
list_for_each(pos, &asoc->peer.transport_addr_list) {
t = list_entry(pos, struct sctp_transport, transports);
+ if (t->pmtu_pending && t->dst) {
+ sctp_transport_update_pmtu(t, dst_mtu(t->dst));
+ t->pmtu_pending = 0;
+ }
if (!pmtu || (t->pathmtu < pmtu))
pmtu = t->pathmtu;
}
OpenPOWER on IntegriCloud