mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-11 18:48:14 +00:00
Merge pull request #10179 from patrasar/pimv6_northbound
This commit is contained in:
commit
40a19188d5
261
pimd/pim_cmd.c
261
pimd/pim_cmd.c
@ -3815,7 +3815,7 @@ static void pim_cli_legacy_mesh_group_behavior(struct vty *vty,
|
|||||||
|
|
||||||
/* Get mesh group base XPath. */
|
/* Get mesh group base XPath. */
|
||||||
snprintf(xpath_value, sizeof(xpath_value),
|
snprintf(xpath_value, sizeof(xpath_value),
|
||||||
FRR_PIM_AF_XPATH "/msdp-mesh-groups[name='%s']",
|
FRR_PIM_VRF_XPATH "/msdp-mesh-groups[name='%s']",
|
||||||
"frr-pim:pimd", "pim", vrfname, "frr-routing:ipv4", gname);
|
"frr-pim:pimd", "pim", vrfname, "frr-routing:ipv4", gname);
|
||||||
/* Group must exists, otherwise just quit. */
|
/* Group must exists, otherwise just quit. */
|
||||||
if (!yang_dnode_exists(vty->candidate_config->dnode, xpath_value))
|
if (!yang_dnode_exists(vty->candidate_config->dnode, xpath_value))
|
||||||
@ -6792,13 +6792,13 @@ DEFUN (ip_pim_spt_switchover_infinity,
|
|||||||
return CMD_WARNING_CONFIG_FAILED;
|
return CMD_WARNING_CONFIG_FAILED;
|
||||||
|
|
||||||
snprintf(spt_plist_xpath, sizeof(spt_plist_xpath),
|
snprintf(spt_plist_xpath, sizeof(spt_plist_xpath),
|
||||||
FRR_PIM_AF_XPATH, "frr-pim:pimd", "pim", vrfname,
|
FRR_PIM_VRF_XPATH, "frr-pim:pimd", "pim", vrfname,
|
||||||
"frr-routing:ipv4");
|
"frr-routing:ipv4");
|
||||||
strlcat(spt_plist_xpath, "/spt-switchover/spt-infinity-prefix-list",
|
strlcat(spt_plist_xpath, "/spt-switchover/spt-infinity-prefix-list",
|
||||||
sizeof(spt_plist_xpath));
|
sizeof(spt_plist_xpath));
|
||||||
|
|
||||||
snprintf(spt_action_xpath, sizeof(spt_action_xpath),
|
snprintf(spt_action_xpath, sizeof(spt_action_xpath),
|
||||||
FRR_PIM_AF_XPATH, "frr-pim:pimd", "pim", vrfname,
|
FRR_PIM_VRF_XPATH, "frr-pim:pimd", "pim", vrfname,
|
||||||
"frr-routing:ipv4");
|
"frr-routing:ipv4");
|
||||||
strlcat(spt_action_xpath, "/spt-switchover/spt-action",
|
strlcat(spt_action_xpath, "/spt-switchover/spt-action",
|
||||||
sizeof(spt_action_xpath));
|
sizeof(spt_action_xpath));
|
||||||
@ -6831,13 +6831,13 @@ DEFUN (ip_pim_spt_switchover_infinity_plist,
|
|||||||
return CMD_WARNING_CONFIG_FAILED;
|
return CMD_WARNING_CONFIG_FAILED;
|
||||||
|
|
||||||
snprintf(spt_plist_xpath, sizeof(spt_plist_xpath),
|
snprintf(spt_plist_xpath, sizeof(spt_plist_xpath),
|
||||||
FRR_PIM_AF_XPATH, "frr-pim:pimd", "pim", vrfname,
|
FRR_PIM_VRF_XPATH, "frr-pim:pimd", "pim", vrfname,
|
||||||
"frr-routing:ipv4");
|
"frr-routing:ipv4");
|
||||||
strlcat(spt_plist_xpath, "/spt-switchover/spt-infinity-prefix-list",
|
strlcat(spt_plist_xpath, "/spt-switchover/spt-infinity-prefix-list",
|
||||||
sizeof(spt_plist_xpath));
|
sizeof(spt_plist_xpath));
|
||||||
|
|
||||||
snprintf(spt_action_xpath, sizeof(spt_action_xpath),
|
snprintf(spt_action_xpath, sizeof(spt_action_xpath),
|
||||||
FRR_PIM_AF_XPATH, "frr-pim:pimd", "pim", vrfname,
|
FRR_PIM_VRF_XPATH, "frr-pim:pimd", "pim", vrfname,
|
||||||
"frr-routing:ipv4");
|
"frr-routing:ipv4");
|
||||||
strlcat(spt_action_xpath, "/spt-switchover/spt-action",
|
strlcat(spt_action_xpath, "/spt-switchover/spt-action",
|
||||||
sizeof(spt_action_xpath));
|
sizeof(spt_action_xpath));
|
||||||
@ -6868,13 +6868,13 @@ DEFUN (no_ip_pim_spt_switchover_infinity,
|
|||||||
return CMD_WARNING_CONFIG_FAILED;
|
return CMD_WARNING_CONFIG_FAILED;
|
||||||
|
|
||||||
snprintf(spt_plist_xpath, sizeof(spt_plist_xpath),
|
snprintf(spt_plist_xpath, sizeof(spt_plist_xpath),
|
||||||
FRR_PIM_AF_XPATH, "frr-pim:pimd", "pim", vrfname,
|
FRR_PIM_VRF_XPATH, "frr-pim:pimd", "pim", vrfname,
|
||||||
"frr-routing:ipv4");
|
"frr-routing:ipv4");
|
||||||
strlcat(spt_plist_xpath, "/spt-switchover/spt-infinity-prefix-list",
|
strlcat(spt_plist_xpath, "/spt-switchover/spt-infinity-prefix-list",
|
||||||
sizeof(spt_plist_xpath));
|
sizeof(spt_plist_xpath));
|
||||||
|
|
||||||
snprintf(spt_action_xpath, sizeof(spt_action_xpath),
|
snprintf(spt_action_xpath, sizeof(spt_action_xpath),
|
||||||
FRR_PIM_AF_XPATH, "frr-pim:pimd", "pim", vrfname,
|
FRR_PIM_VRF_XPATH, "frr-pim:pimd", "pim", vrfname,
|
||||||
"frr-routing:ipv4");
|
"frr-routing:ipv4");
|
||||||
strlcat(spt_action_xpath, "/spt-switchover/spt-action",
|
strlcat(spt_action_xpath, "/spt-switchover/spt-action",
|
||||||
sizeof(spt_action_xpath));
|
sizeof(spt_action_xpath));
|
||||||
@ -6906,13 +6906,13 @@ DEFUN (no_ip_pim_spt_switchover_infinity_plist,
|
|||||||
return CMD_WARNING_CONFIG_FAILED;
|
return CMD_WARNING_CONFIG_FAILED;
|
||||||
|
|
||||||
snprintf(spt_plist_xpath, sizeof(spt_plist_xpath),
|
snprintf(spt_plist_xpath, sizeof(spt_plist_xpath),
|
||||||
FRR_PIM_AF_XPATH, "frr-pim:pimd", "pim", vrfname,
|
FRR_PIM_VRF_XPATH, "frr-pim:pimd", "pim", vrfname,
|
||||||
"frr-routing:ipv4");
|
"frr-routing:ipv4");
|
||||||
strlcat(spt_plist_xpath, "/spt-switchover/spt-infinity-prefix-list",
|
strlcat(spt_plist_xpath, "/spt-switchover/spt-infinity-prefix-list",
|
||||||
sizeof(spt_plist_xpath));
|
sizeof(spt_plist_xpath));
|
||||||
|
|
||||||
snprintf(spt_action_xpath, sizeof(spt_action_xpath),
|
snprintf(spt_action_xpath, sizeof(spt_action_xpath),
|
||||||
FRR_PIM_AF_XPATH, "frr-pim:pimd", "pim", vrfname,
|
FRR_PIM_VRF_XPATH, "frr-pim:pimd", "pim", vrfname,
|
||||||
"frr-routing:ipv4");
|
"frr-routing:ipv4");
|
||||||
strlcat(spt_action_xpath, "/spt-switchover/spt-action",
|
strlcat(spt_action_xpath, "/spt-switchover/spt-action",
|
||||||
sizeof(spt_action_xpath));
|
sizeof(spt_action_xpath));
|
||||||
@ -6941,7 +6941,7 @@ DEFPY (pim_register_accept_list,
|
|||||||
return CMD_WARNING_CONFIG_FAILED;
|
return CMD_WARNING_CONFIG_FAILED;
|
||||||
|
|
||||||
snprintf(reg_alist_xpath, sizeof(reg_alist_xpath),
|
snprintf(reg_alist_xpath, sizeof(reg_alist_xpath),
|
||||||
FRR_PIM_AF_XPATH, "frr-pim:pimd", "pim", vrfname,
|
FRR_PIM_VRF_XPATH, "frr-pim:pimd", "pim", vrfname,
|
||||||
"frr-routing:ipv4");
|
"frr-routing:ipv4");
|
||||||
strlcat(reg_alist_xpath, "/register-accept-list",
|
strlcat(reg_alist_xpath, "/register-accept-list",
|
||||||
sizeof(reg_alist_xpath));
|
sizeof(reg_alist_xpath));
|
||||||
@ -6964,8 +6964,13 @@ DEFUN (ip_pim_joinprune_time,
|
|||||||
"Join Prune Send Interval\n"
|
"Join Prune Send Interval\n"
|
||||||
"Seconds\n")
|
"Seconds\n")
|
||||||
{
|
{
|
||||||
nb_cli_enqueue_change(vty, "/frr-pim:pim/join-prune-interval",
|
char xpath[XPATH_MAXLEN];
|
||||||
NB_OP_MODIFY, argv[3]->arg);
|
|
||||||
|
snprintf(xpath, sizeof(xpath), FRR_PIM_ROUTER_XPATH,
|
||||||
|
"frr-routing:ipv4");
|
||||||
|
strlcat(xpath, "/join-prune-interval", sizeof(xpath));
|
||||||
|
|
||||||
|
nb_cli_enqueue_change(vty, xpath, NB_OP_MODIFY, argv[3]->arg);
|
||||||
|
|
||||||
return nb_cli_apply_changes(vty, NULL);
|
return nb_cli_apply_changes(vty, NULL);
|
||||||
}
|
}
|
||||||
@ -6979,8 +6984,13 @@ DEFUN (no_ip_pim_joinprune_time,
|
|||||||
"Join Prune Send Interval\n"
|
"Join Prune Send Interval\n"
|
||||||
IGNORED_IN_NO_STR)
|
IGNORED_IN_NO_STR)
|
||||||
{
|
{
|
||||||
nb_cli_enqueue_change(vty, "/frr-pim:pim/join-prune-interval",
|
char xpath[XPATH_MAXLEN];
|
||||||
NB_OP_DESTROY, NULL);
|
|
||||||
|
snprintf(xpath, sizeof(xpath), FRR_PIM_ROUTER_XPATH,
|
||||||
|
"frr-routing:ipv4");
|
||||||
|
strlcat(xpath, "/join-prune-interval", sizeof(xpath));
|
||||||
|
|
||||||
|
nb_cli_enqueue_change(vty, xpath, NB_OP_DESTROY, NULL);
|
||||||
|
|
||||||
return nb_cli_apply_changes(vty, NULL);
|
return nb_cli_apply_changes(vty, NULL);
|
||||||
}
|
}
|
||||||
@ -6993,8 +7003,13 @@ DEFUN (ip_pim_register_suppress,
|
|||||||
"Register Suppress Timer\n"
|
"Register Suppress Timer\n"
|
||||||
"Seconds\n")
|
"Seconds\n")
|
||||||
{
|
{
|
||||||
nb_cli_enqueue_change(vty, "/frr-pim:pim/register-suppress-time",
|
char xpath[XPATH_MAXLEN];
|
||||||
NB_OP_MODIFY, argv[3]->arg);
|
|
||||||
|
snprintf(xpath, sizeof(xpath), FRR_PIM_ROUTER_XPATH,
|
||||||
|
"frr-routing:ipv4");
|
||||||
|
strlcat(xpath, "/register-suppress-time", sizeof(xpath));
|
||||||
|
|
||||||
|
nb_cli_enqueue_change(vty, xpath, NB_OP_MODIFY, argv[3]->arg);
|
||||||
|
|
||||||
return nb_cli_apply_changes(vty, NULL);
|
return nb_cli_apply_changes(vty, NULL);
|
||||||
}
|
}
|
||||||
@ -7008,8 +7023,13 @@ DEFUN (no_ip_pim_register_suppress,
|
|||||||
"Register Suppress Timer\n"
|
"Register Suppress Timer\n"
|
||||||
IGNORED_IN_NO_STR)
|
IGNORED_IN_NO_STR)
|
||||||
{
|
{
|
||||||
nb_cli_enqueue_change(vty, "/frr-pim:pim/register-suppress-time",
|
char xpath[XPATH_MAXLEN];
|
||||||
NB_OP_DESTROY, NULL);
|
|
||||||
|
snprintf(xpath, sizeof(xpath), FRR_PIM_ROUTER_XPATH,
|
||||||
|
"frr-routing:ipv4");
|
||||||
|
strlcat(xpath, "/register-suppress-time", sizeof(xpath));
|
||||||
|
|
||||||
|
nb_cli_enqueue_change(vty, xpath, NB_OP_DESTROY, NULL);
|
||||||
|
|
||||||
return nb_cli_apply_changes(vty, NULL);
|
return nb_cli_apply_changes(vty, NULL);
|
||||||
}
|
}
|
||||||
@ -7031,7 +7051,8 @@ DEFUN (ip_pim_rp_keep_alive,
|
|||||||
return CMD_WARNING_CONFIG_FAILED;
|
return CMD_WARNING_CONFIG_FAILED;
|
||||||
|
|
||||||
snprintf(rp_ka_timer_xpath, sizeof(rp_ka_timer_xpath),
|
snprintf(rp_ka_timer_xpath, sizeof(rp_ka_timer_xpath),
|
||||||
FRR_PIM_XPATH, "frr-pim:pimd", "pim", vrfname);
|
FRR_PIM_VRF_XPATH, "frr-pim:pimd", "pim", vrfname,
|
||||||
|
"frr-routing:ipv4");
|
||||||
strlcat(rp_ka_timer_xpath, "/rp-keep-alive-timer",
|
strlcat(rp_ka_timer_xpath, "/rp-keep-alive-timer",
|
||||||
sizeof(rp_ka_timer_xpath));
|
sizeof(rp_ka_timer_xpath));
|
||||||
|
|
||||||
@ -7055,10 +7076,16 @@ DEFUN (no_ip_pim_rp_keep_alive,
|
|||||||
char rp_ka_timer[6];
|
char rp_ka_timer[6];
|
||||||
char rp_ka_timer_xpath[XPATH_MAXLEN];
|
char rp_ka_timer_xpath[XPATH_MAXLEN];
|
||||||
uint v;
|
uint v;
|
||||||
|
char rs_timer_xpath[XPATH_MAXLEN];
|
||||||
|
|
||||||
|
snprintf(rs_timer_xpath, sizeof(rs_timer_xpath),
|
||||||
|
FRR_PIM_ROUTER_XPATH, "frr-routing:ipv4");
|
||||||
|
strlcat(rs_timer_xpath, "/register-suppress-time",
|
||||||
|
sizeof(rs_timer_xpath));
|
||||||
|
|
||||||
/* RFC4601 */
|
/* RFC4601 */
|
||||||
v = yang_dnode_get_uint16(vty->candidate_config->dnode,
|
v = yang_dnode_get_uint16(vty->candidate_config->dnode,
|
||||||
"/frr-pim:pim/register-suppress-time");
|
rs_timer_xpath);
|
||||||
v = 3 * v + PIM_REGISTER_PROBE_TIME_DEFAULT;
|
v = 3 * v + PIM_REGISTER_PROBE_TIME_DEFAULT;
|
||||||
if (v > UINT16_MAX)
|
if (v > UINT16_MAX)
|
||||||
v = UINT16_MAX;
|
v = UINT16_MAX;
|
||||||
@ -7069,7 +7096,8 @@ DEFUN (no_ip_pim_rp_keep_alive,
|
|||||||
return CMD_WARNING_CONFIG_FAILED;
|
return CMD_WARNING_CONFIG_FAILED;
|
||||||
|
|
||||||
snprintf(rp_ka_timer_xpath, sizeof(rp_ka_timer_xpath),
|
snprintf(rp_ka_timer_xpath, sizeof(rp_ka_timer_xpath),
|
||||||
FRR_PIM_XPATH, "frr-pim:pimd", "pim", vrfname);
|
FRR_PIM_VRF_XPATH, "frr-pim:pimd", "pim", vrfname,
|
||||||
|
"frr-routing:ipv4");
|
||||||
strlcat(rp_ka_timer_xpath, "/rp-keep-alive-timer",
|
strlcat(rp_ka_timer_xpath, "/rp-keep-alive-timer",
|
||||||
sizeof(rp_ka_timer_xpath));
|
sizeof(rp_ka_timer_xpath));
|
||||||
|
|
||||||
@ -7094,8 +7122,8 @@ DEFUN (ip_pim_keep_alive,
|
|||||||
if (vrfname == NULL)
|
if (vrfname == NULL)
|
||||||
return CMD_WARNING_CONFIG_FAILED;
|
return CMD_WARNING_CONFIG_FAILED;
|
||||||
|
|
||||||
snprintf(ka_timer_xpath, sizeof(ka_timer_xpath), FRR_PIM_XPATH,
|
snprintf(ka_timer_xpath, sizeof(ka_timer_xpath), FRR_PIM_VRF_XPATH,
|
||||||
"frr-pim:pimd", "pim", vrfname);
|
"frr-pim:pimd", "pim", vrfname, "frr-routing:ipv4");
|
||||||
strlcat(ka_timer_xpath, "/keep-alive-timer", sizeof(ka_timer_xpath));
|
strlcat(ka_timer_xpath, "/keep-alive-timer", sizeof(ka_timer_xpath));
|
||||||
|
|
||||||
nb_cli_enqueue_change(vty, ka_timer_xpath, NB_OP_MODIFY,
|
nb_cli_enqueue_change(vty, ka_timer_xpath, NB_OP_MODIFY,
|
||||||
@ -7120,8 +7148,8 @@ DEFUN (no_ip_pim_keep_alive,
|
|||||||
if (vrfname == NULL)
|
if (vrfname == NULL)
|
||||||
return CMD_WARNING_CONFIG_FAILED;
|
return CMD_WARNING_CONFIG_FAILED;
|
||||||
|
|
||||||
snprintf(ka_timer_xpath, sizeof(ka_timer_xpath), FRR_PIM_XPATH,
|
snprintf(ka_timer_xpath, sizeof(ka_timer_xpath), FRR_PIM_VRF_XPATH,
|
||||||
"frr-pim:pimd", "pim", vrfname);
|
"frr-pim:pimd", "pim", vrfname, "frr-routing:ipv4");
|
||||||
strlcat(ka_timer_xpath, "/keep-alive-timer", sizeof(ka_timer_xpath));
|
strlcat(ka_timer_xpath, "/keep-alive-timer", sizeof(ka_timer_xpath));
|
||||||
|
|
||||||
nb_cli_enqueue_change(vty, ka_timer_xpath, NB_OP_DESTROY, NULL);
|
nb_cli_enqueue_change(vty, ka_timer_xpath, NB_OP_DESTROY, NULL);
|
||||||
@ -7137,8 +7165,13 @@ DEFUN (ip_pim_packets,
|
|||||||
"packets to process at one time per fd\n"
|
"packets to process at one time per fd\n"
|
||||||
"Number of packets\n")
|
"Number of packets\n")
|
||||||
{
|
{
|
||||||
nb_cli_enqueue_change(vty, "/frr-pim:pim/packets", NB_OP_MODIFY,
|
char xpath[XPATH_MAXLEN];
|
||||||
argv[3]->arg);
|
|
||||||
|
snprintf(xpath, sizeof(xpath), FRR_PIM_ROUTER_XPATH,
|
||||||
|
"frr-routing:ipv4");
|
||||||
|
strlcat(xpath, "/packets", sizeof(xpath));
|
||||||
|
|
||||||
|
nb_cli_enqueue_change(vty, xpath, NB_OP_MODIFY, argv[3]->arg);
|
||||||
|
|
||||||
return nb_cli_apply_changes(vty, NULL);
|
return nb_cli_apply_changes(vty, NULL);
|
||||||
}
|
}
|
||||||
@ -7152,7 +7185,13 @@ DEFUN (no_ip_pim_packets,
|
|||||||
"packets to process at one time per fd\n"
|
"packets to process at one time per fd\n"
|
||||||
IGNORED_IN_NO_STR)
|
IGNORED_IN_NO_STR)
|
||||||
{
|
{
|
||||||
nb_cli_enqueue_change(vty, "/frr-pim:pim/packets", NB_OP_DESTROY, NULL);
|
char xpath[XPATH_MAXLEN];
|
||||||
|
|
||||||
|
snprintf(xpath, sizeof(xpath), FRR_PIM_ROUTER_XPATH,
|
||||||
|
"frr-routing:ipv4");
|
||||||
|
strlcat(xpath, "/packets", sizeof(xpath));
|
||||||
|
|
||||||
|
nb_cli_enqueue_change(vty, xpath, NB_OP_DESTROY, NULL);
|
||||||
|
|
||||||
return nb_cli_apply_changes(vty, NULL);
|
return nb_cli_apply_changes(vty, NULL);
|
||||||
}
|
}
|
||||||
@ -7201,7 +7240,7 @@ DEFUN (ip_pim_v6_secondary,
|
|||||||
return CMD_WARNING_CONFIG_FAILED;
|
return CMD_WARNING_CONFIG_FAILED;
|
||||||
|
|
||||||
snprintf(send_v6_secondary_xpath, sizeof(send_v6_secondary_xpath),
|
snprintf(send_v6_secondary_xpath, sizeof(send_v6_secondary_xpath),
|
||||||
FRR_PIM_AF_XPATH,
|
FRR_PIM_VRF_XPATH,
|
||||||
"frr-pim:pimd", "pim", vrfname, "frr-routing:ipv4");
|
"frr-pim:pimd", "pim", vrfname, "frr-routing:ipv4");
|
||||||
strlcat(send_v6_secondary_xpath, "/send-v6-secondary",
|
strlcat(send_v6_secondary_xpath, "/send-v6-secondary",
|
||||||
sizeof(send_v6_secondary_xpath));
|
sizeof(send_v6_secondary_xpath));
|
||||||
@ -7228,7 +7267,7 @@ DEFUN (no_ip_pim_v6_secondary,
|
|||||||
return CMD_WARNING_CONFIG_FAILED;
|
return CMD_WARNING_CONFIG_FAILED;
|
||||||
|
|
||||||
snprintf(send_v6_secondary_xpath, sizeof(send_v6_secondary_xpath),
|
snprintf(send_v6_secondary_xpath, sizeof(send_v6_secondary_xpath),
|
||||||
FRR_PIM_AF_XPATH,
|
FRR_PIM_VRF_XPATH,
|
||||||
"frr-pim:pimd", "pim", vrfname, "frr-routing:ipv4");
|
"frr-pim:pimd", "pim", vrfname, "frr-routing:ipv4");
|
||||||
strlcat(send_v6_secondary_xpath, "/send-v6-secondary",
|
strlcat(send_v6_secondary_xpath, "/send-v6-secondary",
|
||||||
sizeof(send_v6_secondary_xpath));
|
sizeof(send_v6_secondary_xpath));
|
||||||
@ -7442,7 +7481,7 @@ DEFUN (ip_pim_ssm_prefix_list,
|
|||||||
if (vrfname == NULL)
|
if (vrfname == NULL)
|
||||||
return CMD_WARNING_CONFIG_FAILED;
|
return CMD_WARNING_CONFIG_FAILED;
|
||||||
|
|
||||||
snprintf(ssm_plist_xpath, sizeof(ssm_plist_xpath), FRR_PIM_AF_XPATH,
|
snprintf(ssm_plist_xpath, sizeof(ssm_plist_xpath), FRR_PIM_VRF_XPATH,
|
||||||
"frr-pim:pimd", "pim", vrfname, "frr-routing:ipv4");
|
"frr-pim:pimd", "pim", vrfname, "frr-routing:ipv4");
|
||||||
strlcat(ssm_plist_xpath, "/ssm-prefix-list", sizeof(ssm_plist_xpath));
|
strlcat(ssm_plist_xpath, "/ssm-prefix-list", sizeof(ssm_plist_xpath));
|
||||||
|
|
||||||
@ -7468,7 +7507,7 @@ DEFUN (no_ip_pim_ssm_prefix_list,
|
|||||||
return CMD_WARNING_CONFIG_FAILED;
|
return CMD_WARNING_CONFIG_FAILED;
|
||||||
|
|
||||||
snprintf(ssm_plist_xpath, sizeof(ssm_plist_xpath),
|
snprintf(ssm_plist_xpath, sizeof(ssm_plist_xpath),
|
||||||
FRR_PIM_AF_XPATH,
|
FRR_PIM_VRF_XPATH,
|
||||||
"frr-pim:pimd", "pim", vrfname, "frr-routing:ipv4");
|
"frr-pim:pimd", "pim", vrfname, "frr-routing:ipv4");
|
||||||
strlcat(ssm_plist_xpath, "/ssm-prefix-list", sizeof(ssm_plist_xpath));
|
strlcat(ssm_plist_xpath, "/ssm-prefix-list", sizeof(ssm_plist_xpath));
|
||||||
|
|
||||||
@ -7497,7 +7536,7 @@ DEFUN (no_ip_pim_ssm_prefix_list_name,
|
|||||||
return CMD_WARNING_CONFIG_FAILED;
|
return CMD_WARNING_CONFIG_FAILED;
|
||||||
|
|
||||||
snprintf(ssm_plist_xpath, sizeof(ssm_plist_xpath),
|
snprintf(ssm_plist_xpath, sizeof(ssm_plist_xpath),
|
||||||
FRR_PIM_AF_XPATH,
|
FRR_PIM_VRF_XPATH,
|
||||||
"frr-pim:pimd", "pim", vrfname, "frr-routing:ipv4");
|
"frr-pim:pimd", "pim", vrfname, "frr-routing:ipv4");
|
||||||
strlcat(ssm_plist_xpath, "/ssm-prefix-list", sizeof(ssm_plist_xpath));
|
strlcat(ssm_plist_xpath, "/ssm-prefix-list", sizeof(ssm_plist_xpath));
|
||||||
ssm_plist_dnode = yang_dnode_get(vty->candidate_config->dnode,
|
ssm_plist_dnode = yang_dnode_get(vty->candidate_config->dnode,
|
||||||
@ -7656,7 +7695,7 @@ DEFUN (ip_ssmpingd,
|
|||||||
return CMD_WARNING_CONFIG_FAILED;
|
return CMD_WARNING_CONFIG_FAILED;
|
||||||
|
|
||||||
snprintf(ssmpingd_ip_xpath, sizeof(ssmpingd_ip_xpath),
|
snprintf(ssmpingd_ip_xpath, sizeof(ssmpingd_ip_xpath),
|
||||||
FRR_PIM_AF_XPATH,
|
FRR_PIM_VRF_XPATH,
|
||||||
"frr-pim:pimd", "pim", vrfname, "frr-routing:ipv4");
|
"frr-pim:pimd", "pim", vrfname, "frr-routing:ipv4");
|
||||||
strlcat(ssmpingd_ip_xpath, "/ssm-pingd-source-ip",
|
strlcat(ssmpingd_ip_xpath, "/ssm-pingd-source-ip",
|
||||||
sizeof(ssmpingd_ip_xpath));
|
sizeof(ssmpingd_ip_xpath));
|
||||||
@ -7685,7 +7724,7 @@ DEFUN (no_ip_ssmpingd,
|
|||||||
return CMD_WARNING_CONFIG_FAILED;
|
return CMD_WARNING_CONFIG_FAILED;
|
||||||
|
|
||||||
snprintf(ssmpingd_ip_xpath, sizeof(ssmpingd_ip_xpath),
|
snprintf(ssmpingd_ip_xpath, sizeof(ssmpingd_ip_xpath),
|
||||||
FRR_PIM_AF_XPATH,
|
FRR_PIM_VRF_XPATH,
|
||||||
"frr-pim:pimd", "pim", vrfname, "frr-routing:ipv4");
|
"frr-pim:pimd", "pim", vrfname, "frr-routing:ipv4");
|
||||||
strlcat(ssmpingd_ip_xpath, "/ssm-pingd-source-ip",
|
strlcat(ssmpingd_ip_xpath, "/ssm-pingd-source-ip",
|
||||||
sizeof(ssmpingd_ip_xpath));
|
sizeof(ssmpingd_ip_xpath));
|
||||||
@ -7710,8 +7749,8 @@ DEFUN (ip_pim_ecmp,
|
|||||||
if (vrfname == NULL)
|
if (vrfname == NULL)
|
||||||
return CMD_WARNING_CONFIG_FAILED;
|
return CMD_WARNING_CONFIG_FAILED;
|
||||||
|
|
||||||
snprintf(ecmp_xpath, sizeof(ecmp_xpath), FRR_PIM_XPATH,
|
snprintf(ecmp_xpath, sizeof(ecmp_xpath), FRR_PIM_VRF_XPATH,
|
||||||
"frr-pim:pimd", "pim", vrfname);
|
"frr-pim:pimd", "pim", vrfname, "frr-routing:ipv4");
|
||||||
strlcat(ecmp_xpath, "/ecmp", sizeof(ecmp_xpath));
|
strlcat(ecmp_xpath, "/ecmp", sizeof(ecmp_xpath));
|
||||||
|
|
||||||
nb_cli_enqueue_change(vty, ecmp_xpath, NB_OP_MODIFY, "true");
|
nb_cli_enqueue_change(vty, ecmp_xpath, NB_OP_MODIFY, "true");
|
||||||
@ -7733,8 +7772,8 @@ DEFUN (no_ip_pim_ecmp,
|
|||||||
if (vrfname == NULL)
|
if (vrfname == NULL)
|
||||||
return CMD_WARNING_CONFIG_FAILED;
|
return CMD_WARNING_CONFIG_FAILED;
|
||||||
|
|
||||||
snprintf(ecmp_xpath, sizeof(ecmp_xpath), FRR_PIM_XPATH,
|
snprintf(ecmp_xpath, sizeof(ecmp_xpath), FRR_PIM_VRF_XPATH,
|
||||||
"frr-pim:pimd", "pim", vrfname);
|
"frr-pim:pimd", "pim", vrfname, "frr-routing:ipv4");
|
||||||
strlcat(ecmp_xpath, "/ecmp", sizeof(ecmp_xpath));
|
strlcat(ecmp_xpath, "/ecmp", sizeof(ecmp_xpath));
|
||||||
|
|
||||||
nb_cli_enqueue_change(vty, ecmp_xpath, NB_OP_MODIFY, "false");
|
nb_cli_enqueue_change(vty, ecmp_xpath, NB_OP_MODIFY, "false");
|
||||||
@ -7758,12 +7797,12 @@ DEFUN (ip_pim_ecmp_rebalance,
|
|||||||
if (vrfname == NULL)
|
if (vrfname == NULL)
|
||||||
return CMD_WARNING_CONFIG_FAILED;
|
return CMD_WARNING_CONFIG_FAILED;
|
||||||
|
|
||||||
snprintf(ecmp_xpath, sizeof(ecmp_xpath), FRR_PIM_XPATH,
|
snprintf(ecmp_xpath, sizeof(ecmp_xpath), FRR_PIM_VRF_XPATH,
|
||||||
"frr-pim:pimd", "pim", vrfname);
|
"frr-pim:pimd", "pim", vrfname, "frr-routing:ipv4");
|
||||||
strlcat(ecmp_xpath, "/ecmp", sizeof(ecmp_xpath));
|
strlcat(ecmp_xpath, "/ecmp", sizeof(ecmp_xpath));
|
||||||
snprintf(ecmp_rebalance_xpath, sizeof(ecmp_rebalance_xpath),
|
snprintf(ecmp_rebalance_xpath, sizeof(ecmp_rebalance_xpath),
|
||||||
FRR_PIM_XPATH,
|
FRR_PIM_VRF_XPATH,
|
||||||
"frr-pim:pimd", "pim", vrfname);
|
"frr-pim:pimd", "pim", vrfname, "frr-routing:ipv4");
|
||||||
strlcat(ecmp_rebalance_xpath, "/ecmp-rebalance",
|
strlcat(ecmp_rebalance_xpath, "/ecmp-rebalance",
|
||||||
sizeof(ecmp_rebalance_xpath));
|
sizeof(ecmp_rebalance_xpath));
|
||||||
|
|
||||||
@ -7790,8 +7829,8 @@ DEFUN (no_ip_pim_ecmp_rebalance,
|
|||||||
return CMD_WARNING_CONFIG_FAILED;
|
return CMD_WARNING_CONFIG_FAILED;
|
||||||
|
|
||||||
snprintf(ecmp_rebalance_xpath, sizeof(ecmp_rebalance_xpath),
|
snprintf(ecmp_rebalance_xpath, sizeof(ecmp_rebalance_xpath),
|
||||||
FRR_PIM_XPATH,
|
FRR_PIM_VRF_XPATH,
|
||||||
"frr-pim:pimd", "pim", vrfname);
|
"frr-pim:pimd", "pim", vrfname, "frr-routing:ipv4");
|
||||||
strlcat(ecmp_rebalance_xpath, "/ecmp-rebalance",
|
strlcat(ecmp_rebalance_xpath, "/ecmp-rebalance",
|
||||||
sizeof(ecmp_rebalance_xpath));
|
sizeof(ecmp_rebalance_xpath));
|
||||||
|
|
||||||
@ -7822,10 +7861,12 @@ DEFUN (interface_no_ip_igmp,
|
|||||||
char pim_if_xpath[XPATH_MAXLEN + 20];
|
char pim_if_xpath[XPATH_MAXLEN + 20];
|
||||||
|
|
||||||
snprintf(pim_if_xpath, sizeof(pim_if_xpath),
|
snprintf(pim_if_xpath, sizeof(pim_if_xpath),
|
||||||
"%s/frr-pim:pim", VTY_CURR_XPATH);
|
"%s/frr-pim:pim/address-family[address-family='%s']",
|
||||||
|
VTY_CURR_XPATH, "frr-routing:ipv4");
|
||||||
|
|
||||||
pim_enable_dnode = yang_dnode_getf(vty->candidate_config->dnode,
|
pim_enable_dnode = yang_dnode_getf(vty->candidate_config->dnode,
|
||||||
"%s/pim-enable", pim_if_xpath);
|
FRR_PIM_ENABLE_XPATH, VTY_CURR_XPATH,
|
||||||
|
"frr-routing:ipv4");
|
||||||
if (!pim_enable_dnode) {
|
if (!pim_enable_dnode) {
|
||||||
nb_cli_enqueue_change(vty, pim_if_xpath, NB_OP_DESTROY, NULL);
|
nb_cli_enqueue_change(vty, pim_if_xpath, NB_OP_DESTROY, NULL);
|
||||||
nb_cli_enqueue_change(vty, ".", NB_OP_DESTROY, NULL);
|
nb_cli_enqueue_change(vty, ".", NB_OP_DESTROY, NULL);
|
||||||
@ -7921,9 +7962,10 @@ DEFUN (interface_ip_igmp_query_interval,
|
|||||||
|
|
||||||
pim_enable_dnode =
|
pim_enable_dnode =
|
||||||
yang_dnode_getf(vty->candidate_config->dnode,
|
yang_dnode_getf(vty->candidate_config->dnode,
|
||||||
"%s/frr-pim:pim/pim-enable", VTY_CURR_XPATH);
|
FRR_PIM_ENABLE_XPATH, VTY_CURR_XPATH,
|
||||||
|
"frr-routing:ipv4");
|
||||||
if (!pim_enable_dnode) {
|
if (!pim_enable_dnode) {
|
||||||
nb_cli_enqueue_change(vty, "./igmp-enable", NB_OP_MODIFY,
|
nb_cli_enqueue_change(vty, "./enable", NB_OP_MODIFY,
|
||||||
"true");
|
"true");
|
||||||
} else {
|
} else {
|
||||||
if (!yang_dnode_get_bool(pim_enable_dnode, "."))
|
if (!yang_dnode_get_bool(pim_enable_dnode, "."))
|
||||||
@ -7992,7 +8034,8 @@ DEFUN (interface_ip_igmp_query_max_response_time,
|
|||||||
|
|
||||||
pim_enable_dnode =
|
pim_enable_dnode =
|
||||||
yang_dnode_getf(vty->candidate_config->dnode,
|
yang_dnode_getf(vty->candidate_config->dnode,
|
||||||
"%s/frr-pim:pim/pim-enable", VTY_CURR_XPATH);
|
FRR_PIM_ENABLE_XPATH, VTY_CURR_XPATH,
|
||||||
|
"frr-routing:ipv4");
|
||||||
|
|
||||||
if (!pim_enable_dnode) {
|
if (!pim_enable_dnode) {
|
||||||
nb_cli_enqueue_change(vty, "./igmp-enable", NB_OP_MODIFY,
|
nb_cli_enqueue_change(vty, "./igmp-enable", NB_OP_MODIFY,
|
||||||
@ -8035,7 +8078,8 @@ DEFUN_HIDDEN (interface_ip_igmp_query_max_response_time_dsec,
|
|||||||
|
|
||||||
pim_enable_dnode =
|
pim_enable_dnode =
|
||||||
yang_dnode_getf(vty->candidate_config->dnode,
|
yang_dnode_getf(vty->candidate_config->dnode,
|
||||||
"%s/frr-pim:pim/pim-enable", VTY_CURR_XPATH);
|
FRR_PIM_ENABLE_XPATH, VTY_CURR_XPATH,
|
||||||
|
"frr-routing:ipv4");
|
||||||
if (!pim_enable_dnode) {
|
if (!pim_enable_dnode) {
|
||||||
nb_cli_enqueue_change(vty, "./igmp-enable", NB_OP_MODIFY,
|
nb_cli_enqueue_change(vty, "./igmp-enable", NB_OP_MODIFY,
|
||||||
"true");
|
"true");
|
||||||
@ -8078,7 +8122,8 @@ DEFUN (interface_ip_igmp_last_member_query_count,
|
|||||||
|
|
||||||
pim_enable_dnode =
|
pim_enable_dnode =
|
||||||
yang_dnode_getf(vty->candidate_config->dnode,
|
yang_dnode_getf(vty->candidate_config->dnode,
|
||||||
"%s/frr-pim:pim/pim-enable", VTY_CURR_XPATH);
|
FRR_PIM_ENABLE_XPATH, VTY_CURR_XPATH,
|
||||||
|
"frr-routing:ipv4");
|
||||||
if (!pim_enable_dnode) {
|
if (!pim_enable_dnode) {
|
||||||
nb_cli_enqueue_change(vty, "./igmp-enable", NB_OP_MODIFY,
|
nb_cli_enqueue_change(vty, "./igmp-enable", NB_OP_MODIFY,
|
||||||
"true");
|
"true");
|
||||||
@ -8121,7 +8166,8 @@ DEFUN (interface_ip_igmp_last_member_query_interval,
|
|||||||
|
|
||||||
pim_enable_dnode =
|
pim_enable_dnode =
|
||||||
yang_dnode_getf(vty->candidate_config->dnode,
|
yang_dnode_getf(vty->candidate_config->dnode,
|
||||||
"%s/frr-pim:pim/pim-enable", VTY_CURR_XPATH);
|
FRR_PIM_ENABLE_XPATH, VTY_CURR_XPATH,
|
||||||
|
"frr-routing:ipv4");
|
||||||
if (!pim_enable_dnode) {
|
if (!pim_enable_dnode) {
|
||||||
nb_cli_enqueue_change(vty, "./igmp-enable", NB_OP_MODIFY,
|
nb_cli_enqueue_change(vty, "./igmp-enable", NB_OP_MODIFY,
|
||||||
"true");
|
"true");
|
||||||
@ -8165,7 +8211,8 @@ DEFUN (interface_ip_pim_drprio,
|
|||||||
nb_cli_enqueue_change(vty, "./dr-priority", NB_OP_MODIFY,
|
nb_cli_enqueue_change(vty, "./dr-priority", NB_OP_MODIFY,
|
||||||
argv[idx_number]->arg);
|
argv[idx_number]->arg);
|
||||||
|
|
||||||
return nb_cli_apply_changes(vty, "./frr-pim:pim");
|
return nb_cli_apply_changes(vty, FRR_PIM_INTERFACE_XPATH,
|
||||||
|
"frr-routing:ipv4");
|
||||||
}
|
}
|
||||||
|
|
||||||
DEFUN (interface_no_ip_pim_drprio,
|
DEFUN (interface_no_ip_pim_drprio,
|
||||||
@ -8179,7 +8226,8 @@ DEFUN (interface_no_ip_pim_drprio,
|
|||||||
{
|
{
|
||||||
nb_cli_enqueue_change(vty, "./dr-priority", NB_OP_DESTROY, NULL);
|
nb_cli_enqueue_change(vty, "./dr-priority", NB_OP_DESTROY, NULL);
|
||||||
|
|
||||||
return nb_cli_apply_changes(vty, "./frr-pim:pim");
|
return nb_cli_apply_changes(vty, FRR_PIM_INTERFACE_XPATH,
|
||||||
|
"frr-routing:ipv4");
|
||||||
}
|
}
|
||||||
|
|
||||||
DEFPY_HIDDEN (interface_ip_igmp_query_generate,
|
DEFPY_HIDDEN (interface_ip_igmp_query_generate,
|
||||||
@ -8277,7 +8325,9 @@ DEFPY (interface_ip_pim_activeactive,
|
|||||||
"true");
|
"true");
|
||||||
}
|
}
|
||||||
|
|
||||||
return nb_cli_apply_changes(vty, "./frr-pim:pim");
|
return nb_cli_apply_changes(vty,
|
||||||
|
FRR_PIM_INTERFACE_XPATH,
|
||||||
|
"frr-routing:ipv4");
|
||||||
}
|
}
|
||||||
|
|
||||||
DEFUN_HIDDEN (interface_ip_pim_ssm,
|
DEFUN_HIDDEN (interface_ip_pim_ssm,
|
||||||
@ -8291,7 +8341,9 @@ DEFUN_HIDDEN (interface_ip_pim_ssm,
|
|||||||
|
|
||||||
nb_cli_enqueue_change(vty, "./pim-enable", NB_OP_MODIFY, "true");
|
nb_cli_enqueue_change(vty, "./pim-enable", NB_OP_MODIFY, "true");
|
||||||
|
|
||||||
ret = nb_cli_apply_changes(vty, "./frr-pim:pim");
|
ret = nb_cli_apply_changes(vty,
|
||||||
|
FRR_PIM_INTERFACE_XPATH,
|
||||||
|
"frr-routing:ipv4");
|
||||||
|
|
||||||
if (ret != NB_OK)
|
if (ret != NB_OK)
|
||||||
return ret;
|
return ret;
|
||||||
@ -8311,7 +8363,9 @@ DEFUN_HIDDEN (interface_ip_pim_sm,
|
|||||||
{
|
{
|
||||||
nb_cli_enqueue_change(vty, "./pim-enable", NB_OP_MODIFY, "true");
|
nb_cli_enqueue_change(vty, "./pim-enable", NB_OP_MODIFY, "true");
|
||||||
|
|
||||||
return nb_cli_apply_changes(vty, "./frr-pim:pim");
|
return nb_cli_apply_changes(vty,
|
||||||
|
FRR_PIM_INTERFACE_XPATH,
|
||||||
|
"frr-routing:ipv4");
|
||||||
}
|
}
|
||||||
|
|
||||||
DEFUN (interface_ip_pim,
|
DEFUN (interface_ip_pim,
|
||||||
@ -8322,7 +8376,10 @@ DEFUN (interface_ip_pim,
|
|||||||
{
|
{
|
||||||
nb_cli_enqueue_change(vty, "./pim-enable", NB_OP_MODIFY, "true");
|
nb_cli_enqueue_change(vty, "./pim-enable", NB_OP_MODIFY, "true");
|
||||||
|
|
||||||
return nb_cli_apply_changes(vty, "./frr-pim:pim");
|
return nb_cli_apply_changes(vty,
|
||||||
|
FRR_PIM_INTERFACE_XPATH,
|
||||||
|
"frr-routing:ipv4");
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
DEFUN_HIDDEN (interface_no_ip_pim_ssm,
|
DEFUN_HIDDEN (interface_no_ip_pim_ssm,
|
||||||
@ -8354,7 +8411,8 @@ DEFUN_HIDDEN (interface_no_ip_pim_ssm,
|
|||||||
"false");
|
"false");
|
||||||
}
|
}
|
||||||
|
|
||||||
return nb_cli_apply_changes(vty, "./frr-pim:pim");
|
return nb_cli_apply_changes(vty, FRR_PIM_INTERFACE_XPATH,
|
||||||
|
"frr-routing:ipv4");
|
||||||
}
|
}
|
||||||
|
|
||||||
DEFUN_HIDDEN (interface_no_ip_pim_sm,
|
DEFUN_HIDDEN (interface_no_ip_pim_sm,
|
||||||
@ -8386,7 +8444,9 @@ DEFUN_HIDDEN (interface_no_ip_pim_sm,
|
|||||||
"false");
|
"false");
|
||||||
}
|
}
|
||||||
|
|
||||||
return nb_cli_apply_changes(vty, "./frr-pim:pim");
|
return nb_cli_apply_changes(vty,
|
||||||
|
FRR_PIM_INTERFACE_XPATH,
|
||||||
|
"frr-routing:ipv4");
|
||||||
}
|
}
|
||||||
|
|
||||||
DEFUN (interface_no_ip_pim,
|
DEFUN (interface_no_ip_pim,
|
||||||
@ -8417,7 +8477,9 @@ DEFUN (interface_no_ip_pim,
|
|||||||
"false");
|
"false");
|
||||||
}
|
}
|
||||||
|
|
||||||
return nb_cli_apply_changes(vty, "./frr-pim:pim");
|
return nb_cli_apply_changes(vty,
|
||||||
|
FRR_PIM_INTERFACE_XPATH,
|
||||||
|
"frr-routing:ipv4");
|
||||||
}
|
}
|
||||||
|
|
||||||
/* boundaries */
|
/* boundaries */
|
||||||
@ -8434,7 +8496,7 @@ DEFUN(interface_ip_pim_boundary_oil,
|
|||||||
argv[4]->arg);
|
argv[4]->arg);
|
||||||
|
|
||||||
return nb_cli_apply_changes(vty,
|
return nb_cli_apply_changes(vty,
|
||||||
"./frr-pim:pim/address-family[address-family='%s']",
|
FRR_PIM_INTERFACE_XPATH,
|
||||||
"frr-routing:ipv4");
|
"frr-routing:ipv4");
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -8453,7 +8515,7 @@ DEFUN(interface_no_ip_pim_boundary_oil,
|
|||||||
NULL);
|
NULL);
|
||||||
|
|
||||||
return nb_cli_apply_changes(vty,
|
return nb_cli_apply_changes(vty,
|
||||||
"./frr-pim:pim/address-family[address-family='%s']",
|
FRR_PIM_INTERFACE_XPATH,
|
||||||
"frr-routing:ipv4");
|
"frr-routing:ipv4");
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -8479,7 +8541,7 @@ DEFUN (interface_ip_mroute,
|
|||||||
argv[idx_interface]->arg);
|
argv[idx_interface]->arg);
|
||||||
|
|
||||||
return nb_cli_apply_changes(vty,
|
return nb_cli_apply_changes(vty,
|
||||||
"./frr-pim:pim/address-family[address-family='%s']/mroute[source-addr='%s'][group-addr='%s']",
|
FRR_PIM_MROUTE_XPATH,
|
||||||
"frr-routing:ipv4", source_str,
|
"frr-routing:ipv4", source_str,
|
||||||
argv[idx_ipv4]->arg);
|
argv[idx_ipv4]->arg);
|
||||||
}
|
}
|
||||||
@ -8505,7 +8567,7 @@ DEFUN (interface_no_ip_mroute,
|
|||||||
nb_cli_enqueue_change(vty, ".", NB_OP_DESTROY, NULL);
|
nb_cli_enqueue_change(vty, ".", NB_OP_DESTROY, NULL);
|
||||||
|
|
||||||
return nb_cli_apply_changes(vty,
|
return nb_cli_apply_changes(vty,
|
||||||
"./frr-pim:pim/address-family[address-family='%s']/mroute[source-addr='%s'][group-addr='%s']",
|
FRR_PIM_MROUTE_XPATH,
|
||||||
"frr-routing:ipv4", source_str,
|
"frr-routing:ipv4", source_str,
|
||||||
argv[idx_ipv4]->arg);
|
argv[idx_ipv4]->arg);
|
||||||
}
|
}
|
||||||
@ -8542,7 +8604,9 @@ DEFUN (interface_ip_pim_hello,
|
|||||||
nb_cli_enqueue_change(vty, "./hello-holdtime", NB_OP_MODIFY,
|
nb_cli_enqueue_change(vty, "./hello-holdtime", NB_OP_MODIFY,
|
||||||
argv[idx_hold]->arg);
|
argv[idx_hold]->arg);
|
||||||
|
|
||||||
return nb_cli_apply_changes(vty, "./frr-pim:pim");
|
return nb_cli_apply_changes(vty,
|
||||||
|
FRR_PIM_INTERFACE_XPATH,
|
||||||
|
"frr-routing:ipv4");
|
||||||
}
|
}
|
||||||
|
|
||||||
DEFUN (interface_no_ip_pim_hello,
|
DEFUN (interface_no_ip_pim_hello,
|
||||||
@ -8558,7 +8622,9 @@ DEFUN (interface_no_ip_pim_hello,
|
|||||||
nb_cli_enqueue_change(vty, "./hello-interval", NB_OP_DESTROY, NULL);
|
nb_cli_enqueue_change(vty, "./hello-interval", NB_OP_DESTROY, NULL);
|
||||||
nb_cli_enqueue_change(vty, "./hello-holdtime", NB_OP_DESTROY, NULL);
|
nb_cli_enqueue_change(vty, "./hello-holdtime", NB_OP_DESTROY, NULL);
|
||||||
|
|
||||||
return nb_cli_apply_changes(vty, "./frr-pim:pim");
|
return nb_cli_apply_changes(vty,
|
||||||
|
FRR_PIM_INTERFACE_XPATH,
|
||||||
|
"frr-routing:ipv4");
|
||||||
}
|
}
|
||||||
|
|
||||||
DEFUN (debug_igmp,
|
DEFUN (debug_igmp,
|
||||||
@ -9206,7 +9272,7 @@ DEFUN (interface_pim_use_source,
|
|||||||
nb_cli_enqueue_change(vty, "./use-source", NB_OP_MODIFY, argv[3]->arg);
|
nb_cli_enqueue_change(vty, "./use-source", NB_OP_MODIFY, argv[3]->arg);
|
||||||
|
|
||||||
return nb_cli_apply_changes(vty,
|
return nb_cli_apply_changes(vty,
|
||||||
"./frr-pim:pim/address-family[address-family='%s']",
|
FRR_PIM_INTERFACE_XPATH,
|
||||||
"frr-routing:ipv4");
|
"frr-routing:ipv4");
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -9222,7 +9288,7 @@ DEFUN (interface_no_pim_use_source,
|
|||||||
nb_cli_enqueue_change(vty, "./use-source", NB_OP_MODIFY, "0.0.0.0");
|
nb_cli_enqueue_change(vty, "./use-source", NB_OP_MODIFY, "0.0.0.0");
|
||||||
|
|
||||||
return nb_cli_apply_changes(vty,
|
return nb_cli_apply_changes(vty,
|
||||||
"./frr-pim:pim/address-family[address-family='%s']",
|
FRR_PIM_INTERFACE_XPATH,
|
||||||
"frr-routing:ipv4");
|
"frr-routing:ipv4");
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -9253,7 +9319,9 @@ DEFPY (ip_pim_bfd,
|
|||||||
if (prof)
|
if (prof)
|
||||||
nb_cli_enqueue_change(vty, "./bfd/profile", NB_OP_MODIFY, prof);
|
nb_cli_enqueue_change(vty, "./bfd/profile", NB_OP_MODIFY, prof);
|
||||||
|
|
||||||
return nb_cli_apply_changes(vty, "./frr-pim:pim");
|
return nb_cli_apply_changes(vty,
|
||||||
|
FRR_PIM_INTERFACE_XPATH,
|
||||||
|
"frr-routing:ipv4");
|
||||||
}
|
}
|
||||||
|
|
||||||
DEFPY(no_ip_pim_bfd_profile, no_ip_pim_bfd_profile_cmd,
|
DEFPY(no_ip_pim_bfd_profile, no_ip_pim_bfd_profile_cmd,
|
||||||
@ -9267,7 +9335,9 @@ DEFPY(no_ip_pim_bfd_profile, no_ip_pim_bfd_profile_cmd,
|
|||||||
{
|
{
|
||||||
nb_cli_enqueue_change(vty, "./bfd/profile", NB_OP_DESTROY, NULL);
|
nb_cli_enqueue_change(vty, "./bfd/profile", NB_OP_DESTROY, NULL);
|
||||||
|
|
||||||
return nb_cli_apply_changes(vty, "./frr-pim:pim");
|
return nb_cli_apply_changes(vty,
|
||||||
|
FRR_PIM_INTERFACE_XPATH,
|
||||||
|
"frr-routing:ipv4");
|
||||||
}
|
}
|
||||||
|
|
||||||
DEFUN (no_ip_pim_bfd,
|
DEFUN (no_ip_pim_bfd,
|
||||||
@ -9280,7 +9350,9 @@ DEFUN (no_ip_pim_bfd,
|
|||||||
{
|
{
|
||||||
nb_cli_enqueue_change(vty, "./bfd", NB_OP_DESTROY, NULL);
|
nb_cli_enqueue_change(vty, "./bfd", NB_OP_DESTROY, NULL);
|
||||||
|
|
||||||
return nb_cli_apply_changes(vty, "./frr-pim:pim");
|
return nb_cli_apply_changes(vty,
|
||||||
|
FRR_PIM_INTERFACE_XPATH,
|
||||||
|
"frr-routing:ipv4");
|
||||||
}
|
}
|
||||||
|
|
||||||
DEFUN (ip_pim_bsm,
|
DEFUN (ip_pim_bsm,
|
||||||
@ -9306,7 +9378,8 @@ DEFUN (ip_pim_bsm,
|
|||||||
|
|
||||||
nb_cli_enqueue_change(vty, "./bsm", NB_OP_MODIFY, "true");
|
nb_cli_enqueue_change(vty, "./bsm", NB_OP_MODIFY, "true");
|
||||||
|
|
||||||
return nb_cli_apply_changes(vty, "./frr-pim:pim");
|
return nb_cli_apply_changes(vty,
|
||||||
|
FRR_PIM_INTERFACE_XPATH, "frr-routing:ipv4");
|
||||||
}
|
}
|
||||||
|
|
||||||
DEFUN (no_ip_pim_bsm,
|
DEFUN (no_ip_pim_bsm,
|
||||||
@ -9319,7 +9392,8 @@ DEFUN (no_ip_pim_bsm,
|
|||||||
{
|
{
|
||||||
nb_cli_enqueue_change(vty, "./bsm", NB_OP_MODIFY, "false");
|
nb_cli_enqueue_change(vty, "./bsm", NB_OP_MODIFY, "false");
|
||||||
|
|
||||||
return nb_cli_apply_changes(vty, "./frr-pim:pim");
|
return nb_cli_apply_changes(vty,
|
||||||
|
FRR_PIM_INTERFACE_XPATH, "frr-routing:ipv4");
|
||||||
}
|
}
|
||||||
|
|
||||||
DEFUN (ip_pim_ucast_bsm,
|
DEFUN (ip_pim_ucast_bsm,
|
||||||
@ -9345,7 +9419,9 @@ DEFUN (ip_pim_ucast_bsm,
|
|||||||
|
|
||||||
nb_cli_enqueue_change(vty, "./unicast-bsm", NB_OP_MODIFY, "true");
|
nb_cli_enqueue_change(vty, "./unicast-bsm", NB_OP_MODIFY, "true");
|
||||||
|
|
||||||
return nb_cli_apply_changes(vty, "./frr-pim:pim");
|
return nb_cli_apply_changes(vty,
|
||||||
|
FRR_PIM_INTERFACE_XPATH, "frr-routing:ipv4");
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
DEFUN (no_ip_pim_ucast_bsm,
|
DEFUN (no_ip_pim_ucast_bsm,
|
||||||
@ -9358,7 +9434,8 @@ DEFUN (no_ip_pim_ucast_bsm,
|
|||||||
{
|
{
|
||||||
nb_cli_enqueue_change(vty, "./unicast-bsm", NB_OP_MODIFY, "false");
|
nb_cli_enqueue_change(vty, "./unicast-bsm", NB_OP_MODIFY, "false");
|
||||||
|
|
||||||
return nb_cli_apply_changes(vty, "./frr-pim:pim");
|
return nb_cli_apply_changes(vty,
|
||||||
|
FRR_PIM_INTERFACE_XPATH, "frr-routing:ipv4");
|
||||||
}
|
}
|
||||||
|
|
||||||
#if HAVE_BFDD > 0
|
#if HAVE_BFDD > 0
|
||||||
@ -9410,7 +9487,8 @@ DEFUN_HIDDEN (
|
|||||||
nb_cli_enqueue_change(vty, "./bfd/detect_mult", NB_OP_MODIFY,
|
nb_cli_enqueue_change(vty, "./bfd/detect_mult", NB_OP_MODIFY,
|
||||||
argv[idx_number]->arg);
|
argv[idx_number]->arg);
|
||||||
|
|
||||||
return nb_cli_apply_changes(vty, "./frr-pim:pim");
|
return nb_cli_apply_changes(vty,
|
||||||
|
FRR_PIM_INTERFACE_XPATH, "frr-routing:ipv4");
|
||||||
}
|
}
|
||||||
|
|
||||||
#if HAVE_BFDD == 0
|
#if HAVE_BFDD == 0
|
||||||
@ -9444,7 +9522,7 @@ DEFPY(ip_msdp_peer, ip_msdp_peer_cmd,
|
|||||||
return CMD_WARNING_CONFIG_FAILED;
|
return CMD_WARNING_CONFIG_FAILED;
|
||||||
|
|
||||||
snprintf(msdp_peer_source_xpath, sizeof(msdp_peer_source_xpath),
|
snprintf(msdp_peer_source_xpath, sizeof(msdp_peer_source_xpath),
|
||||||
FRR_PIM_AF_XPATH, "frr-pim:pimd", "pim", vrfname,
|
FRR_PIM_VRF_XPATH, "frr-pim:pimd", "pim", vrfname,
|
||||||
"frr-routing:ipv4");
|
"frr-routing:ipv4");
|
||||||
snprintf(temp_xpath, sizeof(temp_xpath),
|
snprintf(temp_xpath, sizeof(temp_xpath),
|
||||||
"/msdp-peer[peer-ip='%s']/source-ip", peer_str);
|
"/msdp-peer[peer-ip='%s']/source-ip", peer_str);
|
||||||
@ -9454,7 +9532,8 @@ DEFPY(ip_msdp_peer, ip_msdp_peer_cmd,
|
|||||||
nb_cli_enqueue_change(vty, msdp_peer_source_xpath, NB_OP_MODIFY,
|
nb_cli_enqueue_change(vty, msdp_peer_source_xpath, NB_OP_MODIFY,
|
||||||
source_str);
|
source_str);
|
||||||
|
|
||||||
return nb_cli_apply_changes(vty, NULL);
|
return nb_cli_apply_changes(vty,
|
||||||
|
FRR_PIM_INTERFACE_XPATH, "frr-routing:ipv4");
|
||||||
}
|
}
|
||||||
|
|
||||||
DEFPY(ip_msdp_timers, ip_msdp_timers_cmd,
|
DEFPY(ip_msdp_timers, ip_msdp_timers_cmd,
|
||||||
@ -9536,7 +9615,7 @@ DEFUN (no_ip_msdp_peer,
|
|||||||
return CMD_WARNING_CONFIG_FAILED;
|
return CMD_WARNING_CONFIG_FAILED;
|
||||||
|
|
||||||
snprintf(msdp_peer_xpath, sizeof(msdp_peer_xpath),
|
snprintf(msdp_peer_xpath, sizeof(msdp_peer_xpath),
|
||||||
FRR_PIM_AF_XPATH,
|
FRR_PIM_VRF_XPATH,
|
||||||
"frr-pim:pimd", "pim", vrfname, "frr-routing:ipv4");
|
"frr-pim:pimd", "pim", vrfname, "frr-routing:ipv4");
|
||||||
snprintf(temp_xpath, sizeof(temp_xpath),
|
snprintf(temp_xpath, sizeof(temp_xpath),
|
||||||
"/msdp-peer[peer-ip='%s']",
|
"/msdp-peer[peer-ip='%s']",
|
||||||
@ -9568,7 +9647,7 @@ DEFPY(ip_msdp_mesh_group_member,
|
|||||||
|
|
||||||
/* Create mesh group. */
|
/* Create mesh group. */
|
||||||
snprintf(xpath_value, sizeof(xpath_value),
|
snprintf(xpath_value, sizeof(xpath_value),
|
||||||
FRR_PIM_AF_XPATH "/msdp-mesh-groups[name='%s']",
|
FRR_PIM_VRF_XPATH "/msdp-mesh-groups[name='%s']",
|
||||||
"frr-pim:pimd", "pim", vrfname, "frr-routing:ipv4", gname);
|
"frr-pim:pimd", "pim", vrfname, "frr-routing:ipv4", gname);
|
||||||
nb_cli_enqueue_change(vty, xpath_value, NB_OP_CREATE, NULL);
|
nb_cli_enqueue_change(vty, xpath_value, NB_OP_CREATE, NULL);
|
||||||
|
|
||||||
@ -9602,7 +9681,7 @@ DEFPY(no_ip_msdp_mesh_group_member,
|
|||||||
|
|
||||||
/* Get mesh group base XPath. */
|
/* Get mesh group base XPath. */
|
||||||
snprintf(xpath_value, sizeof(xpath_value),
|
snprintf(xpath_value, sizeof(xpath_value),
|
||||||
FRR_PIM_AF_XPATH "/msdp-mesh-groups[name='%s']",
|
FRR_PIM_VRF_XPATH "/msdp-mesh-groups[name='%s']",
|
||||||
"frr-pim:pimd", "pim", vrfname, "frr-routing:ipv4", gname);
|
"frr-pim:pimd", "pim", vrfname, "frr-routing:ipv4", gname);
|
||||||
|
|
||||||
if (!yang_dnode_exists(vty->candidate_config->dnode, xpath_value)) {
|
if (!yang_dnode_exists(vty->candidate_config->dnode, xpath_value)) {
|
||||||
@ -9652,7 +9731,7 @@ DEFPY(ip_msdp_mesh_group_source,
|
|||||||
|
|
||||||
/* Create mesh group. */
|
/* Create mesh group. */
|
||||||
snprintf(xpath_value, sizeof(xpath_value),
|
snprintf(xpath_value, sizeof(xpath_value),
|
||||||
FRR_PIM_AF_XPATH "/msdp-mesh-groups[name='%s']",
|
FRR_PIM_VRF_XPATH "/msdp-mesh-groups[name='%s']",
|
||||||
"frr-pim:pimd", "pim", vrfname, "frr-routing:ipv4", gname);
|
"frr-pim:pimd", "pim", vrfname, "frr-routing:ipv4", gname);
|
||||||
nb_cli_enqueue_change(vty, xpath_value, NB_OP_CREATE, NULL);
|
nb_cli_enqueue_change(vty, xpath_value, NB_OP_CREATE, NULL);
|
||||||
|
|
||||||
@ -9683,7 +9762,7 @@ DEFPY(no_ip_msdp_mesh_group_source,
|
|||||||
|
|
||||||
/* Get mesh group base XPath. */
|
/* Get mesh group base XPath. */
|
||||||
snprintf(xpath_value, sizeof(xpath_value),
|
snprintf(xpath_value, sizeof(xpath_value),
|
||||||
FRR_PIM_AF_XPATH "/msdp-mesh-groups[name='%s']",
|
FRR_PIM_VRF_XPATH "/msdp-mesh-groups[name='%s']",
|
||||||
"frr-pim:pimd", "pim", vrfname, "frr-routing:ipv4", gname);
|
"frr-pim:pimd", "pim", vrfname, "frr-routing:ipv4", gname);
|
||||||
nb_cli_enqueue_change(vty, xpath_value, NB_OP_CREATE, NULL);
|
nb_cli_enqueue_change(vty, xpath_value, NB_OP_CREATE, NULL);
|
||||||
|
|
||||||
@ -9718,7 +9797,7 @@ DEFPY(no_ip_msdp_mesh_group,
|
|||||||
|
|
||||||
/* Get mesh group base XPath. */
|
/* Get mesh group base XPath. */
|
||||||
snprintf(xpath_value, sizeof(xpath_value),
|
snprintf(xpath_value, sizeof(xpath_value),
|
||||||
FRR_PIM_AF_XPATH "/msdp-mesh-groups[name='%s']",
|
FRR_PIM_VRF_XPATH "/msdp-mesh-groups[name='%s']",
|
||||||
"frr-pim:pimd", "pim", vrfname, "frr-routing:ipv4", gname);
|
"frr-pim:pimd", "pim", vrfname, "frr-routing:ipv4", gname);
|
||||||
if (!yang_dnode_exists(vty->candidate_config->dnode, xpath_value))
|
if (!yang_dnode_exists(vty->candidate_config->dnode, xpath_value))
|
||||||
return CMD_SUCCESS;
|
return CMD_SUCCESS;
|
||||||
@ -10759,7 +10838,7 @@ DEFUN_HIDDEN (no_ip_pim_mlag,
|
|||||||
{
|
{
|
||||||
char mlag_xpath[XPATH_MAXLEN];
|
char mlag_xpath[XPATH_MAXLEN];
|
||||||
|
|
||||||
snprintf(mlag_xpath, sizeof(mlag_xpath), FRR_PIM_AF_XPATH,
|
snprintf(mlag_xpath, sizeof(mlag_xpath), FRR_PIM_VRF_XPATH,
|
||||||
"frr-pim:pimd", "pim", "default", "frr-routing:ipv4");
|
"frr-pim:pimd", "pim", "default", "frr-routing:ipv4");
|
||||||
strlcat(mlag_xpath, "/mlag", sizeof(mlag_xpath));
|
strlcat(mlag_xpath, "/mlag", sizeof(mlag_xpath));
|
||||||
|
|
||||||
@ -10792,7 +10871,7 @@ DEFUN_HIDDEN (ip_pim_mlag,
|
|||||||
char mlag_reg_address_xpath[XPATH_MAXLEN];
|
char mlag_reg_address_xpath[XPATH_MAXLEN];
|
||||||
|
|
||||||
snprintf(mlag_peerlink_rif_xpath, sizeof(mlag_peerlink_rif_xpath),
|
snprintf(mlag_peerlink_rif_xpath, sizeof(mlag_peerlink_rif_xpath),
|
||||||
FRR_PIM_AF_XPATH,
|
FRR_PIM_VRF_XPATH,
|
||||||
"frr-pim:pimd", "pim", "default", "frr-routing:ipv4");
|
"frr-pim:pimd", "pim", "default", "frr-routing:ipv4");
|
||||||
strlcat(mlag_peerlink_rif_xpath, "/mlag/peerlink-rif",
|
strlcat(mlag_peerlink_rif_xpath, "/mlag/peerlink-rif",
|
||||||
sizeof(mlag_peerlink_rif_xpath));
|
sizeof(mlag_peerlink_rif_xpath));
|
||||||
@ -10802,7 +10881,7 @@ DEFUN_HIDDEN (ip_pim_mlag,
|
|||||||
argv[idx]->arg);
|
argv[idx]->arg);
|
||||||
|
|
||||||
snprintf(mlag_my_role_xpath, sizeof(mlag_my_role_xpath),
|
snprintf(mlag_my_role_xpath, sizeof(mlag_my_role_xpath),
|
||||||
FRR_PIM_AF_XPATH,
|
FRR_PIM_VRF_XPATH,
|
||||||
"frr-pim:pimd", "pim", "default", "frr-routing:ipv4");
|
"frr-pim:pimd", "pim", "default", "frr-routing:ipv4");
|
||||||
strlcat(mlag_my_role_xpath, "/mlag/my-role",
|
strlcat(mlag_my_role_xpath, "/mlag/my-role",
|
||||||
sizeof(mlag_my_role_xpath));
|
sizeof(mlag_my_role_xpath));
|
||||||
@ -10822,7 +10901,7 @@ DEFUN_HIDDEN (ip_pim_mlag,
|
|||||||
}
|
}
|
||||||
|
|
||||||
snprintf(mlag_peer_state_xpath, sizeof(mlag_peer_state_xpath),
|
snprintf(mlag_peer_state_xpath, sizeof(mlag_peer_state_xpath),
|
||||||
FRR_PIM_AF_XPATH,
|
FRR_PIM_VRF_XPATH,
|
||||||
"frr-pim:pimd", "pim", "default", "frr-routing:ipv4");
|
"frr-pim:pimd", "pim", "default", "frr-routing:ipv4");
|
||||||
strlcat(mlag_peer_state_xpath, "/mlag/peer-state",
|
strlcat(mlag_peer_state_xpath, "/mlag/peer-state",
|
||||||
sizeof(mlag_peer_state_xpath));
|
sizeof(mlag_peer_state_xpath));
|
||||||
@ -10842,7 +10921,7 @@ DEFUN_HIDDEN (ip_pim_mlag,
|
|||||||
}
|
}
|
||||||
|
|
||||||
snprintf(mlag_reg_address_xpath, sizeof(mlag_reg_address_xpath),
|
snprintf(mlag_reg_address_xpath, sizeof(mlag_reg_address_xpath),
|
||||||
FRR_PIM_AF_XPATH,
|
FRR_PIM_VRF_XPATH,
|
||||||
"frr-pim:pimd", "pim", "default", "frr-routing:ipv4");
|
"frr-pim:pimd", "pim", "default", "frr-routing:ipv4");
|
||||||
strlcat(mlag_reg_address_xpath, "/mlag/reg-address",
|
strlcat(mlag_reg_address_xpath, "/mlag/reg-address",
|
||||||
sizeof(mlag_reg_address_xpath));
|
sizeof(mlag_reg_address_xpath));
|
||||||
|
250
pimd/pim_nb.c
250
pimd/pim_nb.c
@ -28,48 +28,6 @@
|
|||||||
const struct frr_yang_module_info frr_pim_info = {
|
const struct frr_yang_module_info frr_pim_info = {
|
||||||
.name = "frr-pim",
|
.name = "frr-pim",
|
||||||
.nodes = {
|
.nodes = {
|
||||||
{
|
|
||||||
.xpath = "/frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-pim:pim/ecmp",
|
|
||||||
.cbs = {
|
|
||||||
.modify = routing_control_plane_protocols_control_plane_protocol_pim_ecmp_modify,
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
.xpath = "/frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-pim:pim/ecmp-rebalance",
|
|
||||||
.cbs = {
|
|
||||||
.modify = routing_control_plane_protocols_control_plane_protocol_pim_ecmp_rebalance_modify,
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
.xpath = "/frr-pim:pim/join-prune-interval",
|
|
||||||
.cbs = {
|
|
||||||
.modify = pim_join_prune_interval_modify,
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
.xpath = "/frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-pim:pim/keep-alive-timer",
|
|
||||||
.cbs = {
|
|
||||||
.modify = routing_control_plane_protocols_control_plane_protocol_pim_keep_alive_timer_modify,
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
.xpath = "/frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-pim:pim/rp-keep-alive-timer",
|
|
||||||
.cbs = {
|
|
||||||
.modify = routing_control_plane_protocols_control_plane_protocol_pim_rp_keep_alive_timer_modify,
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
.xpath = "/frr-pim:pim/packets",
|
|
||||||
.cbs = {
|
|
||||||
.modify = pim_packets_modify,
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
.xpath = "/frr-pim:pim/register-suppress-time",
|
|
||||||
.cbs = {
|
|
||||||
.modify = pim_register_suppress_time_modify,
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
.xpath = "/frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-pim:pim/address-family",
|
.xpath = "/frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-pim:pim/address-family",
|
||||||
.cbs = {
|
.cbs = {
|
||||||
@ -77,6 +35,55 @@ const struct frr_yang_module_info frr_pim_info = {
|
|||||||
.destroy = routing_control_plane_protocols_control_plane_protocol_pim_address_family_destroy,
|
.destroy = routing_control_plane_protocols_control_plane_protocol_pim_address_family_destroy,
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
.xpath = "/frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-pim:pim/address-family/ecmp",
|
||||||
|
.cbs = {
|
||||||
|
.modify = routing_control_plane_protocols_control_plane_protocol_pim_address_family_ecmp_modify,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.xpath = "/frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-pim:pim/address-family/ecmp-rebalance",
|
||||||
|
.cbs = {
|
||||||
|
.modify = routing_control_plane_protocols_control_plane_protocol_pim_address_family_ecmp_rebalance_modify,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.xpath = "/frr-pim:pim/address-family/join-prune-interval",
|
||||||
|
.cbs = {
|
||||||
|
.modify = pim_address_family_join_prune_interval_modify,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.xpath = "/frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-pim:pim/address-family/keep-alive-timer",
|
||||||
|
.cbs = {
|
||||||
|
.modify = routing_control_plane_protocols_control_plane_protocol_pim_address_family_keep_alive_timer_modify,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.xpath = "/frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-pim:pim/address-family/rp-keep-alive-timer",
|
||||||
|
.cbs = {
|
||||||
|
.modify = routing_control_plane_protocols_control_plane_protocol_pim_address_family_rp_keep_alive_timer_modify,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.xpath = "/frr-pim:pim/address-family",
|
||||||
|
.cbs = {
|
||||||
|
.create = pim_address_family_create,
|
||||||
|
.destroy = pim_address_family_destroy,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.xpath = "/frr-pim:pim/address-family/packets",
|
||||||
|
.cbs = {
|
||||||
|
.modify = pim_address_family_packets_modify,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.xpath = "/frr-pim:pim/address-family/register-suppress-time",
|
||||||
|
.cbs = {
|
||||||
|
.modify = pim_address_family_register_suppress_time_modify,
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
.xpath = "/frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-pim:pim/address-family/send-v6-secondary",
|
.xpath = "/frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-pim:pim/address-family/send-v6-secondary",
|
||||||
.cbs = {
|
.cbs = {
|
||||||
@ -210,89 +217,6 @@ const struct frr_yang_module_info frr_pim_info = {
|
|||||||
.destroy = routing_control_plane_protocols_control_plane_protocol_pim_address_family_register_accept_list_destroy,
|
.destroy = routing_control_plane_protocols_control_plane_protocol_pim_address_family_register_accept_list_destroy,
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
|
||||||
.xpath = "/frr-interface:lib/interface/frr-pim:pim",
|
|
||||||
.cbs = {
|
|
||||||
.create = lib_interface_pim_create,
|
|
||||||
.destroy = lib_interface_pim_destroy,
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
.xpath = "/frr-interface:lib/interface/frr-pim:pim/pim-enable",
|
|
||||||
.cbs = {
|
|
||||||
.modify = lib_interface_pim_pim_enable_modify,
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
.xpath = "/frr-interface:lib/interface/frr-pim:pim/dr-priority",
|
|
||||||
.cbs = {
|
|
||||||
.modify = lib_interface_pim_dr_priority_modify,
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
.xpath = "/frr-interface:lib/interface/frr-pim:pim/hello-interval",
|
|
||||||
.cbs = {
|
|
||||||
.modify = lib_interface_pim_hello_interval_modify,
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
.xpath = "/frr-interface:lib/interface/frr-pim:pim/hello-holdtime",
|
|
||||||
.cbs = {
|
|
||||||
.modify = lib_interface_pim_hello_holdtime_modify,
|
|
||||||
.destroy = lib_interface_pim_hello_holdtime_destroy,
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
.xpath = "/frr-interface:lib/interface/frr-pim:pim/bfd",
|
|
||||||
.cbs = {
|
|
||||||
.create = lib_interface_pim_bfd_create,
|
|
||||||
.destroy = lib_interface_pim_bfd_destroy,
|
|
||||||
.apply_finish = lib_interface_pim_bfd_apply_finish,
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
.xpath = "/frr-interface:lib/interface/frr-pim:pim/bfd/min-rx-interval",
|
|
||||||
.cbs = {
|
|
||||||
.modify = lib_interface_pim_bfd_min_rx_interval_modify,
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
.xpath = "/frr-interface:lib/interface/frr-pim:pim/bfd/min-tx-interval",
|
|
||||||
.cbs = {
|
|
||||||
.modify = lib_interface_pim_bfd_min_tx_interval_modify,
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
.xpath = "/frr-interface:lib/interface/frr-pim:pim/bfd/detect_mult",
|
|
||||||
.cbs = {
|
|
||||||
.modify = lib_interface_pim_bfd_detect_mult_modify,
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
.xpath = "/frr-interface:lib/interface/frr-pim:pim/bfd/profile",
|
|
||||||
.cbs = {
|
|
||||||
.modify = lib_interface_pim_bfd_profile_modify,
|
|
||||||
.destroy = lib_interface_pim_bfd_profile_destroy,
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
.xpath = "/frr-interface:lib/interface/frr-pim:pim/bsm",
|
|
||||||
.cbs = {
|
|
||||||
.modify = lib_interface_pim_bsm_modify,
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
.xpath = "/frr-interface:lib/interface/frr-pim:pim/unicast-bsm",
|
|
||||||
.cbs = {
|
|
||||||
.modify = lib_interface_pim_unicast_bsm_modify,
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
.xpath = "/frr-interface:lib/interface/frr-pim:pim/active-active",
|
|
||||||
.cbs = {
|
|
||||||
.modify = lib_interface_pim_active_active_modify,
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
.xpath = "/frr-interface:lib/interface/frr-pim:pim/address-family",
|
.xpath = "/frr-interface:lib/interface/frr-pim:pim/address-family",
|
||||||
.cbs = {
|
.cbs = {
|
||||||
@ -300,6 +224,82 @@ const struct frr_yang_module_info frr_pim_info = {
|
|||||||
.destroy = lib_interface_pim_address_family_destroy,
|
.destroy = lib_interface_pim_address_family_destroy,
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
.xpath = "/frr-interface:lib/interface/frr-pim:pim/address-family/pim-enable",
|
||||||
|
.cbs = {
|
||||||
|
.modify = lib_interface_pim_address_family_pim_enable_modify,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.xpath = "/frr-interface:lib/interface/frr-pim:pim/address-family/dr-priority",
|
||||||
|
.cbs = {
|
||||||
|
.modify = lib_interface_pim_address_family_dr_priority_modify,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.xpath = "/frr-interface:lib/interface/frr-pim:pim/address-family/hello-interval",
|
||||||
|
.cbs = {
|
||||||
|
.modify = lib_interface_pim_address_family_hello_interval_modify,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.xpath = "/frr-interface:lib/interface/frr-pim:pim/address-family/hello-holdtime",
|
||||||
|
.cbs = {
|
||||||
|
.modify = lib_interface_pim_address_family_hello_holdtime_modify,
|
||||||
|
.destroy = lib_interface_pim_address_family_hello_holdtime_destroy,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.xpath = "/frr-interface:lib/interface/frr-pim:pim/address-family/bfd",
|
||||||
|
.cbs = {
|
||||||
|
.create = lib_interface_pim_address_family_bfd_create,
|
||||||
|
.destroy = lib_interface_pim_address_family_bfd_destroy,
|
||||||
|
.apply_finish = lib_interface_pim_address_family_bfd_apply_finish,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.xpath = "/frr-interface:lib/interface/frr-pim:pim/address-family/bfd/min-rx-interval",
|
||||||
|
.cbs = {
|
||||||
|
.modify = lib_interface_pim_address_family_bfd_min_rx_interval_modify,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.xpath = "/frr-interface:lib/interface/frr-pim:pim/address-family/bfd/min-tx-interval",
|
||||||
|
.cbs = {
|
||||||
|
.modify = lib_interface_pim_address_family_bfd_min_tx_interval_modify,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.xpath = "/frr-interface:lib/interface/frr-pim:pim/address-family/bfd/detect_mult",
|
||||||
|
.cbs = {
|
||||||
|
.modify = lib_interface_pim_address_family_bfd_detect_mult_modify,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.xpath = "/frr-interface:lib/interface/frr-pim:pim/address-family/bfd/profile",
|
||||||
|
.cbs = {
|
||||||
|
.modify = lib_interface_pim_address_family_bfd_profile_modify,
|
||||||
|
.destroy = lib_interface_pim_address_family_bfd_profile_destroy,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.xpath = "/frr-interface:lib/interface/frr-pim:pim/address-family/bsm",
|
||||||
|
.cbs = {
|
||||||
|
.modify = lib_interface_pim_address_family_bsm_modify,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.xpath = "/frr-interface:lib/interface/frr-pim:pim/address-family/unicast-bsm",
|
||||||
|
.cbs = {
|
||||||
|
.modify = lib_interface_pim_address_family_unicast_bsm_modify,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.xpath = "/frr-interface:lib/interface/frr-pim:pim/address-family/active-active",
|
||||||
|
.cbs = {
|
||||||
|
.modify = lib_interface_pim_address_family_active_active_modify,
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
.xpath = "/frr-interface:lib/interface/frr-pim:pim/address-family/use-source",
|
.xpath = "/frr-interface:lib/interface/frr-pim:pim/address-family/use-source",
|
||||||
.cbs = {
|
.cbs = {
|
||||||
|
@ -25,17 +25,20 @@ extern const struct frr_yang_module_info frr_pim_rp_info;
|
|||||||
extern const struct frr_yang_module_info frr_igmp_info;
|
extern const struct frr_yang_module_info frr_igmp_info;
|
||||||
|
|
||||||
/* frr-pim prototypes*/
|
/* frr-pim prototypes*/
|
||||||
int routing_control_plane_protocols_control_plane_protocol_pim_ecmp_modify(
|
int routing_control_plane_protocols_control_plane_protocol_pim_address_family_ecmp_modify(
|
||||||
struct nb_cb_modify_args *args);
|
struct nb_cb_modify_args *args);
|
||||||
int routing_control_plane_protocols_control_plane_protocol_pim_ecmp_rebalance_modify(
|
int routing_control_plane_protocols_control_plane_protocol_pim_address_family_ecmp_rebalance_modify(
|
||||||
struct nb_cb_modify_args *args);
|
struct nb_cb_modify_args *args);
|
||||||
int pim_join_prune_interval_modify(struct nb_cb_modify_args *args);
|
int pim_address_family_join_prune_interval_modify(struct nb_cb_modify_args *args);
|
||||||
int routing_control_plane_protocols_control_plane_protocol_pim_keep_alive_timer_modify(
|
int routing_control_plane_protocols_control_plane_protocol_pim_address_family_keep_alive_timer_modify(
|
||||||
struct nb_cb_modify_args *args);
|
struct nb_cb_modify_args *args);
|
||||||
int routing_control_plane_protocols_control_plane_protocol_pim_rp_keep_alive_timer_modify(
|
int routing_control_plane_protocols_control_plane_protocol_pim_address_family_rp_keep_alive_timer_modify(
|
||||||
|
struct nb_cb_modify_args *args);
|
||||||
|
int pim_address_family_create(struct nb_cb_create_args *args);
|
||||||
|
int pim_address_family_destroy(struct nb_cb_destroy_args *args);
|
||||||
|
int pim_address_family_packets_modify(struct nb_cb_modify_args *args);
|
||||||
|
int pim_address_family_register_suppress_time_modify(
|
||||||
struct nb_cb_modify_args *args);
|
struct nb_cb_modify_args *args);
|
||||||
int pim_packets_modify(struct nb_cb_modify_args *args);
|
|
||||||
int pim_register_suppress_time_modify(struct nb_cb_modify_args *args);
|
|
||||||
int routing_control_plane_protocols_control_plane_protocol_pim_address_family_create(
|
int routing_control_plane_protocols_control_plane_protocol_pim_address_family_create(
|
||||||
struct nb_cb_create_args *args);
|
struct nb_cb_create_args *args);
|
||||||
int routing_control_plane_protocols_control_plane_protocol_pim_address_family_destroy(
|
int routing_control_plane_protocols_control_plane_protocol_pim_address_family_destroy(
|
||||||
@ -97,28 +100,38 @@ int routing_control_plane_protocols_control_plane_protocol_pim_address_family_re
|
|||||||
struct nb_cb_modify_args *args);
|
struct nb_cb_modify_args *args);
|
||||||
int routing_control_plane_protocols_control_plane_protocol_pim_address_family_register_accept_list_destroy(
|
int routing_control_plane_protocols_control_plane_protocol_pim_address_family_register_accept_list_destroy(
|
||||||
struct nb_cb_destroy_args *args);
|
struct nb_cb_destroy_args *args);
|
||||||
int lib_interface_pim_dr_priority_modify(
|
int lib_interface_pim_address_family_dr_priority_modify(
|
||||||
struct nb_cb_modify_args *args);
|
struct nb_cb_modify_args *args);
|
||||||
int lib_interface_pim_create(struct nb_cb_create_args *args);
|
|
||||||
int lib_interface_pim_destroy(struct nb_cb_destroy_args *args);
|
|
||||||
int lib_interface_pim_pim_enable_modify(struct nb_cb_modify_args *args);
|
|
||||||
int lib_interface_pim_hello_interval_modify(struct nb_cb_modify_args *args);
|
|
||||||
int lib_interface_pim_hello_holdtime_modify(struct nb_cb_modify_args *args);
|
|
||||||
int lib_interface_pim_hello_holdtime_destroy(struct nb_cb_destroy_args *args);
|
|
||||||
int lib_interface_pim_bfd_create(struct nb_cb_create_args *args);
|
|
||||||
int lib_interface_pim_bfd_destroy(struct nb_cb_destroy_args *args);
|
|
||||||
void lib_interface_pim_bfd_apply_finish(struct nb_cb_apply_finish_args *args);
|
|
||||||
int lib_interface_pim_bfd_min_rx_interval_modify(struct nb_cb_modify_args *args);
|
|
||||||
int lib_interface_pim_bfd_min_tx_interval_modify(
|
|
||||||
struct nb_cb_modify_args *args);
|
|
||||||
int lib_interface_pim_bfd_detect_mult_modify(struct nb_cb_modify_args *args);
|
|
||||||
int lib_interface_pim_bfd_profile_modify(struct nb_cb_modify_args *args);
|
|
||||||
int lib_interface_pim_bfd_profile_destroy(struct nb_cb_destroy_args *args);
|
|
||||||
int lib_interface_pim_bsm_modify(struct nb_cb_modify_args *args);
|
|
||||||
int lib_interface_pim_unicast_bsm_modify(struct nb_cb_modify_args *args);
|
|
||||||
int lib_interface_pim_active_active_modify(struct nb_cb_modify_args *args);
|
|
||||||
int lib_interface_pim_address_family_create(struct nb_cb_create_args *args);
|
int lib_interface_pim_address_family_create(struct nb_cb_create_args *args);
|
||||||
int lib_interface_pim_address_family_destroy(struct nb_cb_destroy_args *args);
|
int lib_interface_pim_address_family_destroy(struct nb_cb_destroy_args *args);
|
||||||
|
int lib_interface_pim_address_family_pim_enable_modify(
|
||||||
|
struct nb_cb_modify_args *args);
|
||||||
|
int lib_interface_pim_address_family_hello_interval_modify(
|
||||||
|
struct nb_cb_modify_args *args);
|
||||||
|
int lib_interface_pim_address_family_hello_holdtime_modify(
|
||||||
|
struct nb_cb_modify_args *args);
|
||||||
|
int lib_interface_pim_address_family_hello_holdtime_destroy(
|
||||||
|
struct nb_cb_destroy_args *args);
|
||||||
|
int lib_interface_pim_address_family_bfd_create(struct nb_cb_create_args *args);
|
||||||
|
int lib_interface_pim_address_family_bfd_destroy(
|
||||||
|
struct nb_cb_destroy_args *args);
|
||||||
|
void lib_interface_pim_address_family_bfd_apply_finish(
|
||||||
|
struct nb_cb_apply_finish_args *args);
|
||||||
|
int lib_interface_pim_address_family_bfd_min_rx_interval_modify(
|
||||||
|
struct nb_cb_modify_args *args);
|
||||||
|
int lib_interface_pim_address_family_bfd_min_tx_interval_modify(
|
||||||
|
struct nb_cb_modify_args *args);
|
||||||
|
int lib_interface_pim_address_family_bfd_detect_mult_modify(
|
||||||
|
struct nb_cb_modify_args *args);
|
||||||
|
int lib_interface_pim_address_family_bfd_profile_modify(
|
||||||
|
struct nb_cb_modify_args *args);
|
||||||
|
int lib_interface_pim_address_family_bfd_profile_destroy(
|
||||||
|
struct nb_cb_destroy_args *args);
|
||||||
|
int lib_interface_pim_address_family_bsm_modify(struct nb_cb_modify_args *args);
|
||||||
|
int lib_interface_pim_address_family_unicast_bsm_modify(
|
||||||
|
struct nb_cb_modify_args *args);
|
||||||
|
int lib_interface_pim_address_family_active_active_modify(
|
||||||
|
struct nb_cb_modify_args *args);
|
||||||
int lib_interface_pim_address_family_use_source_modify(
|
int lib_interface_pim_address_family_use_source_modify(
|
||||||
struct nb_cb_modify_args *args);
|
struct nb_cb_modify_args *args);
|
||||||
int lib_interface_pim_address_family_use_source_destroy(
|
int lib_interface_pim_address_family_use_source_destroy(
|
||||||
@ -177,14 +190,19 @@ int lib_interface_igmp_address_family_static_group_destroy(
|
|||||||
int routing_control_plane_protocols_name_validate(
|
int routing_control_plane_protocols_name_validate(
|
||||||
struct nb_cb_create_args *args);
|
struct nb_cb_create_args *args);
|
||||||
|
|
||||||
#define FRR_PIM_XPATH \
|
#define FRR_PIM_VRF_XPATH \
|
||||||
"/frr-routing:routing/control-plane-protocols/" \
|
|
||||||
"control-plane-protocol[type='%s'][name='%s'][vrf='%s']/" \
|
|
||||||
"frr-pim:pim"
|
|
||||||
#define FRR_PIM_AF_XPATH \
|
|
||||||
"/frr-routing:routing/control-plane-protocols/" \
|
"/frr-routing:routing/control-plane-protocols/" \
|
||||||
"control-plane-protocol[type='%s'][name='%s'][vrf='%s']/" \
|
"control-plane-protocol[type='%s'][name='%s'][vrf='%s']/" \
|
||||||
"frr-pim:pim/address-family[address-family='%s']"
|
"frr-pim:pim/address-family[address-family='%s']"
|
||||||
|
#define FRR_PIM_INTERFACE_XPATH \
|
||||||
|
"./frr-pim:pim/address-family[address-family='%s']"
|
||||||
|
#define FRR_PIM_ENABLE_XPATH \
|
||||||
|
"%s/frr-pim:pim/address-family[address-family='%s']/pim-enable"
|
||||||
|
#define FRR_PIM_ROUTER_XPATH \
|
||||||
|
"/frr-pim:pim/address-family[address-family='%s']"
|
||||||
|
#define FRR_PIM_MROUTE_XPATH \
|
||||||
|
"./frr-pim:pim/address-family[address-family='%s']/" \
|
||||||
|
"mroute[source-addr='%s'][group-addr='%s']"
|
||||||
#define FRR_PIM_STATIC_RP_XPATH \
|
#define FRR_PIM_STATIC_RP_XPATH \
|
||||||
"/frr-routing:routing/control-plane-protocols/" \
|
"/frr-routing:routing/control-plane-protocols/" \
|
||||||
"control-plane-protocol[type='%s'][name='%s'][vrf='%s']/" \
|
"control-plane-protocol[type='%s'][name='%s'][vrf='%s']/" \
|
||||||
@ -193,6 +211,6 @@ int routing_control_plane_protocols_name_validate(
|
|||||||
#define FRR_IGMP_JOIN_XPATH \
|
#define FRR_IGMP_JOIN_XPATH \
|
||||||
"./frr-igmp:igmp/address-family[address-family='%s']/" \
|
"./frr-igmp:igmp/address-family[address-family='%s']/" \
|
||||||
"static-group[group-addr='%s'][source-addr='%s']"
|
"static-group[group-addr='%s'][source-addr='%s']"
|
||||||
#define FRR_PIM_MSDP_XPATH FRR_PIM_AF_XPATH "/msdp"
|
#define FRR_PIM_MSDP_XPATH FRR_PIM_VRF_XPATH "/msdp"
|
||||||
|
|
||||||
#endif /* _FRR_PIM_NB_H_ */
|
#endif /* _FRR_PIM_NB_H_ */
|
||||||
|
@ -334,7 +334,9 @@ static bool is_pim_interface(const struct lyd_node *dnode)
|
|||||||
|
|
||||||
yang_dnode_get_path(dnode, if_xpath, sizeof(if_xpath));
|
yang_dnode_get_path(dnode, if_xpath, sizeof(if_xpath));
|
||||||
pim_enable_dnode =
|
pim_enable_dnode =
|
||||||
yang_dnode_getf(dnode, "%s/frr-pim:pim/pim-enable", if_xpath);
|
yang_dnode_getf(dnode,
|
||||||
|
"%s/frr-pim:pim/address-family[address-family='%s']/pim-enable",
|
||||||
|
if_xpath, "frr-routing:ipv4");
|
||||||
igmp_enable_dnode = yang_dnode_getf(
|
igmp_enable_dnode = yang_dnode_getf(
|
||||||
dnode, "%s/frr-igmp:igmp/igmp-enable", if_xpath);
|
dnode, "%s/frr-igmp:igmp/igmp-enable", if_xpath);
|
||||||
|
|
||||||
@ -517,9 +519,38 @@ int routing_control_plane_protocols_name_validate(
|
|||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* XPath: /frr-pim:pim/packets
|
* XPath: /frr-pim:pim/address-family
|
||||||
*/
|
*/
|
||||||
int pim_packets_modify(struct nb_cb_modify_args *args)
|
int pim_address_family_create(struct nb_cb_create_args *args)
|
||||||
|
{
|
||||||
|
switch (args->event) {
|
||||||
|
case NB_EV_VALIDATE:
|
||||||
|
case NB_EV_PREPARE:
|
||||||
|
case NB_EV_ABORT:
|
||||||
|
case NB_EV_APPLY:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
return NB_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
int pim_address_family_destroy(struct nb_cb_destroy_args *args)
|
||||||
|
{
|
||||||
|
switch (args->event) {
|
||||||
|
case NB_EV_VALIDATE:
|
||||||
|
case NB_EV_PREPARE:
|
||||||
|
case NB_EV_ABORT:
|
||||||
|
case NB_EV_APPLY:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
return NB_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* XPath: /frr-pim:pim/address-family/packets
|
||||||
|
*/
|
||||||
|
int pim_address_family_packets_modify(struct nb_cb_modify_args *args)
|
||||||
{
|
{
|
||||||
switch (args->event) {
|
switch (args->event) {
|
||||||
case NB_EV_VALIDATE:
|
case NB_EV_VALIDATE:
|
||||||
@ -536,9 +567,10 @@ int pim_packets_modify(struct nb_cb_modify_args *args)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* XPath: /frr-pim:pim/join-prune-interval
|
* XPath: /frr-pim:pim/address-family/join-prune-interval
|
||||||
*/
|
*/
|
||||||
int pim_join_prune_interval_modify(struct nb_cb_modify_args *args)
|
int pim_address_family_join_prune_interval_modify(
|
||||||
|
struct nb_cb_modify_args *args)
|
||||||
{
|
{
|
||||||
switch (args->event) {
|
switch (args->event) {
|
||||||
case NB_EV_VALIDATE:
|
case NB_EV_VALIDATE:
|
||||||
@ -554,9 +586,10 @@ int pim_join_prune_interval_modify(struct nb_cb_modify_args *args)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* XPath: /frr-pim:pim/register-suppress-time
|
* XPath: /frr-pim:pim/address-family/register-suppress-time
|
||||||
*/
|
*/
|
||||||
int pim_register_suppress_time_modify(struct nb_cb_modify_args *args)
|
int pim_address_family_register_suppress_time_modify(
|
||||||
|
struct nb_cb_modify_args *args)
|
||||||
{
|
{
|
||||||
uint16_t value;
|
uint16_t value;
|
||||||
switch (args->event) {
|
switch (args->event) {
|
||||||
@ -592,9 +625,9 @@ int pim_register_suppress_time_modify(struct nb_cb_modify_args *args)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* XPath: /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-pim:pim/ecmp
|
* XPath: /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-pim:pim/address-family/ecmp
|
||||||
*/
|
*/
|
||||||
int routing_control_plane_protocols_control_plane_protocol_pim_ecmp_modify(
|
int routing_control_plane_protocols_control_plane_protocol_pim_address_family_ecmp_modify(
|
||||||
struct nb_cb_modify_args *args)
|
struct nb_cb_modify_args *args)
|
||||||
{
|
{
|
||||||
struct vrf *vrf;
|
struct vrf *vrf;
|
||||||
@ -615,9 +648,9 @@ int routing_control_plane_protocols_control_plane_protocol_pim_ecmp_modify(
|
|||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* XPath: /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-pim:pim/ecmp-rebalance
|
* XPath: /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-pim:pim/address-family/ecmp-rebalance
|
||||||
*/
|
*/
|
||||||
int routing_control_plane_protocols_control_plane_protocol_pim_ecmp_rebalance_modify(
|
int routing_control_plane_protocols_control_plane_protocol_pim_address_family_ecmp_rebalance_modify(
|
||||||
struct nb_cb_modify_args *args)
|
struct nb_cb_modify_args *args)
|
||||||
{
|
{
|
||||||
struct vrf *vrf;
|
struct vrf *vrf;
|
||||||
@ -639,9 +672,9 @@ int routing_control_plane_protocols_control_plane_protocol_pim_ecmp_rebalance_mo
|
|||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* XPath: /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-pim:pim/keep-alive-timer
|
* XPath: /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-pim:pim/address-family/keep-alive-timer
|
||||||
*/
|
*/
|
||||||
int routing_control_plane_protocols_control_plane_protocol_pim_keep_alive_timer_modify(
|
int routing_control_plane_protocols_control_plane_protocol_pim_address_family_keep_alive_timer_modify(
|
||||||
struct nb_cb_modify_args *args)
|
struct nb_cb_modify_args *args)
|
||||||
{
|
{
|
||||||
struct vrf *vrf;
|
struct vrf *vrf;
|
||||||
@ -663,9 +696,9 @@ int routing_control_plane_protocols_control_plane_protocol_pim_keep_alive_timer_
|
|||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* XPath: /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-pim:pim/rp-keep-alive-timer
|
* XPath: /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-pim:pim/address-family/rp-keep-alive-timer
|
||||||
*/
|
*/
|
||||||
int routing_control_plane_protocols_control_plane_protocol_pim_rp_keep_alive_timer_modify(
|
int routing_control_plane_protocols_control_plane_protocol_pim_address_family_rp_keep_alive_timer_modify(
|
||||||
struct nb_cb_modify_args *args)
|
struct nb_cb_modify_args *args)
|
||||||
{
|
{
|
||||||
struct vrf *vrf;
|
struct vrf *vrf;
|
||||||
@ -712,7 +745,6 @@ int routing_control_plane_protocols_control_plane_protocol_pim_address_family_de
|
|||||||
case NB_EV_PREPARE:
|
case NB_EV_PREPARE:
|
||||||
case NB_EV_ABORT:
|
case NB_EV_ABORT:
|
||||||
case NB_EV_APPLY:
|
case NB_EV_APPLY:
|
||||||
/* TODO: implement me. */
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1498,9 +1530,9 @@ int routing_control_plane_protocols_control_plane_protocol_pim_address_family_re
|
|||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* XPath: /frr-interface:lib/interface/frr-pim:pim
|
* XPath: /frr-interface:lib/interface/frr-pim:pim/address-family
|
||||||
*/
|
*/
|
||||||
int lib_interface_pim_create(struct nb_cb_create_args *args)
|
int lib_interface_pim_address_family_create(struct nb_cb_create_args *args)
|
||||||
{
|
{
|
||||||
switch (args->event) {
|
switch (args->event) {
|
||||||
case NB_EV_VALIDATE:
|
case NB_EV_VALIDATE:
|
||||||
@ -1513,7 +1545,7 @@ int lib_interface_pim_create(struct nb_cb_create_args *args)
|
|||||||
return NB_OK;
|
return NB_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
int lib_interface_pim_destroy(struct nb_cb_destroy_args *args)
|
int lib_interface_pim_address_family_destroy(struct nb_cb_destroy_args *args)
|
||||||
{
|
{
|
||||||
struct interface *ifp;
|
struct interface *ifp;
|
||||||
struct pim_interface *pim_ifp;
|
struct pim_interface *pim_ifp;
|
||||||
@ -1541,9 +1573,9 @@ int lib_interface_pim_destroy(struct nb_cb_destroy_args *args)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* XPath: /frr-interface:lib/interface/frr-pim:pim/pim-enable
|
* XPath: /frr-interface:lib/interface/frr-pim:pim/address-family/pim-enable
|
||||||
*/
|
*/
|
||||||
int lib_interface_pim_pim_enable_modify(struct nb_cb_modify_args *args)
|
int lib_interface_pim_address_family_pim_enable_modify(struct nb_cb_modify_args *args)
|
||||||
{
|
{
|
||||||
struct interface *ifp;
|
struct interface *ifp;
|
||||||
struct pim_interface *pim_ifp;
|
struct pim_interface *pim_ifp;
|
||||||
@ -1595,9 +1627,10 @@ int lib_interface_pim_pim_enable_modify(struct nb_cb_modify_args *args)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* XPath: /frr-interface:lib/interface/frr-pim:pim/hello-interval
|
* XPath: /frr-interface:lib/interface/frr-pim:pim/address-family/hello-interval
|
||||||
*/
|
*/
|
||||||
int lib_interface_pim_hello_interval_modify(struct nb_cb_modify_args *args)
|
int lib_interface_pim_address_family_hello_interval_modify(
|
||||||
|
struct nb_cb_modify_args *args)
|
||||||
{
|
{
|
||||||
struct interface *ifp;
|
struct interface *ifp;
|
||||||
struct pim_interface *pim_ifp;
|
struct pim_interface *pim_ifp;
|
||||||
@ -1620,9 +1653,10 @@ int lib_interface_pim_hello_interval_modify(struct nb_cb_modify_args *args)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* XPath: /frr-interface:lib/interface/frr-pim:pim/hello-holdtime
|
* XPath: /frr-interface:lib/interface/frr-pim:pim/address-family/hello-holdtime
|
||||||
*/
|
*/
|
||||||
int lib_interface_pim_hello_holdtime_modify(struct nb_cb_modify_args *args)
|
int lib_interface_pim_address_family_hello_holdtime_modify(
|
||||||
|
struct nb_cb_modify_args *args)
|
||||||
{
|
{
|
||||||
struct interface *ifp;
|
struct interface *ifp;
|
||||||
struct pim_interface *pim_ifp;
|
struct pim_interface *pim_ifp;
|
||||||
@ -1644,7 +1678,8 @@ int lib_interface_pim_hello_holdtime_modify(struct nb_cb_modify_args *args)
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int lib_interface_pim_hello_holdtime_destroy(struct nb_cb_destroy_args *args)
|
int lib_interface_pim_address_family_hello_holdtime_destroy(
|
||||||
|
struct nb_cb_destroy_args *args)
|
||||||
{
|
{
|
||||||
struct interface *ifp;
|
struct interface *ifp;
|
||||||
struct pim_interface *pim_ifp;
|
struct pim_interface *pim_ifp;
|
||||||
@ -1664,9 +1699,9 @@ int lib_interface_pim_hello_holdtime_destroy(struct nb_cb_destroy_args *args)
|
|||||||
return NB_OK;
|
return NB_OK;
|
||||||
}
|
}
|
||||||
/*
|
/*
|
||||||
* XPath: /frr-interface:lib/interface/frr-pim:pim/bfd
|
* XPath: /frr-interface:lib/interface/frr-pim:pim/address-family/bfd
|
||||||
*/
|
*/
|
||||||
int lib_interface_pim_bfd_create(struct nb_cb_create_args *args)
|
int lib_interface_pim_address_family_bfd_create(struct nb_cb_create_args *args)
|
||||||
{
|
{
|
||||||
struct interface *ifp;
|
struct interface *ifp;
|
||||||
struct pim_interface *pim_ifp;
|
struct pim_interface *pim_ifp;
|
||||||
@ -1687,7 +1722,8 @@ int lib_interface_pim_bfd_create(struct nb_cb_create_args *args)
|
|||||||
return NB_OK;
|
return NB_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
int lib_interface_pim_bfd_destroy(struct nb_cb_destroy_args *args)
|
int lib_interface_pim_address_family_bfd_destroy(
|
||||||
|
struct nb_cb_destroy_args *args)
|
||||||
{
|
{
|
||||||
struct interface *ifp;
|
struct interface *ifp;
|
||||||
struct pim_interface *pim_ifp;
|
struct pim_interface *pim_ifp;
|
||||||
@ -1717,9 +1753,10 @@ int lib_interface_pim_bfd_destroy(struct nb_cb_destroy_args *args)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* XPath: /frr-interface:lib/interface/frr-pim:pim/bfd
|
* XPath: /frr-interface:lib/interface/frr-pim:pim/address-family/bfd
|
||||||
*/
|
*/
|
||||||
void lib_interface_pim_bfd_apply_finish(struct nb_cb_apply_finish_args *args)
|
void lib_interface_pim_address_family_bfd_apply_finish(
|
||||||
|
struct nb_cb_apply_finish_args *args)
|
||||||
{
|
{
|
||||||
struct interface *ifp;
|
struct interface *ifp;
|
||||||
struct pim_interface *pim_ifp;
|
struct pim_interface *pim_ifp;
|
||||||
@ -1743,9 +1780,10 @@ void lib_interface_pim_bfd_apply_finish(struct nb_cb_apply_finish_args *args)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* XPath: /frr-interface:lib/interface/frr-pim:pim/bfd/min-rx-interval
|
* XPath: /frr-interface:lib/interface/frr-pim:pim/address-family/bfd/min-rx-interval
|
||||||
*/
|
*/
|
||||||
int lib_interface_pim_bfd_min_rx_interval_modify(struct nb_cb_modify_args *args)
|
int lib_interface_pim_address_family_bfd_min_rx_interval_modify(
|
||||||
|
struct nb_cb_modify_args *args)
|
||||||
{
|
{
|
||||||
switch (args->event) {
|
switch (args->event) {
|
||||||
case NB_EV_VALIDATE:
|
case NB_EV_VALIDATE:
|
||||||
@ -1759,9 +1797,10 @@ int lib_interface_pim_bfd_min_rx_interval_modify(struct nb_cb_modify_args *args)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* XPath: /frr-interface:lib/interface/frr-pim:pim/bfd/min-tx-interval
|
* XPath: /frr-interface:lib/interface/frr-pim:pim/address-family/bfd/min-tx-interval
|
||||||
*/
|
*/
|
||||||
int lib_interface_pim_bfd_min_tx_interval_modify(struct nb_cb_modify_args *args)
|
int lib_interface_pim_address_family_bfd_min_tx_interval_modify(
|
||||||
|
struct nb_cb_modify_args *args)
|
||||||
{
|
{
|
||||||
switch (args->event) {
|
switch (args->event) {
|
||||||
case NB_EV_VALIDATE:
|
case NB_EV_VALIDATE:
|
||||||
@ -1775,9 +1814,10 @@ int lib_interface_pim_bfd_min_tx_interval_modify(struct nb_cb_modify_args *args)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* XPath: /frr-interface:lib/interface/frr-pim:pim/bfd/detect_mult
|
* XPath: /frr-interface:lib/interface/frr-pim:pim/address-family/bfd/detect_mult
|
||||||
*/
|
*/
|
||||||
int lib_interface_pim_bfd_detect_mult_modify(struct nb_cb_modify_args *args)
|
int lib_interface_pim_address_family_bfd_detect_mult_modify(
|
||||||
|
struct nb_cb_modify_args *args)
|
||||||
{
|
{
|
||||||
switch (args->event) {
|
switch (args->event) {
|
||||||
case NB_EV_VALIDATE:
|
case NB_EV_VALIDATE:
|
||||||
@ -1791,9 +1831,10 @@ int lib_interface_pim_bfd_detect_mult_modify(struct nb_cb_modify_args *args)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* XPath: /frr-interface:lib/interface/frr-pim:pim/bfd/profile
|
* XPath: /frr-interface:lib/interface/frr-pim:pim/address-family/bfd/profile
|
||||||
*/
|
*/
|
||||||
int lib_interface_pim_bfd_profile_modify(struct nb_cb_modify_args *args)
|
int lib_interface_pim_address_family_bfd_profile_modify(
|
||||||
|
struct nb_cb_modify_args *args)
|
||||||
{
|
{
|
||||||
struct interface *ifp;
|
struct interface *ifp;
|
||||||
struct pim_interface *pim_ifp;
|
struct pim_interface *pim_ifp;
|
||||||
@ -1816,7 +1857,8 @@ int lib_interface_pim_bfd_profile_modify(struct nb_cb_modify_args *args)
|
|||||||
return NB_OK;
|
return NB_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
int lib_interface_pim_bfd_profile_destroy(struct nb_cb_destroy_args *args)
|
int lib_interface_pim_address_family_bfd_profile_destroy(
|
||||||
|
struct nb_cb_destroy_args *args)
|
||||||
{
|
{
|
||||||
struct interface *ifp;
|
struct interface *ifp;
|
||||||
struct pim_interface *pim_ifp;
|
struct pim_interface *pim_ifp;
|
||||||
@ -1838,9 +1880,9 @@ int lib_interface_pim_bfd_profile_destroy(struct nb_cb_destroy_args *args)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* XPath: /frr-interface:lib/interface/frr-pim:pim/bsm
|
* XPath: /frr-interface:lib/interface/frr-pim:pim/address-family/bsm
|
||||||
*/
|
*/
|
||||||
int lib_interface_pim_bsm_modify(struct nb_cb_modify_args *args)
|
int lib_interface_pim_address_family_bsm_modify(struct nb_cb_modify_args *args)
|
||||||
{
|
{
|
||||||
struct interface *ifp;
|
struct interface *ifp;
|
||||||
struct pim_interface *pim_ifp;
|
struct pim_interface *pim_ifp;
|
||||||
@ -1862,9 +1904,10 @@ int lib_interface_pim_bsm_modify(struct nb_cb_modify_args *args)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* XPath: /frr-interface:lib/interface/frr-pim:pim/unicast-bsm
|
* XPath: /frr-interface:lib/interface/frr-pim:pim/address-family/unicast-bsm
|
||||||
*/
|
*/
|
||||||
int lib_interface_pim_unicast_bsm_modify(struct nb_cb_modify_args *args)
|
int lib_interface_pim_address_family_unicast_bsm_modify(
|
||||||
|
struct nb_cb_modify_args *args)
|
||||||
{
|
{
|
||||||
struct interface *ifp;
|
struct interface *ifp;
|
||||||
struct pim_interface *pim_ifp;
|
struct pim_interface *pim_ifp;
|
||||||
@ -1887,9 +1930,10 @@ int lib_interface_pim_unicast_bsm_modify(struct nb_cb_modify_args *args)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* XPath: /frr-interface:lib/interface/frr-pim:pim/active-active
|
* XPath: /frr-interface:lib/interface/frr-pim:pim/address-family/active-active
|
||||||
*/
|
*/
|
||||||
int lib_interface_pim_active_active_modify(struct nb_cb_modify_args *args)
|
int lib_interface_pim_address_family_active_active_modify(
|
||||||
|
struct nb_cb_modify_args *args)
|
||||||
{
|
{
|
||||||
struct interface *ifp;
|
struct interface *ifp;
|
||||||
struct pim_interface *pim_ifp;
|
struct pim_interface *pim_ifp;
|
||||||
@ -1924,9 +1968,10 @@ int lib_interface_pim_active_active_modify(struct nb_cb_modify_args *args)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* XPath: /frr-interface:lib/interface/frr-pim:pim/dr-priority
|
* XPath: /frr-interface:lib/interface/frr-pim:pim/address-family/dr-priority
|
||||||
*/
|
*/
|
||||||
int lib_interface_pim_dr_priority_modify(struct nb_cb_modify_args *args)
|
int lib_interface_pim_address_family_dr_priority_modify(
|
||||||
|
struct nb_cb_modify_args *args)
|
||||||
{
|
{
|
||||||
struct interface *ifp;
|
struct interface *ifp;
|
||||||
struct pim_interface *pim_ifp;
|
struct pim_interface *pim_ifp;
|
||||||
@ -1938,7 +1983,7 @@ int lib_interface_pim_dr_priority_modify(struct nb_cb_modify_args *args)
|
|||||||
if_dnode = yang_dnode_get_parent(args->dnode, "interface");
|
if_dnode = yang_dnode_get_parent(args->dnode, "interface");
|
||||||
if (!is_pim_interface(if_dnode)) {
|
if (!is_pim_interface(if_dnode)) {
|
||||||
snprintf(args->errmsg, args->errmsg_len,
|
snprintf(args->errmsg, args->errmsg_len,
|
||||||
"Pim not enabled on this interface");
|
"Pim not enabled on this interface");
|
||||||
return NB_ERR_VALIDATION;
|
return NB_ERR_VALIDATION;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@ -1962,39 +2007,11 @@ int lib_interface_pim_dr_priority_modify(struct nb_cb_modify_args *args)
|
|||||||
return NB_OK;
|
return NB_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
* XPath: /frr-interface:lib/interface/frr-pim:pim/address-family
|
|
||||||
*/
|
|
||||||
int lib_interface_pim_address_family_create(struct nb_cb_create_args *args)
|
|
||||||
{
|
|
||||||
switch (args->event) {
|
|
||||||
case NB_EV_VALIDATE:
|
|
||||||
case NB_EV_PREPARE:
|
|
||||||
case NB_EV_ABORT:
|
|
||||||
case NB_EV_APPLY:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
return NB_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
int lib_interface_pim_address_family_destroy(struct nb_cb_destroy_args *args)
|
|
||||||
{
|
|
||||||
switch (args->event) {
|
|
||||||
case NB_EV_VALIDATE:
|
|
||||||
case NB_EV_PREPARE:
|
|
||||||
case NB_EV_ABORT:
|
|
||||||
case NB_EV_APPLY:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
return NB_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* XPath: /frr-interface:lib/interface/frr-pim:pim/address-family/use-source
|
* XPath: /frr-interface:lib/interface/frr-pim:pim/address-family/use-source
|
||||||
*/
|
*/
|
||||||
int lib_interface_pim_address_family_use_source_modify(struct nb_cb_modify_args *args)
|
int lib_interface_pim_address_family_use_source_modify(
|
||||||
|
struct nb_cb_modify_args *args)
|
||||||
{
|
{
|
||||||
struct interface *ifp;
|
struct interface *ifp;
|
||||||
struct ipaddr source_addr;
|
struct ipaddr source_addr;
|
||||||
@ -2043,7 +2060,7 @@ int lib_interface_pim_address_family_use_source_destroy(
|
|||||||
if_dnode = yang_dnode_get_parent(args->dnode, "interface");
|
if_dnode = yang_dnode_get_parent(args->dnode, "interface");
|
||||||
if (!is_pim_interface(if_dnode)) {
|
if (!is_pim_interface(if_dnode)) {
|
||||||
snprintf(args->errmsg, args->errmsg_len,
|
snprintf(args->errmsg, args->errmsg_len,
|
||||||
"Pim not enabled on this interface");
|
"Pim not enabled on this interface");
|
||||||
return NB_ERR_VALIDATION;
|
return NB_ERR_VALIDATION;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -56,7 +56,7 @@ module frr-pim {
|
|||||||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||||
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.";
|
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.";
|
||||||
|
|
||||||
revision 2017-03-09 {
|
revision 2021-11-22 {
|
||||||
description
|
description
|
||||||
"Initial revision.";
|
"Initial revision.";
|
||||||
reference
|
reference
|
||||||
@ -77,43 +77,6 @@ module frr-pim {
|
|||||||
* Groupings
|
* Groupings
|
||||||
*/
|
*/
|
||||||
|
|
||||||
grouping global-pim-config-attributes {
|
|
||||||
description
|
|
||||||
"A grouping defining pim global attributes.";
|
|
||||||
|
|
||||||
leaf ecmp {
|
|
||||||
type boolean;
|
|
||||||
default "false";
|
|
||||||
description
|
|
||||||
"Enable PIM ECMP.";
|
|
||||||
}
|
|
||||||
|
|
||||||
leaf ecmp-rebalance {
|
|
||||||
type boolean;
|
|
||||||
default "false";
|
|
||||||
description
|
|
||||||
"Enable PIM ECMP Rebalance.";
|
|
||||||
}
|
|
||||||
|
|
||||||
leaf keep-alive-timer {
|
|
||||||
type uint16 {
|
|
||||||
range "1..max";
|
|
||||||
}
|
|
||||||
default "210";
|
|
||||||
description
|
|
||||||
"Keep alive Timer in seconds.";
|
|
||||||
}
|
|
||||||
|
|
||||||
leaf rp-keep-alive-timer {
|
|
||||||
type uint16 {
|
|
||||||
range "1..max";
|
|
||||||
}
|
|
||||||
default "210";
|
|
||||||
description
|
|
||||||
"RP keep alive Timer in seconds.";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
grouping msdp-timers {
|
grouping msdp-timers {
|
||||||
leaf hold-time {
|
leaf hold-time {
|
||||||
type uint16 {
|
type uint16 {
|
||||||
@ -154,10 +117,42 @@ module frr-pim {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
grouping per-af-global-pim-config-attributes {
|
grouping global-pim-config-attributes {
|
||||||
description
|
description
|
||||||
"A grouping defining per address family pim global attributes";
|
"A grouping defining per address family pim global attributes";
|
||||||
|
|
||||||
|
leaf ecmp {
|
||||||
|
type boolean;
|
||||||
|
default "false";
|
||||||
|
description
|
||||||
|
"Enable PIM ECMP.";
|
||||||
|
}
|
||||||
|
|
||||||
|
leaf ecmp-rebalance {
|
||||||
|
type boolean;
|
||||||
|
default "false";
|
||||||
|
description
|
||||||
|
"Enable PIM ECMP Rebalance.";
|
||||||
|
}
|
||||||
|
|
||||||
|
leaf keep-alive-timer {
|
||||||
|
type uint16 {
|
||||||
|
range "1..max";
|
||||||
|
}
|
||||||
|
default "210";
|
||||||
|
description
|
||||||
|
"Keep alive Timer in seconds.";
|
||||||
|
}
|
||||||
|
|
||||||
|
leaf rp-keep-alive-timer {
|
||||||
|
type uint16 {
|
||||||
|
range "1..max";
|
||||||
|
}
|
||||||
|
default "210";
|
||||||
|
description
|
||||||
|
"RP keep alive Timer in seconds.";
|
||||||
|
}
|
||||||
|
|
||||||
leaf send-v6-secondary {
|
leaf send-v6-secondary {
|
||||||
when "../frr-pim:address-family = 'frr-rt:ipv4'" {
|
when "../frr-pim:address-family = 'frr-rt:ipv4'" {
|
||||||
description
|
description
|
||||||
@ -326,11 +321,11 @@ module frr-pim {
|
|||||||
description
|
description
|
||||||
"Only accept registers from a specific source prefix list.";
|
"Only accept registers from a specific source prefix list.";
|
||||||
}
|
}
|
||||||
} // per-af-global-pim-config-attributes
|
} // global-pim-config-attributes
|
||||||
|
|
||||||
grouping interface-pim-config-attributes {
|
grouping interface-pim-config-attributes {
|
||||||
description
|
description
|
||||||
"A grouping defining pim interface attributes.";
|
"A grouping defining pim interface attributes per address family.";
|
||||||
|
|
||||||
leaf pim-enable {
|
leaf pim-enable {
|
||||||
type boolean;
|
type boolean;
|
||||||
@ -426,11 +421,6 @@ module frr-pim {
|
|||||||
description
|
description
|
||||||
"DR (Designated Router) priority";
|
"DR (Designated Router) priority";
|
||||||
}
|
}
|
||||||
} // interface-pim-config-attributes
|
|
||||||
|
|
||||||
grouping per-af-interface-pim-config-attributes {
|
|
||||||
description
|
|
||||||
"A grouping defining pim interface attributes per address family.";
|
|
||||||
|
|
||||||
leaf use-source {
|
leaf use-source {
|
||||||
type inet:ip-address;
|
type inet:ip-address;
|
||||||
@ -467,56 +457,11 @@ module frr-pim {
|
|||||||
"Multicast group address.";
|
"Multicast group address.";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} // per-af-interface-pim-config-attributes
|
} // interface-pim-config-attributes
|
||||||
|
|
||||||
/*
|
grouping router-pim-config-attributes {
|
||||||
* Global Configuration data nodes
|
|
||||||
*/
|
|
||||||
augment "/frr-rt:routing/frr-rt:control-plane-protocols/"
|
|
||||||
+ "frr-rt:control-plane-protocol" {
|
|
||||||
container pim {
|
|
||||||
when "../frr-rt:type = 'frr-pim:pimd'" {
|
|
||||||
description
|
|
||||||
"This container is only valid for the 'pim' routing
|
|
||||||
protocol.";
|
|
||||||
}
|
|
||||||
description
|
|
||||||
"PIM configuration data.";
|
|
||||||
|
|
||||||
uses global-pim-config-attributes;
|
|
||||||
|
|
||||||
list address-family {
|
|
||||||
key "address-family";
|
|
||||||
description
|
|
||||||
"Each list entry for one address family.";
|
|
||||||
uses frr-rt:address-family;
|
|
||||||
uses per-af-global-pim-config-attributes;
|
|
||||||
|
|
||||||
} //address-family
|
|
||||||
} // pim
|
|
||||||
} // augment
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Per-interface configuration data
|
|
||||||
*/
|
|
||||||
augment "/frr-interface:lib/frr-interface:interface" {
|
|
||||||
container pim {
|
|
||||||
presence
|
|
||||||
"Configure PIM on an interface.";
|
|
||||||
uses interface-pim-config-attributes;
|
|
||||||
list address-family {
|
|
||||||
key "address-family";
|
|
||||||
description
|
|
||||||
"Each list entry for one address family.";
|
|
||||||
uses frr-rt:address-family;
|
|
||||||
uses per-af-interface-pim-config-attributes;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
container pim {
|
|
||||||
description
|
description
|
||||||
"PIM router parameters.";
|
"A grouping defining pim router attributes per address family.";
|
||||||
leaf packets {
|
leaf packets {
|
||||||
type uint8 {
|
type uint8 {
|
||||||
range "1..max";
|
range "1..max";
|
||||||
@ -542,4 +487,58 @@ module frr-pim {
|
|||||||
"Register Suppress Timer.";
|
"Register Suppress Timer.";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Global Configuration data nodes
|
||||||
|
*/
|
||||||
|
augment "/frr-rt:routing/frr-rt:control-plane-protocols/"
|
||||||
|
+ "frr-rt:control-plane-protocol" {
|
||||||
|
container pim {
|
||||||
|
when "../frr-rt:type = 'frr-pim:pimd'" {
|
||||||
|
description
|
||||||
|
"This container is only valid for the 'pim' routing
|
||||||
|
protocol.";
|
||||||
|
}
|
||||||
|
description
|
||||||
|
"PIM configuration data.";
|
||||||
|
list address-family {
|
||||||
|
key "address-family";
|
||||||
|
description
|
||||||
|
"Each list entry for one address family.";
|
||||||
|
uses frr-rt:address-family;
|
||||||
|
uses global-pim-config-attributes;
|
||||||
|
|
||||||
|
} //address-family
|
||||||
|
} // pim
|
||||||
|
} // augment
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Per-interface configuration data
|
||||||
|
*/
|
||||||
|
augment "/frr-interface:lib/frr-interface:interface" {
|
||||||
|
container pim {
|
||||||
|
list address-family {
|
||||||
|
key "address-family";
|
||||||
|
description
|
||||||
|
"Each list entry for one address family.";
|
||||||
|
uses frr-rt:address-family;
|
||||||
|
uses interface-pim-config-attributes;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Router configuration data
|
||||||
|
*/
|
||||||
|
container pim {
|
||||||
|
description
|
||||||
|
"PIM router parameters.";
|
||||||
|
list address-family {
|
||||||
|
key "address-family";
|
||||||
|
description
|
||||||
|
"Each list entry for one address family.";
|
||||||
|
uses frr-rt:address-family;
|
||||||
|
uses router-pim-config-attributes;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user