Cisco Support Community
cancel
Showing results for 
Search instead for 
Did you mean: 

Differences in MTU Configuration Between IOS and IOS-XR

To properly understand the differences in IOS and IOS-XR MTU configurations, let’s start with explanation of  interface “mtu <value>” command:

- In IOS-XR this command is used to configure the L2 MTU.

- In IOS this command is used to configure the L3 payload size.

In other words in IOS-XR we include L2 headers as part of interface MTU command, which is not the case in IOS.

This implies that in order to achieve the same MTU setting between IOS and IOS-XR, IOS-XR interface MTU has to be 14B (bytes) higher for Ethernet and 4B higher for POS interfaces compared to IOS setting.

Example:

mtu 1500” in IOS is equivalent to “mtu 1514” in IOS-XR for Ethernet (FastEth, GigEth, TenGigEth, HundredGigEth) interfaces.

mtu 4470” in IOS is equivalent to “mtu 4474” in IOS-XR for POS interfaces.

All L3 protocols inherit their MTU settings from L2 MTU. Examples are IPv4, IPv6, MPLS, CLNS.

You can easily check complete MTU settings on IOS-XR:


RP/0/RP0/CPU0:ios#sh imds int gi0/0/0/2


Views: OWN - Owner, LDP - Local Data Plane, GDP - Global Data Plane,

       L3P - Local 3rd Party, G3P - Global 3rd Party, RED - Owner Redundancy


Node: 0/RP0/CPU0


Interface GigabitEthernet0/0/0/2, ifh 0x01080080 (up, 1514)

  Interface flags:       0x0801001f (IFCONNECTOR|IFINDEX|CONFIG|HW|VIS|DATA|CONTROL)

  Encapsulation:         ether                                               

  Interface type:        IFT_GETHERNET                                       

  Views:                 G3P                                                 


  Protocol        Caps (state, mtu)

  --------        -----------------

  None            txm_nopull [n/a]

  None            queue_fifo [n/a]

  None            l2_adj_rewrite [n/a]

  None            ether (up, 1514)

  arp             arp (up, 1500)

  ipv4            ipv4 (up, 1500)

  ipv6            ipv6_preswitch (up, 1500)

  ipv6            ipv6 (up, 1500)

  ether_sock      ether_sock (up, 1500)


RP/0/RP0/CPU0:ios#sh imds interface pos0/4/3/2


View: OWN - Owner, L3P - Local 3rd Party, G3P - Global 3rd Party,

      LDP - Local Data Plane, GDP - Global Data Plane, RED - Redundancy


Node 0/RP0/CPU0 (0x201)


Interface POS0/4/3/2, ifh 0x01480400 (up, 4474)

  Interface flags:          0x0001001f (IFINDEX|CONFIG|HW|VIS|DATA|CONTROL)  

  Encapsulation:            hdlc                                             

  Interface type:           IFT_POS                                          

  Control parent:           SonetPath0/4/3/2                                

  Views:                    GDP|G3P                                          


  Protocol        Caps (state, mtu)

  --------        -----------------

  None            qos_out (up, 4474)

  None            hdlc (up, 4474)

  chdlc           chdlc (up, 4470)

  clns            clns (up, 4470)

  ipv4            ipv4 (up, 4470)

  mpls            mpls (up, 4470)

In this example interface MTU is 1514B (for Ethernet interface) and 4474B (for POS interface).  All L3 protocols inherit 1500B and 4470B respectively (this is default setting).

In IOS L2 headers are not considered as part of interface MTU:

router#sh int gi2/2/0 | i MTU

  MTU 1500 bytes, BW 1000000 Kbit, DLY 10 usec, rely 255/255, load 1/255


router#sh ip int gi2/2/0 | i MTU

  MTU is 1500 bytes


router#sh mpls int gi2/2/0 det | i MTU

        MTU = 1500

On IOS-XR we have:

RP/0/RP0/CPU0:ios#sh int gi0/0/0/2 | i MTU

MTU 1514 bytes, BW 1000000 Kbit


RP/0/RP0/CPU0:ios#sh ipv4 int gi0/0/0/2 | i MTU

MTU is 1514 (1500 is available to IP)


RP/0/RP0/CPU0:ios#sh mpls interfaces gi0/0/0/2  location 0/0/cpU0

Sat Feb 12 16:05:40.625 CET

Interface      IFH         MTU

-------------- ---------- -----

Gi0/0/0/2      0x010800a0  1500

Configuration recommendations           

By default, IOS and IOS XR will have matching MTU settings.  Values are 1514B(IOS-XR)/1500B(IOS) for Ethernet and 4474B(IOS-XR)/4470B(IOS).

L3 protocols will inherit their MTU from interface MTU and they will be automatically aligned between IOS and IOS-XR.

There is no need to change those settings unless required.

Typical scenario where increase of MTU is needed is MPLS core of the network.

If you want to use values different from default, configure interface MTU on IOS-XR side 14B higher for Ethernet and 4B higher for POS interfaces.

If you change L3 protocols MTU, they have to match on both sides.

Adjusting MTU for particular L3 protocol

In certain scenarios it’s required to configure different L3 protocol MTUs.

Let’s take example of MPLS interface where we want to allow 2 labels and we would like to limit IPv4 MTU to 1500B.

Highest L3 MTU will be used by MPLS and it’s

1500B+2x4B (labels) = 1508B.

Interface MTU for IOS-XR should be increased for L2 headers. Let’s say we’re using Ethernet, so it’s additional 14B:

1508B+14B=1522B

Interface MTU for IOS side equals to MPLS MTU (1508B).

For IPv4 we have to lower MTU on both sides to 1500B (by default it would be 1508B).

Here are configurations and outputs:

IOS-XR side:


RP/0/RP0/CPU0:ios#sh run int gi0/0/0/3

interface GigabitEthernet0/0/0/3

cdp

mtu 1522

ipv4 mtu 1500

ipv4 address 192.168.0.1 255.255.255.0

So interface MTU would be 1522, MPLS MTU 1508 and IPv4 MTU 1500 as displayed below:

RP/0/RP0/CPU0:ios#sh imds interface gi0/0/0/3

Views: OWN - Owner, LDP - Local Data Plane, GDP - Global Data Plane,

       L3P - Local 3rd Party, G3P - Global 3rd Party, RED - Owner Redundancy


Node: 0/RP0/CPU0


Interface GigabitEthernet0/0/0/3, ifh 0x010800a0 (up, 1522)

  Interface flags:       0x0801001f (IFCONNECTOR|IFINDEX|CONFIG|HW|VIS|DATA|CONTROL)

  Encapsulation:         ether                                               

  Interface type:        IFT_GETHERNET                                       

  Views:                 G3P                                                 

  Protocol        Caps (state, mtu)

  --------        -----------------

  None            txm_nopull [n/a]

  None            queue_fifo [n/a]

  None            l2_adj_rewrite [n/a]

  None            ether (up, 1522)

  arp             arp (up, 1508)

  clns            clns (up, 1508)

  ipv4            ipv4 (up, 1500)

  mpls            mpls (up, 1508)

  ether_sock      ether_sock (up, 1508)

IOS side:


router#sh run int gi2/2/0

interface GigabitEthernet2/2/0

mtu 1508

ip address 192.168.0.2 255.255.255.0

ip mtu 1500

no negotiation auto

tag-switching ip

end

In IOS interface MTU would be 1508, MPLS MTU 1508 and IPv4 MTU 1500 as displayed below:


router#sh int gi2/2/0 | i MTU        

  MTU 1508 bytes, BW 1000000 Kbit, DLY 10 usec, rely 255/255, load 1/255


router#sh mpls int gi2/2/0 det | i MTU

        MTU = 1508


router#sh ip int gi2/2/0 | i MTU     

  MTU is 1500 bytes

NB: L3 protocol MTU cannot be higher than interface MTU setting. For example if interface MTU on Ethernet is 1514B, then maximum allowed MTU for IPv4 is 1500B.

Version history
Revision #:
1 of 1
Last update:
‎02-12-2011 07:16 AM
Updated by:
 
Labels (1)
Everyone's tags (5)
Comments

Hello Milivoje Mirovic,

Today I have the MTU configured on the vlan as shown below, but now I am changing it to the IOS-XR standard (EVC Framework), so my question is, where do I have to adjust the MTU in a way that it has the same effect that the old configuration on IOS?

IOS

!

vlan 200

mtu 9012

!

vlan 3006

mtu 9012

!

interface vlan 200

ip addr

IOS-XR

:router# configure

:router(config)# interface bvi 100

:router(config-if)# vrf vod-management

:router(config-if-vrf)# ipv4 address <IP> <mask>

:router(config-if-vrf)# commit

:router# configure

:router(config)# l2vpn

:router(config-l2vpn)# bridge group VL100

:router(config-l2vpn-bg)# bridge domain VL100

:router(config-l2vpn-bg-bd)# interface gigabitethernet 0/0/0/4

:router(config-l2vpn-bg-bd)# interface gigabitethernet 0/0/0/5.100

:router(config-l2vpn-bg-bd)# commit

:router# configure

:router(config)# interface gigabitethernet Gi0/0/0/4

:router(config-if)# l2transport

:router(config-if)# commit

:router(config-if)# interface Gi0/0/0/5.100 l2transport

:router(config-if)# encapsulation dot1q 100

:router(config-if)# rewrite ingress tag pop 1 symmetric

:router(config-if)#

Thanks in advance,

Renato

Cisco Employee

Hi Renato,

MTU command you mentioned on 7600 is actually a L2 MTU.

Therefore I would suggest to apply 9012+14=9026B MTU on physical interfaces of ASR9k.

Let me know if you encounter any issues.

BR

Milivoje

New Member

This is really a good document. Thanks for sharing the link. Now the query left with me is that my network is going to have Enterprise Services also wherein we will need to run VPLS, L2VPN, MPLS TE, RSVP etc. Now if we consider the MTU enhancement for these protocols also, then how do we take it up between IOS & IOS-XR?

Cisco Employee

Hi,

Principles are the same, if we're talking about core interfaces. VPLS, L2VPN and MPLS TE use MPLS MTU, while RSVP uses IPv4/IPv6 MTU so nothing special there.

Regarding L2 MTU for L2VPN customer facing interfaces they should match. Please make sure that core can support L2 MTU. For instance if attachment circuit uses 1500B IOS MTU (1514 in IOS-XR), then core should have at least 1500B+14B (new ethernet header)+ MPLS labels (for instance 2x4B)+ Control word 4B. Add 14B more for IOS-XR side. However if you configure maximum MTU you're on the safe side.

BR

Mili

New Member

Many thanks for this post

Thank you. Good Doc.

New Member

Excellent document Sr !!

One question: Does the 14 byte extra for ethernet stands for the Src - DST and Length field of its header ?

 

Thank you

Cisco Employee

Thank you Gustavo. Indeed 14B is for Src, Dst and Lenght/Ethertype. FCS is not counted.

New Member

Thank you very much !!

One last question:

 

Lets assume that the only MTU configuration in the IOS side is "mpls mtu 1508"


I assume the XR side should look as follows:

interface Gi0/3/2/3 mtu 1522
interface Gi0/3/2/3 ipv4 mtu 1500   -> i want to limit max L3 MTU
interface Gi0/3/2/3 ipv4 address x.x.x.x
interface Gi0/3/2/3 mpls mtu 1508  -> i want 2 mpls labels

 

1500 + 8 + 14(ethernet)  = 1522

 

right ??

 

regards

Cisco Employee

Hi Gustavo, you're indeed correct. Of course for deployments, suggestion is to have higher MPLS MTU than 1508B.