After covering link-protection and node-link-protection here, I realized that I forgot one aspect. You can make Junos install the pre-signaled bypass LSP into the forwarding table. This is done by configuring a policy and by applying that policy under the [routing-options forwarding-table export ] stanza.
A short example;
There is an LSP (to_Commodus) that runs from Tiberius to Commodus. The LSP is configured with link-protection and Nero has already signaled for a bypass LSP:
play@MX480-TEST:Nero> show rsvp session ingress Ingress RSVP: 2 sessions To From State Rt Style Labelin Labelout LSPname 1.1.1.12 1.1.1.11 Up 0 1 SE - 300896 Bypass->2.0.0.66 Total 2 displayed, Up 2, Down 0
This bypass LSP is protection the following LSP:
play@MX480-TEST:Nero> show mpls lsp transit name to_Commodus Transit LSP: 7 sessions To From State Rt Style Labelin Labelout LSPname 1.1.1.4 1.1.1.9 Up 0 1 SE 302160 300400 to_Commodus Total 1 displayed, Up 1, Down 0
When we examine the forwarding table, we can see the transit LSP (300400), but not the bypass LSP (300896):
play@MX480-TEST:Nero> show route forwarding-table family mpls Logical system: Nero Routing table: default.mpls MPLS: Destination Type RtRef Next hop Type Index NhRef Netif default perm 0 dscd 713 1 0 user 0 recv 715 4 1 user 0 recv 715 4 2 user 0 recv 715 4 13 user 0 recv 715 4 301680 user 0 2.0.0.41 Swap 300128 1463 2 xe-0/2/0.11 301712 user 0 2.0.0.45 Pop 1645 2 xe-0/2/0.12 301712(S=0) user 0 2.0.0.45 Pop 1646 2 xe-0/2/0.12 302016 user 0 2.0.0.41 Swap 300416 1666 2 xe-0/2/0.11 302048 user 0 2.0.0.41 Swap 300448 1441 2 xe-0/2/0.11 302160 user 0 2.0.0.66 Swap 300400 1443 2 xe-0/3/0.17 302176 user 0 2.0.0.66 Swap 300432 1680 2 xe-0/3/0.17 302192 user 0 2.0.0.45 Pop 1682 2 xe-0/2/0.12 302192(S=0) user 0 2.0.0.45 Pop 1683 2 xe-0/2/0.12
The policy to install this bypass LSP into the forwarding table could look like this:
set policy-options policy-statement install-bypass term 1 then load-balance per-packet
This is a very short policy, but it does the trick. It matches all traffic and it initiate load-balancing. Also note that even though the policy says per-packet, modern Juniper systems will perform per-flow load-balancing. To apply this policy and to make the router install the bypass LSP into the forwarding table, we add the following command:
set routing-options forwarding-table export install-bypass
Upon examing the forwarding table, we can now see the following;
play@MX480-TEST:Nero> show route forwarding-table family mpls Logical system: Nero Routing table: default.mpls MPLS: Destination Type RtRef Next hop Type Index NhRef Netif default perm 0 dscd 713 1 0 user 0 recv 715 4 1 user 0 recv 715 4 2 user 0 recv 715 4 13 user 0 recv 715 4 301680 user 0 2.0.0.41 Swap 300128 1463 2 xe-0/2/0.11 301712 user 0 2.0.0.45 Pop 1645 2 xe-0/2/0.12 301712(S=0) user 0 2.0.0.45 Pop 1646 2 xe-0/2/0.12 302016 user 0 2.0.0.41 Swap 300416 1666 2 xe-0/2/0.11 302048 user 0 ulst 1048580 2 2.0.0.41 Swap 300448 1441 2 xe-0/2/0.11 2.0.0.45 Swap 300768 1692 1 xe-0/2/0.12 302160 user 0 ulst 1048581 2 2.0.0.66 Swap 300400 1443 2 xe-0/3/0.17 2.0.0.45 Swap 300400, Push 300896(top) 1694 1 xe-0/2/0.12 302176 user 0 2.0.0.66 Swap 300432 1680 2 xe-0/3/0.17 302192 user 0 2.0.0.45 Pop 1682 2 xe-0/2/0.12 302192(S=0) user 0 2.0.0.45 Pop 1683 2 xe-0/2/0.12
The bypass LSP was installed into the forwarding table.
Note, I was using an MX480 running 12.3R8.7. I saw that traffic was not being load-balanced. The entry in the forwarding table was listing 'ulst' (List of unicast next hops). Normally, this is an indication that traffic is being load-balanced. The only thing I observed was that the bypass LSP was installed into the forwarding table. Only when I interrupted the link between Nero and Septimus did I see the statistics for the bypass LSP increase.