]> git.proxmox.com Git - mirror_frr.git/blobdiff - pimd/pim_mlag.c
Merge pull request #11934 from sri-mohan1/sri-eigrp-dbg1
[mirror_frr.git] / pimd / pim_mlag.c
index a06c0a6f4e18aab0161913589ffb6de5cd2a83bd..9763a79a8da5ba7d6dfb0d28bdb4dfd1934c980e 100644 (file)
@@ -174,8 +174,8 @@ bool pim_mlag_up_df_role_update(struct pim_instance *pim,
        /* If DF role changed on a (*,G) termination mroute update the
         * associated DF role on the inherited (S,G) entries
         */
-       if ((up->sg.src.s_addr == INADDR_ANY) &&
-                       PIM_UPSTREAM_FLAG_TEST_MLAG_VXLAN(up->flags))
+       if (pim_addr_is_any(up->sg.src) &&
+           PIM_UPSTREAM_FLAG_TEST_MLAG_VXLAN(up->flags))
                pim_vxlan_inherit_mlag_flags(pim, up, true /* inherit */);
 
        return true;
@@ -253,19 +253,16 @@ static void pim_mlag_up_peer_add(struct mlag_mroute_add *msg)
        struct pim_upstream *up;
        struct pim_instance *pim;
        int flags = 0;
-       struct prefix_sg sg;
+       pim_sgaddr sg;
        struct vrf *vrf;
-       char sg_str[PIM_SG_LEN];
 
-       memset(&sg, 0, sizeof(struct prefix_sg));
+       memset(&sg, 0, sizeof(sg));
        sg.src.s_addr = htonl(msg->source_ip);
        sg.grp.s_addr = htonl(msg->group_ip);
-       if (PIM_DEBUG_MLAG)
-               pim_str_sg_set(&sg, sg_str);
 
        if (PIM_DEBUG_MLAG)
-               zlog_debug("peer MLAG mroute add %s:%s cost %d",
-                       msg->vrf_name, sg_str, msg->cost_to_rp);
+               zlog_debug("peer MLAG mroute add %s:%pSG cost %d",
+                          msg->vrf_name, &sg, msg->cost_to_rp);
 
        /* XXX - this is not correct. we MUST cache updates to avoid losing
         * an entry because of race conditions with the peer switch.
@@ -273,8 +270,9 @@ static void pim_mlag_up_peer_add(struct mlag_mroute_add *msg)
        vrf = vrf_lookup_by_name(msg->vrf_name);
        if  (!vrf) {
                if (PIM_DEBUG_MLAG)
-                       zlog_debug("peer MLAG mroute add failed %s:%s; no vrf",
-                                       msg->vrf_name, sg_str);
+                       zlog_debug(
+                               "peer MLAG mroute add failed %s:%pSG; no vrf",
+                               msg->vrf_name, &sg);
                return;
        }
        pim = vrf->info;
@@ -294,8 +292,9 @@ static void pim_mlag_up_peer_add(struct mlag_mroute_add *msg)
 
                if (!up) {
                        if (PIM_DEBUG_MLAG)
-                               zlog_debug("peer MLAG mroute add failed %s:%s",
-                                               vrf->name, sg_str);
+                               zlog_debug(
+                                       "peer MLAG mroute add failed %s:%pSG",
+                                       vrf->name, &sg);
                        return;
                }
        }
@@ -327,25 +326,22 @@ static void pim_mlag_up_peer_del(struct mlag_mroute_del *msg)
 {
        struct pim_upstream *up;
        struct pim_instance *pim;
-       struct prefix_sg sg;
+       pim_sgaddr sg;
        struct vrf *vrf;
-       char sg_str[PIM_SG_LEN];
 
-       memset(&sg, 0, sizeof(struct prefix_sg));
+       memset(&sg, 0, sizeof(sg));
        sg.src.s_addr = htonl(msg->source_ip);
        sg.grp.s_addr = htonl(msg->group_ip);
-       if (PIM_DEBUG_MLAG)
-               pim_str_sg_set(&sg, sg_str);
 
        if (PIM_DEBUG_MLAG)
-               zlog_debug("peer MLAG mroute del %s:%s", msg->vrf_name,
-                               sg_str);
+               zlog_debug("peer MLAG mroute del %s:%pSG", msg->vrf_name, &sg);
 
        vrf = vrf_lookup_by_name(msg->vrf_name);
        if  (!vrf) {
                if (PIM_DEBUG_MLAG)
-                       zlog_debug("peer MLAG mroute del skipped %s:%s; no vrf",
-                                       msg->vrf_name, sg_str);
+                       zlog_debug(
+                               "peer MLAG mroute del skipped %s:%pSG; no vrf",
+                               msg->vrf_name, &sg);
                return;
        }
        pim = vrf->info;
@@ -353,8 +349,9 @@ static void pim_mlag_up_peer_del(struct mlag_mroute_del *msg)
        up = pim_upstream_find(pim, &sg);
        if  (!up) {
                if (PIM_DEBUG_MLAG)
-                       zlog_debug("peer MLAG mroute del skipped %s:%s; no up",
-                                       vrf->name, sg_str);
+                       zlog_debug(
+                               "peer MLAG mroute del skipped %s:%pSG; no up",
+                               vrf->name, &sg);
                return;
        }
 
@@ -737,17 +734,17 @@ static void pim_mlag_process_vxlan_update(struct mlag_vxlan *msg)
 static void pim_mlag_process_mroute_add(struct mlag_mroute_add msg)
 {
        if (PIM_DEBUG_MLAG) {
-               struct prefix_sg sg;
+               pim_sgaddr sg;
 
                sg.grp.s_addr = ntohl(msg.group_ip);
                sg.src.s_addr = ntohl(msg.source_ip);
 
                zlog_debug(
-                       "%s: msg dump: vrf_name: %s, s.ip: 0x%x, g.ip: 0x%x (%pSG4) cost: %u",
+                       "%s: msg dump: vrf_name: %s, s.ip: 0x%x, g.ip: 0x%x (%pSG) cost: %u",
                        __func__, msg.vrf_name, msg.source_ip, msg.group_ip,
                        &sg, msg.cost_to_rp);
                zlog_debug(
-                       "(%pSG4)owner_id: %d, DR: %d, Dual active: %d, vrf_id: 0x%x intf_name: %s",
+                       "(%pSG)owner_id: %d, DR: %d, Dual active: %d, vrf_id: 0x%x intf_name: %s",
                        &sg, msg.owner_id, msg.am_i_dr, msg.am_i_dual_active,
                        msg.vrf_id, msg.intf_name);
        }
@@ -767,15 +764,15 @@ static void pim_mlag_process_mroute_add(struct mlag_mroute_add msg)
 static void pim_mlag_process_mroute_del(struct mlag_mroute_del msg)
 {
        if (PIM_DEBUG_MLAG) {
-               struct prefix_sg sg;
+               pim_sgaddr sg;
 
                sg.grp.s_addr = ntohl(msg.group_ip);
                sg.src.s_addr = ntohl(msg.source_ip);
                zlog_debug(
-                       "%s: msg dump: vrf_name: %s, s.ip: 0x%x, g.ip: 0x%x(%pSG4)",
+                       "%s: msg dump: vrf_name: %s, s.ip: 0x%x, g.ip: 0x%x(%pSG)",
                        __func__, msg.vrf_name, msg.source_ip, msg.group_ip,
                        &sg);
-               zlog_debug("(%pSG4)owner_id: %d, vrf_id: 0x%x intf_name: %s",
+               zlog_debug("(%pSG)owner_id: %d, vrf_id: 0x%x intf_name: %s",
                           &sg, msg.owner_id, msg.vrf_id, msg.intf_name);
        }
 
@@ -791,8 +788,10 @@ static void pim_mlag_process_mroute_del(struct mlag_mroute_del msg)
        pim_mlag_up_peer_del(&msg);
 }
 
-int pim_zebra_mlag_handle_msg(struct stream *s, int len)
+int pim_zebra_mlag_handle_msg(int cmd, struct zclient *zclient,
+                             uint16_t zapi_length, vrf_id_t vrf_id)
 {
+       struct stream *s = zclient->ibuf;
        struct mlag_msg mlag_msg;
        char buf[80];
        int rc = 0;
@@ -880,7 +879,7 @@ int pim_zebra_mlag_handle_msg(struct stream *s, int len)
 
 /****************End of PIM Mesasge processing handler********************/
 
-int pim_zebra_mlag_process_up(void)
+int pim_zebra_mlag_process_up(ZAPI_CALLBACK_ARGS)
 {
        if (PIM_DEBUG_MLAG)
                zlog_debug("%s: Received Process-Up from Mlag", __func__);
@@ -908,7 +907,7 @@ static void pim_mlag_param_reset(void)
        router->peerlink_rif[0] = '\0';
 }
 
-int pim_zebra_mlag_process_down(void)
+int pim_zebra_mlag_process_down(ZAPI_CALLBACK_ARGS)
 {
        if (PIM_DEBUG_MLAG)
                zlog_debug("%s: Received Process-Down from Mlag", __func__);
@@ -931,12 +930,12 @@ int pim_zebra_mlag_process_down(void)
        return 0;
 }
 
-static int pim_mlag_register_handler(struct thread *thread)
+static void pim_mlag_register_handler(struct thread *thread)
 {
        uint32_t bit_mask = 0;
 
        if (!zclient)
-               return -1;
+               return;
 
        SET_FLAG(bit_mask, (1 << MLAG_STATUS_UPDATE));
        SET_FLAG(bit_mask, (1 << MLAG_MROUTE_ADD));
@@ -953,7 +952,6 @@ static int pim_mlag_register_handler(struct thread *thread)
                           __func__, bit_mask);
 
        zclient_send_mlag_register(zclient, bit_mask);
-       return 0;
 }
 
 void pim_mlag_register(void)
@@ -967,17 +965,16 @@ void pim_mlag_register(void)
                         NULL);
 }
 
-static int pim_mlag_deregister_handler(struct thread *thread)
+static void pim_mlag_deregister_handler(struct thread *thread)
 {
        if (!zclient)
-               return -1;
+               return;
 
        if (PIM_DEBUG_MLAG)
                zlog_debug("%s: Posting Client De-Register to MLAG from PIM",
                           __func__);
        router->connected_to_mlag = false;
        zclient_send_mlag_deregister(zclient);
-       return 0;
 }
 
 void pim_mlag_deregister(void)
@@ -1018,7 +1015,7 @@ void pim_if_configure_mlag_dualactive(struct pim_interface *pim_ifp)
 
        if (router->pim_mlag_intf_cnt == 1) {
                /*
-                * atleast one Interface is configured for MLAG, send register
+                * at least one Interface is configured for MLAG, send register
                 * to Zebra for receiving MLAG Updates
                 */
                pim_mlag_register();