diff options
| author | Mobashshera Rasool <mrasool@vmware.com> | 2021-12-13 22:20:37 -0800 |
|---|---|---|
| committer | Mobashshera Rasool <mrasool@vmware.com> | 2022-01-10 21:10:24 -0800 |
| commit | b85201d5cde1ad28fba70517ab4a33063fba1ae0 (patch) | |
| tree | a8e7e023c97831105f49f1a7f3337f64c28be9b4 /pimd/pim_assert.c | |
| parent | 3b37b961c1a761a7c6f486679bc157cac88a0539 (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.c | 13 |
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)) { |
