|
21 | 21 | * References:
|
22 | 22 | *
|
23 | 23 | * RFC 815 IP Datagram Reassembly Algorithms
|
24 |
| - * RFC 2460 Internet Protocol. Version 6 (IPv6) Specification |
25 | 24 | * RFC 3168 The Addition of Explicit Congestion Notification (ECN) to IP
|
26 |
| - * RFC 5722 Handling of Overlapping IPv6 Fragments |
27 | 25 | * RFC 6040 Tunnelling of Explicit Congestion Notification
|
28 |
| - * RFC 6145 IP/ICMP Translation Algorithm [sections on Path MTU] |
29 | 26 | * RFC 6660 Encoding Three Pre-Congestion Notification (PCN) States in the
|
30 | 27 | * IP Header Using a Single Diffserv Codepoint (DSCP)
|
31 |
| - * RFC 6946 Processing of IPv6 "Atomic" Fragments |
32 |
| - * RFC 7112 Implications of Oversized IPv6 Header Chains |
| 28 | + * RFC 8200 Internet Protocol, Version 6 (IPv6) Specification |
| 29 | + * RFC 8201 Path MTU Discovery for IP version 6 |
33 | 30 | */
|
34 | 31 | #include "nsconfig.h"
|
35 | 32 | #include "ns_types.h"
|
@@ -656,35 +653,6 @@ buffer_t *ipv6_frag_down(buffer_t *dgram_buf)
|
656 | 653 |
|
657 | 654 | *nh_ptr = IPV6_NH_FRAGMENT;
|
658 | 655 |
|
659 |
| - /* Special case for atomic fragments (caused by a small PMTU) */ |
660 |
| - /* Note that we DO have the option of actually fragmenting and obeying |
661 |
| - * a small PMTU, which would avoid this special case. |
662 |
| - */ |
663 |
| - if (buffer_data_length(dgram_buf) <= IPV6_MIN_LINK_MTU - 8) { |
664 |
| - dgram_buf = buffer_headroom(dgram_buf, 8); |
665 |
| - if (!dgram_buf) { |
666 |
| - return NULL; |
667 |
| - } |
668 |
| - |
669 |
| - /* Move unfragmentable section back 8 bytes; increase IP length field */ |
670 |
| - ip_ptr = buffer_data_reserve_header(dgram_buf, 8); |
671 |
| - memmove(ip_ptr, ip_ptr + 8, unfrag_len); |
672 |
| - common_write_16_bit(common_read_16_bit(ip_ptr + 4) + 8, ip_ptr + 4); |
673 |
| - |
674 |
| - /* Write atomic fragment header into the gap */ |
675 |
| - frag_hdr = ip_ptr + unfrag_len; |
676 |
| - frag_hdr[0] = nh; |
677 |
| - frag_hdr[1] = 0; |
678 |
| - common_write_16_bit(0, frag_hdr + 2); |
679 |
| - common_write_32_bit(++dest->fragment_id, frag_hdr + 4); |
680 |
| - return dgram_buf; |
681 |
| - } |
682 |
| - |
683 |
| - /* We won't fragment below minimum MTU. (Although we could...) */ |
684 |
| - if (pmtu < IPV6_MIN_LINK_MTU) { |
685 |
| - pmtu = IPV6_MIN_LINK_MTU; |
686 |
| - } |
687 |
| - |
688 | 656 | /* Check for silly situation - can't fit any fragment data (8 for fragment
|
689 | 657 | * header, 8 for minimum fragment payload) */
|
690 | 658 | if (unfrag_len + 8 + 8 > pmtu) {
|
|
0 commit comments