summaryrefslogtreecommitdiffstats
path: root/sharpd
diff options
context:
space:
mode:
authorPhilippe Guibert <philippe.guibert@6wind.com>2024-04-25 13:38:23 +0200
committerPhilippe Guibert <philippe.guibert@6wind.com>2024-04-25 13:54:25 +0200
commitf6e58d26f638d0bcdc34dfc5890669036a0129df (patch)
treef7a880bac2e85b54aa86aeafbce6cebb2d74bee7 /sharpd
parentMerge pull request #15833 from mjstapp/fix_vtysh_bgp_defs (diff)
downloadfrr-f6e58d26f638d0bcdc34dfc5890669036a0129df.tar.xz
frr-f6e58d26f638d0bcdc34dfc5890669036a0129df.zip
zebra, sharpd: add srv6 End.DX6 support
Add the support for adding DX6 behavior into netlink layer of zebra. Add the necessary test in sharpd. > ubuntu2204# sharp install seg6local-routes 1:1::1:2 nexthop-seg6local loop1 End_DX6 4:4::4:6 1 > ubuntu2204# do show ipv6 route > [..] > D>* 1:1::1:2/128 [150/0] is directly connected, loop1, seg6local End.DX6 nh6 4:4::4:6, weight 1, 00:00:03 Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
Diffstat (limited to 'sharpd')
-rw-r--r--sharpd/sharp_vty.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/sharpd/sharp_vty.c b/sharpd/sharp_vty.c
index 07050ab93..21c596bf7 100644
--- a/sharpd/sharp_vty.c
+++ b/sharpd/sharp_vty.c
@@ -448,6 +448,7 @@ DEFPY (install_seg6local_routes,
End_X$seg6l_endx X:X::X:X$seg6l_endx_nh6|\
End_T$seg6l_endt (1-4294967295)$seg6l_endt_table|\
End_DX4$seg6l_enddx4 A.B.C.D$seg6l_enddx4_nh4|\
+ End_DX6$seg6l_enddx6 X:X::X:X$seg6l_enddx6_nh6|\
End_DT6$seg6l_enddt6 (1-4294967295)$seg6l_enddt6_table|\
End_DT4$seg6l_enddt4 (1-4294967295)$seg6l_enddt4_table|\
End_DT46$seg6l_enddt46 (1-4294967295)$seg6l_enddt46_table>\
@@ -467,6 +468,8 @@ DEFPY (install_seg6local_routes,
"Redirect table id to use\n"
"SRv6 End.DX4 function to use\n"
"V4 Nexthop address to use\n"
+ "SRv6 End.DX6 function to use\n"
+ "V6 Nexthop address to use\n"
"SRv6 End.DT6 function to use\n"
"Redirect table id to use\n"
"SRv6 End.DT4 function to use\n"
@@ -516,6 +519,9 @@ DEFPY (install_seg6local_routes,
if (seg6l_enddx4) {
action = ZEBRA_SEG6_LOCAL_ACTION_END_DX4;
ctx.nh4 = seg6l_enddx4_nh4;
+ } else if (seg6l_enddx6) {
+ action = ZEBRA_SEG6_LOCAL_ACTION_END_DX6;
+ ctx.nh6 = seg6l_enddx6_nh6;
} else if (seg6l_endx) {
action = ZEBRA_SEG6_LOCAL_ACTION_END_X;
ctx.nh6 = seg6l_endx_nh6;