]> git.puffer.fish Git - matthieu/frr.git/commitdiff
staticd: Extend `ip_route_address_interface` to support SRv6 traffic steering
authorCarmine Scarpitta <cscarpit@cisco.com>
Tue, 24 Dec 2024 07:56:28 +0000 (08:56 +0100)
committerCarmine Scarpitta <cscarpit@cisco.com>
Mon, 3 Feb 2025 21:20:01 +0000 (22:20 +0100)
staticd already has a CLI to steer IPv6 traffic over a given SRv6 SID
list:

```
ipv6 route 2001:db8:1:1::/64 sr0 segments fcbb:bbbb:1:2:3:fe00::
```

This PR extends the existing CLI `ip route` to support steering of IPv4
traffic over an SRv6 SID list.

```
ip route 10.0.0.0/24 sr0 segments fcbb:bbbb:1:2:3:fe00::
```

Signed-off-by: Carmine Scarpitta <cscarpit@cisco.com>
staticd/static_vty.c

index ed2805d3eab95b61edc7db78a1d947972fc4214e..ce414121dca300332d2a558d172563644194074e 100644 (file)
@@ -564,6 +564,7 @@ DEFPY_YANG(ip_route_address_interface,
          |onlink$onlink                               \
          |color (1-4294967295)                        \
          |bfd$bfd [{multi-hop$bfd_multi_hop|source A.B.C.D$bfd_source|profile BFDPROF$bfd_profile}] \
+         |segments WORD \
           }]",
       NO_STR IP_STR
       "Establish static routes\n"
@@ -589,7 +590,9 @@ DEFPY_YANG(ip_route_address_interface,
       BFD_INTEGRATION_SOURCE_STR
       BFD_INTEGRATION_SOURCEV4_STR
       BFD_PROFILE_STR
-      BFD_PROFILE_NAME_STR)
+      BFD_PROFILE_NAME_STR
+      "Steer this route over an SRv6 SID list\n"
+      "SRv6 SID list\n")
 {
        struct static_route_args args = {
                .delete = !!no,
@@ -611,6 +614,7 @@ DEFPY_YANG(ip_route_address_interface,
                .bfd_multi_hop = !!bfd_multi_hop,
                .bfd_source = bfd_source_str,
                .bfd_profile = bfd_profile,
+               .segs = segments,
        };
 
        return static_route_nb_run(vty, &args);