Don't change the remote UDP encapsulation port for SCTP packets

containing an INIT chunk.

MFC after: 3 days
This commit is contained in:
tuexen 2016-01-30 11:10:22 +00:00
parent e13af88901
commit 8a9d3a9d9f

View File

@ -5684,7 +5684,9 @@ sctp_common_input_processing(struct mbuf **mm, int iphlen, int offset, int lengt
stcb = sctp_findassociation_addr(m, offset, src, dst,
sh, ch, &inp, &net, vrf_id);
#if defined(INET) || defined(INET6)
if ((net != NULL) && (port != 0)) {
if ((net != NULL) &&
(ch->chunk_type != SCTP_INITIATION) &&
(port != 0)) {
if (net->port == 0) {
sctp_pathmtu_adjustment(stcb, net->mtu - sizeof(struct udphdr));
}
@ -5715,7 +5717,9 @@ sctp_common_input_processing(struct mbuf **mm, int iphlen, int offset, int lengt
stcb = sctp_findassociation_addr(m, offset, src, dst,
sh, ch, &inp, &net, vrf_id);
#if defined(INET) || defined(INET6)
if ((net != NULL) && (port != 0)) {
if ((net != NULL) &&
(ch->chunk_type != SCTP_INITIATION) &&
(port != 0)) {
if (net->port == 0) {
sctp_pathmtu_adjustment(stcb, net->mtu - sizeof(struct udphdr));
}
@ -5827,7 +5831,9 @@ sctp_common_input_processing(struct mbuf **mm, int iphlen, int offset, int lengt
*/
inp = stcb->sctp_ep;
#if defined(INET) || defined(INET6)
if ((net != NULL) && (port != 0)) {
if ((net != NULL) &&
(ch->chunk_type != SCTP_INITIATION) &&
(port != 0)) {
if (net->port == 0) {
sctp_pathmtu_adjustment(stcb, net->mtu - sizeof(struct udphdr));
}