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;
}
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;
}
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;
}
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;
}
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;
}
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;
}
/* 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,