Data Forwarding on an E2E SR-MPLS TE Tunnel
A forwarder operates a label in a packet based on the label stack mapped to the SR-MPLS TE LSP, searches for an outbound interface hop by hop based on the top label of the label stack, and uses the label to guide the packet to the tunnel destination address.
In
Figure 1, the controller calculates an SR-MPLS TE tunnel path CSG1->AGG1->ASBR1->ASBR3->P1->PE1. The label stack of the path is {6000, 3040, 8000}, where 6000 and 8000 are binding SID labels, and 3040 is a BGP peer SID.
Figure 1 Data forwarding on an E2E SR-MPLS TE tunnel
The E2E SR-MPLS TE data packet forwarding process is as follows:
The ingress CSG1 adds a label stack {6000, 3040, 8000} to a data packet and searches the My Local SID table based on label 6000 on the top of the label stack. 6000 is a binding SID label and mapped to a label stack {102, 203}. CSG1 searches for an outbound interface based on label 102, maps the label to the CSG1->AGG1 adjacency, and then removes label 102. The packet carries the label stack {203, 3040, 8000} and passes through the CSG1->AGG1 adjacency to the downstream AGG1.
- After receiving the packet, AGG1 matches an adjacency against label 203 on the top of the label stack, finds an outbound interface as the AGG1->ASBR1 adjacency, and removes label 203. The packet carries a label stack {3040, 8000} and passes through the AGG1->ASBR1 adjacency to the downstream ASBR1.
- After receiving the packet, AGG1 matches an adjacency against label 3040 on the top of the label stack, finds an outbound interface as the AGG1->ASBR3 adjacency, and removes label 3040. The packet carries a label stack {8000} and passes through the ASBR1->ASBR3 adjacency to the downstream ASBR3.
- After receiving the packet, ASBR3 searches the My Local SID table based on label 8000 on the top of the label stack. 8000 is a binding SID label and mapped to a label stack {405, 506}. ASBR3 searches for an outbound interface based on label 405, maps the label to the ASBR3->P1 adjacency, and then removes label 405. The packet carries a label stack {506} and passes through the ASBR3->P1 adjacency to the downstream P1.
- After receiving the packet, P1 matches an adjacency against label 506 on the top of the label stack, finds an outbound interface as the P1->PE1 adjacency, and removes label 506. The packet without a label is forwarded to the destination PE1 through the P1->PE1 adjacency.