[ovs-dev] OvsIpHelper vs the ARP method
sghinet at cloudbasesolutions.com
Wed Aug 20 18:09:11 UTC 2014
From: Samuel Ghinet
Sent: Friday, August 08, 2014 8:57 PM
To: dev at openvswitch.org
Subject: OvsIpHelper vs the ARP method
I wanted to ask you about this since a week or so.
I have seen that you use the OvsIpHelper to find dest eth for a given target ip (to be used for destination hypervisor).
I find the OvsIpHelper functionality quite complicated, and with calls to it in quite some places within the project (as in OvsConnectNic).
The method we used in our implementation was:
o) have an arp table (list of arp entries: mappings between eth address and ip address)
o) have a lock (for snyc)
And the operations:
o) add / update an arp entry whenever you receive an ARP reply
o) originate an ARP request whenever a tunnel is added (for a dest hyper-v), or when trying to out to tunneling port and you don't have the destination eth address.
I had found the OvsIpHelper functionality quite intricate, as it requires the creation of a new thread, more lists and locks, it is a lot of code, an IOCTL for it, and also more dependencies in code. Also, quite any information that we'd want to gather about the physical NIC we can get via the nic OIDs or issuing OID requests.
Could you please share with me some reasons you have for why you consider the OvsIpHelper approach better?
More information about the dev