]> git.puffer.fish Git - mirror/frr.git/commitdiff
pim6d: modify in_addr current_bsr to pim_addr current_bsr
authorsarita patra <saritap@vmware.com>
Wed, 16 Feb 2022 11:43:07 +0000 (03:43 -0800)
committerSarita Patra <saritap@vmware.com>
Thu, 7 Jul 2022 14:51:33 +0000 (07:51 -0700)
Signed-off-by: sarita patra <saritap@vmware.com>
pimd/pim_bsm.c
pimd/pim_bsm.h
pimd/pim_cmd.c

index e5e621de0d7d4fafd31ad797d12b4f58739ea1e7..a89939e491a6dd6bef0e01f3b1b0a314fbea80f4 100644 (file)
@@ -177,7 +177,7 @@ static void pim_on_bs_timer(struct thread *t)
        /* Reset scope zone data */
        scope->accept_nofwd_bsm = false;
        scope->state = ACCEPT_ANY;
-       scope->current_bsr.s_addr = INADDR_ANY;
+       scope->current_bsr = PIMADDR_ANY;
        scope->current_bsr_prio = 0;
        scope->current_bsr_first_ts = 0;
        scope->current_bsr_last_ts = 0;
@@ -531,18 +531,17 @@ static void pim_instate_pend_list(struct bsgrp_node *bsgrp_node)
        pim_bsm_rpinfos_free(bsgrp_node->partial_bsrp_list);
 }
 
-static bool is_preferred_bsr(struct pim_instance *pim, struct in_addr bsr,
+static bool is_preferred_bsr(struct pim_instance *pim, pim_addr bsr,
                             uint32_t bsr_prio)
 {
-       if (bsr.s_addr == pim->global_scope.current_bsr.s_addr)
+       if (!pim_addr_cmp(bsr, pim->global_scope.current_bsr))
                return true;
 
        if (bsr_prio > pim->global_scope.current_bsr_prio)
                return true;
 
        else if (bsr_prio == pim->global_scope.current_bsr_prio) {
-               if (ntohl(bsr.s_addr)
-                   >= ntohl(pim->global_scope.current_bsr.s_addr))
+               if (pim_addr_cmp(bsr, pim->global_scope.current_bsr) >= 0)
                        return true;
                else
                        return false;
@@ -550,7 +549,7 @@ static bool is_preferred_bsr(struct pim_instance *pim, struct in_addr bsr,
                return false;
 }
 
-static void pim_bsm_update(struct pim_instance *pim, struct in_addr bsr,
+static void pim_bsm_update(struct pim_instance *pim, pim_addr bsr,
                           uint32_t bsr_prio)
 {
        if (bsr.s_addr != pim->global_scope.current_bsr.s_addr) {
@@ -583,7 +582,7 @@ void pim_bsm_clear(struct pim_instance *pim)
        /* Reset scope zone data */
        pim->global_scope.accept_nofwd_bsm = false;
        pim->global_scope.state = ACCEPT_ANY;
-       pim->global_scope.current_bsr.s_addr = INADDR_ANY;
+       pim->global_scope.current_bsr = PIMADDR_ANY;
        pim->global_scope.current_bsr_prio = 0;
        pim->global_scope.current_bsr_first_ts = 0;
        pim->global_scope.current_bsr_last_ts = 0;
index 910067109ec377032205dd23ce33e501b5026435..d0f3634a3b78f758f6111c35a3957be4c72341d6 100644 (file)
@@ -61,7 +61,7 @@ struct bsm_scope {
        int sz_id;                      /* scope zone id */
        enum ncbsr_state state;         /* non candidate BSR state */
        bool accept_nofwd_bsm;          /* no fwd bsm accepted for scope */
-       struct in_addr current_bsr;     /* current elected BSR for the sz */
+       pim_addr current_bsr;           /* current elected BSR for the sz */
        uint32_t current_bsr_prio;      /* current BSR priority */
        int64_t current_bsr_first_ts;   /* current BSR elected time */
        int64_t current_bsr_last_ts;    /* Last BSM received from E-BSR */
index 10ea472fb57757030a8f04c974cd082eba66c8a2..cffbb5baa77174c9c7c24a5437924c651e262096 100644 (file)
@@ -884,9 +884,8 @@ static void pim_show_bsm_db(struct pim_instance *pim, struct vty *vty, bool uj)
                buf += sizeof(struct bsm_hdr);
                len -= sizeof(struct bsm_hdr);
 
-               pim_inet4_dump("<BSR Address?>", hdr->bsr_addr.addr, bsr_str,
-                              sizeof(bsr_str));
-
+               snprintfrr(bsr_str, sizeof(bsr_str), "%pPAs",
+                          &hdr->bsr_addr.addr);
 
                if (uj) {
                        json_object_string_add(json, "BSR address", bsr_str);
@@ -998,24 +997,16 @@ static void pim_show_group_rp_mappings_info(struct pim_instance *pim,
        struct bsgrp_node *bsgrp;
        struct bsm_rpinfo *bsm_rp;
        struct route_node *rn;
-       char bsr_str[INET_ADDRSTRLEN];
        json_object *json = NULL;
        json_object *json_group = NULL;
        json_object *json_row = NULL;
 
-       if (pim->global_scope.current_bsr.s_addr == INADDR_ANY)
-               strlcpy(bsr_str, "0.0.0.0", sizeof(bsr_str));
-
-       else
-               pim_inet4_dump("<bsr?>", pim->global_scope.current_bsr, bsr_str,
-                              sizeof(bsr_str));
-
        if (uj) {
                json = json_object_new_object();
-               json_object_string_add(json, "BSR Address", bsr_str);
-       } else {
-               vty_out(vty, "BSR Address  %s\n", bsr_str);
-       }
+               json_object_string_addf(json, "BSR Address", "%pPA",
+                                      &pim->global_scope.current_bsr);
+       } else
+               vty_out(vty, "BSR Address  %pPA\n", &pim->global_scope.current_bsr);
 
        for (rn = route_top(pim->global_scope.bsrp_table); rn;
             rn = route_next(rn)) {
@@ -1451,11 +1442,9 @@ static void pim_show_bsr(struct pim_instance *pim,
        char last_bsm_seen[10];
        time_t now;
        char bsr_state[20];
-       char bsr_str[PREFIX_STRLEN];
        json_object *json = NULL;
 
-       if (pim->global_scope.current_bsr.s_addr == INADDR_ANY) {
-               strlcpy(bsr_str, "0.0.0.0", sizeof(bsr_str));
+       if (pim_addr_is_any(pim->global_scope.current_bsr)) {
                pim_time_uptime(uptime, sizeof(uptime),
                                pim->global_scope.current_bsr_first_ts);
                pim_time_uptime(last_bsm_seen, sizeof(last_bsm_seen),
@@ -1463,8 +1452,6 @@ static void pim_show_bsr(struct pim_instance *pim,
        }
 
        else {
-               pim_inet4_dump("<bsr?>", pim->global_scope.current_bsr,
-                              bsr_str, sizeof(bsr_str));
                now = pim_time_monotonic_sec();
                pim_time_uptime(uptime, sizeof(uptime),
                                (now - pim->global_scope.current_bsr_first_ts));
@@ -1486,9 +1473,11 @@ static void pim_show_bsr(struct pim_instance *pim,
                strlcpy(bsr_state, "", sizeof(bsr_state));
        }
 
+
        if (uj) {
                json = json_object_new_object();
-               json_object_string_add(json, "bsr", bsr_str);
+               json_object_string_addf(json, "bsr", "%pPA",
+                                       &pim->global_scope.current_bsr);
                json_object_int_add(json, "priority",
                                    pim->global_scope.current_bsr_prio);
                json_object_int_add(json, "fragmentTag",
@@ -1500,7 +1489,8 @@ static void pim_show_bsr(struct pim_instance *pim,
 
        else {
                vty_out(vty, "PIMv2 Bootstrap information\n");
-               vty_out(vty, "Current preferred BSR address: %s\n", bsr_str);
+               vty_out(vty, "Current preferred BSR address: %pPA\n",
+                       &pim->global_scope.current_bsr);
                vty_out(vty,
                        "Priority        Fragment-Tag       State           UpTime\n");
                vty_out(vty, "  %-12d    %-12d    %-13s    %7s\n",