I have realized the information in MPLS foundamentals is really really good, especially chapter 2, I have read it several times each time I read it cleared previously misinterpreted concepts.
The modes are broken down into three sections:
1. Label distribution mode – The method regarding mpls label distribution.
2. Label retention mode – The method to keep remote mpls labels.
3. Label switch path control mode – The method on how a router generates local label bindings to the known prefixes.
Label distribution mode
1. Downstream-on-demand (DoD)
The LSR has to ask its adjacent downstream LSR for a label.
2. Unsolicited downstream (UD)
The LSR receives remote binding from its adjacent downstream LSR without asking.
All cisco interfaces except for LC-ATM interface is using UD. LC-ATM interface is using DoD.
Label retention mode
1. Liberal label retention (LLR)
Stores all received labels in the LIB. Only the chosen remote label is used in LFIB for label forwarding. The reason to keep unused labels is to accommodate route topology change, if there’s route topology changes, the labels of the alternate path to the destination with other next-hop LSR can be installed in LFIB.
This philosophy is no different from EIGRP, EIGRP keeps all alternate paths but only the best path is in the routing table, the alternate path is known as feasible successor.
All Cisco routed interfaces except LC-ATM interface support LLR.
2. Conservative label retention (CLR)
Does not store all remote bindings received, it only stores the label that is associated with the next-hop LSR of a particular FEC.
LC-ATM interface supports only CLR.
LLR adapts to routing changes quickly but stores all remote bindings in FIB which uses more memory.
CLR on the other hand reduces the memory usage to store remote bindings since not all remote bindings are stored in FIB.
m1#sh mpls ldp bindings lib entry: 10.10.10.1/32, rev 6 local binding: label: imp-null remote binding: lsr: 10.10.10.2:0, label: 19 remote binding: lsr: 10.1.1.21:0, label: 17 m1#
The FIB of m1 is shortened for brevity. In LLR all received bindings are preserved in FIB regardless whether the route is established or not.
m1#sh mpls ldp bindings lib entry: 10.10.10.1/32, rev 6(no route) local binding: label: imp-null remote binding: lsr: 10.10.10.2:0, label: 19 remote binding: lsr: 10.1.1.21:0, label: 17
The FIB is shortened for brevity. I shut down loopback0 interface. The remote bindings are still kept in FIB.
LSP control mode
1. Independent LSP control mode
Each LSR generates a local label for a FEC which the router learned from routing table independently from other LSRs.
2. Ordered LSP control mode
LSR will only generate local labels if LSR knowns that it is the egress of the FEC or when it received the remote binding from the adjacent LSR of the FEC.
FEC vs prefix
MPLS labels are created for a FEC instead of prefix. The same FEC will have the same label and the prefix, but the same prefix does not necessary have the same FEC.
FEC is associated with unfair traffic treatment. Traffic of one FEC is treated the same, hence when describing label mapping it is more accurately to say the label is associated to FEC instead of just prefix.