Browse Source

pimd: Add ability to safely ignore route-maps

pim was not parsing route-map code and causing issues
using vtysh because of this.  Add code to safely
ignore the route-map code and set us up for future
expansion into route-maps if neeeded.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
Tested-by: NetDEF CI System <cisystem@netdef.org>
Acked-by: Jafar Al-Gharaibeh <jafar@atcorp.com>
Donald Sharp 2 years ago
parent
commit
456cb63343
4 changed files with 40 additions and 1 deletions
  1. 2 1
      pimd/Makefile.am
  2. 4 0
      pimd/pim_main.c
  3. 32 0
      pimd/pim_routemap.c
  4. 2 0
      pimd/pimd.h

+ 2 - 1
pimd/Makefile.am

@@ -52,7 +52,8 @@ libpim_a_SOURCES = \
 	pim_oil.c pim_zlookup.c pim_pim.c pim_tlv.c pim_neighbor.c \
 	pim_hello.c pim_ifchannel.c pim_join.c pim_assert.c \
 	pim_msg.c pim_upstream.c pim_rpf.c pim_macro.c \
-	pim_igmp_join.c pim_ssmpingd.c pim_int.c pim_static.c
+	pim_igmp_join.c pim_ssmpingd.c pim_int.c pim_static.c \
+        pim_routemap.c
 
 noinst_HEADERS = \
 	pimd.h pim_version.h pim_cmd.h pim_signals.h pim_iface.h \

+ 4 - 0
pimd/pim_main.c

@@ -36,6 +36,8 @@
 #include "vty.h"
 #include "sigevent.h"
 #include "version.h"
+#include "prefix.h"
+#include "plist.h"
 
 #include "pimd.h"
 #include "pim_version.h"
@@ -200,6 +202,8 @@ int main(int argc, char** argv, char** envp) {
   memory_init();
   vrf_init();
   access_list_init();
+  prefix_list_init ();
+  pim_route_map_init ();
   pim_init();
 
   /*

+ 32 - 0
pimd/pim_routemap.c

@@ -0,0 +1,32 @@
+/* PIM Route-map Code
+ * Copyright (C) 2016 Cumulus Networks <sharpd@cumulusnetworks.com>
+ *
+ * This file is part of Quagga
+ *
+ * Quagga is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2, or (at your option) any
+ * later version.
+ *
+ * Quagga is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Quagga; see the file COPYING.  If not, write to the Free
+ * Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+#include <zebra.h>
+
+#include "routemap.h"
+
+#include "pimd.h"
+
+void
+pim_route_map_init (void)
+{
+  route_map_init ();
+  route_map_init_vty ();
+}

+ 2 - 0
pimd/pimd.h

@@ -159,4 +159,6 @@ struct list              *qpim_static_route_list; /* list of routes added static
 void pim_init(void);
 void pim_terminate(void);
 
+extern void pim_route_map_init (void);
+
 #endif /* PIMD_H */