mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-04 10:09:25 +00:00
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:
parent
3ae667e527
commit
8c20061f40
@ -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} };
|
||||
|
Loading…
Reference in New Issue
Block a user