[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <wihmuq4itc9.fsf@dev-r-vrt-156.mtr.labs.mlnx>
Date: Mon, 19 Nov 2018 22:41:10 +0000
From: Petr Machata <petrm@...lanox.com>
To: David Miller <davem@...emloft.net>
CC: Ido Schimmel <idosch@...lanox.com>,
"netdev@...r.kernel.org" <netdev@...r.kernel.org>,
"linux-kselftest@...r.kernel.org" <linux-kselftest@...r.kernel.org>,
"shuah@...nel.org" <shuah@...nel.org>,
Jiri Pirko <jiri@...lanox.com>,
"roopa@...ulusnetworks.com" <roopa@...ulusnetworks.com>,
mlxsw <mlxsw@...lanox.com>
Subject: Re: [PATCH net-next 01/18] net: skb_scrub_packet(): Scrub
offload_fwd_mark
David Miller <davem@...emloft.net> writes:
> From: Ido Schimmel <idosch@...lanox.com>
> Date: Mon, 19 Nov 2018 16:11:07 +0000
>
>> From: Petr Machata <petrm@...lanox.com>
>>
>> When a packet is trapped and the corresponding SKB marked as
>> already-forwarded, it retains this marking even after it is forwarded
>> across veth links into another bridge. There, since it ingresses the
>> bridge over veth, which doesn't have offload_fwd_mark, it triggers a
>> warning in nbp_switchdev_frame_mark().
>>
>> Then nbp_switchdev_allowed_egress() decides not to allow egress from
>> this bridge through another veth, because the SKB is already marked, and
>> the mark (of 0) of course matches. Thus the packet is incorrectly
>> blocked.
>>
>> Solve by resetting offload_fwd_mark() in skb_scrub_packet(). That
>> function is called from tunnels and also from veth, and thus catches the
>> cases where traffic is forwarded between bridges and transformed in a
>> way that invalidates the marking.
>>
>> Signed-off-by: Petr Machata <petrm@...lanox.com>
>> Suggested-by: Ido Schimmel <idosch@...lanox.com>
>> Signed-off-by: Ido Schimmel <idosch@...lanox.com>
>
> As a bug fix this seems relevant for 'net' instead of 'net-next'.
Sure, I'll send for net.
Thanks,
Petr
Powered by blists - more mailing lists