]> git.proxmox.com Git - mirror_frr.git/commitdiff
pimd: Remove pim_br vestiges
authorDonald Sharp <sharpd@nvidia.com>
Thu, 13 Oct 2022 19:54:43 +0000 (15:54 -0400)
committerDonald Sharp <sharpd@nvidia.com>
Thu, 27 Oct 2022 19:51:47 +0000 (15:51 -0400)
If PIM had received a register packet with the Border Router
bit set, pimd would have crashed.  Since I wrote this code
in 2015 and really have pretty much no memory of this and
no-one has ever reported this crash, let's just remove this
code.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
pimd/pim_br.c [deleted file]
pimd/pim_br.h [deleted file]
pimd/pim_memory.c
pimd/pim_memory.h
pimd/pim_register.c
pimd/pim_upstream.c
pimd/subdir.am

diff --git a/pimd/pim_br.c b/pimd/pim_br.c
deleted file mode 100644 (file)
index 6ec6b11..0000000
+++ /dev/null
@@ -1,93 +0,0 @@
-/*
- * PIM for Quagga
- * Copyright (C) 2015 Cumulus Networks, Inc.
- * Donald Sharp
- *
- * This program 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 of the License, or
- * (at your option) any later version.
- *
- * This program 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 this program; see the file COPYING; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- */
-#include <zebra.h>
-
-#include "memory.h"
-#include "log.h"
-#include "if.h"
-
-#include "pimd.h"
-#include "pim_str.h"
-#include "pim_br.h"
-#include "linklist.h"
-
-struct pim_br {
-       pim_sgaddr sg;
-       pim_addr pmbr;
-};
-
-static struct list *pim_br_list = NULL;
-
-pim_addr pim_br_get_pmbr(pim_sgaddr *sg)
-{
-       struct listnode *node;
-       struct pim_br *pim_br;
-
-       for (ALL_LIST_ELEMENTS_RO(pim_br_list, node, pim_br)) {
-               if (!pim_sgaddr_cmp(*sg, pim_br->sg))
-                       return pim_br->pmbr;
-       }
-
-       return PIMADDR_ANY;
-}
-
-void pim_br_set_pmbr(pim_sgaddr *sg, pim_addr br)
-{
-       struct listnode *node, *next;
-       struct pim_br *pim_br;
-
-       for (ALL_LIST_ELEMENTS(pim_br_list, node, next, pim_br)) {
-               if (!pim_sgaddr_cmp(*sg, pim_br->sg))
-                       break;
-       }
-
-       if (!pim_br) {
-               pim_br = XCALLOC(MTYPE_PIM_BR, sizeof(*pim_br));
-               pim_br->sg = *sg;
-
-               listnode_add(pim_br_list, pim_br);
-       }
-
-       pim_br->pmbr = br;
-}
-
-/*
- * Remove the (S,G) from the stored values
- */
-void pim_br_clear_pmbr(pim_sgaddr *sg)
-{
-       struct listnode *node, *next;
-       struct pim_br *pim_br;
-
-       for (ALL_LIST_ELEMENTS(pim_br_list, node, next, pim_br)) {
-               if (!pim_sgaddr_cmp(*sg, pim_br->sg))
-                       break;
-       }
-
-       if (!pim_br)
-               return;
-
-       listnode_delete(pim_br_list, pim_br);
-}
-
-void pim_br_init(void)
-{
-       pim_br_list = list_new();
-}
diff --git a/pimd/pim_br.h b/pimd/pim_br.h
deleted file mode 100644 (file)
index 7b87c0f..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * PIM for Quagga
- * Copyright (C) 2015 Cumulus Networks, Inc.
- * Donald Sharp
- *
- * This program 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 of the License, or
- * (at your option) any later version.
- *
- * This program 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 this program; see the file COPYING; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- */
-#ifndef PIM_BR_H
-#define PIM_BR_H
-
-pim_addr pim_br_get_pmbr(pim_sgaddr *sg);
-
-void pim_br_set_pmbr(pim_sgaddr *sg, pim_addr value);
-void pim_br_clear_pmbr(pim_sgaddr *sg);
-
-void pim_br_init(void);
-
-#endif
index 1d811d90016549d1af868302457a8bf84f57e5b7..1780b60a658f0219a9342821cd753c9c7020dba0 100644 (file)
@@ -37,7 +37,6 @@ DEFINE_MTYPE(PIMD, PIM_IFCHANNEL, "PIM interface (S,G) state");
 DEFINE_MTYPE(PIMD, PIM_UPSTREAM, "PIM upstream (S,G) state");
 DEFINE_MTYPE(PIMD, PIM_SSMPINGD, "PIM sspimgd socket");
 DEFINE_MTYPE(PIMD, PIM_STATIC_ROUTE, "PIM Static Route");
-DEFINE_MTYPE(PIMD, PIM_BR, "PIM Bridge Router info");
 DEFINE_MTYPE(PIMD, PIM_RP, "PIM RP info");
 DEFINE_MTYPE(PIMD, PIM_FILTER_NAME, "PIM RP filter info");
 DEFINE_MTYPE(PIMD, PIM_MSDP_PEER, "PIM MSDP peer");
index 4e5fcde7dda07109129e25a8f298d8ba45d45322..385c81052eac90d6f6a94fe0edc4a57f8faf54f2 100644 (file)
@@ -36,7 +36,6 @@ DECLARE_MTYPE(PIM_IFCHANNEL);
 DECLARE_MTYPE(PIM_UPSTREAM);
 DECLARE_MTYPE(PIM_SSMPINGD);
 DECLARE_MTYPE(PIM_STATIC_ROUTE);
-DECLARE_MTYPE(PIM_BR);
 DECLARE_MTYPE(PIM_RP);
 DECLARE_MTYPE(PIM_FILTER_NAME);
 DECLARE_MTYPE(PIM_MSDP_PEER);
index 4e2c44b172df88baa5b5147f698cf1598a1ae6c0..a37759e0d2fdad5e5dc4ab579b36b4eb89611054 100644 (file)
@@ -36,7 +36,6 @@
 #include "pim_rp.h"
 #include "pim_register.h"
 #include "pim_upstream.h"
-#include "pim_br.h"
 #include "pim_rpf.h"
 #include "pim_oil.h"
 #include "pim_zebra.h"
@@ -642,24 +641,13 @@ int pim_register_recv(struct interface *ifp, pim_addr dest_addr,
                }
 
                if (*bits & PIM_REGISTER_BORDER_BIT) {
-                       pim_addr pimbr = pim_br_get_pmbr(&sg);
                        if (PIM_DEBUG_PIM_PACKETS)
                                zlog_debug(
-                                       "%s: Received Register message with Border bit set",
+                                       "%s: Received Register message with Border bit set, ignoring",
                                        __func__);
 
-                       if (pim_addr_is_any(pimbr))
-                               pim_br_set_pmbr(&sg, src_addr);
-                       else if (pim_addr_cmp(src_addr, pimbr)) {
-                               pim_register_stop_send(ifp, &sg, dest_addr,
-                                                      src_addr);
-                               if (PIM_DEBUG_PIM_PACKETS)
-                                       zlog_debug(
-                                               "%s: Sending register-Stop to %s and dropping mr. packet",
-                                               __func__, "Sender");
                                /* Drop Packet Silently */
-                               return 0;
-                       }
+                       return 0;
                }
 
                struct pim_upstream *upstream = pim_upstream_find(pim, &sg);
index 0742daa4de6d1a55be3d7303d30410a9ec00c517..6b58fbb5cf2c16bf777e02d1d6c0a7c5422beb59 100644 (file)
@@ -46,7 +46,6 @@
 #include "pim_oil.h"
 #include "pim_macro.h"
 #include "pim_rp.h"
-#include "pim_br.h"
 #include "pim_register.h"
 #include "pim_msdp.h"
 #include "pim_jp_agg.h"
@@ -1422,8 +1421,8 @@ struct pim_upstream *pim_upstream_keep_alive_timer_proc(
        }
 
        if (I_am_RP(pim, up->sg.grp)) {
-               pim_br_clear_pmbr(&up->sg);
                /*
+                * Handle Border Router
                 * We need to do more here :)
                 * But this is the start.
                 */
index aa06b86479d941d13b22061d86714de4e3cfcdd0..54292bba2404799a2f4b9374f6d45c0b6f46d179 100644 (file)
@@ -21,7 +21,6 @@ pim_common = \
        pimd/pim_addr.c \
        pimd/pim_assert.c \
        pimd/pim_bfd.c \
-       pimd/pim_br.c \
        pimd/pim_bsm.c \
        pimd/pim_cmd_common.c \
        pimd/pim_errors.c \
@@ -103,7 +102,6 @@ noinst_HEADERS += \
        pimd/pim_addr.h \
        pimd/pim_assert.h \
        pimd/pim_bfd.h \
-       pimd/pim_br.h \
        pimd/pim_bsm.h \
        pimd/pim_cmd.h \
        pimd/pim_cmd_common.h \