]> git.puffer.fish Git - matthieu/frr.git/commitdiff
pimd: stop displaying global parameters in each vrf
authorDon Slice <dslice@nvidia.com>
Mon, 3 May 2021 18:59:01 +0000 (14:59 -0400)
committerDon Slice <dslice@nvidia.com>
Wed, 5 May 2021 12:11:27 +0000 (08:11 -0400)
Problem reported that when certain pim commands were entered, they
showed up duplicated in the configuration both under default instance
and every vrf (whether pim was used there or not.) This was because
these particular parameters are global only and the function doing
the display would repeat for each vrf. This fix only displays those
in the default case (and removes them from the help for entering
under a vrf.)

Signed-off-by: Don Slice <dslice@nvidia.com>
pimd/pim_cmd.c
pimd/pim_vty.c

index c01cfec88eb0735c3096523534872879e2ef2b70..b91078ea7756b916d074110445611911ab35ff4a 100644 (file)
@@ -7276,7 +7276,8 @@ DEFUN (no_ip_pim_rp_keep_alive,
        char rp_ka_timer[5];
        char rp_ka_timer_xpath[XPATH_MAXLEN];
 
-       snprintf(rp_ka_timer, sizeof(rp_ka_timer), "%d", PIM_KEEPALIVE_PERIOD);
+       snprintf(rp_ka_timer, sizeof(rp_ka_timer), "%d",
+                               PIM_RP_KEEPALIVE_PERIOD);
 
        if (vty->xpath_index) {
                vrf_dnode =
@@ -11412,9 +11413,7 @@ void pim_cmd_init(void)
        install_element(CONFIG_NODE, &ip_pim_ssm_prefix_list_cmd);
        install_element(VRF_NODE, &ip_pim_ssm_prefix_list_cmd);
        install_element(CONFIG_NODE, &ip_pim_register_suppress_cmd);
-       install_element(VRF_NODE, &ip_pim_register_suppress_cmd);
        install_element(CONFIG_NODE, &no_ip_pim_register_suppress_cmd);
-       install_element(VRF_NODE, &no_ip_pim_register_suppress_cmd);
        install_element(CONFIG_NODE, &ip_pim_spt_switchover_infinity_cmd);
        install_element(VRF_NODE, &ip_pim_spt_switchover_infinity_cmd);
        install_element(CONFIG_NODE, &ip_pim_spt_switchover_infinity_plist_cmd);
@@ -11427,9 +11426,7 @@ void pim_cmd_init(void)
        install_element(CONFIG_NODE, &pim_register_accept_list_cmd);
        install_element(VRF_NODE, &pim_register_accept_list_cmd);
        install_element(CONFIG_NODE, &ip_pim_joinprune_time_cmd);
-       install_element(VRF_NODE, &ip_pim_joinprune_time_cmd);
        install_element(CONFIG_NODE, &no_ip_pim_joinprune_time_cmd);
-       install_element(VRF_NODE, &no_ip_pim_joinprune_time_cmd);
        install_element(CONFIG_NODE, &ip_pim_keep_alive_cmd);
        install_element(VRF_NODE, &ip_pim_keep_alive_cmd);
        install_element(CONFIG_NODE, &ip_pim_rp_keep_alive_cmd);
@@ -11439,9 +11436,7 @@ void pim_cmd_init(void)
        install_element(CONFIG_NODE, &no_ip_pim_rp_keep_alive_cmd);
        install_element(VRF_NODE, &no_ip_pim_rp_keep_alive_cmd);
        install_element(CONFIG_NODE, &ip_pim_packets_cmd);
-       install_element(VRF_NODE, &ip_pim_packets_cmd);
        install_element(CONFIG_NODE, &no_ip_pim_packets_cmd);
-       install_element(VRF_NODE, &no_ip_pim_packets_cmd);
        install_element(CONFIG_NODE, &ip_pim_v6_secondary_cmd);
        install_element(VRF_NODE, &ip_pim_v6_secondary_cmd);
        install_element(CONFIG_NODE, &no_ip_pim_v6_secondary_cmd);
index 57a0c691661a18664aa0a2ec4cab1242e064e5ed..8154feb0ffcf05af0a258798c03ceca7a44fc5a2 100644 (file)
@@ -185,16 +185,24 @@ int pim_global_config_write_worker(struct pim_instance *pim, struct vty *vty)
 
        writes += pim_rp_config_write(pim, vty, spaces);
 
-       if (router->register_suppress_time
-           != PIM_REGISTER_SUPPRESSION_TIME_DEFAULT) {
-               vty_out(vty, "%sip pim register-suppress-time %d\n", spaces,
-                       router->register_suppress_time);
-               ++writes;
-       }
-       if (router->t_periodic != PIM_DEFAULT_T_PERIODIC) {
-               vty_out(vty, "%sip pim join-prune-interval %d\n", spaces,
-                       router->t_periodic);
-               ++writes;
+       if (pim->vrf_id == VRF_DEFAULT) {
+               if (router->register_suppress_time
+                   != PIM_REGISTER_SUPPRESSION_TIME_DEFAULT) {
+                       vty_out(vty, "%sip pim register-suppress-time %d\n",
+                                       spaces, router->register_suppress_time);
+                       ++writes;
+               }
+               if (router->t_periodic != PIM_DEFAULT_T_PERIODIC) {
+                       vty_out(vty, "%sip pim join-prune-interval %d\n",
+                               spaces, router->t_periodic);
+                       ++writes;
+               }
+
+               if (router->packet_process != PIM_DEFAULT_PACKET_PROCESS) {
+                       vty_out(vty, "%sip pim packets %d\n", spaces,
+                               router->packet_process);
+                       ++writes;
+               }
        }
        if (pim->keep_alive_time != PIM_KEEPALIVE_PERIOD) {
                vty_out(vty, "%sip pim keep-alive-timer %d\n", spaces,
@@ -206,11 +214,6 @@ int pim_global_config_write_worker(struct pim_instance *pim, struct vty *vty)
                        pim->rp_keep_alive_time);
                ++writes;
        }
-       if (router->packet_process != PIM_DEFAULT_PACKET_PROCESS) {
-               vty_out(vty, "%sip pim packets %d\n", spaces,
-                       router->packet_process);
-               ++writes;
-       }
        if (ssm->plist_name) {
                vty_out(vty, "%sip pim ssm prefix-list %s\n", spaces,
                        ssm->plist_name);