]> git.puffer.fish Git - matthieu/frr.git/commitdiff
zebra: display srv6 encapsulation source-address when configured
authorPhilippe Guibert <philippe.guibert@6wind.com>
Mon, 3 Jun 2024 07:53:34 +0000 (09:53 +0200)
committerPhilippe Guibert <philippe.guibert@6wind.com>
Tue, 4 Jun 2024 07:55:21 +0000 (09:55 +0200)
The 'show running-config' does not display the ipv6 source address
when a locator is not configured. Fix this by systematically displaying
the ipv6 source address.

Fixes: 6a0956169b31 ("zebra: Add encap source address to SRv6 config write function")
Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
zebra/zebra_srv6_vty.c

index c5b8505992d69170e572d27707cab7fc2603cd69..d5cd30e64bfc5c54e0ae0874bdcb6130c33d9674 100644 (file)
@@ -475,16 +475,24 @@ static int zebra_sr_config(struct vty *vty)
        struct listnode *node;
        struct srv6_locator *locator;
        char str[256];
+       bool display_source_srv6 = false;
+
+       if (srv6 && !IPV6_ADDR_SAME(&srv6->encap_src_addr, &in6addr_any))
+               display_source_srv6 = true;
 
        vty_out(vty, "!\n");
-       if (zebra_srv6_is_enable()) {
+       if (display_source_srv6 || zebra_srv6_is_enable()) {
                vty_out(vty, "segment-routing\n");
                vty_out(vty, " srv6\n");
+       }
+       if (display_source_srv6) {
                if (!IPV6_ADDR_SAME(&srv6->encap_src_addr, &in6addr_any)) {
                        vty_out(vty, "  encapsulation\n");
                        vty_out(vty, "   source-address %pI6\n",
                                &srv6->encap_src_addr);
                }
+       }
+       if (zebra_srv6_is_enable()) {
                vty_out(vty, "  locators\n");
                for (ALL_LIST_ELEMENTS_RO(srv6->locators, node, locator)) {
                        inet_ntop(AF_INET6, &locator->prefix.prefix,
@@ -514,6 +522,8 @@ static int zebra_sr_config(struct vty *vty)
                vty_out(vty, "  !\n");
                vty_out(vty, " exit\n");
                vty_out(vty, " !\n");
+       }
+       if (display_source_srv6 || zebra_srv6_is_enable()) {
                vty_out(vty, "exit\n");
                vty_out(vty, "!\n");
        }