.. _srv6_localsid_doc:

SR LocalSIDs
============

A local SID is associated to a Segment Routing behavior -or function- on
the current node.

The most basic behavior is called END. It simply activates the next SID
in the current packet, by decrementing the Segments Left value and
updating the IPv6 DA.

A local END SID is instantiated using the following CLI:

::

   sr localsid (del) address XX::YY behavior end

This creates a new entry in the main FIB for IPv6 address XX::YY. All
packets whose IPv6 DA matches this FIB entry are redirected to the
sr-localsid node, where they are processed as described above.

Other examples of local SIDs are the following:

::

   sr localsid (del) address XX::YY behavior end
   sr localsid (del) address XX::YY behavior end.x GE0/1/0 2001::a
   sr localsid (del) address XX::YY behavior end.dx6 GE0/1/0 2001::a
   sr localsid (del) address XX::YY behavior end.dx4 GE0/1/0 10.0.0.1
   sr localsid (del) address XX::YY behavior end.dx2 GigabitE0/11/0
   sr localsid (del) address XX::YY behavior end.dt6 5
   sr localsid (del) address XX::YY behavior end.dt6 5

Note that all of these behaviors match the definitions of the SRv6
architecture (*draft-filsfils-spring-srv6-network-programming*). Please
refer to this document for a detailed description of each behavior.

Note also that you can configure the PSP flavor of the End and End.X
behaviors by typing:

::

   sr localsid (del) address XX::YY behavior end psp
   sr localsid (del) address XX::YY behavior end.x GE0/1/0 2001::a psp

Help on the available local SID behaviors and their usage can be
obtained with:

::

   help sr localsid

Alternatively they can be obtained using.

::

   show sr localsids behavior

The difference in between those two commands is that the first one will
only display the SR LocalSID behaviors that are built-in VPP, while the
latter will display those behaviors plus the ones added with the SR
LocalSID Development Framework.

VPP keeps a ‘My LocalSID Table’ where it stores all the SR local SIDs
instantiated as well as their parameters. Every time a new local SID is
instantiated, a new entry is added to this table. In addition, counters
for correctly and incorrectly processed traffic are maintained for each
local SID. The counters store both the number of packets and bytes.

The contents of the ‘My LocalSID Table’ is shown with:

::

   vpp# show sr localsid
   SRv6 - My LocalSID Table:
   =========================
           Address:        c3::1
           Behavior:       DX6 (Endpoint with decapsulation and IPv6 cross-connect)
           Iface:          GigabitEthernet0/5/0
           Next hop:       b:c3::b
           Good traffic:   [51277 packets : 5332808 bytes]
           Bad traffic:    [0 packets : 0 bytes]
   --------------------

The traffic counters can be reset with:

::

   vpp# clear sr localsid-counters