]> git.puffer.fish Git - matthieu/frr.git/commitdiff
lib: fix order of interfaces in the config
authorIgor Ryzhov <iryzhov@nfware.com>
Wed, 6 Mar 2024 19:41:35 +0000 (21:41 +0200)
committerMergify <37929162+mergify[bot]@users.noreply.github.com>
Fri, 8 Mar 2024 13:12:49 +0000 (13:12 +0000)
Add missing cli_cmp callback. Without it, interfaces are not sorted and
printed in order they were created.

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
(cherry picked from commit 18da7369490af6bfb88431ad3f2c3a2934865f17)

lib/if.c

index a344c2b8657e32530e8fafc61c997963d279ce6d..a8ceac72432bce03260e903a90a96169d913e115 100644 (file)
--- a/lib/if.c
+++ b/lib/if.c
@@ -1340,6 +1340,15 @@ static void cli_show_interface_end(struct vty *vty,
        vty_out(vty, "exit\n");
 }
 
+static int cli_cmp_interface(const struct lyd_node *dnode1,
+                            const struct lyd_node *dnode2)
+{
+       const char *ifname1 = yang_dnode_get_string(dnode1, "name");
+       const char *ifname2 = yang_dnode_get_string(dnode2, "name");
+
+       return if_cmp_name_func(ifname1, ifname2);
+}
+
 void if_vty_config_start(struct vty *vty, struct interface *ifp)
 {
        vty_frame(vty, "!\n");
@@ -1760,6 +1769,7 @@ const struct frr_yang_module_info frr_interface_info = {
                                .destroy = lib_interface_destroy,
                                .cli_show = cli_show_interface,
                                .cli_show_end = cli_show_interface_end,
+                               .cli_cmp = cli_cmp_interface,
                                .get_next = lib_interface_get_next,
                                .get_keys = lib_interface_get_keys,
                                .lookup_entry = lib_interface_lookup_entry,
@@ -1842,6 +1852,7 @@ const struct frr_yang_module_info frr_interface_cli_info = {
                        .cbs = {
                                .cli_show = cli_show_interface,
                                .cli_show_end = cli_show_interface_end,
+                               .cli_cmp = cli_cmp_interface,
                        },
                },
                {