Subject: Re: [PATCH 2/2 V2] macvlan fdb replace support

From: Thomas-Mich Richter <[email-masked]>
Date: Mon, 22 Jul 2013 15:16:14 +0200

On 07/19/2013 06:18 PM, Stephen Hemminger wrote:
> On Fri, 19 Jul 2013 17:20:08 +0200
> Thomas Richter <[email-masked]> wrote:
> 
>> Add support for iproute2 command 'bridge fdb replace ...'.
>> The rtnletlink call back function ndo_fdb_add will be called
>> with the NLM_F_REPLACE flag set.
>> Simply return -EOPNOTSUP.
>>
>> Resubmitted because net-next was closed last week.
>>
>> Signed-off-by: Thomas Richter <[email-masked]>
>> ---
>>  drivers/net/macvlan.c | 3 +++
>>  1 file changed, 3 insertions(+)
>>
>> diff --git a/drivers/net/macvlan.c b/drivers/net/macvlan.c
>> index 18373b6..74907f5 100644
>> --- a/drivers/net/macvlan.c
>> +++ b/drivers/net/macvlan.c
>> @@ -597,6 +597,9 @@ static int macvlan_fdb_add(struct ndmsg *ndm, struct nlattr *tb[],
>>  	if (!vlan->port->passthru)
>>  		return -EOPNOTSUPP;
>>  
>> +	if (flags & NLM_F_REPLACE)
>> +		return -EOPNOTSUPP;
>> +
>>  	if (is_unicast_ether_addr(addr))
>>  		err = dev_uc_add_excl(dev, addr);
>>  	else if (is_multicast_ether_addr(addr))
> 
> What about bridge that also uses netlink FDB interface?
> 
The bridge function br_fdb_add() calls fdb_add_entry().
There is no need to check flag NLM_F_REPLACE.
The code already changes an entry if it is found
in the fdb. If the entry is missing in the
fdb, it is added when flag NLM_F_CREATE is set.

-- 
Thomas Richter, Dept 3250, IBM LTC Boeblingen, Data Center Networking
--
Vorsitzende des Aufsichtsrats: Martina Koederitz 
Geschäftsführung: Dirk Wittkopp
Sitz der Gesellschaft: Böblingen / Registergericht: Amtsgericht Stuttgart, HRB 243294