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 ?