Subject: Re: [PATCH cumulus-4.1.y 2/5] vxlan: don't replace fdb entry if nothing changed

From: Roopa Prabhu <[email-masked]>
Date: Mon, 23 Jan 2017 16:14:09 -0800

On 1/23/17, 9:02 AM, Stephen Hemminger wrote:
> On Fri, 20 Jan 2017 23:40:07 -0800
> Roopa Prabhu <[email-masked]> wrote:
>
>> +	if (!vxlan_addr_equal(&rd->remote_ip, ip) ||
>> +	    rd->remote_port != port ||
>> +	    rd->remote_vni != vni ||
>> +	    rd->remote_ifindex != ifindex) {
>> +		dst_cache_reset(&rd->dst_cache);
>> +		rd->remote_ip = *ip;
>> +		rd->remote_port = port;
>> +		rd->remote_vni = vni;
>> +		rd->remote_ifindex = ifindex;
>> +		return 1;
>> +	}
>> +
> I think it would be clearer if negative logic was avoided.
>
> 	if (vxlan_addr_equal(&rd->remote_ip, ip) &&
> 	    rd->remote_port == port &&
> 	    rd->remote_vni == vni &&
>             rd->ermote_ifindex == ifndex)
> 		return 1;
>
> 	dst_cache_reset ...

ack, this was an accidental hit on send as well.
It is on my upstream patch stack..but i think this patch is not really needed upstream because
a previous call to vxlan_fdb_find_rdst in vxlan_fdb_replace does the same thing.

I will test again and repost if needed, thanks.