**Note**: this depends on FRR commit [[ https://github.com/FRRouting/frr/commit/458e8a851608b8308b564e6cbfe95314629dccda | #458e8a8 ]] (merged to master in Nov 2024). It does 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
}
}
}
}
```
FRR:
```
router isis VyOS
[...]
segment-routing srv6
locator MAIN
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. Please let me know if this should be relocated elsewhere. I have also opted to not have this configurable at the moment due to an apparent bug in how FRR renders the configuration for this interface which causes additional issues with `frr-reload.py`:
```
# sample FRR config
router isis VyOS
net 49.0001.0000.0000.0001.00
segment-routing on
segment-routing srv6
locator MAIN
exit # <- errant exit placement causing issues with frr-reload.py
interface eth3
exit
```
Additionally adds 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
```