]> git.proxmox.com Git - mirror_frr.git/blobdiff - pimd/pim_br.c
lib: enforce vrf_name_to_id by returning default_vrf when name is null
[mirror_frr.git] / pimd / pim_br.c
index ceee40e716c59fbe5435169502f6def22d8937db..fc6a02ec9316c8a7d8632dcc53f278cf7be15325 100644 (file)
  * 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
+ * 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 "linklist.h"
 
 struct pim_br {
-  struct prefix sg;
-  struct in_addr pmbr;
+       struct prefix_sg sg;
+       struct in_addr pmbr;
 };
 
-struct in_addr pim_br_unknown = { .s_addr = 0 };
+struct in_addr pim_br_unknown = {.s_addr = 0};
 
 static struct list *pim_br_list = NULL;
 
-struct in_addr
-pim_br_get_pmbr (struct prefix *sg)
+struct in_addr pim_br_get_pmbr(struct prefix_sg *sg)
 {
-  struct listnode *node;
-  struct pim_br   *pim_br;
+       struct listnode *node;
+       struct pim_br *pim_br;
 
-  for (ALL_LIST_ELEMENTS_RO (pim_br_list, node, pim_br)) {
-    if (sg->u.sg.src.s_addr == pim_br->sg.u.sg.src.s_addr &&
-       sg->u.sg.grp.s_addr == pim_br->sg.u.sg.grp.s_addr)
-      return pim_br->pmbr;
-  }
+       for (ALL_LIST_ELEMENTS_RO(pim_br_list, node, pim_br)) {
+               if (sg->src.s_addr == pim_br->sg.src.s_addr
+                   && sg->grp.s_addr == pim_br->sg.grp.s_addr)
+                       return pim_br->pmbr;
+       }
 
-  return pim_br_unknown;
+       return pim_br_unknown;
 }
 
-void
-pim_br_set_pmbr (struct prefix *sg, struct in_addr br)
+void pim_br_set_pmbr(struct prefix_sg *sg, struct in_addr br)
 {
-  struct listnode *node, *next;
-  struct pim_br *pim_br;
+       struct listnode *node, *next;
+       struct pim_br *pim_br;
 
-  for (ALL_LIST_ELEMENTS (pim_br_list, node, next, pim_br)) {
-    if (sg->u.sg.src.s_addr == pim_br->sg.u.sg.src.s_addr &&
-       sg->u.sg.grp.s_addr == pim_br->sg.u.sg.grp.s_addr)
-      break;
-  }
+       for (ALL_LIST_ELEMENTS(pim_br_list, node, next, pim_br)) {
+               if (sg->src.s_addr == pim_br->sg.src.s_addr
+                   && sg->grp.s_addr == pim_br->sg.grp.s_addr)
+                       break;
+       }
 
-  if (!pim_br) {
-    pim_br = XCALLOC(MTYPE_PIM_BR, sizeof (*pim_br));
-    if (!pim_br) {
-      zlog_err("PIM XCALLOC(%zu) failure", sizeof(*pim_br));
-      return;
-    }
+       if (!pim_br) {
+               pim_br = XCALLOC(MTYPE_PIM_BR, sizeof(*pim_br));
+               pim_br->sg = *sg;
 
-    pim_br->sg = *sg;
+               listnode_add(pim_br_list, pim_br);
+       }
 
-    listnode_add(pim_br_list, pim_br);
-  }
-
-  pim_br->pmbr = br;
+       pim_br->pmbr = br;
 }
 
 /*
  * Remove the (S,G) from the stored values
  */
-void
-pim_br_clear_pmbr (struct prefix *sg)
+void pim_br_clear_pmbr(struct prefix_sg *sg)
 {
-  struct listnode *node, *next;
-  struct pim_br *pim_br;
+       struct listnode *node, *next;
+       struct pim_br *pim_br;
 
-  for (ALL_LIST_ELEMENTS (pim_br_list, node, next, pim_br)) {
-    if (sg->u.sg.src.s_addr == pim_br->sg.u.sg.src.s_addr &&
-       sg->u.sg.grp.s_addr == pim_br->sg.u.sg.grp.s_addr)
-      break;
-  }
+       for (ALL_LIST_ELEMENTS(pim_br_list, node, next, pim_br)) {
+               if (sg->src.s_addr == pim_br->sg.src.s_addr
+                   && sg->grp.s_addr == pim_br->sg.grp.s_addr)
+                       break;
+       }
 
-  if (!pim_br)
-    return;
+       if (!pim_br)
+               return;
 
-  listnode_delete (pim_br_list, pim_br);
+       listnode_delete(pim_br_list, pim_br);
 }
 
-void pim_br_init (void)
+void pim_br_init(void)
 {
-  pim_br_list = list_new();
-  if (!pim_br_list) {
-    zlog_err("%s: Failure to create pim_br_list",
-            __PRETTY_FUNCTION__);
-    return;
-  }
+       pim_br_list = list_new();
 }