pimd: replace pim_inet4_dump with %pPAs

Only pim_sgaddr uses are covered by this since regular in_addr is still
used for singular addresses, so only a part of pim_inet4_dump calls are
gone with this.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
This commit is contained in:
David Lamparter 2022-01-05 19:12:12 +01:00
parent bca160c6af
commit 8e8be741b5
5 changed files with 160 additions and 189 deletions

View File

@ -287,15 +287,13 @@ int pim_assert_recv(struct interface *ifp, struct pim_neighbor *neigh,
if (PIM_DEBUG_PIM_TRACE) { if (PIM_DEBUG_PIM_TRACE) {
char neigh_str[INET_ADDRSTRLEN]; char neigh_str[INET_ADDRSTRLEN];
char source_str[INET_ADDRSTRLEN]; char source_str[INET_ADDRSTRLEN];
char group_str[INET_ADDRSTRLEN];
pim_inet4_dump("<neigh?>", src_addr, neigh_str, pim_inet4_dump("<neigh?>", src_addr, neigh_str,
sizeof(neigh_str)); sizeof(neigh_str));
pim_inet4_dump("<src?>", msg_source_addr.u.prefix4, source_str, pim_inet4_dump("<src?>", msg_source_addr.u.prefix4, source_str,
sizeof(source_str)); sizeof(source_str));
pim_inet4_dump("<grp?>", sg.grp, group_str, sizeof(group_str));
zlog_debug( zlog_debug(
"%s: from %s on %s: (S,G)=(%s,%s) pref=%u metric=%u rpt_bit=%u", "%s: from %s on %s: (S,G)=(%s,%pPAs) pref=%u metric=%u rpt_bit=%u",
__func__, neigh_str, ifp->name, source_str, group_str, __func__, neigh_str, ifp->name, source_str, &sg.grp,
msg_metric.metric_preference, msg_metric.route_metric, msg_metric.metric_preference, msg_metric.route_metric,
PIM_FORCE_BOOLEAN(msg_metric.rpt_bit_flag)); PIM_FORCE_BOOLEAN(msg_metric.rpt_bit_flag));
} }

View File

@ -108,8 +108,6 @@ static void pim_show_assert_helper(struct vty *vty,
struct pim_interface *pim_ifp, struct pim_interface *pim_ifp,
struct pim_ifchannel *ch, time_t now) struct pim_ifchannel *ch, time_t now)
{ {
char ch_src_str[INET_ADDRSTRLEN];
char ch_grp_str[INET_ADDRSTRLEN];
char winner_str[INET_ADDRSTRLEN]; char winner_str[INET_ADDRSTRLEN];
struct in_addr ifaddr; struct in_addr ifaddr;
char uptime[10]; char uptime[10];
@ -118,18 +116,16 @@ static void pim_show_assert_helper(struct vty *vty,
ifaddr = pim_ifp->primary_address; ifaddr = pim_ifp->primary_address;
pim_inet4_dump("<ch_src?>", ch->sg.src, ch_src_str, sizeof(ch_src_str));
pim_inet4_dump("<ch_grp?>", ch->sg.grp, ch_grp_str, sizeof(ch_grp_str));
pim_inet4_dump("<assrt_win?>", ch->ifassert_winner, winner_str, pim_inet4_dump("<assrt_win?>", ch->ifassert_winner, winner_str,
sizeof(winner_str)); sizeof(winner_str));
pim_time_uptime(uptime, sizeof(uptime), now - ch->ifassert_creation); pim_time_uptime(uptime, sizeof(uptime), now - ch->ifassert_creation);
pim_time_timer_to_mmss(timer, sizeof(timer), ch->t_ifassert_timer); pim_time_timer_to_mmss(timer, sizeof(timer), ch->t_ifassert_timer);
vty_out(vty, "%-16s %-15s %-15s %-15s %-6s %-15s %-8s %-5s\n", vty_out(vty, "%-16s %-15s %-15pPAs %-15pPAs %-6s %-15s %-8s %-5s\n",
ch->interface->name, ch->interface->name,
inet_ntop(AF_INET, &ifaddr, buf, sizeof(buf)), ch_src_str, inet_ntop(AF_INET, &ifaddr, buf, sizeof(buf)), &ch->sg.src,
ch_grp_str, pim_ifchannel_ifassert_name(ch->ifassert_state), &ch->sg.grp, pim_ifchannel_ifassert_name(ch->ifassert_state),
winner_str, uptime, timer); winner_str, uptime, timer);
} }
@ -160,19 +156,15 @@ static void pim_show_assert_internal_helper(struct vty *vty,
struct pim_interface *pim_ifp, struct pim_interface *pim_ifp,
struct pim_ifchannel *ch) struct pim_ifchannel *ch)
{ {
char ch_src_str[INET_ADDRSTRLEN];
char ch_grp_str[INET_ADDRSTRLEN];
struct in_addr ifaddr; struct in_addr ifaddr;
char buf[PREFIX_STRLEN]; char buf[PREFIX_STRLEN];
ifaddr = pim_ifp->primary_address; ifaddr = pim_ifp->primary_address;
pim_inet4_dump("<ch_src?>", ch->sg.src, ch_src_str, sizeof(ch_src_str)); vty_out(vty, "%-16s %-15s %-15pPAs %-15pPAs %-3s %-3s %-3s %-4s\n",
pim_inet4_dump("<ch_grp?>", ch->sg.grp, ch_grp_str, sizeof(ch_grp_str));
vty_out(vty, "%-16s %-15s %-15s %-15s %-3s %-3s %-3s %-4s\n",
ch->interface->name, ch->interface->name,
inet_ntop(AF_INET, &ifaddr, buf, sizeof(buf)), inet_ntop(AF_INET, &ifaddr, buf, sizeof(buf)), &ch->sg.src,
ch_src_str, ch_grp_str, &ch->sg.grp,
PIM_IF_FLAG_TEST_COULD_ASSERT(ch->flags) ? "yes" : "no", PIM_IF_FLAG_TEST_COULD_ASSERT(ch->flags) ? "yes" : "no",
pim_macro_ch_could_assert_eval(ch) ? "yes" : "no", pim_macro_ch_could_assert_eval(ch) ? "yes" : "no",
PIM_IF_FLAG_TEST_ASSERT_TRACKING_DESIRED(ch->flags) ? "yes" PIM_IF_FLAG_TEST_ASSERT_TRACKING_DESIRED(ch->flags) ? "yes"
@ -209,8 +201,6 @@ static void pim_show_assert_metric_helper(struct vty *vty,
struct pim_interface *pim_ifp, struct pim_interface *pim_ifp,
struct pim_ifchannel *ch) struct pim_ifchannel *ch)
{ {
char ch_src_str[INET_ADDRSTRLEN];
char ch_grp_str[INET_ADDRSTRLEN];
char addr_str[INET_ADDRSTRLEN]; char addr_str[INET_ADDRSTRLEN];
struct pim_assert_metric am; struct pim_assert_metric am;
struct in_addr ifaddr; struct in_addr ifaddr;
@ -221,14 +211,12 @@ static void pim_show_assert_metric_helper(struct vty *vty,
am = pim_macro_spt_assert_metric(&ch->upstream->rpf, am = pim_macro_spt_assert_metric(&ch->upstream->rpf,
pim_ifp->primary_address); pim_ifp->primary_address);
pim_inet4_dump("<ch_src?>", ch->sg.src, ch_src_str, sizeof(ch_src_str));
pim_inet4_dump("<ch_grp?>", ch->sg.grp, ch_grp_str, sizeof(ch_grp_str));
pim_inet4_dump("<addr?>", am.ip_address, addr_str, sizeof(addr_str)); pim_inet4_dump("<addr?>", am.ip_address, addr_str, sizeof(addr_str));
vty_out(vty, "%-16s %-15s %-15s %-15s %-3s %4u %6u %-15s\n", vty_out(vty, "%-16s %-15s %-15pPAs %-15pPAs %-3s %4u %6u %-15s\n",
ch->interface->name, ch->interface->name,
inet_ntop(AF_INET, &ifaddr, buf, sizeof(buf)), inet_ntop(AF_INET, &ifaddr, buf, sizeof(buf)), &ch->sg.src,
ch_src_str, ch_grp_str, am.rpt_bit_flag ? "yes" : "no", &ch->sg.grp, am.rpt_bit_flag ? "yes" : "no",
am.metric_preference, am.route_metric, addr_str); am.metric_preference, am.route_metric, addr_str);
} }
@ -256,8 +244,6 @@ static void pim_show_assert_winner_metric_helper(struct vty *vty,
struct pim_interface *pim_ifp, struct pim_interface *pim_ifp,
struct pim_ifchannel *ch) struct pim_ifchannel *ch)
{ {
char ch_src_str[INET_ADDRSTRLEN];
char ch_grp_str[INET_ADDRSTRLEN];
char addr_str[INET_ADDRSTRLEN]; char addr_str[INET_ADDRSTRLEN];
struct pim_assert_metric *am; struct pim_assert_metric *am;
struct in_addr ifaddr; struct in_addr ifaddr;
@ -269,8 +255,6 @@ static void pim_show_assert_winner_metric_helper(struct vty *vty,
am = &ch->ifassert_winner_metric; am = &ch->ifassert_winner_metric;
pim_inet4_dump("<ch_src?>", ch->sg.src, ch_src_str, sizeof(ch_src_str));
pim_inet4_dump("<ch_grp?>", ch->sg.grp, ch_grp_str, sizeof(ch_grp_str));
pim_inet4_dump("<addr?>", am->ip_address, addr_str, sizeof(addr_str)); pim_inet4_dump("<addr?>", am->ip_address, addr_str, sizeof(addr_str));
if (am->metric_preference == PIM_ASSERT_METRIC_PREFERENCE_MAX) if (am->metric_preference == PIM_ASSERT_METRIC_PREFERENCE_MAX)
@ -284,11 +268,11 @@ static void pim_show_assert_winner_metric_helper(struct vty *vty,
else else
snprintf(metr_str, sizeof(metr_str), "%6u", am->route_metric); snprintf(metr_str, sizeof(metr_str), "%6u", am->route_metric);
vty_out(vty, "%-16s %-15s %-15s %-15s %-3s %-4s %-6s %-15s\n", vty_out(vty, "%-16s %-15s %-15pPAs %-15pPAs %-3s %-4s %-6s %-15s\n",
ch->interface->name, ch->interface->name,
inet_ntop(AF_INET, &ifaddr, buf, sizeof(buf)), ch_src_str, inet_ntop(AF_INET, &ifaddr, buf, sizeof(buf)), &ch->sg.src,
ch_grp_str, am->rpt_bit_flag ? "yes" : "no", pref_str, metr_str, &ch->sg.grp, am->rpt_bit_flag ? "yes" : "no", pref_str,
addr_str); metr_str, addr_str);
} }
static void pim_show_assert_winner_metric(struct pim_instance *pim, static void pim_show_assert_winner_metric(struct pim_instance *pim,
@ -348,14 +332,10 @@ static void pim_show_membership_helper(struct vty *vty,
struct pim_ifchannel *ch, struct pim_ifchannel *ch,
struct json_object *json) struct json_object *json)
{ {
char ch_src_str[INET_ADDRSTRLEN]; char ch_grp_str[PIM_ADDRSTRLEN];
char ch_grp_str[INET_ADDRSTRLEN];
json_object *json_iface = NULL; json_object *json_iface = NULL;
json_object *json_row = NULL; json_object *json_row = NULL;
pim_inet4_dump("<ch_src?>", ch->sg.src, ch_src_str, sizeof(ch_src_str));
pim_inet4_dump("<ch_grp?>", ch->sg.grp, ch_grp_str, sizeof(ch_grp_str));
json_object_object_get_ex(json, ch->interface->name, &json_iface); json_object_object_get_ex(json, ch->interface->name, &json_iface);
if (!json_iface) { if (!json_iface) {
json_iface = json_object_new_object(); json_iface = json_object_new_object();
@ -363,8 +343,10 @@ static void pim_show_membership_helper(struct vty *vty,
json_object_object_add(json, ch->interface->name, json_iface); json_object_object_add(json, ch->interface->name, json_iface);
} }
snprintfrr(ch_grp_str, sizeof(ch_grp_str), "%pPAs", &ch->sg.grp);
json_row = json_object_new_object(); json_row = json_object_new_object();
json_object_string_add(json_row, "source", ch_src_str); json_object_string_addf(json_row, "source", "%pPAs", &ch->sg.src);
json_object_string_add(json_row, "group", ch_grp_str); json_object_string_add(json_row, "group", ch_grp_str);
json_object_string_add(json_row, "localMembership", json_object_string_add(json_row, "localMembership",
ch->local_ifmembership == PIM_IFMEMBERSHIP_NOINFO ch->local_ifmembership == PIM_IFMEMBERSHIP_NOINFO
@ -372,6 +354,7 @@ static void pim_show_membership_helper(struct vty *vty,
: "INCLUDE"); : "INCLUDE");
json_object_object_add(json_iface, ch_grp_str, json_row); json_object_object_add(json_iface, ch_grp_str, json_row);
} }
static void pim_show_membership(struct pim_instance *pim, struct vty *vty, static void pim_show_membership(struct pim_instance *pim, struct vty *vty,
bool uj) bool uj)
{ {
@ -1063,10 +1046,10 @@ static void pim_show_interfaces_single(struct pim_instance *pim,
json_fhr_sources = json_fhr_sources =
json_object_new_object(); json_object_new_object();
pim_inet4_dump("<src?>", up->sg.src, src_str, snprintfrr(grp_str, sizeof(grp_str), "%pPAs",
sizeof(src_str)); &up->sg.grp);
pim_inet4_dump("<grp?>", up->sg.grp, grp_str, snprintfrr(src_str, sizeof(src_str), "%pPAs",
sizeof(grp_str)); &up->sg.src);
pim_time_uptime(uptime, sizeof(uptime), pim_time_uptime(uptime, sizeof(uptime),
now - up->state_transition); now - up->state_transition);
@ -1240,15 +1223,11 @@ static void pim_show_interfaces_single(struct pim_instance *pim,
print_header = 0; print_header = 0;
} }
pim_inet4_dump("<src?>", up->sg.src, src_str,
sizeof(src_str));
pim_inet4_dump("<grp?>", up->sg.grp, grp_str,
sizeof(grp_str));
pim_time_uptime(uptime, sizeof(uptime), pim_time_uptime(uptime, sizeof(uptime),
now - up->state_transition); now - up->state_transition);
vty_out(vty, vty_out(vty,
"%s : %s is a source, uptime is %s\n", "%pPAs : %pPAs is a source, uptime is %s\n",
grp_str, src_str, uptime); &up->sg.grp, &up->sg.src, uptime);
} }
if (!print_header) { if (!print_header) {
@ -1681,8 +1660,6 @@ static void pim_show_join_helper(struct vty *vty, struct pim_interface *pim_ifp,
struct pim_ifchannel *ch, json_object *json, struct pim_ifchannel *ch, json_object *json,
time_t now, bool uj) time_t now, bool uj)
{ {
char ch_src_str[INET_ADDRSTRLEN];
char ch_grp_str[INET_ADDRSTRLEN];
json_object *json_iface = NULL; json_object *json_iface = NULL;
json_object *json_row = NULL; json_object *json_row = NULL;
json_object *json_grp = NULL; json_object *json_grp = NULL;
@ -1694,9 +1671,6 @@ static void pim_show_join_helper(struct vty *vty, struct pim_interface *pim_ifp,
ifaddr = pim_ifp->primary_address; ifaddr = pim_ifp->primary_address;
pim_inet4_dump("<ch_src?>", ch->sg.src, ch_src_str, sizeof(ch_src_str));
pim_inet4_dump("<ch_grp?>", ch->sg.grp, ch_grp_str, sizeof(ch_grp_str));
pim_time_uptime_begin(uptime, sizeof(uptime), now, ch->ifjoin_creation); pim_time_uptime_begin(uptime, sizeof(uptime), now, ch->ifjoin_creation);
pim_time_timer_to_mmss(expire, sizeof(expire), pim_time_timer_to_mmss(expire, sizeof(expire),
ch->t_ifjoin_expiry_timer); ch->t_ifjoin_expiry_timer);
@ -1704,6 +1678,14 @@ static void pim_show_join_helper(struct vty *vty, struct pim_interface *pim_ifp,
ch->t_ifjoin_prune_pending_timer); ch->t_ifjoin_prune_pending_timer);
if (uj) { if (uj) {
char ch_grp_str[PIM_ADDRSTRLEN];
char ch_src_str[PIM_ADDRSTRLEN];
snprintfrr(ch_grp_str, sizeof(ch_grp_str), "%pPAs",
&ch->sg.grp);
snprintfrr(ch_src_str, sizeof(ch_src_str), "%pPAs",
&ch->sg.src);
json_object_object_get_ex(json, ch->interface->name, json_object_object_get_ex(json, ch->interface->name,
&json_iface); &json_iface);
@ -1738,10 +1720,10 @@ static void pim_show_join_helper(struct vty *vty, struct pim_interface *pim_ifp,
} else } else
json_object_object_add(json_grp, ch_src_str, json_row); json_object_object_add(json_grp, ch_src_str, json_row);
} else { } else {
vty_out(vty, "%-16s %-15s %-15s %-15s %-10s %8s %-6s %5s\n", vty_out(vty, "%-16s %-15s %-15pPAs %-15pPAs %-10s %8s %-6s %5s\n",
ch->interface->name, ch->interface->name,
inet_ntop(AF_INET, &ifaddr, buf, sizeof(buf)), inet_ntop(AF_INET, &ifaddr, buf, sizeof(buf)),
ch_src_str, ch_grp_str, &ch->sg.src, &ch->sg.grp,
pim_ifchannel_ifjoin_name(ch->ifjoin_state, ch->flags), pim_ifchannel_ifjoin_name(ch->ifjoin_state, ch->flags),
uptime, expire, prune); uptime, expire, prune);
} }
@ -2459,8 +2441,6 @@ static void pim_show_upstream(struct pim_instance *pim, struct vty *vty,
"Iif Source Group State Uptime JoinTimer RSTimer KATimer RefCnt\n"); "Iif Source Group State Uptime JoinTimer RSTimer KATimer RefCnt\n");
frr_each (rb_pim_upstream, &pim->upstream_head, up) { frr_each (rb_pim_upstream, &pim->upstream_head, up) {
char src_str[INET_ADDRSTRLEN];
char grp_str[INET_ADDRSTRLEN];
char uptime[10]; char uptime[10];
char join_timer[10]; char join_timer[10];
char rs_timer[10]; char rs_timer[10];
@ -2471,8 +2451,6 @@ static void pim_show_upstream(struct pim_instance *pim, struct vty *vty,
if (!pim_sgaddr_match(up->sg, *sg)) if (!pim_sgaddr_match(up->sg, *sg))
continue; continue;
pim_inet4_dump("<src?>", up->sg.src, src_str, sizeof(src_str));
pim_inet4_dump("<grp?>", up->sg.grp, grp_str, sizeof(grp_str));
pim_time_uptime(uptime, sizeof(uptime), pim_time_uptime(uptime, sizeof(uptime),
now - up->state_transition); now - up->state_transition);
pim_time_timer_to_hhmmss(join_timer, sizeof(join_timer), pim_time_timer_to_hhmmss(join_timer, sizeof(join_timer),
@ -2513,6 +2491,14 @@ static void pim_show_upstream(struct pim_instance *pim, struct vty *vty,
} }
if (uj) { if (uj) {
char grp_str[PIM_ADDRSTRLEN];
char src_str[PIM_ADDRSTRLEN];
snprintfrr(grp_str, sizeof(grp_str), "%pPAs",
&up->sg.grp);
snprintfrr(src_str, sizeof(src_str), "%pPAs",
&up->sg.src);
json_object_object_get_ex(json, grp_str, &json_group); json_object_object_get_ex(json, grp_str, &json_group);
if (!json_group) { if (!json_group) {
@ -2576,12 +2562,12 @@ static void pim_show_upstream(struct pim_instance *pim, struct vty *vty,
json_object_object_add(json_group, src_str, json_row); json_object_object_add(json_group, src_str, json_row);
} else { } else {
vty_out(vty, vty_out(vty,
"%-16s%-15s %-15s %-11s %-8s %-9s %-9s %-9s %6d\n", "%-16s%-15pPAs %-15pPAs %-11s %-8s %-9s %-9s %-9s %6d\n",
up->rpf.source_nexthop.interface up->rpf.source_nexthop.interface
? up->rpf.source_nexthop.interface->name ? up->rpf.source_nexthop.interface->name
: "Unknown", : "Unknown",
src_str, grp_str, state_str, uptime, join_timer, &up->sg.src, &up->sg.grp, state_str, uptime,
rs_timer, ka_timer, up->ref_count); join_timer, rs_timer, ka_timer, up->ref_count);
} }
} }
@ -2600,14 +2586,15 @@ static void pim_show_channel_helper(struct pim_instance *pim,
{ {
struct pim_upstream *up = ch->upstream; struct pim_upstream *up = ch->upstream;
json_object *json_group = NULL; json_object *json_group = NULL;
char src_str[INET_ADDRSTRLEN];
char grp_str[INET_ADDRSTRLEN];
json_object *json_row = NULL; json_object *json_row = NULL;
pim_inet4_dump("<src?>", up->sg.src, src_str, sizeof(src_str));
pim_inet4_dump("<grp?>", up->sg.grp, grp_str, sizeof(grp_str));
if (uj) { if (uj) {
char grp_str[PIM_ADDRSTRLEN];
char src_str[PIM_ADDRSTRLEN];
snprintfrr(grp_str, sizeof(grp_str), "%pPAs", &up->sg.grp);
snprintfrr(src_str, sizeof(src_str), "%pPAs", &up->sg.src);
json_object_object_get_ex(json, grp_str, &json_group); json_object_object_get_ex(json, grp_str, &json_group);
if (!json_group) { if (!json_group) {
@ -2638,8 +2625,8 @@ static void pim_show_channel_helper(struct pim_instance *pim,
json_object_object_add(json_group, src_str, json_row); json_object_object_add(json_group, src_str, json_row);
} else { } else {
vty_out(vty, "%-16s %-15s %-15s %-10s %-5s %-10s %-11s %-6s\n", vty_out(vty, "%-16s %-15pPAs %-15pPAs %-10s %-5s %-10s %-11s %-6s\n",
ch->interface->name, src_str, grp_str, ch->interface->name, &up->sg.src, &up->sg.grp,
pim_macro_ch_lost_assert(ch) ? "yes" : "no", pim_macro_ch_lost_assert(ch) ? "yes" : "no",
pim_macro_chisin_joins(ch) ? "yes" : "no", pim_macro_chisin_joins(ch) ? "yes" : "no",
pim_macro_chisin_pim_include(ch) ? "yes" : "no", pim_macro_chisin_pim_include(ch) ? "yes" : "no",
@ -2693,14 +2680,15 @@ static void pim_show_join_desired_helper(struct pim_instance *pim,
json_object *json, bool uj) json_object *json, bool uj)
{ {
json_object *json_group = NULL; json_object *json_group = NULL;
char src_str[INET_ADDRSTRLEN];
char grp_str[INET_ADDRSTRLEN];
json_object *json_row = NULL; json_object *json_row = NULL;
pim_inet4_dump("<src?>", up->sg.src, src_str, sizeof(src_str));
pim_inet4_dump("<grp?>", up->sg.grp, grp_str, sizeof(grp_str));
if (uj) { if (uj) {
char grp_str[PIM_ADDRSTRLEN];
char src_str[PIM_ADDRSTRLEN];
snprintfrr(grp_str, sizeof(grp_str), "%pPAs", &up->sg.grp);
snprintfrr(src_str, sizeof(src_str), "%pPAs", &up->sg.src);
json_object_object_get_ex(json, grp_str, &json_group); json_object_object_get_ex(json, grp_str, &json_group);
if (!json_group) { if (!json_group) {
@ -2720,8 +2708,8 @@ static void pim_show_join_desired_helper(struct pim_instance *pim,
json_object_object_add(json_group, src_str, json_row); json_object_object_add(json_group, src_str, json_row);
} else { } else {
vty_out(vty, "%-15s %-15s %-6s\n", vty_out(vty, "%-15pPAs %-15pPAs %-6s\n",
src_str, grp_str, &up->sg.src, &up->sg.grp,
pim_upstream_evaluate_join_desired(pim, up) ? "yes" pim_upstream_evaluate_join_desired(pim, up) ? "yes"
: "no"); : "no");
} }
@ -2768,8 +2756,6 @@ static void pim_show_upstream_rpf(struct pim_instance *pim, struct vty *vty,
"Source Group RpfIface RibNextHop RpfAddress \n"); "Source Group RpfIface RibNextHop RpfAddress \n");
frr_each (rb_pim_upstream, &pim->upstream_head, up) { frr_each (rb_pim_upstream, &pim->upstream_head, up) {
char src_str[INET_ADDRSTRLEN];
char grp_str[INET_ADDRSTRLEN];
char rpf_nexthop_str[PREFIX_STRLEN]; char rpf_nexthop_str[PREFIX_STRLEN];
char rpf_addr_str[PREFIX_STRLEN]; char rpf_addr_str[PREFIX_STRLEN];
struct pim_rpf *rpf; struct pim_rpf *rpf;
@ -2777,8 +2763,6 @@ static void pim_show_upstream_rpf(struct pim_instance *pim, struct vty *vty,
rpf = &up->rpf; rpf = &up->rpf;
pim_inet4_dump("<src?>", up->sg.src, src_str, sizeof(src_str));
pim_inet4_dump("<grp?>", up->sg.grp, grp_str, sizeof(grp_str));
pim_addr_dump("<nexthop?>", pim_addr_dump("<nexthop?>",
&rpf->source_nexthop.mrib_nexthop_addr, &rpf->source_nexthop.mrib_nexthop_addr,
rpf_nexthop_str, sizeof(rpf_nexthop_str)); rpf_nexthop_str, sizeof(rpf_nexthop_str));
@ -2788,6 +2772,14 @@ static void pim_show_upstream_rpf(struct pim_instance *pim, struct vty *vty,
rpf_ifname = rpf->source_nexthop.interface ? rpf->source_nexthop.interface->name : "<ifname?>"; rpf_ifname = rpf->source_nexthop.interface ? rpf->source_nexthop.interface->name : "<ifname?>";
if (uj) { if (uj) {
char grp_str[PIM_ADDRSTRLEN];
char src_str[PIM_ADDRSTRLEN];
snprintfrr(grp_str, sizeof(grp_str), "%pPAs",
&up->sg.grp);
snprintfrr(src_str, sizeof(src_str), "%pPAs",
&up->sg.src);
json_object_object_get_ex(json, grp_str, &json_group); json_object_object_get_ex(json, grp_str, &json_group);
if (!json_group) { if (!json_group) {
@ -2808,9 +2800,9 @@ static void pim_show_upstream_rpf(struct pim_instance *pim, struct vty *vty,
rpf_addr_str); rpf_addr_str);
json_object_object_add(json_group, src_str, json_row); json_object_object_add(json_group, src_str, json_row);
} else { } else {
vty_out(vty, "%-15s %-15s %-16s %-15s %-15s\n", src_str, vty_out(vty, "%-15pPAs %-15pPAs %-16s %-15s %-15s\n",
grp_str, rpf_ifname, rpf_nexthop_str, &up->sg.src, &up->sg.grp, rpf_ifname,
rpf_addr_str); rpf_nexthop_str, rpf_addr_str);
} }
} }
@ -2905,15 +2897,11 @@ static void pim_show_rpf(struct pim_instance *pim, struct vty *vty, bool uj)
} }
frr_each (rb_pim_upstream, &pim->upstream_head, up) { frr_each (rb_pim_upstream, &pim->upstream_head, up) {
char src_str[INET_ADDRSTRLEN];
char grp_str[INET_ADDRSTRLEN];
char rpf_addr_str[PREFIX_STRLEN]; char rpf_addr_str[PREFIX_STRLEN];
char rib_nexthop_str[PREFIX_STRLEN]; char rib_nexthop_str[PREFIX_STRLEN];
const char *rpf_ifname; const char *rpf_ifname;
struct pim_rpf *rpf = &up->rpf; struct pim_rpf *rpf = &up->rpf;
pim_inet4_dump("<src?>", up->sg.src, src_str, sizeof(src_str));
pim_inet4_dump("<grp?>", up->sg.grp, grp_str, sizeof(grp_str));
pim_addr_dump("<rpf?>", &rpf->rpf_addr, rpf_addr_str, pim_addr_dump("<rpf?>", &rpf->rpf_addr, rpf_addr_str,
sizeof(rpf_addr_str)); sizeof(rpf_addr_str));
pim_addr_dump("<nexthop?>", pim_addr_dump("<nexthop?>",
@ -2923,6 +2911,14 @@ static void pim_show_rpf(struct pim_instance *pim, struct vty *vty, bool uj)
rpf_ifname = rpf->source_nexthop.interface ? rpf->source_nexthop.interface->name : "<ifname?>"; rpf_ifname = rpf->source_nexthop.interface ? rpf->source_nexthop.interface->name : "<ifname?>";
if (uj) { if (uj) {
char grp_str[PIM_ADDRSTRLEN];
char src_str[PIM_ADDRSTRLEN];
snprintfrr(grp_str, sizeof(grp_str), "%pPAs",
&up->sg.grp);
snprintfrr(src_str, sizeof(src_str), "%pPAs",
&up->sg.src);
json_object_object_get_ex(json, grp_str, &json_group); json_object_object_get_ex(json, grp_str, &json_group);
if (!json_group) { if (!json_group) {
@ -2949,9 +2945,9 @@ static void pim_show_rpf(struct pim_instance *pim, struct vty *vty, bool uj)
json_object_object_add(json_group, src_str, json_row); json_object_object_add(json_group, src_str, json_row);
} else { } else {
vty_out(vty, "%-15s %-15s %-16s %-15s %-15s %6d %4d\n", vty_out(vty, "%-15pPAs %-15pPAs %-16s %-15s %-15s %6d %4d\n",
src_str, grp_str, rpf_ifname, rpf_addr_str, &up->sg.src, &up->sg.grp, rpf_ifname,
rib_nexthop_str, rpf_addr_str, rib_nexthop_str,
rpf->source_nexthop.mrib_route_metric, rpf->source_nexthop.mrib_route_metric,
rpf->source_nexthop.mrib_metric_preference); rpf->source_nexthop.mrib_metric_preference);
} }
@ -4674,18 +4670,13 @@ static void pim_show_jp_agg_helper(struct vty *vty,
struct pim_upstream *up, struct pim_upstream *up,
int is_join) int is_join)
{ {
char src_str[INET_ADDRSTRLEN];
char grp_str[INET_ADDRSTRLEN];
char rpf_str[INET_ADDRSTRLEN]; char rpf_str[INET_ADDRSTRLEN];
pim_inet4_dump("<src?>", up->sg.src, src_str, sizeof(src_str));
pim_inet4_dump("<grp?>", up->sg.grp, grp_str, sizeof(grp_str));
/* pius->address.s_addr */ /* pius->address.s_addr */
pim_inet4_dump("<rpf?>", neigh->source_addr, rpf_str, sizeof(rpf_str)); pim_inet4_dump("<rpf?>", neigh->source_addr, rpf_str, sizeof(rpf_str));
vty_out(vty, "%-16s %-15s %-15s %-15s %5s\n", vty_out(vty, "%-16s %-15s %-15pPAs %-15pPAs %5s\n", ifp->name, rpf_str,
ifp->name, rpf_str, src_str, &up->sg.src, &up->sg.grp, is_join ? "J" : "P");
grp_str, is_join?"J":"P");
} }
static void pim_show_jp_agg_list(struct pim_instance *pim, struct vty *vty) static void pim_show_jp_agg_list(struct pim_instance *pim, struct vty *vty)
@ -4843,8 +4834,8 @@ static void pim_show_mlag_up_detail(struct vrf *vrf,
struct vty *vty, const char *src_or_group, struct vty *vty, const char *src_or_group,
const char *group, bool uj) const char *group, bool uj)
{ {
char src_str[INET_ADDRSTRLEN]; char src_str[PIM_ADDRSTRLEN];
char grp_str[INET_ADDRSTRLEN]; char grp_str[PIM_ADDRSTRLEN];
struct pim_upstream *up; struct pim_upstream *up;
struct pim_instance *pim = vrf->info; struct pim_instance *pim = vrf->info;
json_object *json = NULL; json_object *json = NULL;
@ -4861,8 +4852,9 @@ static void pim_show_mlag_up_detail(struct vrf *vrf,
&& !pim_up_mlag_is_local(up)) && !pim_up_mlag_is_local(up))
continue; continue;
pim_inet4_dump("<src?>", up->sg.src, src_str, sizeof(src_str)); snprintfrr(grp_str, sizeof(grp_str), "%pPAs", &up->sg.grp);
pim_inet4_dump("<grp?>", up->sg.grp, grp_str, sizeof(grp_str)); snprintfrr(src_str, sizeof(src_str), "%pPAs", &up->sg.src);
/* XXX: strcmps are clearly inefficient. we should do uint comps /* XXX: strcmps are clearly inefficient. we should do uint comps
* here instead. * here instead.
*/ */
@ -4891,8 +4883,6 @@ static void pim_show_mlag_up_vrf(struct vrf *vrf, struct vty *vty, bool uj)
json_object *json = NULL; json_object *json = NULL;
json_object *json_row; json_object *json_row;
struct pim_upstream *up; struct pim_upstream *up;
char src_str[INET_ADDRSTRLEN];
char grp_str[INET_ADDRSTRLEN];
struct pim_instance *pim = vrf->info; struct pim_instance *pim = vrf->info;
json_object *json_group = NULL; json_object *json_group = NULL;
@ -4908,11 +4898,16 @@ static void pim_show_mlag_up_vrf(struct vrf *vrf, struct vty *vty, bool uj)
&& !(up->flags & PIM_UPSTREAM_FLAG_MASK_MLAG_INTERFACE) && !(up->flags & PIM_UPSTREAM_FLAG_MASK_MLAG_INTERFACE)
&& !pim_up_mlag_is_local(up)) && !pim_up_mlag_is_local(up))
continue; continue;
pim_inet4_dump("<src?>", up->sg.src, src_str, sizeof(src_str));
pim_inet4_dump("<grp?>", up->sg.grp, grp_str, sizeof(grp_str));
if (uj) { if (uj) {
char src_str[PIM_ADDRSTRLEN];
char grp_str[PIM_ADDRSTRLEN];
json_object *own_list = NULL; json_object *own_list = NULL;
snprintfrr(grp_str, sizeof(grp_str), "%pPAs",
&up->sg.grp);
snprintfrr(src_str, sizeof(src_str), "%pPAs",
&up->sg.src);
json_object_object_get_ex(json, grp_str, &json_group); json_object_object_get_ex(json, grp_str, &json_group);
if (!json_group) { if (!json_group) {
json_group = json_object_new_object(); json_group = json_object_new_object();
@ -4959,8 +4954,8 @@ static void pim_show_mlag_up_vrf(struct vrf *vrf, struct vty *vty, bool uj)
if (up->flags & (PIM_UPSTREAM_FLAG_MASK_MLAG_INTERFACE)) if (up->flags & (PIM_UPSTREAM_FLAG_MASK_MLAG_INTERFACE))
strlcat(own_str, "I", sizeof(own_str)); strlcat(own_str, "I", sizeof(own_str));
vty_out(vty, vty_out(vty,
"%-15s %-15s %-6s %-11u %-10u %2s\n", "%-15pPAs %-15pPAs %-6s %-11u %-10u %2s\n",
src_str, grp_str, own_str, &up->sg.src, &up->sg.grp, own_str,
pim_up_mlag_local_cost(up), pim_up_mlag_local_cost(up),
pim_up_mlag_peer_cost(up), pim_up_mlag_peer_cost(up),
PIM_UPSTREAM_FLAG_TEST_MLAG_NON_DF(up->flags) PIM_UPSTREAM_FLAG_TEST_MLAG_NON_DF(up->flags)
@ -10106,8 +10101,6 @@ static void ip_msdp_show_sa(struct pim_instance *pim, struct vty *vty, bool uj)
{ {
struct listnode *sanode; struct listnode *sanode;
struct pim_msdp_sa *sa; struct pim_msdp_sa *sa;
char src_str[INET_ADDRSTRLEN];
char grp_str[INET_ADDRSTRLEN];
char rp_str[INET_ADDRSTRLEN]; char rp_str[INET_ADDRSTRLEN];
char timebuf[PIM_MSDP_UPTIME_STRLEN]; char timebuf[PIM_MSDP_UPTIME_STRLEN];
char spt_str[8]; char spt_str[8];
@ -10127,8 +10120,6 @@ static void ip_msdp_show_sa(struct pim_instance *pim, struct vty *vty, bool uj)
for (ALL_LIST_ELEMENTS_RO(pim->msdp.sa_list, sanode, sa)) { for (ALL_LIST_ELEMENTS_RO(pim->msdp.sa_list, sanode, sa)) {
now = pim_time_monotonic_sec(); now = pim_time_monotonic_sec();
pim_time_uptime(timebuf, sizeof(timebuf), now - sa->uptime); pim_time_uptime(timebuf, sizeof(timebuf), now - sa->uptime);
pim_inet4_dump("<src?>", sa->sg.src, src_str, sizeof(src_str));
pim_inet4_dump("<grp?>", sa->sg.grp, grp_str, sizeof(grp_str));
if (sa->flags & PIM_MSDP_SAF_PEER) { if (sa->flags & PIM_MSDP_SAF_PEER) {
pim_inet4_dump("<rp?>", sa->rp, rp_str, sizeof(rp_str)); pim_inet4_dump("<rp?>", sa->rp, rp_str, sizeof(rp_str));
if (sa->up) { if (sa->up) {
@ -10146,6 +10137,14 @@ static void ip_msdp_show_sa(struct pim_instance *pim, struct vty *vty, bool uj)
strlcpy(local_str, "no", sizeof(local_str)); strlcpy(local_str, "no", sizeof(local_str));
} }
if (uj) { if (uj) {
char src_str[PIM_ADDRSTRLEN];
char grp_str[PIM_ADDRSTRLEN];
snprintfrr(grp_str, sizeof(grp_str), "%pPAs",
&sa->sg.grp);
snprintfrr(src_str, sizeof(src_str), "%pPAs",
&sa->sg.src);
json_object_object_get_ex(json, grp_str, &json_group); json_object_object_get_ex(json, grp_str, &json_group);
if (!json_group) { if (!json_group) {
@ -10163,8 +10162,8 @@ static void ip_msdp_show_sa(struct pim_instance *pim, struct vty *vty, bool uj)
json_object_string_add(json_row, "upTime", timebuf); json_object_string_add(json_row, "upTime", timebuf);
json_object_object_add(json_group, src_str, json_row); json_object_object_add(json_group, src_str, json_row);
} else { } else {
vty_out(vty, "%-15s %15s %15s %5c %3c %8s\n", vty_out(vty, "%-15pPAs %15pPAs %15s %5c %3c %8s\n",
src_str, grp_str, rp_str, local_str[0], &sa->sg.src, &sa->sg.grp, rp_str, local_str[0],
spt_str[0], timebuf); spt_str[0], timebuf);
} }
} }
@ -10247,8 +10246,6 @@ static void ip_msdp_show_sa_detail(struct pim_instance *pim, struct vty *vty,
{ {
struct listnode *sanode; struct listnode *sanode;
struct pim_msdp_sa *sa; struct pim_msdp_sa *sa;
char src_str[INET_ADDRSTRLEN];
char grp_str[INET_ADDRSTRLEN];
json_object *json = NULL; json_object *json = NULL;
if (uj) { if (uj) {
@ -10256,8 +10253,12 @@ static void ip_msdp_show_sa_detail(struct pim_instance *pim, struct vty *vty,
} }
for (ALL_LIST_ELEMENTS_RO(pim->msdp.sa_list, sanode, sa)) { for (ALL_LIST_ELEMENTS_RO(pim->msdp.sa_list, sanode, sa)) {
pim_inet4_dump("<src?>", sa->sg.src, src_str, sizeof(src_str)); char src_str[PIM_ADDRSTRLEN];
pim_inet4_dump("<grp?>", sa->sg.grp, grp_str, sizeof(grp_str)); char grp_str[PIM_ADDRSTRLEN];
snprintfrr(grp_str, sizeof(grp_str), "%pPAs", &sa->sg.grp);
snprintfrr(src_str, sizeof(src_str), "%pPAs", &sa->sg.src);
ip_msdp_show_sa_entry_detail(sa, src_str, grp_str, vty, uj, ip_msdp_show_sa_entry_detail(sa, src_str, grp_str, vty, uj,
json); json);
} }
@ -10330,8 +10331,6 @@ static void ip_msdp_show_sa_addr(struct pim_instance *pim, struct vty *vty,
{ {
struct listnode *sanode; struct listnode *sanode;
struct pim_msdp_sa *sa; struct pim_msdp_sa *sa;
char src_str[INET_ADDRSTRLEN];
char grp_str[INET_ADDRSTRLEN];
json_object *json = NULL; json_object *json = NULL;
if (uj) { if (uj) {
@ -10339,8 +10338,12 @@ static void ip_msdp_show_sa_addr(struct pim_instance *pim, struct vty *vty,
} }
for (ALL_LIST_ELEMENTS_RO(pim->msdp.sa_list, sanode, sa)) { for (ALL_LIST_ELEMENTS_RO(pim->msdp.sa_list, sanode, sa)) {
pim_inet4_dump("<src?>", sa->sg.src, src_str, sizeof(src_str)); char src_str[PIM_ADDRSTRLEN];
pim_inet4_dump("<grp?>", sa->sg.grp, grp_str, sizeof(grp_str)); char grp_str[PIM_ADDRSTRLEN];
snprintfrr(grp_str, sizeof(grp_str), "%pPAs", &sa->sg.grp);
snprintfrr(src_str, sizeof(src_str), "%pPAs", &sa->sg.src);
if (!strcmp(addr, src_str) || !strcmp(addr, grp_str)) { if (!strcmp(addr, src_str) || !strcmp(addr, grp_str)) {
ip_msdp_show_sa_entry_detail(sa, src_str, grp_str, vty, ip_msdp_show_sa_entry_detail(sa, src_str, grp_str, vty,
uj, json); uj, json);
@ -10359,8 +10362,6 @@ static void ip_msdp_show_sa_sg(struct pim_instance *pim, struct vty *vty,
{ {
struct listnode *sanode; struct listnode *sanode;
struct pim_msdp_sa *sa; struct pim_msdp_sa *sa;
char src_str[INET_ADDRSTRLEN];
char grp_str[INET_ADDRSTRLEN];
json_object *json = NULL; json_object *json = NULL;
if (uj) { if (uj) {
@ -10368,8 +10369,12 @@ static void ip_msdp_show_sa_sg(struct pim_instance *pim, struct vty *vty,
} }
for (ALL_LIST_ELEMENTS_RO(pim->msdp.sa_list, sanode, sa)) { for (ALL_LIST_ELEMENTS_RO(pim->msdp.sa_list, sanode, sa)) {
pim_inet4_dump("<src?>", sa->sg.src, src_str, sizeof(src_str)); char src_str[PIM_ADDRSTRLEN];
pim_inet4_dump("<grp?>", sa->sg.grp, grp_str, sizeof(grp_str)); char grp_str[PIM_ADDRSTRLEN];
snprintfrr(grp_str, sizeof(grp_str), "%pPAs", &sa->sg.grp);
snprintfrr(src_str, sizeof(src_str), "%pPAs", &sa->sg.src);
if (!strcmp(src, src_str) && !strcmp(grp, grp_str)) { if (!strcmp(src, src_str) && !strcmp(grp, grp_str)) {
ip_msdp_show_sa_entry_detail(sa, src_str, grp_str, vty, ip_msdp_show_sa_entry_detail(sa, src_str, grp_str, vty,
uj, json); uj, json);
@ -10481,8 +10486,6 @@ static void pim_show_vxlan_sg_entry(struct pim_vxlan_sg *vxlan_sg,
{ {
struct vty *vty = cwd->vty; struct vty *vty = cwd->vty;
json_object *json = cwd->json; json_object *json = cwd->json;
char src_str[INET_ADDRSTRLEN];
char grp_str[INET_ADDRSTRLEN];
json_object *json_row; json_object *json_row;
bool installed = (vxlan_sg->up) ? true : false; bool installed = (vxlan_sg->up) ? true : false;
const char *iif_name = vxlan_sg->iif?vxlan_sg->iif->name:"-"; const char *iif_name = vxlan_sg->iif?vxlan_sg->iif->name:"-";
@ -10497,9 +10500,15 @@ static void pim_show_vxlan_sg_entry(struct pim_vxlan_sg *vxlan_sg,
pim_addr_cmp(vxlan_sg->sg.grp, cwd->addr)) { pim_addr_cmp(vxlan_sg->sg.grp, cwd->addr)) {
return; return;
} }
pim_inet4_dump("<src?>", vxlan_sg->sg.src, src_str, sizeof(src_str));
pim_inet4_dump("<grp?>", vxlan_sg->sg.grp, grp_str, sizeof(grp_str));
if (json) { if (json) {
char src_str[PIM_ADDRSTRLEN];
char grp_str[PIM_ADDRSTRLEN];
snprintfrr(grp_str, sizeof(grp_str), "%pPAs",
&vxlan_sg->sg.grp);
snprintfrr(src_str, sizeof(src_str), "%pPAs",
&vxlan_sg->sg.src);
json_object_object_get_ex(json, grp_str, &cwd->json_group); json_object_object_get_ex(json, grp_str, &cwd->json_group);
if (!cwd->json_group) { if (!cwd->json_group) {
@ -10519,9 +10528,9 @@ static void pim_show_vxlan_sg_entry(struct pim_vxlan_sg *vxlan_sg,
json_object_boolean_false_add(json_row, "installed"); json_object_boolean_false_add(json_row, "installed");
json_object_object_add(cwd->json_group, src_str, json_row); json_object_object_add(cwd->json_group, src_str, json_row);
} else { } else {
vty_out(vty, "%-15s %-15s %-15s %-15s %-5s\n", vty_out(vty, "%-15pPAs %-15pPAs %-15s %-15s %-5s\n",
src_str, grp_str, iif_name, oif_name, &vxlan_sg->sg.src, &vxlan_sg->sg.grp, iif_name,
installed?"I":""); oif_name, installed ? "I" : "");
} }
} }

View File

@ -1331,15 +1331,11 @@ void pim_ifchannel_update_could_assert(struct pim_ifchannel *ch)
if (new_couldassert == old_couldassert) if (new_couldassert == old_couldassert)
return; return;
if (PIM_DEBUG_PIM_EVENTS) { if (PIM_DEBUG_PIM_EVENTS)
char src_str[INET_ADDRSTRLEN]; zlog_debug("%s: CouldAssert(%pPAs,%pPAs,%s) changed from %d to %d",
char grp_str[INET_ADDRSTRLEN]; __func__, &ch->sg.src, &ch->sg.grp,
pim_inet4_dump("<src?>", ch->sg.src, src_str, sizeof(src_str)); ch->interface->name, old_couldassert,
pim_inet4_dump("<grp?>", ch->sg.grp, grp_str, sizeof(grp_str)); new_couldassert);
zlog_debug("%s: CouldAssert(%s,%s,%s) changed from %d to %d",
__func__, src_str, grp_str, ch->interface->name,
old_couldassert, new_couldassert);
}
if (new_couldassert) { if (new_couldassert) {
/* CouldAssert(S,G,I) switched from false to true */ /* CouldAssert(S,G,I) switched from false to true */
@ -1373,19 +1369,15 @@ void pim_ifchannel_update_my_assert_metric(struct pim_ifchannel *ch)
return; return;
if (PIM_DEBUG_PIM_EVENTS) { if (PIM_DEBUG_PIM_EVENTS) {
char src_str[INET_ADDRSTRLEN];
char grp_str[INET_ADDRSTRLEN];
char old_addr_str[INET_ADDRSTRLEN]; char old_addr_str[INET_ADDRSTRLEN];
char new_addr_str[INET_ADDRSTRLEN]; char new_addr_str[INET_ADDRSTRLEN];
pim_inet4_dump("<src?>", ch->sg.src, src_str, sizeof(src_str));
pim_inet4_dump("<grp?>", ch->sg.grp, grp_str, sizeof(grp_str));
pim_inet4_dump("<old_addr?>", ch->ifassert_my_metric.ip_address, pim_inet4_dump("<old_addr?>", ch->ifassert_my_metric.ip_address,
old_addr_str, sizeof(old_addr_str)); old_addr_str, sizeof(old_addr_str));
pim_inet4_dump("<new_addr?>", my_metric_new.ip_address, pim_inet4_dump("<new_addr?>", my_metric_new.ip_address,
new_addr_str, sizeof(new_addr_str)); new_addr_str, sizeof(new_addr_str));
zlog_debug( zlog_debug(
"%s: my_assert_metric(%s,%s,%s) changed from %u,%u,%u,%s to %u,%u,%u,%s", "%s: my_assert_metric(%pPAs,%pPAs,%s) changed from %u,%u,%u,%s to %u,%u,%u,%s",
__func__, src_str, grp_str, ch->interface->name, __func__, &ch->sg.src, &ch->sg.grp, ch->interface->name,
ch->ifassert_my_metric.rpt_bit_flag, ch->ifassert_my_metric.rpt_bit_flag,
ch->ifassert_my_metric.metric_preference, ch->ifassert_my_metric.metric_preference,
ch->ifassert_my_metric.route_metric, old_addr_str, ch->ifassert_my_metric.route_metric, old_addr_str,
@ -1412,16 +1404,11 @@ void pim_ifchannel_update_assert_tracking_desired(struct pim_ifchannel *ch)
if (new_atd == old_atd) if (new_atd == old_atd)
return; return;
if (PIM_DEBUG_PIM_EVENTS) { if (PIM_DEBUG_PIM_EVENTS)
char src_str[INET_ADDRSTRLEN];
char grp_str[INET_ADDRSTRLEN];
pim_inet4_dump("<src?>", ch->sg.src, src_str, sizeof(src_str));
pim_inet4_dump("<grp?>", ch->sg.grp, grp_str, sizeof(grp_str));
zlog_debug( zlog_debug(
"%s: AssertTrackingDesired(%s,%s,%s) changed from %d to %d", "%s: AssertTrackingDesired(%pPAs,%pPAs,%s) changed from %d to %d",
__func__, src_str, grp_str, ch->interface->name, __func__, &ch->sg.src, &ch->sg.grp, ch->interface->name,
old_atd, new_atd); old_atd, new_atd);
}
if (new_atd) { if (new_atd) {
/* AssertTrackingDesired(S,G,I) switched from false to true */ /* AssertTrackingDesired(S,G,I) switched from false to true */

View File

@ -95,15 +95,12 @@ static void recv_join(struct interface *ifp, struct pim_neighbor *neigh,
* our RP for the group, drop the message * our RP for the group, drop the message
*/ */
if (sg->src.s_addr != rp->rpf_addr.u.prefix4.s_addr) { if (sg->src.s_addr != rp->rpf_addr.u.prefix4.s_addr) {
char received_rp[INET_ADDRSTRLEN];
char local_rp[INET_ADDRSTRLEN]; char local_rp[INET_ADDRSTRLEN];
pim_inet4_dump("<received?>", sg->src, received_rp,
sizeof(received_rp));
pim_inet4_dump("<local?>", rp->rpf_addr.u.prefix4, pim_inet4_dump("<local?>", rp->rpf_addr.u.prefix4,
local_rp, sizeof(local_rp)); local_rp, sizeof(local_rp));
zlog_warn( zlog_warn(
"%s: Specified RP(%s) in join is different than our configured RP(%s)", "%s: Specified RP(%pPAs) in join is different than our configured RP(%s)",
__func__, received_rp, local_rp); __func__, &sg->src, local_rp);
return; return;
} }
@ -154,14 +151,9 @@ static void recv_prune(struct interface *ifp, struct pim_neighbor *neigh,
* Received Prune(*,G) messages are processed even if the * Received Prune(*,G) messages are processed even if the
* RP in the message does not match RP(G). * RP in the message does not match RP(G).
*/ */
if (PIM_DEBUG_PIM_TRACE) { if (PIM_DEBUG_PIM_TRACE)
char received_rp[INET_ADDRSTRLEN]; zlog_debug("%s: Prune received with RP(%pPAs) for %pSG",
__func__, &sg->src, sg);
pim_inet4_dump("<received?>", sg->src, received_rp,
sizeof(received_rp));
zlog_debug("%s: Prune received with RP(%s) for %pSG",
__func__, received_rp, sg);
}
sg->src = PIMADDR_ANY; sg->src = PIMADDR_ANY;
} }
@ -280,16 +272,13 @@ int pim_joinprune_recv(struct interface *ifp, struct pim_neighbor *neigh,
if (PIM_DEBUG_PIM_J_P) { if (PIM_DEBUG_PIM_J_P) {
char src_str[INET_ADDRSTRLEN]; char src_str[INET_ADDRSTRLEN];
char upstream_str[INET_ADDRSTRLEN]; char upstream_str[INET_ADDRSTRLEN];
char group_str[INET_ADDRSTRLEN];
pim_inet4_dump("<src?>", src_addr, src_str, pim_inet4_dump("<src?>", src_addr, src_str,
sizeof(src_str)); sizeof(src_str));
pim_inet4_dump("<addr?>", msg_upstream_addr.u.prefix4, pim_inet4_dump("<addr?>", msg_upstream_addr.u.prefix4,
upstream_str, sizeof(upstream_str)); upstream_str, sizeof(upstream_str));
pim_inet4_dump("<grp?>", sg.grp, group_str,
sizeof(group_str));
zlog_debug( zlog_debug(
"%s: join/prune upstream=%s group=%s/32 join_src=%d prune_src=%d from %s on %s", "%s: join/prune upstream=%s group=%pPA/32 join_src=%d prune_src=%d from %s on %s",
__func__, upstream_str, group_str, __func__, upstream_str, &sg.grp,
msg_num_joined_sources, msg_num_pruned_sources, msg_num_joined_sources, msg_num_pruned_sources,
src_str, ifp->name); src_str, ifp->name);
} }

View File

@ -806,21 +806,9 @@ void pim_forward_start(struct pim_ifchannel *ch)
struct pim_upstream *up = ch->upstream; struct pim_upstream *up = ch->upstream;
uint32_t mask = 0; uint32_t mask = 0;
if (PIM_DEBUG_PIM_TRACE) { if (PIM_DEBUG_PIM_TRACE)
char source_str[INET_ADDRSTRLEN]; zlog_debug("%s: (S,G)=%pSG oif=%s (%pI4)", __func__, &ch->sg,
char group_str[INET_ADDRSTRLEN]; ch->interface->name, &up->upstream_addr);
char upstream_str[INET_ADDRSTRLEN];
pim_inet4_dump("<source?>", ch->sg.src, source_str,
sizeof(source_str));
pim_inet4_dump("<group?>", ch->sg.grp, group_str,
sizeof(group_str));
pim_inet4_dump("<upstream?>", up->upstream_addr, upstream_str,
sizeof(upstream_str));
zlog_debug("%s: (S,G)=(%s,%s) oif=%s (%pI4)", __func__,
source_str, group_str, ch->interface->name,
&up->upstream_addr);
}
if (PIM_IF_FLAG_TEST_PROTO_IGMP(ch->flags)) if (PIM_IF_FLAG_TEST_PROTO_IGMP(ch->flags))
mask = PIM_OIF_FLAG_PROTO_IGMP; mask = PIM_OIF_FLAG_PROTO_IGMP;