mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-05 20:51:17 +00:00
Revert "bgpd: convert neighbor peer config to transactional"
This reverts commit 8611c7f3b6
.
This commit is contained in:
parent
80d6a89c9d
commit
c36bc05fcd
@ -2856,29 +2856,12 @@ int bgp_neighbors_neighbor_capability_options_dynamic_capability_modify(
|
||||
int bgp_neighbors_neighbor_capability_options_strict_capability_modify(
|
||||
struct nb_cb_modify_args *args)
|
||||
{
|
||||
struct bgp *bgp;
|
||||
const char *peer_str;
|
||||
struct peer *peer;
|
||||
bool enable = false;
|
||||
|
||||
switch (args->event) {
|
||||
case NB_EV_VALIDATE:
|
||||
case NB_EV_PREPARE:
|
||||
case NB_EV_ABORT:
|
||||
return NB_OK;
|
||||
case NB_EV_APPLY:
|
||||
bgp = nb_running_get_entry(args->dnode, NULL, true);
|
||||
peer_str = yang_dnode_get_string(args->dnode,
|
||||
"../../remote-address");
|
||||
peer = bgp_neighbor_peer_lookup(bgp, peer_str, args->errmsg,
|
||||
args->errmsg_len);
|
||||
|
||||
enable = yang_dnode_get_bool(args->dnode, NULL);
|
||||
|
||||
peer_flag_modify_nb(bgp, peer_str, peer,
|
||||
PEER_FLAG_STRICT_CAP_MATCH, enable,
|
||||
args->errmsg, args->errmsg_len);
|
||||
|
||||
/* TODO: implement me. */
|
||||
break;
|
||||
}
|
||||
|
||||
@ -2947,29 +2930,12 @@ int bgp_neighbors_neighbor_capability_options_capability_negotiate_modify(
|
||||
int bgp_neighbors_neighbor_capability_options_override_capability_modify(
|
||||
struct nb_cb_modify_args *args)
|
||||
{
|
||||
struct bgp *bgp;
|
||||
const char *peer_str;
|
||||
struct peer *peer;
|
||||
bool enable = false;
|
||||
|
||||
switch (args->event) {
|
||||
case NB_EV_VALIDATE:
|
||||
case NB_EV_PREPARE:
|
||||
case NB_EV_ABORT:
|
||||
return NB_OK;
|
||||
case NB_EV_APPLY:
|
||||
bgp = nb_running_get_entry(args->dnode, NULL, true);
|
||||
peer_str = yang_dnode_get_string(args->dnode,
|
||||
"../../remote-address");
|
||||
peer = bgp_neighbor_peer_lookup(bgp, peer_str, args->errmsg,
|
||||
args->errmsg_len);
|
||||
|
||||
enable = yang_dnode_get_bool(args->dnode, NULL);
|
||||
|
||||
peer_flag_modify_nb(bgp, peer_str, peer,
|
||||
PEER_FLAG_OVERRIDE_CAPABILITY, enable,
|
||||
args->errmsg, args->errmsg_len);
|
||||
|
||||
/* TODO: implement me. */
|
||||
break;
|
||||
}
|
||||
|
||||
@ -4871,31 +4837,12 @@ int bgp_neighbors_unnumbered_neighbor_capability_options_dynamic_capability_modi
|
||||
int bgp_neighbors_unnumbered_neighbor_capability_options_strict_capability_modify(
|
||||
struct nb_cb_modify_args *args)
|
||||
{
|
||||
struct bgp *bgp;
|
||||
const char *peer_str;
|
||||
struct peer *peer;
|
||||
bool enable = false;
|
||||
|
||||
switch (args->event) {
|
||||
case NB_EV_VALIDATE:
|
||||
case NB_EV_PREPARE:
|
||||
case NB_EV_ABORT:
|
||||
return NB_OK;
|
||||
case NB_EV_APPLY:
|
||||
bgp = nb_running_get_entry(args->dnode, NULL, true);
|
||||
peer_str =
|
||||
yang_dnode_get_string(args->dnode, "../../interface");
|
||||
peer = bgp_unnumbered_neighbor_peer_lookup(
|
||||
bgp, peer_str, args->errmsg, args->errmsg_len);
|
||||
if (!peer)
|
||||
return NB_ERR_INCONSISTENCY;
|
||||
|
||||
enable = yang_dnode_get_bool(args->dnode, NULL);
|
||||
|
||||
peer_flag_modify_nb(bgp, peer_str, peer,
|
||||
PEER_FLAG_STRICT_CAP_MATCH, enable,
|
||||
args->errmsg, args->errmsg_len);
|
||||
|
||||
/* TODO: implement me. */
|
||||
break;
|
||||
}
|
||||
|
||||
@ -4966,29 +4913,12 @@ int bgp_neighbors_unnumbered_neighbor_capability_options_capability_negotiate_mo
|
||||
int bgp_neighbors_unnumbered_neighbor_capability_options_override_capability_modify(
|
||||
struct nb_cb_modify_args *args)
|
||||
{
|
||||
struct bgp *bgp;
|
||||
const char *peer_str;
|
||||
struct peer *peer;
|
||||
bool enable = false;
|
||||
|
||||
switch (args->event) {
|
||||
case NB_EV_VALIDATE:
|
||||
case NB_EV_PREPARE:
|
||||
case NB_EV_ABORT:
|
||||
return NB_OK;
|
||||
case NB_EV_APPLY:
|
||||
bgp = nb_running_get_entry(args->dnode, NULL, true);
|
||||
peer_str =
|
||||
yang_dnode_get_string(args->dnode, "../../interface");
|
||||
peer = bgp_unnumbered_neighbor_peer_lookup(
|
||||
bgp, peer_str, args->errmsg, args->errmsg_len);
|
||||
|
||||
enable = yang_dnode_get_bool(args->dnode, NULL);
|
||||
|
||||
peer_flag_modify_nb(bgp, peer_str, peer,
|
||||
PEER_FLAG_OVERRIDE_CAPABILITY, enable,
|
||||
args->errmsg, args->errmsg_len);
|
||||
|
||||
/* TODO: implement me. */
|
||||
break;
|
||||
}
|
||||
|
||||
@ -6748,30 +6678,12 @@ int bgp_peer_groups_peer_group_capability_options_dynamic_capability_modify(
|
||||
int bgp_peer_groups_peer_group_capability_options_strict_capability_modify(
|
||||
struct nb_cb_modify_args *args)
|
||||
{
|
||||
struct bgp *bgp;
|
||||
const char *peer_str;
|
||||
struct peer *peer;
|
||||
bool enable = false;
|
||||
|
||||
switch (args->event) {
|
||||
case NB_EV_VALIDATE:
|
||||
case NB_EV_PREPARE:
|
||||
case NB_EV_ABORT:
|
||||
return NB_OK;
|
||||
case NB_EV_APPLY:
|
||||
bgp = nb_running_get_entry(args->dnode, NULL, true);
|
||||
peer_str = yang_dnode_get_string(args->dnode,
|
||||
"../../peer-group-name");
|
||||
peer = bgp_peer_group_peer_lookup(bgp, peer_str);
|
||||
if (!peer)
|
||||
return NB_ERR_INCONSISTENCY;
|
||||
|
||||
enable = yang_dnode_get_bool(args->dnode, NULL);
|
||||
|
||||
peer_flag_modify_nb(bgp, peer_str, peer,
|
||||
PEER_FLAG_STRICT_CAP_MATCH, enable,
|
||||
args->errmsg, args->errmsg_len);
|
||||
|
||||
/* TODO: implement me. */
|
||||
break;
|
||||
}
|
||||
|
||||
@ -6841,30 +6753,12 @@ int bgp_peer_groups_peer_group_capability_options_capability_negotiate_modify(
|
||||
int bgp_peer_groups_peer_group_capability_options_override_capability_modify(
|
||||
struct nb_cb_modify_args *args)
|
||||
{
|
||||
struct bgp *bgp;
|
||||
const char *peer_str;
|
||||
struct peer *peer;
|
||||
bool enable = false;
|
||||
|
||||
switch (args->event) {
|
||||
case NB_EV_VALIDATE:
|
||||
case NB_EV_PREPARE:
|
||||
case NB_EV_ABORT:
|
||||
return NB_OK;
|
||||
case NB_EV_APPLY:
|
||||
bgp = nb_running_get_entry(args->dnode, NULL, true);
|
||||
peer_str = yang_dnode_get_string(args->dnode,
|
||||
"../../peer-group-name");
|
||||
peer = bgp_peer_group_peer_lookup(bgp, peer_str);
|
||||
if (!peer)
|
||||
return NB_ERR_INCONSISTENCY;
|
||||
|
||||
enable = yang_dnode_get_bool(args->dnode, NULL);
|
||||
|
||||
peer_flag_modify_nb(bgp, peer_str, peer,
|
||||
PEER_FLAG_OVERRIDE_CAPABILITY, enable,
|
||||
args->errmsg, args->errmsg_len);
|
||||
|
||||
/* TODO: implement me. */
|
||||
break;
|
||||
}
|
||||
|
||||
|
@ -7524,7 +7524,7 @@ ALIAS_HIDDEN(no_neighbor_weight, no_neighbor_weight_hidden_cmd,
|
||||
|
||||
|
||||
/* Override capability negotiation. */
|
||||
DEFUN_YANG (neighbor_override_capability,
|
||||
DEFUN (neighbor_override_capability,
|
||||
neighbor_override_capability_cmd,
|
||||
"neighbor <A.B.C.D|X:X::X:X|WORD> override-capability",
|
||||
NEIGHBOR_STR
|
||||
@ -7532,21 +7532,11 @@ DEFUN_YANG (neighbor_override_capability,
|
||||
"Override capability negotiation result\n")
|
||||
{
|
||||
int idx_peer = 1;
|
||||
char base_xpath[XPATH_MAXLEN];
|
||||
|
||||
if (peer_and_group_lookup_nb(vty, argv[idx_peer]->arg, base_xpath,
|
||||
sizeof(base_xpath), NULL)
|
||||
< 0)
|
||||
return CMD_WARNING_CONFIG_FAILED;
|
||||
|
||||
nb_cli_enqueue_change(
|
||||
vty, "./capability-options/override-capability",
|
||||
NB_OP_MODIFY, "true");
|
||||
|
||||
return nb_cli_apply_changes(vty, base_xpath);
|
||||
return peer_flag_set_vty(vty, argv[idx_peer]->arg,
|
||||
PEER_FLAG_OVERRIDE_CAPABILITY);
|
||||
}
|
||||
|
||||
DEFUN_YANG (no_neighbor_override_capability,
|
||||
DEFUN (no_neighbor_override_capability,
|
||||
no_neighbor_override_capability_cmd,
|
||||
"no neighbor <A.B.C.D|X:X::X:X|WORD> override-capability",
|
||||
NO_STR
|
||||
@ -7555,21 +7545,11 @@ DEFUN_YANG (no_neighbor_override_capability,
|
||||
"Override capability negotiation result\n")
|
||||
{
|
||||
int idx_peer = 2;
|
||||
char base_xpath[XPATH_MAXLEN];
|
||||
|
||||
if (peer_and_group_lookup_nb(vty, argv[idx_peer]->arg, base_xpath,
|
||||
sizeof(base_xpath), NULL)
|
||||
< 0)
|
||||
return CMD_WARNING_CONFIG_FAILED;
|
||||
|
||||
nb_cli_enqueue_change(
|
||||
vty, "./capability-options/override-capability",
|
||||
NB_OP_MODIFY, "false");
|
||||
|
||||
return nb_cli_apply_changes(vty, base_xpath);
|
||||
return peer_flag_unset_vty(vty, argv[idx_peer]->arg,
|
||||
PEER_FLAG_OVERRIDE_CAPABILITY);
|
||||
}
|
||||
|
||||
DEFUN_YANG (neighbor_strict_capability,
|
||||
DEFUN (neighbor_strict_capability,
|
||||
neighbor_strict_capability_cmd,
|
||||
"neighbor <A.B.C.D|X:X::X:X|WORD> strict-capability-match",
|
||||
NEIGHBOR_STR
|
||||
@ -7577,21 +7557,12 @@ DEFUN_YANG (neighbor_strict_capability,
|
||||
"Strict capability negotiation match\n")
|
||||
{
|
||||
int idx_peer = 1;
|
||||
char base_xpath[XPATH_MAXLEN];
|
||||
|
||||
if (peer_and_group_lookup_nb(vty, argv[idx_peer]->arg, base_xpath,
|
||||
sizeof(base_xpath), NULL)
|
||||
< 0)
|
||||
return CMD_WARNING_CONFIG_FAILED;
|
||||
|
||||
nb_cli_enqueue_change(
|
||||
vty, "./capability-options/strict-capability",
|
||||
NB_OP_MODIFY, "true");
|
||||
|
||||
return nb_cli_apply_changes(vty, base_xpath);
|
||||
return peer_flag_set_vty(vty, argv[idx_peer]->arg,
|
||||
PEER_FLAG_STRICT_CAP_MATCH);
|
||||
}
|
||||
|
||||
DEFUN_YANG (no_neighbor_strict_capability,
|
||||
DEFUN (no_neighbor_strict_capability,
|
||||
no_neighbor_strict_capability_cmd,
|
||||
"no neighbor <A.B.C.D|X:X::X:X|WORD> strict-capability-match",
|
||||
NO_STR
|
||||
@ -7600,18 +7571,9 @@ DEFUN_YANG (no_neighbor_strict_capability,
|
||||
"Strict capability negotiation match\n")
|
||||
{
|
||||
int idx_peer = 2;
|
||||
char base_xpath[XPATH_MAXLEN];
|
||||
|
||||
if (peer_and_group_lookup_nb(vty, argv[idx_peer]->arg, base_xpath,
|
||||
sizeof(base_xpath), NULL)
|
||||
< 0)
|
||||
return CMD_WARNING_CONFIG_FAILED;
|
||||
|
||||
nb_cli_enqueue_change(
|
||||
vty, "./capability-options/strict-capability",
|
||||
NB_OP_MODIFY, "false");
|
||||
|
||||
return nb_cli_apply_changes(vty, base_xpath);
|
||||
return peer_flag_unset_vty(vty, argv[idx_peer]->arg,
|
||||
PEER_FLAG_STRICT_CAP_MATCH);
|
||||
}
|
||||
|
||||
DEFUN_YANG (neighbor_timers,
|
||||
|
Loading…
Reference in New Issue
Block a user