mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-06 09:00:55 +00:00
Revert "bgpd: Temp fix to allow numbered peers to be part of a peer group"
This reverts commit 2a059a5448
.
This commit is contained in:
parent
d6d7ed37c9
commit
2373db75f7
@ -5167,63 +5167,27 @@ ALIAS_HIDDEN(no_neighbor_activate, no_neighbor_activate_hidden_cmd,
|
||||
NO_STR NEIGHBOR_STR NEIGHBOR_ADDR_STR2
|
||||
"Enable the Address Family for this Neighbor\n")
|
||||
|
||||
DEFUN (neighbor_set_peer_group,
|
||||
neighbor_set_peer_group_cmd,
|
||||
"neighbor <A.B.C.D|X:X::X:X|WORD> peer-group PGNAME",
|
||||
NEIGHBOR_STR
|
||||
NEIGHBOR_ADDR_STR2
|
||||
"Member of the peer-group\n"
|
||||
"Peer-group name\n")
|
||||
DEFUN_YANG (neighbor_set_peer_group,
|
||||
neighbor_set_peer_group_cmd,
|
||||
"neighbor <A.B.C.D|X:X::X:X|WORD> peer-group PGNAME",
|
||||
NEIGHBOR_STR
|
||||
NEIGHBOR_ADDR_STR2
|
||||
"Member of the peer-group\n"
|
||||
"Peer-group name\n")
|
||||
{
|
||||
VTY_DECLVAR_CONTEXT(bgp, bgp);
|
||||
int idx_peer = 1;
|
||||
int idx_word = 3;
|
||||
int ret;
|
||||
as_t as;
|
||||
union sockunion su;
|
||||
struct peer *peer;
|
||||
struct peer_group *group;
|
||||
char base_xpath[XPATH_MAXLEN];
|
||||
|
||||
ret = str2sockunion(argv[idx_peer]->arg, &su);
|
||||
if (ret < 0) {
|
||||
peer = peer_lookup_by_conf_if(bgp, argv[idx_peer]->arg);
|
||||
if (!peer) {
|
||||
vty_out(vty, "%% Malformed address or name: %s\n",
|
||||
argv[idx_peer]->arg);
|
||||
return CMD_WARNING_CONFIG_FAILED;
|
||||
}
|
||||
} else {
|
||||
if (peer_address_self_check(bgp, &su)) {
|
||||
vty_out(vty,
|
||||
"%% Can not configure the local system as neighbor\n");
|
||||
return CMD_WARNING_CONFIG_FAILED;
|
||||
}
|
||||
|
||||
/* Disallow for dynamic neighbor. */
|
||||
peer = peer_lookup(bgp, &su);
|
||||
if (peer && peer_dynamic_neighbor(peer)) {
|
||||
vty_out(vty,
|
||||
"%% Operation not allowed on a dynamic neighbor\n");
|
||||
return CMD_WARNING_CONFIG_FAILED;
|
||||
}
|
||||
}
|
||||
|
||||
group = peer_group_lookup(bgp, argv[idx_word]->arg);
|
||||
if (!group) {
|
||||
vty_out(vty, "%% Configure the peer-group first\n");
|
||||
if (peer_and_group_lookup_nb(vty, argv[idx_peer]->arg, base_xpath,
|
||||
sizeof(base_xpath), NULL)
|
||||
< 0)
|
||||
return CMD_WARNING_CONFIG_FAILED;
|
||||
}
|
||||
|
||||
ret = peer_group_bind(bgp, &su, peer, group, &as);
|
||||
nb_cli_enqueue_change(vty, "./peer-group", NB_OP_MODIFY,
|
||||
argv[idx_word]->arg);
|
||||
|
||||
if (ret == BGP_ERR_PEER_GROUP_PEER_TYPE_DIFFERENT) {
|
||||
vty_out(vty,
|
||||
"%% Peer with AS %u cannot be in this peer-group, members must be all internal or all external\n",
|
||||
as);
|
||||
return CMD_WARNING_CONFIG_FAILED;
|
||||
}
|
||||
|
||||
return bgp_vty_return(vty, ret);
|
||||
return nb_cli_apply_changes(vty, base_xpath);
|
||||
}
|
||||
|
||||
ALIAS_HIDDEN(neighbor_set_peer_group, neighbor_set_peer_group_hidden_cmd,
|
||||
|
Loading…
Reference in New Issue
Block a user