bgpd: Add peer-groups to neighbor autocomplete

```
exit1-debian-11(config-router)# neighbor PGTEST peer-group
exit1-debian-11(config-router)# neighbor PEER peer-group
exit1-debian-11(config-router)# neighbor ?
  A.B.C.D   Neighbor address
     192.168.0.2 PEER PGTEST
  WORD      Interface name or neighbor tag
     PEER PGTEST
  X:X::X:X  Neighbor IPv6 address
     2a02🔤:17 2a02:bbd::2 PEER PGTEST
```

Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
This commit is contained in:
Donatas Abraitis 2022-01-16 22:01:47 +02:00
parent 3ae667e527
commit 8c20061f40

View File

@ -17495,7 +17495,20 @@ static struct cmd_node bgp_srv6_node = {
static void community_list_vty(void);
static void bgp_ac_neighbor(vector comps, struct cmd_token *token)
static void bgp_ac_peergroup(vector comps, struct cmd_token *token)
{
struct bgp *bgp;
struct peer_group *group;
struct listnode *lnbgp, *lnpeer;
for (ALL_LIST_ELEMENTS_RO(bm->bgp, lnbgp, bgp)) {
for (ALL_LIST_ELEMENTS_RO(bgp->group, lnpeer, group))
vector_set(comps,
XSTRDUP(MTYPE_COMPLETION, group->name));
}
}
static void bgp_ac_peer(vector comps, struct cmd_token *token)
{
struct bgp *bgp;
struct peer *peer;
@ -17525,25 +17538,18 @@ static void bgp_ac_neighbor(vector comps, struct cmd_token *token)
}
}
static void bgp_ac_neighbor(vector comps, struct cmd_token *token)
{
bgp_ac_peer(comps, token);
bgp_ac_peergroup(comps, token);
}
static const struct cmd_variable_handler bgp_var_neighbor[] = {
{.varname = "neighbor", .completions = bgp_ac_neighbor},
{.varname = "neighbors", .completions = bgp_ac_neighbor},
{.varname = "peer", .completions = bgp_ac_neighbor},
{.completions = NULL}};
static void bgp_ac_peergroup(vector comps, struct cmd_token *token)
{
struct bgp *bgp;
struct peer_group *group;
struct listnode *lnbgp, *lnpeer;
for (ALL_LIST_ELEMENTS_RO(bm->bgp, lnbgp, bgp)) {
for (ALL_LIST_ELEMENTS_RO(bgp->group, lnpeer, group))
vector_set(comps, XSTRDUP(MTYPE_COMPLETION,
group->name));
}
}
static const struct cmd_variable_handler bgp_var_peergroup[] = {
{.tokenname = "PGNAME", .completions = bgp_ac_peergroup},
{.completions = NULL} };