svn commit: r291651 - head/sys/netinet
Michael Tuexen
tuexen at FreeBSD.org
Wed Dec 2 16:29:38 UTC 2015
Author: tuexen
Date: Wed Dec 2 16:29:36 2015
New Revision: 291651
URL: https://svnweb.freebsd.org/changeset/base/291651
Log:
Adjust the MTU when accepting an SCTP association using
UDP encapsulation.
MFC after: 1 week
Modified:
head/sys/netinet/sctp_input.c
Modified: head/sys/netinet/sctp_input.c
==============================================================================
--- head/sys/netinet/sctp_input.c Wed Dec 2 14:24:14 2015 (r291650)
+++ head/sys/netinet/sctp_input.c Wed Dec 2 16:29:36 2015 (r291651)
@@ -521,7 +521,6 @@ sctp_process_init_ack(struct mbuf *m, in
/* calculate the RTO */
net->RTO = sctp_calculate_rto(stcb, asoc, net, &asoc->time_entered, sctp_align_safe_nocopy,
SCTP_RTT_FROM_NON_DATA);
-
retval = sctp_send_cookie_echo(m, offset, stcb, net);
if (retval < 0) {
/*
@@ -2347,12 +2346,17 @@ sctp_process_cookie_new(struct mbuf *m,
sctp_timer_start(SCTP_TIMER_TYPE_AUTOCLOSE, inp, stcb, NULL);
}
(void)SCTP_GETTIME_TIMEVAL(&stcb->asoc.time_entered);
- if ((netp) && (*netp)) {
+ if ((netp != NULL) && (*netp != NULL)) {
/* calculate the RTT and set the encaps port */
(*netp)->RTO = sctp_calculate_rto(stcb, asoc, *netp,
&cookie->time_entered, sctp_align_unsafe_makecopy,
SCTP_RTT_FROM_NON_DATA);
+#if defined(INET) || defined(INET6)
+ if (((*netp)->port == 0) && (port != 0)) {
+ sctp_pathmtu_adjustment(stcb, (*netp)->mtu - sizeof(struct udphdr));
+ }
(*netp)->port = port;
+#endif
}
/* respond with a COOKIE-ACK */
sctp_send_cookie_ack(stcb);
@@ -5845,7 +5849,7 @@ sctp_common_input_processing(struct mbuf
*/
inp = stcb->sctp_ep;
#if defined(INET) || defined(INET6)
- if ((net) && (port)) {
+ if ((net != NULL) && (port != 0)) {
if (net->port == 0) {
sctp_pathmtu_adjustment(stcb, net->mtu - sizeof(struct udphdr));
}
More information about the svn-src-head
mailing list