]> git.puffer.fish Git - mirror/frr.git/commitdiff
pim6d: Handling IPV6 in pim_upstream 10639/head
authorsarita patra <saritap@vmware.com>
Wed, 23 Feb 2022 13:58:23 +0000 (05:58 -0800)
committersarita patra <saritap@vmware.com>
Mon, 28 Feb 2022 19:10:00 +0000 (11:10 -0800)
Signed-off-by: sarita patra <saritap@vmware.com>
pimd/pim_ifchannel.c
pimd/pim_upstream.c
pimd/pim_upstream.h

index 76d7341a33534719108cc591a53e931f51e420a8..956ab0d67c8d1ee48b35f2295af93f6da12f5a0a 100644 (file)
@@ -764,8 +764,7 @@ static void check_recv_upstream(int is_join, struct interface *recv_ifp,
 
        if (is_join) {
                /* Join(S,G) to RPF'(S,G) */
-               pim_upstream_join_suppress(up, up->rpf.rpf_addr.u.prefix4,
-                                          holdtime);
+               pim_upstream_join_suppress(up, up->rpf.rpf_addr, holdtime);
                return;
        }
 
index 7d835996f09b0209c223ec0a0195e4ef37e7c25a..24833f5a632353754023f3221b6ae289a8436afb 100644 (file)
@@ -422,8 +422,8 @@ void pim_update_suppress_timers(uint32_t suppress_time)
        }
 }
 
-void pim_upstream_join_suppress(struct pim_upstream *up,
-                               struct in_addr rpf_addr, int holdtime)
+void pim_upstream_join_suppress(struct pim_upstream *up, struct prefix rpf,
+                               int holdtime)
 {
        long t_joinsuppress_msec;
        long join_timer_remain_msec = 0;
@@ -455,7 +455,8 @@ void pim_upstream_join_suppress(struct pim_upstream *up,
 
        if (PIM_DEBUG_PIM_TRACE) {
                char rpf_str[INET_ADDRSTRLEN];
-               pim_inet4_dump("<rpf?>", rpf_addr, rpf_str, sizeof(rpf_str));
+
+               pim_addr_dump("<rpf?>", &rpf, rpf_str, sizeof(rpf_str));
                zlog_debug(
                        "%s %s: detected Join%s to RPF'(S,G)=%s: join_timer=%ld msec t_joinsuppress=%ld msec",
                        __FILE__, __func__, up->sg_str, rpf_str,
@@ -512,8 +513,10 @@ void pim_upstream_join_timer_decrease_to_t_override(const char *debug_label,
 
        if (PIM_DEBUG_PIM_TRACE) {
                char rpf_str[INET_ADDRSTRLEN];
-               pim_inet4_dump("<rpf?>", up->rpf.rpf_addr.u.prefix4, rpf_str,
-                              sizeof(rpf_str));
+
+               pim_addr_dump("<rpf?>", &up->rpf.rpf_addr, rpf_str,
+                             sizeof(rpf_str));
+
                zlog_debug(
                        "%s: to RPF'%s=%s: join_timer=%ld msec t_override=%d msec",
                        debug_label, up->sg_str, rpf_str,
@@ -829,9 +832,8 @@ void pim_upstream_fill_static_iif(struct pim_upstream *up,
        up->rpf.source_nexthop.interface = incoming;
 
        /* reset other parameters to matched a connected incoming interface */
-       up->rpf.source_nexthop.mrib_nexthop_addr.family = AF_INET;
-       up->rpf.source_nexthop.mrib_nexthop_addr.u.prefix4.s_addr =
-               PIM_NET_INADDR_ANY;
+       pim_addr_to_prefix(&up->rpf.source_nexthop.mrib_nexthop_addr,
+                          PIMADDR_ANY);
        up->rpf.source_nexthop.mrib_metric_preference =
                ZEBRA_CONNECT_DISTANCE_DEFAULT;
        up->rpf.source_nexthop.mrib_route_metric = 0;
@@ -891,16 +893,13 @@ static struct pim_upstream *pim_upstream_new(struct pim_instance *pim,
        up->sptbit = PIM_UPSTREAM_SPTBIT_FALSE;
 
        up->rpf.source_nexthop.interface = NULL;
-       up->rpf.source_nexthop.mrib_nexthop_addr.family = AF_INET;
-       up->rpf.source_nexthop.mrib_nexthop_addr.u.prefix4.s_addr =
-               PIM_NET_INADDR_ANY;
+       pim_addr_to_prefix(&up->rpf.source_nexthop.mrib_nexthop_addr,
+                          PIMADDR_ANY);
        up->rpf.source_nexthop.mrib_metric_preference =
                router->infinite_assert_metric.metric_preference;
        up->rpf.source_nexthop.mrib_route_metric =
                router->infinite_assert_metric.route_metric;
-       up->rpf.rpf_addr.family = AF_INET;
-       up->rpf.rpf_addr.u.prefix4.s_addr = PIM_NET_INADDR_ANY;
-
+       pim_addr_to_prefix(&up->rpf.rpf_addr, PIMADDR_ANY);
        up->ifchannels = list_new();
        up->ifchannels->cmp = (int (*)(void *, void *))pim_ifchannel_compare;
 
@@ -960,7 +959,7 @@ static struct pim_upstream *pim_upstream_new(struct pim_instance *pim,
 
        if (PIM_DEBUG_PIM_TRACE) {
                zlog_debug(
-                       "%s: Created Upstream %s upstream_addr %pI4 ref count %d increment",
+                       "%s: Created Upstream %s upstream_addr %pPAs ref count %d increment",
                        __func__, up->sg_str, &up->upstream_addr,
                        up->ref_count);
        }
index ad936a2839ad2f4ea0768bcbf7b4725cf7dfc0a4..8feffb8fdbb630e106572f7434be36e0bbb15f63 100644 (file)
@@ -317,8 +317,8 @@ void pim_upstream_update_join_desired(struct pim_instance *pim,
                                      struct pim_upstream *up);
 
 void pim_update_suppress_timers(uint32_t suppress_time);
-void pim_upstream_join_suppress(struct pim_upstream *up,
-                               struct in_addr rpf_addr, int holdtime);
+void pim_upstream_join_suppress(struct pim_upstream *up, struct prefix rpf,
+                               int holdtime);
 
 void pim_upstream_join_timer_decrease_to_t_override(const char *debug_label,
                                                    struct pim_upstream *up);