[ovs-discuss] [OVN] "Finish up ARP support" approach

Tiago Lam tiagolam at gmail.com
Wed Oct 25 21:34:07 UTC 2017


Hi folks,

Looking into the OVN project and ways to contribute back.

I've looked into the `TODO.rst` file under `ovn/` (How up to date is
it?) and, more specifically, to the "Finish up ARP/ND support" item,
which seems to be a good one to tackle at first.

Last week's "OVN: Add support for periodic router advertisements" patch
seems to have added further support to ND under IPv6. So, after looking
through the patch, I'm thinking on approaching ARP the following way
(which is similar to the way RAs was done):
- Add an `options` field to set the expiration value (probably
defaulting to 60 seconds) to the `Logical_Router_Port` table in the NB DB;
- (Maybe even an additional field to set if one wants to disable the
bind re-checks before expiration);
- In `northd`, translate those `options` in the `Logical_Router_Port` NB
DB into `options` in the `Port_Binding` table in the SB DB;
- For each run of `pinctrl_run`, check for each binding of each port if
the expiration has passed:
    - If so, and the re-check options has been enabled, send an ARP
packet, leading to the update of the MAC binding.
    - If not, and a check has been performed already, or if the re-check
options is disabled, delete the binding.

Now, it is still not clear to me what will be the best way to track each
last-checked time for each binding, so one can then delete the entry
after the expiration (maybe through options on the `MAC_Binding` table
as well?).

This is very theoretic for now, but do you see any drawbacks to this
approach? And is this more or less what's intended for the "Finish up
ARP support" TODO item?

Thanks,

Tiago.


More information about the discuss mailing list