Segment Routing

The nv unset commands remove the configuration you set with the equivalent nv set commands. This guide only describes an nv unset command if it differs from the nv set command.


nv set router segment-routing srv6 locator <locator-name>

Configures the SRv6 locator name for segment routing.

Command Syntax

Syntax Description
<locator-name> The SRv6 locator name.

Version History

Introduced in Cumulus Linux 5.14.0

Example

cumulus@switch:~$ nv set router segment-routing srv6 locator LEAF

nv set router segment-routing srv6 locator <locator-name> prefix <ipv6-prefix>

Configures the SRv6 locator prefix for segment routing. The prefix length must match the sum of block length and the node length.

Command Syntax

Syntax Description
<locator-name> The SRv6 locator name.
<ipv6-prefix> The IPv6 prefix.

Version History

Introduced in Cumulus Linux 5.14.0

Example

cumulus@switch:~$ nv set router segment-routing srv6 locator LEAF prefix fcbb::/16

nv set router segment-routing srv6 locator <locator-name> block-length

Configures the SRv6 locator block length for segment routing. You can specify a value between 16 and 64. The default value is 16.

The following table provides the supported formats for block length.

Format Block Length
uN 32
uA + uN 16
uN only 16
uA only 16

Command Syntax

Syntax Description
<locator-name> The SRv6 locator name.

Version History

Introduced in Cumulus Linux 5.14.0

Example

cumulus@switch:~$ nv set router segment-routing srv6 locator LEAF block-length 16

nv set router segment-routing srv6 locator <locator-name> node-length

Configures the SRv6 locator node length for segment routing. You can specify a value between 0 and 64. The default value is 16.

The following table provides the supported formats for node length.

Format Node Length
uN 16
uA + uN 16
uN only 16
uA only 0

Command Syntax

Syntax Description
<locator-name> The SRv6 locator name.

Version History

Introduced in Cumulus Linux 5.14.0

Example

cumulus@switch:~$ nv set router segment-routing srv6 locator LEAF node-length 0

nv set router segment-routing srv6 locator <locator-name> func-length

Configures the SRv6 locator function length for segment routing. You can specify a value between 0 and 64. The default value is 0.

The following table provides the supported formats for function length.

Format Function Length
uN 0
uA + uN 16
uN only 0
uA only 16

Command Syntax

Syntax Description
<locator-name> The SRv6 locator name.

Version History

Introduced in Cumulus Linux 5.14.0

Example

cumulus@switch:~$ nv set router segment-routing srv6 locator LEAF func-length 16

nv set router segment-routing srv6 state

Enables and disables segment routing. You can specify enabled or disabled.

Cumulus Linux supports source based routing with SRv6. The NICs connected to the switch fabric perform SRv6 origination and termination, and the switches act as SRv6-aware nodes. SRv6 allows NICs to directly control the path that traffic takes throughout the fabric by encoding an ordered list of SRv6 segment identifiers (uSIDs) in the packet header.

Cumulus Linux supports uN (End with NEXT-CSID) and uA (End.X with NEXT-CSID) endpoint behaviors, defined in RFC9800.

Cumulus Linux supports segment routing:

  • On the Spectrum-4 switch only.
  • In the default VRF only.

Version History

Introduced in Cumulus Linux 5.14.0

Example

cumulus@switch:~$ nv set router segment-routing srv6 state enabled

nv set router segment-routing static srv6-sid <sid>

Configures the static segment identifier.

Command Syntax

Syntax Description
<sid> The static segment identifier.

Version History

Introduced in Cumulus Linux 5.14.0

Example

cumulus@switch:~$ nv set router segment-routing static srv6-sid 2001:db8:1:1::100/48

nv set router segment-routing static srv6-sid locator-name

Configures the static segment identifier locator name. The static segment identifier must be part of the locator prefix.

Command Syntax

Syntax Description
<sid> The static segment identifier.

Version History

Introduced in Cumulus Linux 5.14.0

Example

cumulus@switch:~$ nv set router segment-routing static srv6-sid 2001:db8:1:1::100/48 locator-name LEAF

nv set router segment-routing static srv6-sid <sid> behavior

Configures the static segment identifier endpoint. You can specify uA or uN. For uA segment identifiers, next hop (peer link-local) learning occurs with router advertisements. Spectrum switches enable router advertisements on the interface automatically when you configure a uA segment identifier; however, if the adjacent device is a non-Spectrum switch, you need to enable router advertisements on the adjacent device on the connected interface to ensure proper next hop discovery.

Command Syntax

Syntax Description
<sid> The static segment identifier.

Version History

Introduced in Cumulus Linux 5.14.0

Example

cumulus@switch:~$ nv set router segment-routing static srv6-sid 2001:db8:1:1::100/48 behavior uA

nv set router segment-routing static srv6-sid <sid> interface <interface-name>

Configures the interface for the static segment identifier uA endpoint behavior.

Command Syntax

Syntax Description
<sid> The static segment identifier.
<interface-name> The name of the interface.

Version History

Introduced in Cumulus Linux 5.14.0

Example

cumulus@switch:~$ nv set router segment-routing static srv6-sid 2001:db8:1:1::100/48 interface swp1