summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/filter.h1
-rw-r--r--lib/filter_cli.c8
-rw-r--r--lib/filter_nb.c1
3 files changed, 10 insertions, 0 deletions
diff --git a/lib/filter.h b/lib/filter.h
index d5a7e7d5e2..c7108b26ba 100644
--- a/lib/filter.h
+++ b/lib/filter.h
@@ -239,6 +239,7 @@ extern void access_list_show(struct vty *vty, struct lyd_node *dnode,
bool show_defaults);
extern void access_list_remark_show(struct vty *vty, struct lyd_node *dnode,
bool show_defaults);
+extern int prefix_list_cmp(struct lyd_node *dnode1, struct lyd_node *dnode2);
extern void prefix_list_show(struct vty *vty, struct lyd_node *dnode,
bool show_defaults);
extern void prefix_list_remark_show(struct vty *vty, struct lyd_node *dnode,
diff --git a/lib/filter_cli.c b/lib/filter_cli.c
index fd20ffc36e..893981ffab 100644
--- a/lib/filter_cli.c
+++ b/lib/filter_cli.c
@@ -1701,6 +1701,14 @@ ALIAS(
ACCESS_LIST_REMARK_STR
ACCESS_LIST_REMARK_LINE_STR)
+int prefix_list_cmp(struct lyd_node *dnode1, struct lyd_node *dnode2)
+{
+ uint32_t seq1 = yang_dnode_get_uint32(dnode1, "./sequence");
+ uint32_t seq2 = yang_dnode_get_uint32(dnode2, "./sequence");
+
+ return seq1 - seq2;
+}
+
void prefix_list_show(struct vty *vty, struct lyd_node *dnode,
bool show_defaults)
{
diff --git a/lib/filter_nb.c b/lib/filter_nb.c
index 717c56ee7c..3c05f10750 100644
--- a/lib/filter_nb.c
+++ b/lib/filter_nb.c
@@ -1691,6 +1691,7 @@ const struct frr_yang_module_info frr_filter_info = {
.cbs = {
.create = lib_prefix_list_entry_create,
.destroy = lib_prefix_list_entry_destroy,
+ .cli_cmp = prefix_list_cmp,
.cli_show = prefix_list_show,
}
},