]> git.proxmox.com Git - mirror_frr.git/commit - zebra/zebra_vxlan.c
bgpd, zebra: EVPN extended mobility support
authorvivek <vivek@cumulusnetworks.com>
Mon, 20 Aug 2018 19:20:06 +0000 (19:20 +0000)
committervivek <vivek@cumulusnetworks.com>
Mon, 20 Aug 2018 19:20:06 +0000 (19:20 +0000)
commitf07e1c99d68907188adc66a674eb566febd00031
tree68c7c3fc7bd0e6c73667d52a53fac3be55831347
parent8b44d564c3a513c3af6fb0c440321971f03a5c8e
bgpd, zebra: EVPN extended mobility support

Implement procedures similar to what is specified in
https://tools.ietf.org/html/draft-malhotra-bess-evpn-irb-extended-mobility
in order to support extended mobility scenarios in EVPN. These are scenarios
where a host/VM move results in a different (MAC,IP) binding from earlier.
For example, a host with an address assignment (IP1, MAC1) moves behind a
different PE (VTEP) and has an address assignment of (IP1, MAC2) or a host
with an address assignment (IP5, MAC5) has a different assignment of (IP6,
MAC5) after the move. Note that while these are described as "move" scenarios,
they also cover the situation when a VM is shut down and a new VM is spun up
at a different location that reuses the IP address or MAC address of the
earlier instance, but not both. Yet another scenario is a MAC change for an
attached host/VM i.e., when the MAC of an attached host changes from MAC1 to
MAC2. This is necessary because there may already be a non-zero sequence
number associated with MAC2. Also, even though (IP, MAC1) is withdrawn before
(IP, MAC2) is advertised, they may propagate through the network differently.

The procedures continue to rely on the MAC mobility extended community
specified in RFC 7432 and already supported by the implementation, but
augment it with a inheritance mechanism that understands the relationship
of the host MACIP (ARP/neighbor table entry) to the underlying MAC (MAC
forwarding database entry). In FRR, this relationship is understood by the
zebra component which doubles as the "host mobility manager", so the MAC
mobility sequence numbers are determined through interaction between bgpd
and zebra.

Signed-off-by: Vivek Venkatraman <vivek@cumulusnetworks.com>
Reviewed-by: Donald Sharp <sharpd@cumulusnetworks.com>
Reviewed-by: Anuradha Karuppiah <anuradhak@cumulusnetworks.com>
bgpd/bgp_evpn.c
bgpd/bgp_evpn.h
bgpd/bgp_zebra.c
zebra/zebra_vxlan.c
zebra/zebra_vxlan_private.h