Author: tuexen
Date: Wed Apr 26 20:21:05 2017
New Revision: 317464
URL: https://svnweb.freebsd.org/changeset/base/317464

Log:
  Fix an issue with MTU calculation if an ICMP messaeg is received
  for an SCTP/UDP packet.
  
  MFC after:    1 week

Modified:
  head/sys/netinet/sctp_usrreq.c
  head/sys/netinet6/sctp6_usrreq.c

Modified: head/sys/netinet/sctp_usrreq.c
==============================================================================
--- head/sys/netinet/sctp_usrreq.c      Wed Apr 26 19:51:10 2017        
(r317463)
+++ head/sys/netinet/sctp_usrreq.c      Wed Apr 26 20:21:05 2017        
(r317464)
@@ -220,11 +220,11 @@ sctp_notify(struct sctp_inpcb *inp,
                        timer_stopped = 0;
                }
                /* Update the path MTU. */
+               if (net->port) {
+                       next_mtu -= sizeof(struct udphdr);
+               }
                if (net->mtu > next_mtu) {
                        net->mtu = next_mtu;
-                       if (net->port) {
-                               net->mtu -= sizeof(struct udphdr);
-                       }
                }
                /* Update the association MTU */
                if (stcb->asoc.smallest_mtu > next_mtu) {

Modified: head/sys/netinet6/sctp6_usrreq.c
==============================================================================
--- head/sys/netinet6/sctp6_usrreq.c    Wed Apr 26 19:51:10 2017        
(r317463)
+++ head/sys/netinet6/sctp6_usrreq.c    Wed Apr 26 20:21:05 2017        
(r317464)
@@ -237,11 +237,11 @@ sctp6_notify(struct sctp_inpcb *inp,
                        timer_stopped = 0;
                }
                /* Update the path MTU. */
+               if (net->port) {
+                       next_mtu -= sizeof(struct udphdr);
+               }
                if (net->mtu > next_mtu) {
                        net->mtu = next_mtu;
-                       if (net->port) {
-                               net->mtu -= sizeof(struct udphdr);
-                       }
                }
                /* Update the association MTU */
                if (stcb->asoc.smallest_mtu > next_mtu) {
_______________________________________________
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to