We have been working on a series of changes to make ovn-northd the sole
writer to the OVN southbound database and turn ovn-controller into a
read-only client of this database. One of the changes required is to
drop the usage of the MAC_Bindings table.
Approaches:
1) Drop the use of the table and keep the MAC bindings cache local to
each ovn-controller.
Unfortunately, this isn’t good enough. This works only for the case
where the chassis that sends the ARP request is the same one that
processes the ARP response, which is true when the ARP request is sent
from an L3 gateway to a physical network it is connected to.
We may also need to do ARP requests on virtual networks with an OVN
distributed router. In this case, the distributed router may generate
the ARP request on one host, but the response will be processed by that
same logical router on a different host. When that happens, the result
is not available on the hypervisor that initiated the request and needs
the result.
2) When the destination for an ARP reply is an OVN distributed router,
broadcast the response to all instances of the logical router so that
the result is available in the local cache of each router instance.
Whenever the logical switch port of type ‘router’ receives an arp reply,
it will broadcast it to its corresponding router’s datapath. By this way
all the hypervisors will receive the ARP reply and can cache them.
Right now, the code is such that the arp reply on logical router
datapath alone are processed. We need to add code to add a flow that
process arp reply on the logical switch ports and broadcast them on the
router datapath. Such flows need to be present only in hypervisors that
has ports with “unknown” address and the switch to which such ports
belong are connected to logical routers.
What do you all think of this approach?
Thanks,
Babu, Russell
_______________________________________________
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev