diff options
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/filter_cli.c | 42 |
1 files changed, 38 insertions, 4 deletions
diff --git a/lib/filter_cli.c b/lib/filter_cli.c index e147ed5639..f030ce1b33 100644 --- a/lib/filter_cli.c +++ b/lib/filter_cli.c @@ -1360,14 +1360,31 @@ DEFPY_YANG( nb_cli_enqueue_change(vty, "./ipv4-prefix", NB_OP_MODIFY, prefix_str); - if (ge_str) + if (ge_str) { nb_cli_enqueue_change( vty, "./ipv4-prefix-length-greater-or-equal", NB_OP_MODIFY, ge_str); - if (le_str) + } else { + /* + * Remove old ge if not being modified + */ + nb_cli_enqueue_change( + vty, "./ipv4-prefix-length-greater-or-equal", + NB_OP_DESTROY, NULL); + } + + if (le_str) { nb_cli_enqueue_change( vty, "./ipv4-prefix-length-lesser-or-equal", NB_OP_MODIFY, le_str); + } else { + /* + * Remove old le if not being modified + */ + nb_cli_enqueue_change( + vty, "./ipv4-prefix-length-lesser-or-equal", + NB_OP_DESTROY, NULL); + } } else { nb_cli_enqueue_change(vty, "./any", NB_OP_CREATE, NULL); } @@ -1561,14 +1578,31 @@ DEFPY_YANG( nb_cli_enqueue_change(vty, "./ipv6-prefix", NB_OP_MODIFY, prefix_str); - if (ge_str) + if (ge_str) { nb_cli_enqueue_change( vty, "./ipv6-prefix-length-greater-or-equal", NB_OP_MODIFY, ge_str); - if (le_str) + } else { + /* + * Remove old ge if not being modified + */ + nb_cli_enqueue_change( + vty, "./ipv6-prefix-length-greater-or-equal", + NB_OP_DESTROY, NULL); + } + + if (le_str) { nb_cli_enqueue_change( vty, "./ipv6-prefix-length-lesser-or-equal", NB_OP_MODIFY, le_str); + } else { + /* + * Remove old le if not being modified + */ + nb_cli_enqueue_change( + vty, "./ipv6-prefix-length-lesser-or-equal", + NB_OP_DESTROY, NULL); + } } else { nb_cli_enqueue_change(vty, "./any", NB_OP_CREATE, NULL); } |
