**Note**: this depends on FRR commits: [[ https://github.com/FRRouting/frr/commit/458e8a851608b8308b564e6cbfe95314629dccda | #458e8a8 ]], [[ https://github.com/FRRouting/frr/commit/dcb03c44e7544ec0381c2706c7c5972dffb16adb | #dcb03c ]], [[ https://github.com/FRRouting/frr/pull/17719 | PR#17719 ]]. They do not yet appear to be part of any release.
Add options to configure SRv6 routing in IS-IS:
VyOS proposed:
```
protocols {
isis {
[...]
segment-routing {
srv6 {
locator MAIN
node-msd { # optional MSD configuration
max-end-d 40
max-end-pop 10
max-h-encaps 15
max-segs-left 20
}
interface dum6 # optional see note below
}
}
}
}
```
FRR:
```
router isis VyOS
[...]
segment-routing srv6
locator MAIN
node-msd
max-end-d 40
max-end-pop 10
max-h-encaps 15
max-segs-left 20
exit
exit
exit
```
**Note**: this requires the addition of a dummy interface `sr0` as explained by FRR (https://docs.frrouting.org/en/stable-10.2/isisd.html#clicmd-interface-NAME):
> Specify the dummy interface used to install SRv6 SIDs in the Linux data plane. The interface must be created manually. By default, the interface is ‘sr0’. The interface can be created using the iproute2 utility:
>
> ip link add sr0 type dummy
> ip link set sr0 up
I create/delete this interface as part of the configuration validation if the user does not specify a specific dummy interface. Please let me know if this should be relocated elsewhere.
Addition verification `show isis segment-routing srv6 node` command for IS-IS SRv6 locators:
```
vyos@vyos:~$ show isis segment-routing srv6 node
Area VyOS:
IS-IS L1 SRv6-Nodes:
System ID Algorithm SRH Max SL SRH Max End Pop SRH Max H.encaps SRH Max End D
-----------------------------------------------------------------------------------------
0000.0000.0001 S-SPF 3 3 2 5
IS-IS L2 SRv6-Nodes:
System ID Algorithm SRH Max SL SRH Max End Pop SRH Max H.encaps SRH Max End D
-----------------------------------------------------------------------------------------
0000.0000.0001 S-SPF 3 3 2 5
```