Segment Routing Binding SID

Binding SID (BSID) is a method of steering traffic into an SR Policy. BSID is used to provide greater scalability. The BSID is bound to an SR Policy which may have a list of SIDs. Any packets received with an active segment equal to BSID are steered onto the bound SR Policy. Usage of BSID decreases the number of segments imposed by the source.

According to topology and SR Policy, SR forwarding table on A1 will be;

Incoming Active Segment: 16999
Operation: PUSH 16002,16004, 16006
Egress Interface: The interface towards to A2

If any packets from a client or application comes to A1 with an MPLS label 16999 (which is the BSID of an SR Policy Red) A1 will remove BSID and push the label stack which is s SID List of SR Policy. If it was IPv6 Data Plane, it would be an SRH with Segment Lists.

Let’s assume we have a low-delay path like in the topology. All links have the cost value of 10 except the ones already mentioned in the topology.

SR Policy on R1 without BSID;

Incoming Active Segment: NULL
Operation: PUSH 16002,16004, 16006, 16007, 16010
Egress Interface: The interface towards to R2

We needed to add labels to the SID List.

Now let’s assume we have a policy on R4 like below;

BSID: 16100

SID List: 16006, 16007, 16010

Data plane on R1,

Incoming Active Segment: NULL
Operation: PUSH 16002,16004, 16100
Egress Interface: The interface towards to R2

Data Plane on R4,

Incoming Active Segment: 16100
Operation: POP and PUSH 16006, 16007, 16010
Egress Interface: The interface towards to R6

If the Core domain topology changes, the BSID of the intermediate SR Policy on R4 will not change.

It is also way of core domain topology information to aggregation layers, assuming core domain is some other company.

By default, BSID is dynamically allocated

BSID can be explicitly specified

BSID can be allocated for RSVP-TE tunnel. This one can be used when you are migrating a network from MPLS to SR. This is in the RFC standard and it will rely on defining a Binding SID for MPLS TE Tunnels. Currently we don’t have this option.

I believe one of the use case about BSID will be providing application to talk with network. Assume that you have 2 different SR policy with different SID lists. Let’s say;

SR Policy 1, BSID 16199, SID List is equal to lowest delay path

SR Policy 2, BSID 16299, SID List is equal to highest bandwidth path.

If the application can be programmed with SR, it just need to send traffic with related labels. If the traffic is sent with 16199, it will be automatically pushed into the lowest delay path and if it comes with 16299, it will be automatically pushed into the highest bandwidth path. If some changes happens in the network, application will not need to update anything.

About: fabricplane