Thread (48 messages) 48 messages, 8 authors, 2021-08-28

Re: [RFC PATCH net-next 3/5] net: dsa: tag_rtl8_4: add realtek 8 byte protocol 4 tag

From: Alvin Šipraga <ALSI@bang-olufsen.dk>
Date: 2021-08-23 00:29:05
Also in: linux-devicetree, lkml

On 8/23/21 1:45 AM, Vladimir Oltean wrote:
On Sun, Aug 22, 2021 at 11:37:28PM +0000, Alvin Šipraga wrote:
quoted
quoted
quoted
quoted
quoted
+	skb->offload_fwd_mark = 1;
At the very least, please use

	dsa_default_offload_fwd_mark(skb);

which does the right thing when the port is not offloading the bridge.
Sure. Can you elaborate on what you mean by "at the very least"? Can it
be improved even further?
The elaboration is right below. skb->offload_fwd_mark should be set to
zero for packets that have been forwarded only to the host (like packets
that have hit a trapping rule). I guess the switch will denote this
piece of info through the REASON code.
Yes, I think it will be communicated in REASON too. I haven't gotten to
deciphering the contents of this field since it has not been needed so
far: the ports are fully isolated and all bridging is done in software.
In that case, setting skb->offload_fwd_mark to true is absolutely wrong,
since the bridge is told that no software forwarding should be done
between ports, as it was already done in hardware (see nbp_switchdev_allowed_egress).

I wonder how this has ever worked? Are you completely sure that bridging
is done in software?
You are absolutely right, and indeed I checked just now and the bridging 
is not working at all.

Deleting the line (i.e. skb->offload_fwd_mark = 0) restores the expected 
bridging behaviour.

Based on what you have said, do I understand correctly that 
offload_fwd_mark shouldn't be set until bridge hardware offloading has 
been implemented?

Thanks for your detailed review so far.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help