Commit 02dc2ee7 authored by Xin Long's avatar Xin Long Committed by David S. Miller

sctp: do not update transport pathmtu if SPP_PMTUD_ENABLE is not set

Currently, in sctp_packet_config(), sctp_transport_pmtu_check() is
called to update transport pathmtu with dst's mtu when dst's mtu
has been changed by non sctp stack like xfrm.

However, this should only happen when SPP_PMTUD_ENABLE is set, no
matter where dst's mtu changed. This patch is to fix by checking
SPP_PMTUD_ENABLE flag before calling sctp_transport_pmtu_check().

Thanks Jacek for reporting and looking into this issue.

v1->v2:
  - add the missing "{" to fix the build error.

Fixes: 69fec325 ('Revert "sctp: remove sctp_transport_pmtu_check"')
Reported-by: default avatarJacek Szafraniec <jacek.szafraniec@nokia.com>
Tested-by: default avatarJacek Szafraniec <jacek.szafraniec@nokia.com>
Signed-off-by: default avatarXin Long <lucien.xin@gmail.com>
Acked-by: default avatarMarcelo Ricardo Leitner <marcelo.leitner@gmail.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 161dcc02
...@@ -104,8 +104,8 @@ void sctp_packet_config(struct sctp_packet *packet, __u32 vtag, ...@@ -104,8 +104,8 @@ void sctp_packet_config(struct sctp_packet *packet, __u32 vtag,
if (asoc->param_flags & SPP_PMTUD_ENABLE) if (asoc->param_flags & SPP_PMTUD_ENABLE)
sctp_assoc_sync_pmtu(asoc); sctp_assoc_sync_pmtu(asoc);
} else if (!sctp_transport_pl_enabled(tp) && } else if (!sctp_transport_pl_enabled(tp) &&
!sctp_transport_pmtu_check(tp)) { asoc->param_flags & SPP_PMTUD_ENABLE) {
if (asoc->param_flags & SPP_PMTUD_ENABLE) if (!sctp_transport_pmtu_check(tp))
sctp_assoc_sync_pmtu(asoc); sctp_assoc_sync_pmtu(asoc);
} }
......
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