Campfire: the true story of MPLS

Just before 2010 disappeared, a tweet by my friend Greg @etherealmind Ferro triggered a minor twitstorm. He wrote:

If we had implemented IPv6 ten years ago, would we have MPLS today? I think not.

His tweet contains two major misconceptions:

  • MPLS was designed to implement layer-3 VPN services;
  • We wouldn’t need VPNs if everyone would be using global IPv6 addresses.

I’ll focus on the first one today; the inaccuracy of the second one is obvious to anyone who was asked to implement MPLS VPNs in enterprise networks to ensure end-to-end path separation between departments or users with different security levels.

OK, so here’s the true story about the early days of MPLS: approximately 15 years ago, Internet Service Providers (ISPs) were experiencing traffic growth they couldn’t handle with their existing router gear. In those days, ASICs were expensive and the hardware layer-3 switching that we use today didn’t exist (Cisco used custom CPUs in their AGS+ and 7000 series routers, but those chips were a far cry from today’s TCAMs). Router performance was thus extremely limited – the best you could get was an 155 Mbps OC-3/STM-1 port per linecard.

The only boxes offering higher-speed interfaces and high-throughput forwarding in those days were the ATM switches. Major ISPs were thus building ATM backbones (not because they loved ATM but because the routers didn’t have OC-12 interfaces) and using routers as ATM edge devices. As anyone who was ever faced with building Frame Relay networks knows, deploying a full-mesh network with numerous nodes is a major management and configuration nightmare. Equipment vendors were thus trying to implement tighter integration between router and ATM switch control planes. Everyone that mattered was offering their own solution: Cisco had Tag Switching, IBM and Toshiba had their own technologies and (as always) there was a startup (Ipsilon) trying to get foot in the door.

Tag switching was the winner of the race and became the obvious standardization candidate ... but of course the competitors had to throw a few wrenches in the gears to ensure Cisco didn’t have an “unfair” lead, so the IETF working group replaced Tag Distribution Protocol (TDP) with completely different (but mostly functionally equivalent) Label Distribution Protocol, while the data-plane packet format remained unchanged.

After a few years, someone realized that the Label Switched Paths (LSP) that MPLS needed to traverse the ATM networks could be used to transport other types of traffic in parallel with IP and started the MPLS/VPN development efforts. My MPLS/VPN book was published at approximately the same time (2001) as the MPLS/VPN code appeared in a public IOS release in 12.0(5)T; MPLS/VPN is thus several years younger than Tag Switching.


  1. Yep, spot on Ivan, this absolutely matches my memory. I first came across tag switching/MPLS in around the '97-'99 timeframe. As I remember it, tag switching was originally meant to help with performance: instead of a router having to perform a classical IP lookup, it would instead just do a simple tag lookup in order to determine the egress interface (and tag). As you say, in those early days, it was nothing at all to do with VPNs -- that came a bit later on, along with all the other derived technologies that complicate our lives today (and keep us busy in work!).

    As I remember it, at around the turn of the millennium, the performace gains that tag switching/MPLS were meant to provide were largely negated by the advent of wire-speed routers (e.g. Juniper M40/M160, Cisco GSR) along with higher-speed WAN interfaces (e.g. STM-64 PoS). This was all during the dot-boom and before the crash, so it was happy days! 8-)
  2. just to add some more garnish..

    I understand it was envisioned that applications could be built using label stacks that hadn't been though of before. Also IPSILONs version for flow switching i.e. forwarding plane set up.. and furthermore they were bought by NOKIA and is the OS for Checkpoint and 3G devices.

    here is the ref

    I got laughed at by the business and marketing people for mentioning at the time all future services would be build on MPLS because of its flexibilty.. (LOL)

    I also heard that not all people in the IETF love Yakov and MPLS due to the adding complexity principle.
  3. Ivan, you've missed out the whole pseudowire chapters auf the story... ;)
  4. So nice to hear from you after such a long time! Thanks for the link.
  5. Good topic for another campfire story ...
Add comment