From a141ea61e7e884dbde6081eb6aeebcae8e7c9ad9 Mon Sep 17 00:00:00 2001 From: Mobashshera Rasool Date: Wed, 2 Mar 2022 02:45:23 -0800 Subject: [PATCH] pim6d: Handle B bit changes for IPv6 Signed-off-by: Mobashshera Rasool --- pimd/pim_br.c | 8 ++++---- pimd/pim_br.h | 6 +++--- pimd/pim_register.c | 6 +++--- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/pimd/pim_br.c b/pimd/pim_br.c index 3e64296deb..427409217d 100644 --- a/pimd/pim_br.c +++ b/pimd/pim_br.c @@ -30,14 +30,14 @@ struct pim_br { pim_sgaddr sg; - struct in_addr pmbr; + pim_addr pmbr; }; -struct in_addr pim_br_unknown = {.s_addr = 0}; +pim_addr pim_br_unknown = {.s_addr = 0}; static struct list *pim_br_list = NULL; -struct in_addr pim_br_get_pmbr(pim_sgaddr *sg) +pim_addr pim_br_get_pmbr(pim_sgaddr *sg) { struct listnode *node; struct pim_br *pim_br; @@ -50,7 +50,7 @@ struct in_addr pim_br_get_pmbr(pim_sgaddr *sg) return pim_br_unknown; } -void pim_br_set_pmbr(pim_sgaddr *sg, struct in_addr br) +void pim_br_set_pmbr(pim_sgaddr *sg, pim_addr br) { struct listnode *node, *next; struct pim_br *pim_br; diff --git a/pimd/pim_br.h b/pimd/pim_br.h index ef24ef3c19..522dc08500 100644 --- a/pimd/pim_br.h +++ b/pimd/pim_br.h @@ -20,13 +20,13 @@ #ifndef PIM_BR_H #define PIM_BR_H -struct in_addr pim_br_get_pmbr(pim_sgaddr *sg); +pim_addr pim_br_get_pmbr(pim_sgaddr *sg); -void pim_br_set_pmbr(pim_sgaddr *sg, struct in_addr value); +void pim_br_set_pmbr(pim_sgaddr *sg, pim_addr value); void pim_br_clear_pmbr(pim_sgaddr *sg); void pim_br_init(void); -extern struct in_addr pim_br_unknown; +extern pim_addr pim_br_unknown; #endif diff --git a/pimd/pim_register.c b/pimd/pim_register.c index bfb584f2f1..c8c0b66ddb 100644 --- a/pimd/pim_register.c +++ b/pimd/pim_register.c @@ -408,15 +408,15 @@ int pim_register_recv(struct interface *ifp, pim_addr dest_addr, } if (*bits & PIM_REGISTER_BORDER_BIT) { - struct in_addr pimbr = pim_br_get_pmbr(&sg); + pim_addr pimbr = pim_br_get_pmbr(&sg); if (PIM_DEBUG_PIM_PACKETS) zlog_debug( "%s: Received Register message with Border bit set", __func__); - if (pimbr.s_addr == pim_br_unknown.s_addr) + if (!pim_addr_cmp(pimbr, pim_br_unknown)) pim_br_set_pmbr(&sg, src_addr); - else if (src_addr.s_addr != pimbr.s_addr) { + else if (pim_addr_cmp(src_addr, pimbr)) { pim_register_stop_send(ifp, &sg, dest_addr, src_addr); if (PIM_DEBUG_PIM_PACKETS) -- 2.39.5