Calculate MPLS label stack overhead and effective MTU for labeled traffic.
MPLS uses a 20-bit label field, giving a theoretical 2^20 = 1,048,576 label values, but the first 16 (0-15) are reserved for special purposes (e.g. label 3 for Implicit NULL, label 0/2 for IPv4/IPv6 Explicit NULL) per RFC 3032, leaving 1,048,560 usable labels on a device. Dividing usable labels by the number of labels each LSP consumes gives the maximum number of Label-Switched Paths a single label space can support — a practical ceiling that matters for large-scale MPLS/VPN or traffic-engineering deployments with many LSPs.
Usable label space
usable_labels = 2^20 − 16 = 1,048,560
Max LSPs supported
max_lsps = usable_labels / labels_per_lsp
RFC 3032 reserves label values 0-15 for special-purpose signaling — for example, label 0 (IPv4 Explicit NULL), label 2 (IPv6 Explicit NULL), and label 3 (Implicit NULL, used in penultimate-hop popping) — these are never assigned to regular LSPs, leaving 1,048,560 of the full 1,048,576 values for actual label-switched paths.
Per-device (per label space on that router/switch) — each MPLS-enabled device maintains its own local label allocation, so the 20-bit space is a per-node constraint, not a network-wide budget. Very large networks rarely approach this limit on any single device in practice.
Label stacking — used for MPLS VPNs (an inner VPN label plus an outer transport label), traffic engineering with explicit paths, or fast reroute mechanisms — consumes multiple labels per logical path, which is why this calculator lets you set labels-per-LSP above 1 for such designs.