summaryrefslogtreecommitdiff
path: root/pimd/pim_assert.c
diff options
context:
space:
mode:
authorMobashshera Rasool <mrasool@vmware.com>2021-12-13 22:20:37 -0800
committerMobashshera Rasool <mrasool@vmware.com>2022-01-10 21:10:24 -0800
commitb85201d5cde1ad28fba70517ab4a33063fba1ae0 (patch)
treea8e7e023c97831105f49f1a7f3337f64c28be9b4 /pimd/pim_assert.c
parent3b37b961c1a761a7c6f486679bc157cac88a0539 (diff)
pimd: Modifying in_addr to pim_addr in struct pim_ifchannel for IPv6.
Changed struct in_addr ifassert_winner to pim_addr which will be used in both IPv4 and IPv6(Both MLD and IGMP). Reviewed-by: Sarita Patra <saritap@vmware.com> Signed-off-by: Mobashshera Rasool <mrasool@vmware.com>
Diffstat (limited to 'pimd/pim_assert.c')
-rw-r--r--pimd/pim_assert.c13
1 files changed, 6 insertions, 7 deletions
diff --git a/pimd/pim_assert.c b/pimd/pim_assert.c
index 0988938701..cac3194681 100644
--- a/pimd/pim_assert.c
+++ b/pimd/pim_assert.c
@@ -43,12 +43,11 @@ static void assert_action_a6(struct pim_ifchannel *ch,
struct pim_assert_metric winner_metric);
void pim_ifassert_winner_set(struct pim_ifchannel *ch,
- enum pim_ifassert_state new_state,
- struct in_addr winner,
+ enum pim_ifassert_state new_state, pim_addr winner,
struct pim_assert_metric winner_metric)
{
struct pim_interface *pim_ifp = ch->interface->info;
- int winner_changed = (ch->ifassert_winner.s_addr != winner.s_addr);
+ int winner_changed = !!pim_addr_cmp(ch->ifassert_winner, winner);
int metric_changed = !pim_assert_metric_match(
&ch->ifassert_winner_metric, &winner_metric);
@@ -66,9 +65,9 @@ void pim_ifassert_winner_set(struct pim_ifchannel *ch,
char was_str[INET_ADDRSTRLEN];
char winner_str[INET_ADDRSTRLEN];
pim_inet4_dump("<was?>", ch->ifassert_winner, was_str,
- sizeof(was_str));
+ sizeof(was_str));
pim_inet4_dump("<winner?>", winner, winner_str,
- sizeof(winner_str));
+ sizeof(winner_str));
zlog_debug(
"%s: (S,G)=%s assert winner changed from %s to %s on interface %s",
__func__, ch->sg_str, was_str, winner_str,
@@ -179,8 +178,8 @@ static int dispatch_assert(struct interface *ifp, struct in_addr source_addr,
}
break;
case PIM_IFASSERT_I_AM_LOSER:
- if (recv_metric.ip_address.s_addr
- == ch->ifassert_winner.s_addr) {
+ if (!pim_addr_cmp(recv_metric.ip_address,
+ ch->ifassert_winner)) {
/* Assert from current winner */
if (cancel_assert(&recv_metric)) {