]> git.puffer.fish Git - mirror/frr.git/commitdiff
staticd: Extend `ip_route` CLI to support SRv6 traffic steering
authorCarmine Scarpitta <cscarpit@cisco.com>
Tue, 24 Dec 2024 07:58:41 +0000 (08:58 +0100)
committerCarmine Scarpitta <cscarpit@cisco.com>
Mon, 3 Feb 2025 21:20:34 +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 cabcf00b034dbdd8b338dfae2b3609c72a670d43..b84e3b6a6cb9f03efb9904926d5e8c01d223bc66 100644 (file)
@@ -704,6 +704,7 @@ DEFPY_YANG(ip_route,
          |nexthop-vrf NAME                            \
          |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"
@@ -728,7 +729,9 @@ DEFPY_YANG(ip_route,
       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,
@@ -749,6 +752,7 @@ DEFPY_YANG(ip_route,
                .bfd_multi_hop = !!bfd_multi_hop,
                .bfd_source = bfd_source_str,
                .bfd_profile = bfd_profile,
+               .segs = segments,
        };
 
        return static_route_nb_run(vty, &args);