]> git.puffer.fish Git - matthieu/frr.git/commitdiff
pimd: Add code to allow backwards compatibility
authorDonald Sharp <sharpd@cumulusnetworks.com>
Thu, 30 Mar 2017 03:23:25 +0000 (23:23 -0400)
committerDonald Sharp <sharpd@cumulusnetworks.com>
Thu, 30 Mar 2017 13:34:03 +0000 (09:34 -0400)
This code change adds the ability to specify that
we should be able to work with older versions
of PIM.

In future commits we will actually use this data.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
pimd/pim_cmd.c
pimd/pim_vty.c
pimd/pimd.c
pimd/pimd.h

index cf101b3e245a19e48995d05c9a87acc5c3593d11..66fc8185d0f39f028a6f8622f0e89cf7683f1f89 100644 (file)
@@ -3509,6 +3509,31 @@ DEFUN (no_ip_pim_packets,
   return CMD_SUCCESS;
 }
 
+DEFUN (ip_pim_v6_secondary,
+       ip_pim_v6_secondary_cmd,
+       "ip pim send-v6-secondary",
+       IP_STR
+       "pim multicast routing\n"
+       "Send v6 secondary addresses\n")
+{
+  pimg->send_v6_secondary = 1;
+
+  return CMD_SUCCESS;
+}
+
+DEFUN (no_ip_pim_v6_secondary,
+       no_ip_pim_v6_secondary_cmd,
+       "no ip pim send-v6-secondary",
+       NO_STR
+       IP_STR
+       "pim multicast routing\n"
+       "Send v6 secondary addresses\n")
+{
+  pimg->send_v6_secondary = 0;
+
+  return CMD_SUCCESS;
+}
+
 DEFUN (ip_pim_rp,
        ip_pim_rp_cmd,
        "ip pim rp A.B.C.D [A.B.C.D/M]",
@@ -6037,6 +6062,8 @@ void pim_cmd_init()
   install_element (CONFIG_NODE, &no_ip_pim_keep_alive_cmd);
   install_element (CONFIG_NODE, &ip_pim_packets_cmd);
   install_element (CONFIG_NODE, &no_ip_pim_packets_cmd);
+  install_element (CONFIG_NODE, &ip_pim_v6_secondary_cmd);
+  install_element (CONFIG_NODE, &no_ip_pim_v6_secondary_cmd);
   install_element (CONFIG_NODE, &ip_ssmpingd_cmd);
   install_element (CONFIG_NODE, &no_ip_ssmpingd_cmd); 
   install_element (CONFIG_NODE, &ip_msdp_peer_cmd);
index 5b6a79b95a0a22daaeee7d07dd546c626a41a1ea..9788c58cd9b0d6434d9971439a26b1fab657c906 100644 (file)
@@ -148,6 +148,12 @@ int pim_global_config_write(struct vty *vty)
 
   writes += pim_msdp_config_write (vty);
 
+  if (!pimg->send_v6_secondary)
+    {
+      vty_out (vty, "no ip pim send-v6-secondary%s", VTY_NEWLINE);
+      ++writes;
+    }
+
   writes += pim_rp_config_write (vty);
 
   if (qpim_register_suppress_time != PIM_REGISTER_SUPPRESSION_TIME_DEFAULT)
index b67544b28efed659b163c09a19e164ebfd96940b..9058e14b0af1d79f2446b72aa88e06083ec4489d 100644 (file)
@@ -109,6 +109,8 @@ pim_vrf_enable (struct vrf *vrf)
       if (pimg == NULL)
         zlog_err ("%s %s: pim class init failure ", __FILE__,
               __PRETTY_FUNCTION__);
+
+      pimg->send_v6_secondary = 1;
     }
   return 0;
 }
index b3bdd9e243ce72c1f30a78e1f0d8567b7cac5366..8dc58990229f2fc99e34ce342179741c0e0a4213 100644 (file)
@@ -240,6 +240,8 @@ struct pim_instance
   afi_t afi;
   vrf_id_t vrf_id;
   struct hash *rpf_hash;
+
+  int send_v6_secondary;
 };
 
 extern struct pim_instance *pimg; //Pim Global Instance