Skip to content

Commit

Permalink
zebra: fix evpn rmac nh list cmp function
Browse files Browse the repository at this point in the history
EVPN RMAC (Router MAC) nexthop list compare
function needs to return all values so
the list element can be compared and added/deleted
properly.

Ticket:#3486989
Testing Done:
Originate EVPN Type-5 route with PIP IP and MAC as remote
nexthops.
Change the PIP IP address which triggers nexthop change.

Before fix:
When PIP IP changes RMAC is deleted from remote VTEPs.

TORS1# show evpn next-hops vni 4001 | include 00:02:00:00:00:2d
27.0.0.11       00:02:00:00:00:2d
TORS1# show evpn rmac vni 4001 | include 00:02:00:00:00:2d
00:02:00:00:00:2d 27.0.0.11

----- Remote VTEP change nexthop IP to 172.16.16.16 -----

TORS1# show evpn next-hops vni 4001 | include 00:02:00:00:00:2d
172.16.16.16    00:02:00:00:00:2d
TORS1# show evpn rmac vni 4001 | include 00:02:00:00:00:2d
TORS1#

After fix:
RMAC is retained as its nexthop list is not empty,
thus it is not deleted from remote VTEPs.

TORS1# show evpn rmac vni 4001 | include 00:02:00:00:00:2d
00:02:00:00:00:2d 172.16.16.16

Log:
2023/06/27 00:50:36.833474 ZEBRA: [XREH0-ZYMH6] L3VNI 4001 Remote VTEP
change(27.0.0.11 -> 172.16.16.16) for RMAC 00:02:00:00:00:2d

Signed-off-by: Chirag Shah <[email protected]>
(cherry picked from commit a7d77ee)
  • Loading branch information
chiragshah6 authored and mergify[bot] committed Jun 27, 2023
1 parent bf952f8 commit b05dd98
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion zebra/zebra_vxlan.c
Original file line number Diff line number Diff line change
Expand Up @@ -194,7 +194,7 @@ static int l3vni_rmac_nh_list_cmp(void *p1, void *p2)
const struct ipaddr *vtep_ip1 = p1;
const struct ipaddr *vtep_ip2 = p2;

return !ipaddr_cmp(vtep_ip1, vtep_ip2);
return ipaddr_cmp(vtep_ip1, vtep_ip2);
}

static void l3vni_rmac_nh_free(struct ipaddr *vtep_ip)
Expand Down

0 comments on commit b05dd98

Please sign in to comment.