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. */
|
||||
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);
|
||||
/* Group must exists, otherwise just quit. */
|
||||
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;
|
||||
|
||||
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");
|
||||
strlcat(spt_plist_xpath, "/spt-switchover/spt-infinity-prefix-list",
|
||||
sizeof(spt_plist_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");
|
||||
strlcat(spt_action_xpath, "/spt-switchover/spt-action",
|
||||
sizeof(spt_action_xpath));
|
||||
@ -6831,13 +6831,13 @@ DEFUN (ip_pim_spt_switchover_infinity_plist,
|
||||
return CMD_WARNING_CONFIG_FAILED;
|
||||
|
||||
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");
|
||||
strlcat(spt_plist_xpath, "/spt-switchover/spt-infinity-prefix-list",
|
||||
sizeof(spt_plist_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");
|
||||
strlcat(spt_action_xpath, "/spt-switchover/spt-action",
|
||||
sizeof(spt_action_xpath));
|
||||
@ -6868,13 +6868,13 @@ DEFUN (no_ip_pim_spt_switchover_infinity,
|
||||
return CMD_WARNING_CONFIG_FAILED;
|
||||
|
||||
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");
|
||||
strlcat(spt_plist_xpath, "/spt-switchover/spt-infinity-prefix-list",
|
||||
sizeof(spt_plist_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");
|
||||
strlcat(spt_action_xpath, "/spt-switchover/spt-action",
|
||||
sizeof(spt_action_xpath));
|
||||
@ -6906,13 +6906,13 @@ DEFUN (no_ip_pim_spt_switchover_infinity_plist,
|
||||
return CMD_WARNING_CONFIG_FAILED;
|
||||
|
||||
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");
|
||||
strlcat(spt_plist_xpath, "/spt-switchover/spt-infinity-prefix-list",
|
||||
sizeof(spt_plist_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");
|
||||
strlcat(spt_action_xpath, "/spt-switchover/spt-action",
|
||||
sizeof(spt_action_xpath));
|
||||
@ -6941,7 +6941,7 @@ DEFPY (pim_register_accept_list,
|
||||
return CMD_WARNING_CONFIG_FAILED;
|
||||
|
||||
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");
|
||||
strlcat(reg_alist_xpath, "/register-accept-list",
|
||||
sizeof(reg_alist_xpath));
|
||||
@ -6964,8 +6964,13 @@ DEFUN (ip_pim_joinprune_time,
|
||||
"Join Prune Send Interval\n"
|
||||
"Seconds\n")
|
||||
{
|
||||
nb_cli_enqueue_change(vty, "/frr-pim:pim/join-prune-interval",
|
||||
NB_OP_MODIFY, argv[3]->arg);
|
||||
char xpath[XPATH_MAXLEN];
|
||||
|
||||
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);
|
||||
}
|
||||
@ -6979,8 +6984,13 @@ DEFUN (no_ip_pim_joinprune_time,
|
||||
"Join Prune Send Interval\n"
|
||||
IGNORED_IN_NO_STR)
|
||||
{
|
||||
nb_cli_enqueue_change(vty, "/frr-pim:pim/join-prune-interval",
|
||||
NB_OP_DESTROY, NULL);
|
||||
char xpath[XPATH_MAXLEN];
|
||||
|
||||
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);
|
||||
}
|
||||
@ -6993,8 +7003,13 @@ DEFUN (ip_pim_register_suppress,
|
||||
"Register Suppress Timer\n"
|
||||
"Seconds\n")
|
||||
{
|
||||
nb_cli_enqueue_change(vty, "/frr-pim:pim/register-suppress-time",
|
||||
NB_OP_MODIFY, argv[3]->arg);
|
||||
char xpath[XPATH_MAXLEN];
|
||||
|
||||
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);
|
||||
}
|
||||
@ -7008,8 +7023,13 @@ DEFUN (no_ip_pim_register_suppress,
|
||||
"Register Suppress Timer\n"
|
||||
IGNORED_IN_NO_STR)
|
||||
{
|
||||
nb_cli_enqueue_change(vty, "/frr-pim:pim/register-suppress-time",
|
||||
NB_OP_DESTROY, NULL);
|
||||
char xpath[XPATH_MAXLEN];
|
||||
|
||||
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);
|
||||
}
|
||||
@ -7031,7 +7051,8 @@ DEFUN (ip_pim_rp_keep_alive,
|
||||
return CMD_WARNING_CONFIG_FAILED;
|
||||
|
||||
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",
|
||||
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_xpath[XPATH_MAXLEN];
|
||||
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 */
|
||||
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;
|
||||
if (v > UINT16_MAX)
|
||||
v = UINT16_MAX;
|
||||
@ -7069,7 +7096,8 @@ DEFUN (no_ip_pim_rp_keep_alive,
|
||||
return CMD_WARNING_CONFIG_FAILED;
|
||||
|
||||
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",
|
||||
sizeof(rp_ka_timer_xpath));
|
||||
|
||||
@ -7094,8 +7122,8 @@ DEFUN (ip_pim_keep_alive,
|
||||
if (vrfname == NULL)
|
||||
return CMD_WARNING_CONFIG_FAILED;
|
||||
|
||||
snprintf(ka_timer_xpath, sizeof(ka_timer_xpath), FRR_PIM_XPATH,
|
||||
"frr-pim:pimd", "pim", vrfname);
|
||||
snprintf(ka_timer_xpath, sizeof(ka_timer_xpath), FRR_PIM_VRF_XPATH,
|
||||
"frr-pim:pimd", "pim", vrfname, "frr-routing:ipv4");
|
||||
strlcat(ka_timer_xpath, "/keep-alive-timer", sizeof(ka_timer_xpath));
|
||||
|
||||
nb_cli_enqueue_change(vty, ka_timer_xpath, NB_OP_MODIFY,
|
||||
@ -7120,8 +7148,8 @@ DEFUN (no_ip_pim_keep_alive,
|
||||
if (vrfname == NULL)
|
||||
return CMD_WARNING_CONFIG_FAILED;
|
||||
|
||||
snprintf(ka_timer_xpath, sizeof(ka_timer_xpath), FRR_PIM_XPATH,
|
||||
"frr-pim:pimd", "pim", vrfname);
|
||||
snprintf(ka_timer_xpath, sizeof(ka_timer_xpath), FRR_PIM_VRF_XPATH,
|
||||
"frr-pim:pimd", "pim", vrfname, "frr-routing:ipv4");
|
||||
strlcat(ka_timer_xpath, "/keep-alive-timer", sizeof(ka_timer_xpath));
|
||||
|
||||
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"
|
||||
"Number of packets\n")
|
||||
{
|
||||
nb_cli_enqueue_change(vty, "/frr-pim:pim/packets", NB_OP_MODIFY,
|
||||
argv[3]->arg);
|
||||
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_MODIFY, argv[3]->arg);
|
||||
|
||||
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"
|
||||
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);
|
||||
}
|
||||
@ -7201,7 +7240,7 @@ DEFUN (ip_pim_v6_secondary,
|
||||
return CMD_WARNING_CONFIG_FAILED;
|
||||
|
||||
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");
|
||||
strlcat(send_v6_secondary_xpath, "/send-v6-secondary",
|
||||
sizeof(send_v6_secondary_xpath));
|
||||
@ -7228,7 +7267,7 @@ DEFUN (no_ip_pim_v6_secondary,
|
||||
return CMD_WARNING_CONFIG_FAILED;
|
||||
|
||||
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");
|
||||
strlcat(send_v6_secondary_xpath, "/send-v6-secondary",
|
||||
sizeof(send_v6_secondary_xpath));
|
||||
@ -7442,7 +7481,7 @@ DEFUN (ip_pim_ssm_prefix_list,
|
||||
if (vrfname == NULL)
|
||||
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");
|
||||
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;
|
||||
|
||||
snprintf(ssm_plist_xpath, sizeof(ssm_plist_xpath),
|
||||
FRR_PIM_AF_XPATH,
|
||||
FRR_PIM_VRF_XPATH,
|
||||
"frr-pim:pimd", "pim", vrfname, "frr-routing:ipv4");
|
||||
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;
|
||||
|
||||
snprintf(ssm_plist_xpath, sizeof(ssm_plist_xpath),
|
||||
FRR_PIM_AF_XPATH,
|
||||
FRR_PIM_VRF_XPATH,
|
||||
"frr-pim:pimd", "pim", vrfname, "frr-routing:ipv4");
|
||||
strlcat(ssm_plist_xpath, "/ssm-prefix-list", sizeof(ssm_plist_xpath));
|
||||
ssm_plist_dnode = yang_dnode_get(vty->candidate_config->dnode,
|
||||
@ -7656,7 +7695,7 @@ DEFUN (ip_ssmpingd,
|
||||
return CMD_WARNING_CONFIG_FAILED;
|
||||
|
||||
snprintf(ssmpingd_ip_xpath, sizeof(ssmpingd_ip_xpath),
|
||||
FRR_PIM_AF_XPATH,
|
||||
FRR_PIM_VRF_XPATH,
|
||||
"frr-pim:pimd", "pim", vrfname, "frr-routing:ipv4");
|
||||
strlcat(ssmpingd_ip_xpath, "/ssm-pingd-source-ip",
|
||||
sizeof(ssmpingd_ip_xpath));
|
||||
@ -7685,7 +7724,7 @@ DEFUN (no_ip_ssmpingd,
|
||||
return CMD_WARNING_CONFIG_FAILED;
|
||||
|
||||
snprintf(ssmpingd_ip_xpath, sizeof(ssmpingd_ip_xpath),
|
||||
FRR_PIM_AF_XPATH,
|
||||
FRR_PIM_VRF_XPATH,
|
||||
"frr-pim:pimd", "pim", vrfname, "frr-routing:ipv4");
|
||||
strlcat(ssmpingd_ip_xpath, "/ssm-pingd-source-ip",
|
||||
sizeof(ssmpingd_ip_xpath));
|
||||
@ -7710,8 +7749,8 @@ DEFUN (ip_pim_ecmp,
|
||||
if (vrfname == NULL)
|
||||
return CMD_WARNING_CONFIG_FAILED;
|
||||
|
||||
snprintf(ecmp_xpath, sizeof(ecmp_xpath), FRR_PIM_XPATH,
|
||||
"frr-pim:pimd", "pim", vrfname);
|
||||
snprintf(ecmp_xpath, sizeof(ecmp_xpath), FRR_PIM_VRF_XPATH,
|
||||
"frr-pim:pimd", "pim", vrfname, "frr-routing:ipv4");
|
||||
strlcat(ecmp_xpath, "/ecmp", sizeof(ecmp_xpath));
|
||||
|
||||
nb_cli_enqueue_change(vty, ecmp_xpath, NB_OP_MODIFY, "true");
|
||||
@ -7733,8 +7772,8 @@ DEFUN (no_ip_pim_ecmp,
|
||||
if (vrfname == NULL)
|
||||
return CMD_WARNING_CONFIG_FAILED;
|
||||
|
||||
snprintf(ecmp_xpath, sizeof(ecmp_xpath), FRR_PIM_XPATH,
|
||||
"frr-pim:pimd", "pim", vrfname);
|
||||
snprintf(ecmp_xpath, sizeof(ecmp_xpath), FRR_PIM_VRF_XPATH,
|
||||
"frr-pim:pimd", "pim", vrfname, "frr-routing:ipv4");
|
||||
strlcat(ecmp_xpath, "/ecmp", sizeof(ecmp_xpath));
|
||||
|
||||
nb_cli_enqueue_change(vty, ecmp_xpath, NB_OP_MODIFY, "false");
|
||||
@ -7758,12 +7797,12 @@ DEFUN (ip_pim_ecmp_rebalance,
|
||||
if (vrfname == NULL)
|
||||
return CMD_WARNING_CONFIG_FAILED;
|
||||
|
||||
snprintf(ecmp_xpath, sizeof(ecmp_xpath), FRR_PIM_XPATH,
|
||||
"frr-pim:pimd", "pim", vrfname);
|
||||
snprintf(ecmp_xpath, sizeof(ecmp_xpath), FRR_PIM_VRF_XPATH,
|
||||
"frr-pim:pimd", "pim", vrfname, "frr-routing:ipv4");
|
||||
strlcat(ecmp_xpath, "/ecmp", sizeof(ecmp_xpath));
|
||||
snprintf(ecmp_rebalance_xpath, sizeof(ecmp_rebalance_xpath),
|
||||
FRR_PIM_XPATH,
|
||||
"frr-pim:pimd", "pim", vrfname);
|
||||
FRR_PIM_VRF_XPATH,
|
||||
"frr-pim:pimd", "pim", vrfname, "frr-routing:ipv4");
|
||||
strlcat(ecmp_rebalance_xpath, "/ecmp-rebalance",
|
||||
sizeof(ecmp_rebalance_xpath));
|
||||
|
||||
@ -7790,8 +7829,8 @@ DEFUN (no_ip_pim_ecmp_rebalance,
|
||||
return CMD_WARNING_CONFIG_FAILED;
|
||||
|
||||
snprintf(ecmp_rebalance_xpath, sizeof(ecmp_rebalance_xpath),
|
||||
FRR_PIM_XPATH,
|
||||
"frr-pim:pimd", "pim", vrfname);
|
||||
FRR_PIM_VRF_XPATH,
|
||||
"frr-pim:pimd", "pim", vrfname, "frr-routing:ipv4");
|
||||
strlcat(ecmp_rebalance_xpath, "/ecmp-rebalance",
|
||||
sizeof(ecmp_rebalance_xpath));
|
||||
|
||||
@ -7822,10 +7861,12 @@ DEFUN (interface_no_ip_igmp,
|
||||
char pim_if_xpath[XPATH_MAXLEN + 20];
|
||||
|
||||
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,
|
||||
"%s/pim-enable", pim_if_xpath);
|
||||
FRR_PIM_ENABLE_XPATH, VTY_CURR_XPATH,
|
||||
"frr-routing:ipv4");
|
||||
if (!pim_enable_dnode) {
|
||||
nb_cli_enqueue_change(vty, pim_if_xpath, 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 =
|
||||
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) {
|
||||
nb_cli_enqueue_change(vty, "./igmp-enable", NB_OP_MODIFY,
|
||||
nb_cli_enqueue_change(vty, "./enable", NB_OP_MODIFY,
|
||||
"true");
|
||||
} else {
|
||||
if (!yang_dnode_get_bool(pim_enable_dnode, "."))
|
||||
@ -7992,7 +8034,8 @@ DEFUN (interface_ip_igmp_query_max_response_time,
|
||||
|
||||
pim_enable_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) {
|
||||
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 =
|
||||
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) {
|
||||
nb_cli_enqueue_change(vty, "./igmp-enable", NB_OP_MODIFY,
|
||||
"true");
|
||||
@ -8078,7 +8122,8 @@ DEFUN (interface_ip_igmp_last_member_query_count,
|
||||
|
||||
pim_enable_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) {
|
||||
nb_cli_enqueue_change(vty, "./igmp-enable", NB_OP_MODIFY,
|
||||
"true");
|
||||
@ -8121,7 +8166,8 @@ DEFUN (interface_ip_igmp_last_member_query_interval,
|
||||
|
||||
pim_enable_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) {
|
||||
nb_cli_enqueue_change(vty, "./igmp-enable", NB_OP_MODIFY,
|
||||
"true");
|
||||
@ -8165,7 +8211,8 @@ DEFUN (interface_ip_pim_drprio,
|
||||
nb_cli_enqueue_change(vty, "./dr-priority", NB_OP_MODIFY,
|
||||
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,
|
||||
@ -8179,7 +8226,8 @@ DEFUN (interface_no_ip_pim_drprio,
|
||||
{
|
||||
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,
|
||||
@ -8277,7 +8325,9 @@ DEFPY (interface_ip_pim_activeactive,
|
||||
"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,
|
||||
@ -8291,7 +8341,9 @@ DEFUN_HIDDEN (interface_ip_pim_ssm,
|
||||
|
||||
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)
|
||||
return ret;
|
||||
@ -8311,7 +8363,9 @@ DEFUN_HIDDEN (interface_ip_pim_sm,
|
||||
{
|
||||
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,
|
||||
@ -8322,7 +8376,10 @@ DEFUN (interface_ip_pim,
|
||||
{
|
||||
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,
|
||||
@ -8354,7 +8411,8 @@ DEFUN_HIDDEN (interface_no_ip_pim_ssm,
|
||||
"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,
|
||||
@ -8386,7 +8444,9 @@ DEFUN_HIDDEN (interface_no_ip_pim_sm,
|
||||
"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,
|
||||
@ -8417,7 +8477,9 @@ DEFUN (interface_no_ip_pim,
|
||||
"false");
|
||||
}
|
||||
|
||||
return nb_cli_apply_changes(vty, "./frr-pim:pim");
|
||||
return nb_cli_apply_changes(vty,
|
||||
FRR_PIM_INTERFACE_XPATH,
|
||||
"frr-routing:ipv4");
|
||||
}
|
||||
|
||||
/* boundaries */
|
||||
@ -8434,7 +8496,7 @@ DEFUN(interface_ip_pim_boundary_oil,
|
||||
argv[4]->arg);
|
||||
|
||||
return nb_cli_apply_changes(vty,
|
||||
"./frr-pim:pim/address-family[address-family='%s']",
|
||||
FRR_PIM_INTERFACE_XPATH,
|
||||
"frr-routing:ipv4");
|
||||
|
||||
}
|
||||
@ -8453,7 +8515,7 @@ DEFUN(interface_no_ip_pim_boundary_oil,
|
||||
NULL);
|
||||
|
||||
return nb_cli_apply_changes(vty,
|
||||
"./frr-pim:pim/address-family[address-family='%s']",
|
||||
FRR_PIM_INTERFACE_XPATH,
|
||||
"frr-routing:ipv4");
|
||||
}
|
||||
|
||||
@ -8479,7 +8541,7 @@ DEFUN (interface_ip_mroute,
|
||||
argv[idx_interface]->arg);
|
||||
|
||||
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,
|
||||
argv[idx_ipv4]->arg);
|
||||
}
|
||||
@ -8505,7 +8567,7 @@ DEFUN (interface_no_ip_mroute,
|
||||
nb_cli_enqueue_change(vty, ".", NB_OP_DESTROY, NULL);
|
||||
|
||||
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,
|
||||
argv[idx_ipv4]->arg);
|
||||
}
|
||||
@ -8542,7 +8604,9 @@ DEFUN (interface_ip_pim_hello,
|
||||
nb_cli_enqueue_change(vty, "./hello-holdtime", NB_OP_MODIFY,
|
||||
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,
|
||||
@ -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-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,
|
||||
@ -9206,7 +9272,7 @@ DEFUN (interface_pim_use_source,
|
||||
nb_cli_enqueue_change(vty, "./use-source", NB_OP_MODIFY, argv[3]->arg);
|
||||
|
||||
return nb_cli_apply_changes(vty,
|
||||
"./frr-pim:pim/address-family[address-family='%s']",
|
||||
FRR_PIM_INTERFACE_XPATH,
|
||||
"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");
|
||||
|
||||
return nb_cli_apply_changes(vty,
|
||||
"./frr-pim:pim/address-family[address-family='%s']",
|
||||
FRR_PIM_INTERFACE_XPATH,
|
||||
"frr-routing:ipv4");
|
||||
}
|
||||
|
||||
@ -9253,7 +9319,9 @@ DEFPY (ip_pim_bfd,
|
||||
if (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,
|
||||
@ -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);
|
||||
|
||||
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,
|
||||
@ -9280,7 +9350,9 @@ DEFUN (no_ip_pim_bfd,
|
||||
{
|
||||
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,
|
||||
@ -9306,7 +9378,8 @@ DEFUN (ip_pim_bsm,
|
||||
|
||||
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,
|
||||
@ -9319,7 +9392,8 @@ DEFUN (no_ip_pim_bsm,
|
||||
{
|
||||
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,
|
||||
@ -9345,7 +9419,9 @@ DEFUN (ip_pim_ucast_bsm,
|
||||
|
||||
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,
|
||||
@ -9358,7 +9434,8 @@ DEFUN (no_ip_pim_ucast_bsm,
|
||||
{
|
||||
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
|
||||
@ -9410,7 +9487,8 @@ DEFUN_HIDDEN (
|
||||
nb_cli_enqueue_change(vty, "./bfd/detect_mult", NB_OP_MODIFY,
|
||||
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
|
||||
@ -9444,7 +9522,7 @@ DEFPY(ip_msdp_peer, ip_msdp_peer_cmd,
|
||||
return CMD_WARNING_CONFIG_FAILED;
|
||||
|
||||
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");
|
||||
snprintf(temp_xpath, sizeof(temp_xpath),
|
||||
"/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,
|
||||
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,
|
||||
@ -9536,7 +9615,7 @@ DEFUN (no_ip_msdp_peer,
|
||||
return CMD_WARNING_CONFIG_FAILED;
|
||||
|
||||
snprintf(msdp_peer_xpath, sizeof(msdp_peer_xpath),
|
||||
FRR_PIM_AF_XPATH,
|
||||
FRR_PIM_VRF_XPATH,
|
||||
"frr-pim:pimd", "pim", vrfname, "frr-routing:ipv4");
|
||||
snprintf(temp_xpath, sizeof(temp_xpath),
|
||||
"/msdp-peer[peer-ip='%s']",
|
||||
@ -9568,7 +9647,7 @@ DEFPY(ip_msdp_mesh_group_member,
|
||||
|
||||
/* Create mesh group. */
|
||||
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);
|
||||
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. */
|
||||
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);
|
||||
|
||||
if (!yang_dnode_exists(vty->candidate_config->dnode, xpath_value)) {
|
||||
@ -9652,7 +9731,7 @@ DEFPY(ip_msdp_mesh_group_source,
|
||||
|
||||
/* Create mesh group. */
|
||||
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);
|
||||
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. */
|
||||
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);
|
||||
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. */
|
||||
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);
|
||||
if (!yang_dnode_exists(vty->candidate_config->dnode, xpath_value))
|
||||
return CMD_SUCCESS;
|
||||
@ -10759,7 +10838,7 @@ DEFUN_HIDDEN (no_ip_pim_mlag,
|
||||
{
|
||||
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");
|
||||
strlcat(mlag_xpath, "/mlag", sizeof(mlag_xpath));
|
||||
|
||||
@ -10792,7 +10871,7 @@ DEFUN_HIDDEN (ip_pim_mlag,
|
||||
char mlag_reg_address_xpath[XPATH_MAXLEN];
|
||||
|
||||
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");
|
||||
strlcat(mlag_peerlink_rif_xpath, "/mlag/peerlink-rif",
|
||||
sizeof(mlag_peerlink_rif_xpath));
|
||||
@ -10802,7 +10881,7 @@ DEFUN_HIDDEN (ip_pim_mlag,
|
||||
argv[idx]->arg);
|
||||
|
||||
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");
|
||||
strlcat(mlag_my_role_xpath, "/mlag/my-role",
|
||||
sizeof(mlag_my_role_xpath));
|
||||
@ -10822,7 +10901,7 @@ DEFUN_HIDDEN (ip_pim_mlag,
|
||||
}
|
||||
|
||||
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");
|
||||
strlcat(mlag_peer_state_xpath, "/mlag/peer-state",
|
||||
sizeof(mlag_peer_state_xpath));
|
||||
@ -10842,7 +10921,7 @@ DEFUN_HIDDEN (ip_pim_mlag,
|
||||
}
|
||||
|
||||
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");
|
||||
strlcat(mlag_reg_address_xpath, "/mlag/reg-address",
|
||||
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 = {
|
||||
.name = "frr-pim",
|
||||
.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",
|
||||
.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,
|
||||
}
|
||||
},
|
||||
{
|
||||
.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",
|
||||
.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,
|
||||
}
|
||||
},
|
||||
{
|
||||
.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",
|
||||
.cbs = {
|
||||
@ -300,6 +224,82 @@ const struct frr_yang_module_info frr_pim_info = {
|
||||
.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",
|
||||
.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;
|
||||
|
||||
/* 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);
|
||||
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);
|
||||
int pim_join_prune_interval_modify(struct nb_cb_modify_args *args);
|
||||
int routing_control_plane_protocols_control_plane_protocol_pim_keep_alive_timer_modify(
|
||||
int pim_address_family_join_prune_interval_modify(struct nb_cb_modify_args *args);
|
||||
int routing_control_plane_protocols_control_plane_protocol_pim_address_family_keep_alive_timer_modify(
|
||||
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);
|
||||
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(
|
||||
struct nb_cb_create_args *args);
|
||||
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);
|
||||
int routing_control_plane_protocols_control_plane_protocol_pim_address_family_register_accept_list_destroy(
|
||||
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);
|
||||
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_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(
|
||||
struct nb_cb_modify_args *args);
|
||||
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(
|
||||
struct nb_cb_create_args *args);
|
||||
|
||||
#define FRR_PIM_XPATH \
|
||||
"/frr-routing:routing/control-plane-protocols/" \
|
||||
"control-plane-protocol[type='%s'][name='%s'][vrf='%s']/" \
|
||||
"frr-pim:pim"
|
||||
#define FRR_PIM_AF_XPATH \
|
||||
#define FRR_PIM_VRF_XPATH \
|
||||
"/frr-routing:routing/control-plane-protocols/" \
|
||||
"control-plane-protocol[type='%s'][name='%s'][vrf='%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 \
|
||||
"/frr-routing:routing/control-plane-protocols/" \
|
||||
"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 \
|
||||
"./frr-igmp:igmp/address-family[address-family='%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_ */
|
||||
|
@ -334,7 +334,9 @@ static bool is_pim_interface(const struct lyd_node *dnode)
|
||||
|
||||
yang_dnode_get_path(dnode, if_xpath, sizeof(if_xpath));
|
||||
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(
|
||||
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) {
|
||||
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) {
|
||||
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;
|
||||
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 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 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 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 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_ABORT:
|
||||
case NB_EV_APPLY:
|
||||
/* TODO: implement me. */
|
||||
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) {
|
||||
case NB_EV_VALIDATE:
|
||||
@ -1513,7 +1545,7 @@ int lib_interface_pim_create(struct nb_cb_create_args *args)
|
||||
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 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 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 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 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 pim_interface *pim_ifp;
|
||||
@ -1664,9 +1699,9 @@ int lib_interface_pim_hello_holdtime_destroy(struct nb_cb_destroy_args *args)
|
||||
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 pim_interface *pim_ifp;
|
||||
@ -1687,7 +1722,8 @@ int lib_interface_pim_bfd_create(struct nb_cb_create_args *args)
|
||||
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 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 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) {
|
||||
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) {
|
||||
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) {
|
||||
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 pim_interface *pim_ifp;
|
||||
@ -1816,7 +1857,8 @@ int lib_interface_pim_bfd_profile_modify(struct nb_cb_modify_args *args)
|
||||
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 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 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 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 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 pim_interface *pim_ifp;
|
||||
@ -1962,39 +2007,11 @@ int lib_interface_pim_dr_priority_modify(struct nb_cb_modify_args *args)
|
||||
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
|
||||
*/
|
||||
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 ipaddr source_addr;
|
||||
|
@ -56,7 +56,7 @@ module frr-pim {
|
||||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.";
|
||||
|
||||
revision 2017-03-09 {
|
||||
revision 2021-11-22 {
|
||||
description
|
||||
"Initial revision.";
|
||||
reference
|
||||
@ -77,43 +77,6 @@ module frr-pim {
|
||||
* 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 {
|
||||
leaf hold-time {
|
||||
type uint16 {
|
||||
@ -154,10 +117,42 @@ module frr-pim {
|
||||
}
|
||||
}
|
||||
|
||||
grouping per-af-global-pim-config-attributes {
|
||||
grouping global-pim-config-attributes {
|
||||
description
|
||||
"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 {
|
||||
when "../frr-pim:address-family = 'frr-rt:ipv4'" {
|
||||
description
|
||||
@ -326,11 +321,11 @@ module frr-pim {
|
||||
description
|
||||
"Only accept registers from a specific source prefix list.";
|
||||
}
|
||||
} // per-af-global-pim-config-attributes
|
||||
} // global-pim-config-attributes
|
||||
|
||||
grouping interface-pim-config-attributes {
|
||||
description
|
||||
"A grouping defining pim interface attributes.";
|
||||
"A grouping defining pim interface attributes per address family.";
|
||||
|
||||
leaf pim-enable {
|
||||
type boolean;
|
||||
@ -426,11 +421,6 @@ module frr-pim {
|
||||
description
|
||||
"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 {
|
||||
type inet:ip-address;
|
||||
@ -467,56 +457,11 @@ module frr-pim {
|
||||
"Multicast group address.";
|
||||
}
|
||||
}
|
||||
} // per-af-interface-pim-config-attributes
|
||||
} // interface-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'" {
|
||||
grouping router-pim-config-attributes {
|
||||
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
|
||||
"PIM router parameters.";
|
||||
"A grouping defining pim router attributes per address family.";
|
||||
leaf packets {
|
||||
type uint8 {
|
||||
range "1..max";
|
||||
@ -542,4 +487,58 @@ module frr-pim {
|
||||
"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