Hi, After some more tests:
Source: Linux machine with IPv6: 2a02:27d0:0:5e0d:1a03:73ff:feba:50b4 Destination: Linux machine with IPv6: 2a02:27d0:0:5e0d:428d:5cff:fea5:501e source# ping6 -M do -s 1300 2a02:27d0:0:5e0d:428d:5cff:fea5:501e destination# tcpdump -ni enp3s0 host 2a02:27d0:0:5e0d:1a03:73ff:feba:50b4 09:38:55.735387 IP6 2a02:27d0:0:5e0d:1a03:73ff:feba:50b4 > 2a02:27d0:0:5e0d:428d:5cff:fea5:501e: ICMP6, echo request, seq 1, length 1308 09:38:55.735826 IP6 2a02:27d0:0:5e0d:428d:5cff:fea5:501e > 2a02:27d0:0:5e0d:1a03:73ff:feba:50b4: ICMP6, echo reply, seq 1, length 1308 09:38:56.736882 IP6 2a02:27d0:0:5e0d:1a03:73ff:feba:50b4 > 2a02:27d0:0:5e0d:428d:5cff:fea5:501e: ICMP6, echo request, seq 2, length 1308 09:38:56.736998 IP6 2a02:27d0:0:5e0d:428d:5cff:fea5:501e > 2a02:27d0:0:5e0d:1a03:73ff:feba:50b4: ICMP6, echo reply, seq 2, length 1308 ... Source: Linux machine with IPv6: 2a02:27d0:0:5e0d:1a03:73ff:feba:50b4 Destination machine OpenBSD 5.8 with IPv6: 2a02:27d0:0:5e0c:d6be:d9ff:fe95:a236 source# ping6 -M do -s 1300 2a02:27d0:0:5e0c:d6be:d9ff:fe95:a236 destination# tcpdump -ni bge0 host 2a02:27d0:0:5e0d:1a03:73ff:feba:50b4 17:58:03.040184 2a02:27d0:0:5e0d:1a03:73ff:feba:50b4 > 2a02:27d0:0:5e0c:d6be:d9ff:fe95:a236: icmp6: echo request [flowlabel 0x467ca] 17:58:03.040295 2a02:27d0:0:5e0c:d6be:d9ff:fe95:a236 > 2a02:27d0:0:5e0d:1a03:73ff:feba:50b4: frag (0x04183a32:1232@0+) icmp6: echo reply 17:58:03.040296 2a02:27d0:0:5e0c:d6be:d9ff:fe95:a236 > 2a02:27d0:0:5e0d:1a03:73ff:feba:50b4: frag (0x04183a32:76@1232) 17:58:04.034362 2a02:27d0:0:5e0d:1a03:73ff:feba:50b4 > 2a02:27d0:0:5e0c:d6be:d9ff:fe95:a236: icmp6: echo request [flowlabel 0x467ca] 17:58:04.034430 2a02:27d0:0:5e0c:d6be:d9ff:fe95:a236 > 2a02:27d0:0:5e0d:1a03:73ff:feba:50b4: frag (0x36bc0632:1232@0+) icmp6: echo reply 17:58:04.034432 2a02:27d0:0:5e0c:d6be:d9ff:fe95:a236 > 2a02:27d0:0:5e0d:1a03:73ff:feba:50b4: frag (0x36bc0632:76@1232) source: Linux machine with IPv6: 2a02:27d0:0:5e0d:1a03:73ff:feba:50b4 Destination machine OpenBSD 5.8 with IPv6: 2a02:27d0:0:5e0c:d6be:d9ff:fe95:a236 source# ping6 -M do -s 1232 2a02:27d0:0:5e0c:d6be:d9ff:fe95:a236 leads to answers fitting in one packet only (1280 byte) with no fragmentation whatsoever. source# ping6 -M do -s 1233 leads to fragmentation ================================================================== I wonder why ICMPv6 answers bigger than 1232 are always fragmented. ================================================================== # netstat -rnf inet6 | grep bge0 default fe80::42b4:f0ff:fec6:7201%bge0 UG 0 211 - 56 bge0 2a02:27d0:0:5e0c::/64 fe80::d6be:d9ff:fe95:a236%bge0 UC 0 0 - 4 bge0 fe80::%bge0/64 fe80::d6be:d9ff:fe95:a236%bge0 UC 1 0 - 4 bge0 fe80::42b4:f0ff:fec6:7201%bge0 40:b4:f0:c6:72:01 UHLc 1 13 - 4 bge0 fe80::d6be:d9ff:fe95:a236%bge0 d4:be:d9:95:a2:36 UHLl 0 0 - 1 lo0 ff01::%bge0/32 fe80::d6be:d9ff:fe95:a236%bge0 UC 0 0 - 4 bge0 ff02::%bge0/32 fe80::d6be:d9ff:fe95:a236%bge0 UC 0 0 - 4 bge0 Please note, replacing bge0 with em0 leads to the very same result, ruling out a difference of ICMPv6 handling between the 2 drivers.