Revert "bgpd: convert neighbor peer config to transactional"

This reverts commit 8611c7f3b6.
This commit is contained in:
Igor Ryzhov 2021-05-14 01:52:20 +03:00
parent 80d6a89c9d
commit c36bc05fcd
2 changed files with 40 additions and 184 deletions

View File

@ -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;
}

View File

@ -7524,94 +7524,56 @@ ALIAS_HIDDEN(no_neighbor_weight, no_neighbor_weight_hidden_cmd,
/* Override capability negotiation. */
DEFUN_YANG (neighbor_override_capability,
neighbor_override_capability_cmd,
"neighbor <A.B.C.D|X:X::X:X|WORD> override-capability",
NEIGHBOR_STR
NEIGHBOR_ADDR_STR2
"Override capability negotiation result\n")
DEFUN (neighbor_override_capability,
neighbor_override_capability_cmd,
"neighbor <A.B.C.D|X:X::X:X|WORD> override-capability",
NEIGHBOR_STR
NEIGHBOR_ADDR_STR2
"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,
no_neighbor_override_capability_cmd,
"no neighbor <A.B.C.D|X:X::X:X|WORD> override-capability",
NO_STR
NEIGHBOR_STR
NEIGHBOR_ADDR_STR2
"Override capability negotiation result\n")
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
NEIGHBOR_STR
NEIGHBOR_ADDR_STR2
"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,
neighbor_strict_capability_cmd,
"neighbor <A.B.C.D|X:X::X:X|WORD> strict-capability-match",
NEIGHBOR_STR
NEIGHBOR_ADDR_STR2
"Strict capability negotiation match\n")
DEFUN (neighbor_strict_capability,
neighbor_strict_capability_cmd,
"neighbor <A.B.C.D|X:X::X:X|WORD> strict-capability-match",
NEIGHBOR_STR
NEIGHBOR_ADDR_STR2
"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,
no_neighbor_strict_capability_cmd,
"no neighbor <A.B.C.D|X:X::X:X|WORD> strict-capability-match",
NO_STR
NEIGHBOR_STR
NEIGHBOR_ADDR_STR2
"Strict capability negotiation match\n")
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
NEIGHBOR_STR
NEIGHBOR_ADDR_STR2
"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,