All MTUs are not the same
Matthew sent me the following remarkable fact (and he just might have saved some of you a few interesting troubleshooting moments):
I was bringing up an OSPF adjacency between a Catalyst 6500 and an ASR 9006 and kept getting an MTU mismatch error. The MTU was set exactly the same on both sides. So I reset them both back to default (1500 on the 6500 and 1514 on the ASR 9006) and the adjacency came back up, even though now the MTU is off by 14 bytes. So I attempted to bump the MTU up again, this time setting the MTU on 6500 to 1540 and the MTU on the ASR 9006 to 1554. Adjacency came right up. Is there something I am missing?
The 14 byte difference is the crucial point – that’s exactly the L2 header size (12 bytes for two 6-byte MAC addresses and 2 bytes for ethertype). When you specify MTU size on the IOS classic (either with the ip mtu command or with the mtu command), you specify the maximum size of the layer-3 payload without the layer-2 header. Obviously IOS XR works differently – there you have to specify the maximum size of a layer-2 frame, not of its layer-3 payload (comments describing how other platforms behave are most welcome!).
Luckily, Junos has a handy way of determining the equivalent IOS MTU/L2-less MTU. 'sh interface <name> detail' will print both the "ip mtu" and even the mpls MTU for you.</name>
It seems that in this case IOS-XR is acting exactly like JunOS, as the interface MTU is specified exactly this way there too. In JunOS the reason for excluding the FCS is a quirk in the hardware forwarding. I don't know the reasoning in IOS-XR...
Last time I had this discussion on Alcatel Lucent 7750SR Routers.
The MTU size configured on the port is the layer 2 header and also the layer 3 payload.
So you have to specify the max size of the layer 2 frame.
Example output from "show ip interface te0/0/0/0 | i MTU":
MTU is 9216 (9202 is available to IP)
!
The MTU difference between classic IOS and XR can also hit you when you xconnect between platforms.
If some device uses the phrase MTU as the maximum Ethernet frame size there are very high risk of confusion and misconfiguration. For example, would "1514" as in the text above still allow the 4 byte FCS checksum and possible a 4 byte 802.1Q tag?
This discussion was very helpful, so thank you for it!