Skip to content
Calcrivo

MPLS MTU Calculator

Size core MTU for an MPLS label stack at 4 bytes per label, including VPN and entropy labels.

Inputs

bytes
labels
bytes

Core MTU Required

1,512bytes

Label Stack Overhead

12bytes

Labels in the Stack

3

Payload the Core MTU Allows

1,488bytes

MTU Shortfall

12bytes

Verdict

Too small — raise the core MTU by at least 12 bytes or customer traffic will be fragmented or dropped

Step by step

  1. Values used

    Customer IP MTU = 1,500 bytes; Transport labels = 2 labels; VPN / service label = Yes; Entropy or flow label = No; Configured core MTU = 1,500 bytes

  2. MPLS MTU

    Each MPLS label is a 4-byte shim holding a 20-bit label, 3-bit traffic class, 1-bit bottom-of-stack flag and an 8-bit TTL, so required MTU = customer MTU + 4 × labels.

  3. Effective payload

    Payload allowed by a given core MTU = core MTU − label bytes.

  4. Core MTU Required

    = 1,512 bytes

  5. Label Stack Overhead

    = 12 bytes

  6. Labels in the Stack

    = 3

  7. Payload the Core MTU Allows

    = 1,488 bytes

  8. MTU Shortfall

    = 12 bytes

  9. Verdict

    = Too small — raise the core MTU by at least 12 bytes or customer traffic will be fragmented or dropped

How it works

Labels are pushed in front of the customer packet, so they consume MTU rather than riding on top of it. A typical L3VPN packet carries a transport label plus a VPN label, and fast-reroute, entropy labels or SR stacks add more, each costing another 4 bytes. MPLS MTU shortfalls are the classic "ping works, applications hang" fault: small packets pass, full-size TCP segments are dropped, and because the core is label-switched the ICMP needed-fragmentation message often never reaches the sender.

Formulas

MPLS MTU

Each MPLS label is a 4-byte shim holding a 20-bit label, 3-bit traffic class, 1-bit bottom-of-stack flag and an 8-bit TTL, so required MTU = customer MTU + 4 × labels.

4 bytes
One MPLS shim header — 20-bit label, 3-bit TC, 1-bit S, 8-bit TTL
transport labels
LDP or SR labels for the LSP itself, plus any extra for fast-reroute or stitching
VPN label
Service label identifying the VRF or pseudowire at the egress PE

Effective payload

Payload allowed by a given core MTU = core MTU − label bytes.

Frequently Asked Questions

How is MPLS MTU calculated?

Each MPLS label is a 4-byte shim holding a 20-bit label, 3-bit traffic class, 1-bit bottom-of-stack flag and an 8-bit TTL, so required MTU = customer MTU + 4 × labels. Labels are pushed in front of the customer packet, so they consume MTU rather than riding on top of it. A typical L3VPN packet carries a transport label plus a VPN label, and fast-reroute, entropy labels or SR stacks add more, each costing another 4 bytes.

Why does MPLS MTU matter?

MPLS MTU shortfalls are the classic "ping works, applications hang" fault: small packets pass, full-size TCP segments are dropped, and because the core is label-switched the ICMP needed-fragmentation message often never reaches the sender.

What values do I need to enter?

This calculator takes 5 inputs: Customer IP MTU, Transport labels, VPN / service label, Entropy or flow label, Configured core MTU. The pre-filled defaults are a realistic starting point — replace them with figures from your own environment for a result you can act on.

How much core MTU should I configure?

Set the core well above the arithmetic minimum — 9000-byte jumbo frames end the problem permanently, and 1600 is the common minimum. Sizing to the exact requirement leaves no room for the next label you add.

You might also need