About SRv6 Traffic Engineering
SRv6 traffic engineering (SRv6 TE) uses the concept of source routing, where the source calculates the path and encodes it in the packet header as a list of segments. This list of segments is added to an IPv6 routing header called the SRv6 Segment Routing Header (SRH) in the incoming packet.
With SRv6 TE, the network does not need to maintain per-application and per-flow state on each node. Instead only the head-end nodes on the edge of the network where the traffic enters the policy need to maintain state. The remaining nodes simply obey the forwarding instructions that are provided in the packet.
SRv6 traffic engineering can utilize network bandwidth more effectively than traditional MPLS RSVP-TE by using ECMP within each segment. In addition, by using a single intelligent source that it relieves remaining routers from the task of calculating the required path through the network.
SRv6 Traffic Engineering Policies
SRv6 traffic engineering uses a “policy” to steer traffic through the network. A SRv6 traffic engineering policy is a container that includes sets of segments.
The headend imposes SID list on traffic flow. Each transit node in the SID stack uses the top SID to choose the next-hop, pops the SID, and forwards the packet to the next node. The packet is forwarded with the remainder of the SID stack, until it reaches the ultimate destination.
A SRv6 traffic engineering policy is uniquely identified by a tuple (color, endpoint). Color is represented as a 32-bit number while the IPv6 address is an endpoint. Every SRv6 traffic engineering policy has a color value. Every policy between the same node pairs requires unique color value. Multiple SRv6 traffic engineering policies can be created between the same two endpoints by choosing different colors for these policies.
In Cisco NX-OS Release 9.3(5), Cisco Nexus 9000 Series switches support only explicit SRv6 policy.
Explicit SRv6 Traffic Engineering Policy
An explicit policy is a list of IPv6 addresses representing an ordered list of segment IDs. The policy path is statically configured because the segment list is defined by the operator.
To create an explicit policy, you must first define segment list (s), the policy name, endpoint, and color and reference it to a segment list from the policy. Segment lists are defined separately since these can be reused between different policies.
Currently, the list of segments in an explicit policy must contain only the SRv6 END SIDs of the nodes in the path (excluding the headend). Each policy supports a maximum of three preferences; three segment lists where only one is active at any given point. This allows you to have one active segment list and two backup segment lists.