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