Print this page
7819 IPv6 Packet and MTU bug
@@ -21,11 +21,11 @@
/*
* Copyright (c) 1991, 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1990 Mentat Inc.
* Copyright (c) 2012 Joyent, Inc. All rights reserved.
- * Copyright (c) 2014, OmniTI Computer Consulting, Inc. All rights reserved.
+ * Copyright (c) 2017 OmniTI Computer Consulting, Inc. All rights reserved.
*/
#include <sys/types.h>
#include <sys/stream.h>
#include <sys/dlpi.h>
@@ -3856,14 +3856,13 @@
pmtu = IPV6_MIN_MTU;
}
}
/*
- * After receiving an ICMPv6 "packet too big" message with a
- * MTU < 1280, and for multirouted IPv6 packets, the IP layer
- * will insert a 8-byte fragment header in every packet. We compensate
- * for those cases by returning a smaller path MTU to the ULP.
+ * For multirouted IPv6 packets, the IP layer will insert a 8-byte
+ * fragment header in every packet. We compensate for those cases by
+ * returning a smaller path MTU to the ULP.
*
* In the case of CGTP then ip_output will add a fragment header.
* Make sure there is room for it by telling a smaller number
* to the transport.
*
@@ -3870,12 +3869,11 @@
* When IXAF_IPV6_ADDR_FRAGHDR we subtract the frag hdr here
* so the ULPs consistently see a iulp_pmtu and ip_get_pmtu()
* which is the size of the packets it can send.
*/
if (!(ixa->ixa_flags & IXAF_IS_IPV4)) {
- if ((dce->dce_flags & DCEF_TOO_SMALL_PMTU) ||
- (ire->ire_flags & RTF_MULTIRT) ||
+ if ((ire->ire_flags & RTF_MULTIRT) ||
(ixa->ixa_flags & IXAF_MULTIRT_MULTICAST)) {
pmtu -= sizeof (ip6_frag_t);
ixa->ixa_flags |= IXAF_IPV6_ADD_FRAGHDR;
}
}