diff options
author | Chirag Shah <chirag@cumulusnetworks.com> | 2018-12-11 06:33:16 +0100 |
---|---|---|
committer | Chirag Shah <chirag@cumulusnetworks.com> | 2018-12-31 23:40:31 +0100 |
commit | 67fb9374dcdebc4b6e135118fe53a9054aa93382 (patch) | |
tree | e6aea55ca52473017968f742e5cca724bf052ae8 /zebra/rtread_netlink.c | |
parent | zebra: netlink_request consolidataion (diff) | |
download | frr-67fb9374dcdebc4b6e135118fe53a9054aa93382.tar.xz frr-67fb9374dcdebc4b6e135118fe53a9054aa93382.zip |
zebra: evpn remote delete fetch local entry
An EVPN type-2 entry is in freeze state during remote update,
remote VTEP can send typ-2 withdraw update,
upon receiving an entry delete (withdraw), first check
kernel has in local reachable state. Upon
unfreeze use the local entry to advertise to peers.
Fetch is for both MAC and IP, delete can come for
only MAC or MAC-IP combined route.
The specific entry fetch only required request flag to be set,
dump flag is not required.
Testing Done:
Simulate two VTEPs to do M1, IP1 mobility sequence,
freeze MAC during remote MAC update, subsequently send
withdraw type-2 route from origintating VTEP.
This results in read apis to invoke for local reachable entry.
Zebra updates its cache and upon unfreeze originates type-2.
Signed-off-by: Chirag Shah <chirag@cumulusnetworks.com>
Diffstat (limited to 'zebra/rtread_netlink.c')
-rw-r--r-- | zebra/rtread_netlink.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/zebra/rtread_netlink.c b/zebra/rtread_netlink.c index e99204607..fbca47351 100644 --- a/zebra/rtread_netlink.c +++ b/zebra/rtread_netlink.c @@ -45,6 +45,12 @@ void macfdb_read_for_bridge(struct zebra_ns *zns, struct interface *ifp, netlink_macfdb_read_for_bridge(zns, ifp, br_if); } +void macfdb_read_specific_mac(struct zebra_ns *zns, struct interface *br_if, + struct ethaddr *mac, vlanid_t vid) +{ +netlink_macfdb_read_specific_mac(zns, br_if, mac, vid); +} + void neigh_read(struct zebra_ns *zns) { netlink_neigh_read(zns); @@ -55,6 +61,11 @@ void neigh_read_for_vlan(struct zebra_ns *zns, struct interface *vlan_if) netlink_neigh_read_for_vlan(zns, vlan_if); } +void neigh_read_specific_ip(struct ipaddr *ip, struct interface *vlan_if) +{ + netlink_neigh_read_specific_ip(ip, vlan_if); +} + void kernel_read_pbr_rules(struct zebra_ns *zns) { netlink_rules_read(zns); |