[ovs-dev] Multiple ARP cache entries for one same dest IP?

Joo Kim itsolution at gmail.com
Thu Aug 3 19:18:49 UTC 2017


Darrell,

I guess you said link-local addresses is one scenario where multiple
entries for a given IP may exist.
But, could you elaborate a bit more on  'routing space segmentation is
another'?

Thanks

On Wed, Aug 2, 2017 at 5:32 PM, Darrell Ball <dlu998 at gmail.com> wrote:

>
>
> On Wed, Aug 2, 2017 at 3:51 PM, Joo Kim <itsolution at gmail.com> wrote:
>
>> Hello,
>>
>> In OVS userspace implementation(See below), looks like, given a dest IP,
>> multiple ARP entries are allowed as long as bridge-names are different for
>> the same dest IP.
>> But, is there real scenario where multiple ARP entries for the same dest
>> IP
>> (because of different bridge-name)?
>>
>
>
> link-local addresses is one way
> routing space segmentation is another
>
>
>
>>
>>
>> int
>> tnl_neigh_lookup(const char br_name[IFNAMSIZ], const struct in6_addr *dst,
>>                  struct eth_addr *mac)
>> {
>>     struct tnl_neigh_entry *neigh;
>>     int res = ENOENT;
>>     neigh = tnl_neigh_lookup__(br_name, dst);
>>     if (neigh) {
>>         *mac = neigh->mac;
>>         res = 0;
>>     }
>>     return res;
>> }
>>
>> static struct tnl_neigh_entry *
>> tnl_neigh_lookup__(const char br_name[IFNAMSIZ], const struct in6_addr
>> *dst)
>> {
>>     struct tnl_neigh_entry *neigh;
>>     uint32_t hash;
>>     hash = tnl_neigh_hash(dst);
>>     CMAP_FOR_EACH_WITH_HASH (neigh, cmap_node, hash, &table) {
>>         if (ipv6_addr_equals(&neigh->ip, dst) && !strcmp(neigh->br_name,
>> br_name)) {
>>             neigh->expires = time_now() + NEIGH_ENTRY_DEFAULT_IDLE_TIME;
>>             return neigh;
>>         }
>>     }
>>     return NULL;
>> }
>> _______________________________________________
>> dev mailing list
>> dev at openvswitch.org
>> https://mail.openvswitch.org/mailman/listinfo/ovs-dev
>>
>
>


More information about the dev mailing list