diff options
author | Donald Sharp <sharpd@cumulusnetworks.com> | 2019-06-05 12:51:08 +0200 |
---|---|---|
committer | Donald Sharp <sharpd@cumulusnetworks.com> | 2019-06-05 12:51:08 +0200 |
commit | 17f8c6520206ffb5937fa35acce8b9145e443166 (patch) | |
tree | 1fe4c12aec135580a04fa209817b2b9fc308b555 /pbrd | |
parent | lib, pbrd, sharpd, vtysh: Add autocompletion for 'nexthop-group' (diff) | |
download | frr-17f8c6520206ffb5937fa35acce8b9145e443166.tar.xz frr-17f8c6520206ffb5937fa35acce8b9145e443166.zip |
pbrd: Allow autocompletion for pbr-map PBRMAP
Allow the end user to auto-complete the pbr-map name.
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
Diffstat (limited to 'pbrd')
-rw-r--r-- | pbrd/pbr_vty.c | 25 |
1 files changed, 22 insertions, 3 deletions
diff --git a/pbrd/pbr_vty.c b/pbrd/pbr_vty.c index 8e1683565..a71c712ea 100644 --- a/pbrd/pbr_vty.c +++ b/pbrd/pbr_vty.c @@ -38,7 +38,7 @@ #include "pbrd/pbr_vty_clippy.c" #endif -DEFUN_NOSH(pbr_map, pbr_map_cmd, "pbr-map WORD seq (1-700)", +DEFUN_NOSH(pbr_map, pbr_map_cmd, "pbr-map PBRMAP seq (1-700)", "Create pbr-map or enter pbr-map command mode\n" "The name of the PBR MAP\n" "Sequence to insert in existing pbr-map entry\n" @@ -54,7 +54,7 @@ DEFUN_NOSH(pbr_map, pbr_map_cmd, "pbr-map WORD seq (1-700)", return CMD_SUCCESS; } -DEFUN_NOSH(no_pbr_map, no_pbr_map_cmd, "no pbr-map WORD [seq (1-700)]", +DEFUN_NOSH(no_pbr_map, no_pbr_map_cmd, "no pbr-map PBRMAP [seq (1-700)]", NO_STR "Delete pbr-map\n" "The name of the PBR MAP\n" @@ -348,7 +348,7 @@ DEFPY(pbr_map_nexthop, pbr_map_nexthop_cmd, DEFPY (pbr_policy, pbr_policy_cmd, - "[no] pbr-policy NAME$mapname", + "[no] pbr-policy PBRMAP$mapname", NO_STR "Policy to use\n" "Name of the pbr-map to apply\n") @@ -661,8 +661,27 @@ static int pbr_vty_map_config_write(struct vty *vty) return 1; } +static void pbr_map_completer(vector comps, struct cmd_token *token) +{ + struct pbr_map *pbrm; + + RB_FOREACH (pbrm, pbr_map_entry_head, &pbr_maps) + vector_set(comps, XSTRDUP(MTYPE_COMPLETION, pbrm->name)); +} + +static const struct cmd_variable_handler pbr_map_name[] = { + { + .tokenname = "PBRMAP", .completions = pbr_map_completer, + }, + { + .completions = NULL + } +}; + void pbr_vty_init(void) { + cmd_variable_handler_register(pbr_map_name); + install_node(&interface_node, pbr_interface_config_write); if_cmd_init(); |