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

Reply via email to