]> git.puffer.fish Git - mirror/frr.git/commitdiff
pim6d: Handle B bit changes for IPv6
authorMobashshera Rasool <mrasool@vmware.com>
Wed, 2 Mar 2022 10:45:23 +0000 (02:45 -0800)
committerMobashshera Rasool <mrasool@vmware.com>
Thu, 10 Mar 2022 11:24:52 +0000 (03:24 -0800)
Signed-off-by: Mobashshera Rasool <mrasool@vmware.com>
pimd/pim_br.c
pimd/pim_br.h
pimd/pim_register.c

index 3e64296deb6e985e5e3030b98aa6777ff2c18d1b..427409217deb8f346dc5f088000bbd66981097c9 100644 (file)
 
 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;
index ef24ef3c197efee08f9930cc72488870fad05750..522dc085007a47c67c60a1602805f882c2892a7e 100644 (file)
 #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
index bfb584f2f1a801ea86a946d1c99bd763a3c35c41..c8c0b66ddb218f634ae1df7eb8d8cfd381f7a587 100644 (file)
@@ -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)