On 18/12/20 06:55, Vincent Bernat wrote:
>  ❦ 19 décembre 2018 23:57 +01, Michal Soltys <sol...@ziu.info>:
> 
>>>> Commit b89f04c61efe ("bonding: deliver link-local packets with
>>>> skb->dev set to link that packets arrived on") changed the behavior
>>>> of how link-local-multicast packets are processed. The change in
>>>> the behavior broke some legacy use cases where these packets are
>>>> expected to arrive on bonding master device also.
>>> 
>>> Unfortunately, this doesn't completely restore the previous
>>> functionality as PACKET_ORIGDEV is broken for the copy: the original
>>> interface is lost through the call to netif_rx(). A LLDP daemon
>>> listening to the master interface won't get the original interface like
>>> it was able to before 4.12.
>>> 
>>> I am a bit lost of what the original patch was trying to achieve. I am
>>> using the following test program:
>>> 
>>
>> Basing on what you wrote below, it seems that everything was already
>> possible before the Chonggang Li's commit ?
>>
>> If I understand correctly:
>>
>> - if listening on master, you could get both slave interface
>> (PACKET_ORIGDEV) as well as bonding master
>> - if listening on slave, you would just get the slave interface
>>
>> Right ?
> 
> Yes. This has been this way since 2.6.27.
> 

In the earlier thread, the author of the original patch
said that:

> The exact problem that was fixed is, when a LLDP/CDP packet is received, we 
> want to know which exact interface did it come from, instead of the bonding 
> master.
> 
> Thanks,
> Chonggang

But if PACKET_ORIGDEV provided it (and this functionally is now broken,
so counts as another regression - earlier bridging issues aside), maybe
it should be just reverted ?

Reply via email to