On Fri, Jul 16, 2021 at 3:16 AM Jacek Szafraniec <jacek.szafraniec@xxxxxxxxx> wrote: > > Transport pathmtu can not be updated, when PMTUD is disabled > and pathmtu is condigured as fixed. Unconditional update t->pathmtu > will result in overwriting parameter configured by user > and lack of GSO usage. Seems right, the update of dst's mtu from elsewhere shouldn't affect SCTP either if SPP_PMTUD_DISABLE flag is set. > > Signed-off-by: Jacek Szafraniec <jacek.szafraniec@xxxxxxxxx> > --- > include/net/sctp/sctp.h | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/include/net/sctp/sctp.h b/include/net/sctp/sctp.h > index 2c6570e..0569956 100644 > --- a/include/net/sctp/sctp.h > +++ b/include/net/sctp/sctp.h > @@ -612,7 +612,7 @@ static inline bool sctp_transport_pmtu_check(struct sctp_transport *t) > { > __u32 pmtu = sctp_dst_mtu(t->dst); > > - if (t->pathmtu == pmtu) > + if (t->pathmtu == pmtu || t->param_flags & SPP_PMTUD_DISABLE) > return true; > > t->pathmtu = pmtu; > -- > 2.10.2 > Can you please try to fix it with this? diff --git a/net/sctp/output.c b/net/sctp/output.c index a6aa17d..9f53323 100644 --- a/net/sctp/output.c +++ b/net/sctp/output.c @@ -103,8 +103,8 @@ void sctp_packet_config(struct sctp_packet *packet, __u32 vtag, sctp_transport_route(tp, NULL, sp); if (asoc->param_flags & SPP_PMTUD_ENABLE) sctp_assoc_sync_pmtu(asoc); - } else if (!sctp_transport_pmtu_check(tp)) { - if (asoc->param_flags & SPP_PMTUD_ENABLE) + } else if (asoc->param_flags & SPP_PMTUD_ENABLE) { + if (!sctp_transport_pmtu_check(tp)) sctp_assoc_sync_pmtu(asoc); } Thanks.