diff options
| author | David Lamparter <equinox@diac24.net> | 2017-06-16 21:59:23 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2017-06-16 21:59:23 +0200 |
| commit | 2dc1ef552b453d9e2b31599ca8d4c065dc2ccbfc (patch) | |
| tree | 6e2a3defc92a5f2c5de1f01b2f4dfc7f26900577 /lib/vrf.c | |
| parent | 430000deeed77491c249b81d1a11512e6ff3f4e7 (diff) | |
| parent | 23312e71732980f3f549d648a18ee1535bd57c2f (diff) | |
Merge pull request #725 from donaldsharp/vrf_completion
Vrf completion
Diffstat (limited to 'lib/vrf.c')
| -rw-r--r-- | lib/vrf.c | 24 |
1 files changed, 24 insertions, 0 deletions
@@ -377,6 +377,28 @@ vrf_bitmap_check (vrf_bitmap_t bmap, vrf_id_t vrf_id) VRF_BITMAP_FLAG (offset)) ? 1 : 0; } +static void +vrf_autocomplete (vector comps, struct cmd_token *token) +{ + struct vrf *vrf = NULL; + + RB_FOREACH (vrf, vrf_name_head, &vrfs_by_name) + { + if (vrf->vrf_id != 0) + vector_set (comps, XSTRDUP (MTYPE_COMPLETION, vrf->name)); + } +} + +static const struct cmd_variable_handler vrf_var_handlers[] = { + { + .varname = "vrf", + .completions = vrf_autocomplete, + }, + { + .completions = NULL + }, +}; + /* Initialize VRF module. */ void vrf_init (int (*create)(struct vrf *), @@ -408,6 +430,8 @@ vrf_init (int (*create)(struct vrf *), zlog_err ("vrf_init: failed to enable the default VRF!"); exit (1); } + + cmd_variable_handler_register (vrf_var_handlers); } /* Terminate VRF module. */ |
