On 2/18/19 9:55 AM, Michal Soltys wrote:
> This patch fixes a subtle PACKET_ORIGDEV regression which was a side
> effect of fixes introduced by:
> 
> 6a9e461f6fe4 bonding: pass link-local packets to bonding master also.
> 
> ... to:
> 
> b89f04c61efe bonding: deliver link-local packets with skb->dev set to link 
> that packets arrived on
> 
> While 6a9e461f6fe4 restored pre-b89f04c61efe presence of link-local
> packets on bonding masters (which is required e.g. by linux bridges
> participating in spanning tree or needed for lab-like setups created
> with group_fwd_mask) it also caused the originating device
> information to be lost due to cloning.
> 
> Maciej Żenczykowski proposed another solution that doesn't require
> packet cloning and retains original device information - instead of
> returning RX_HANDLER_PASS for all link-local packets it's now limited
> only to packets from inactive slaves.
> 
> At the same time, packets passed to bonding masters retain correct
> information about the originating device and PACKET_ORIGDEV can be used
> to determine it.
> 
> This elegantly solves all issues so far:
> 
> - link-local packets that were removed from bonding masters
> - LLDP daemons being forced to explicitly bind to slave interfaces
> - PACKET_ORIGDEV having no effect on bond interfaces
> 
> Fixes: 6a9e461f6fe4 (bonding: pass link-local packets to bonding master also.)
> Reported-by: Vincent Bernat <vinc...@bernat.ch>
> Signed-off-by: Michal Soltys <sol...@ziu.info>
> ---
>  drivers/net/bonding/bond_main.c | 35 +++++++++++++--------------------
>  1 file changed, 14 insertions(+), 21 deletions(-)
> 

Hi Michal:

Can you add test cases that shows the expectations of this API? Given
the back and forth on the last set of patches -- and the impacts to
lldpd users for example -- we really need test cases added to selftests.

Reply via email to