Netdev Archive on lore.kernel.org
help / color / mirror / Atom feed
From: Florian Fainelli <f.fainelli@gmail.com>
To: Vladimir Oltean <olteanv@gmail.com>
Cc: "Jakub Kicinski" <kuba@kernel.org>,
"Luiz Angelo Daros de Luca" <luizluca@gmail.com>,
"Andrew Lunn" <andrew@lunn.ch>,
"Frank Wunderlich" <frank-w@public-files.de>,
"Alvin Šipraga" <ALSI@bang-olufsen.dk>,
"netdev@vger.kernel.org" <netdev@vger.kernel.org>,
"linus.walleij@linaro.org" <linus.walleij@linaro.org>,
"vivien.didelot@gmail.com" <vivien.didelot@gmail.com>,
"arinc.unal@arinc9.com" <arinc.unal@arinc9.com>
Subject: Re: [PATCH net-next v4 11/11] net: dsa: realtek: rtl8365mb: multiple cpu ports, non cpu extint
Date: Mon, 24 Jan 2022 09:30:39 -0800 [thread overview]
Message-ID: <f295ba3f-1e4c-8305-7da7-142ac34b5e10@gmail.com> (raw)
In-Reply-To: <20220124172158.tkbfstpwg2zp5kaq@skbuf>
On 1/24/2022 9:21 AM, Vladimir Oltean wrote:
> On Mon, Jan 24, 2022 at 09:01:20AM -0800, Florian Fainelli wrote:
>> On 1/24/2022 8:55 AM, Vladimir Oltean wrote:
>>> On Mon, Jan 24, 2022 at 08:46:49AM -0800, Jakub Kicinski wrote:
>>>> I thought for drivers setting the legacy NETIF_F_IP*_CSUM feature
>>>> it's driver's responsibility to validate the geometry of the packet
>>>> will work with the parser the device has. Or at least I think that's
>>>> what Tom was pushing for when he was cleaning up the checksumming last
>>>> (and wrote the long comment on the subject in skbuff.h).
>>>
>>> Sorry Jakub, I don't understand what you mean to say when applied to the
>>> context discussed here?
>>
>> I believe what Jakub meant to say is that if a DSA conduit device driver
>> advertises any of the NETIF_F_IP*_CSUM feature bits, then the driver's
>> transmit path has the responsibility of checking that the payload being
>> transmitted has a chance of being checksummed properly by the hardware. The
>> problem here is not so much the geometry itself (linear or not, number/size
>> of fragments, etc.) as much as the placement of the L2/L3 headers usually.
>>
>> DSA conduit network device drivers do not have the ability today to
>> determine what type of DSA tagging is being applied onto the DSA master but
>> they do know whether DSA tagging is in use or not which may be enough to be
>> overly compatible.
>>
>> It is not clear to me whether we can solve this generically within the DSA
>> framework or even if this is desirable, but once we have identified a
>> problematic association of DSA tagger and DSA conduit, we can always have
>> the DSA conduit driver do something like:
>>
>> if (netdev_uses_dsa(dev))
>> skb_checksum_help()
>>
>> or have a fix_features callback which does reject the enabling of
>> NETIF_F_IP*_CSUM if netdev_uses_dsa() becomes true.
>
> Yes, but as you point out, the DSA master driver doesn't know what
> header/trailer format it's dealing with. We could use netdev_uses_dsa()
> as a very rough approximation, and that might work when we know that the
> particular Ethernet controller is used only in conjunction with a single
> type of DSA switch [from the same vendor], but I think we're just
> delaying the inevitable, which is to treat the case where an Ethernet
> controller can be a DSA master for more than one switch type, and it
> understands some protocols but not others.
> Also, scattering "if (netdev_uses_dsa(dev)) skb_checksum_help()" in
> DSA-unaware drivers (the common case) seems like the improper approach.
> We might end up seeing this pattern quite a lot, so DSA-unaware drivers
> won't be DSA-unaware any longer.
> It's still possible I'm misunderstanding something...
I don't think you are, and my crude proposal was just so we have it
working, and then we can think about having it work fast.
A long time (but in the same galaxy) DSA used to set skb->protocol to
the value of the DSA tagging protocol used (say ETH_P_EDSA), long before
they were all consolidated within ETH_P_XDSA, but this would be breaking
any checksum setting up that looks at skb->protocol to determine if it
is IP, IPv6 or else, so in a way it might have done what we wanted it to
do, but this was mostly by accident.
The tagger on transmit can definitively tell us via an out of band
signaling what type of tagging protocol is being used and where it is
located within the packet if necessary, and I suppose we can then update
the DSA conduit in order to not ask the HW to checksum if this is deemed
problematic. Doing that for every single packet transmitted however may
not be very efficient given that usually we set-up one tagging protocol,
then we set-up another one (possibly), but it won't change on a packet
by packet basis. So maybe what we need to do is at the time we "connect"
the tagger we inform the DSA master that from there on, all that is
supposed to go through that interface will look that way, along with a
description of the tagger offset and length?
--
Florian
next prev parent reply other threads:[~2022-01-24 17:30 UTC|newest]
Thread overview: 88+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-01-05 3:15 [PATCH net-next v4 00/11] net: dsa: realtek: MDIO interface and RTL8367S Luiz Angelo Daros de Luca
2022-01-05 3:15 ` [PATCH net-next v4 01/11] net: dsa: realtek-smi: move to subdirectory Luiz Angelo Daros de Luca
2022-01-05 3:15 ` [PATCH net-next v4 02/11] net: dsa: realtek: rename realtek_smi to realtek_priv Luiz Angelo Daros de Luca
2022-01-07 3:42 ` Jakub Kicinski
2022-01-10 12:33 ` Alvin Šipraga
2022-01-16 0:04 ` Linus Walleij
2022-01-20 14:37 ` Vladimir Oltean
2022-01-05 3:15 ` [PATCH net-next v4 03/11] net: dsa: realtek: remove direct calls to realtek-smi Luiz Angelo Daros de Luca
2022-01-10 12:38 ` Alvin Šipraga
2022-01-16 0:05 ` Linus Walleij
2022-01-17 3:46 ` Florian Fainelli
2022-01-05 3:15 ` [PATCH net-next v4 04/11] net: dsa: realtek: convert subdrivers into modules Luiz Angelo Daros de Luca
2022-01-10 12:43 ` Alvin Šipraga
2022-01-17 4:02 ` Florian Fainelli
2022-01-05 3:15 ` [PATCH net-next v4 05/11] net: dsa: realtek: use phy_read in ds->ops Luiz Angelo Daros de Luca
2022-01-10 13:09 ` Alvin Šipraga
2022-01-17 4:15 ` Florian Fainelli
2022-01-18 2:55 ` Luiz Angelo Daros de Luca
2022-01-18 13:16 ` Andrew Lunn
2022-01-21 22:13 ` Luiz Angelo Daros de Luca
2022-01-21 23:48 ` Andrew Lunn
2022-01-05 3:15 ` [PATCH net-next v4 06/11] net: dsa: realtek: add new mdio interface for drivers Luiz Angelo Daros de Luca
2022-01-10 13:09 ` Alvin Šipraga
2022-01-17 4:22 ` Florian Fainelli
2022-01-18 4:38 ` Luiz Angelo Daros de Luca
2022-01-05 3:15 ` [PATCH net-next v4 07/11] net: dsa: realtek: rtl8365mb: rename extport to extint, add "realtek,ext-int" Luiz Angelo Daros de Luca
2022-01-10 13:15 ` Alvin Šipraga
2022-01-17 4:25 ` Florian Fainelli
2022-01-05 3:15 ` [PATCH net-next v4 08/11] net: dsa: realtek: rtl8365mb: use GENMASK(n-1,0) instead of BIT(n)-1 Luiz Angelo Daros de Luca
2022-01-10 13:18 ` Alvin Šipraga
2022-01-17 4:25 ` Florian Fainelli
2022-01-05 3:15 ` [PATCH net-next v4 09/11] net: dsa: realtek: rtl8365mb: use DSA CPU port Luiz Angelo Daros de Luca
2022-01-07 3:37 ` Jakub Kicinski
2022-01-10 13:22 ` Alvin Šipraga
2022-01-17 4:26 ` Florian Fainelli
2022-01-05 3:15 ` [PATCH net-next v4 10/11] net: dsa: realtek: rtl8365mb: add RTL8367S support Luiz Angelo Daros de Luca
2022-01-10 13:26 ` Alvin Šipraga
2022-01-17 4:26 ` Florian Fainelli
2022-01-05 3:15 ` [PATCH net-next v4 11/11] net: dsa: realtek: rtl8365mb: multiple cpu ports, non cpu extint Luiz Angelo Daros de Luca
2022-01-10 13:39 ` Alvin Šipraga
2022-01-10 13:53 ` Aw: " Frank Wunderlich
2022-01-11 18:17 ` Alvin Šipraga
2022-01-11 18:45 ` Aw: " Frank Wunderlich
2022-01-13 12:37 ` Alvin Šipraga
2022-01-13 15:56 ` Aw: " Frank Wunderlich
2022-01-18 4:58 ` Luiz Angelo Daros de Luca
2022-01-18 10:13 ` Alvin Šipraga
2022-01-18 13:20 ` Re: Re: " Andrew Lunn
2022-01-20 15:12 ` Vladimir Oltean
2022-01-20 23:35 ` Luiz Angelo Daros de Luca
2022-01-21 2:06 ` Vladimir Oltean
2022-01-21 3:13 ` Luiz Angelo Daros de Luca
2022-01-21 3:22 ` Florian Fainelli
2022-01-21 3:42 ` Luiz Angelo Daros de Luca
2022-01-21 3:50 ` Florian Fainelli
2022-01-21 4:37 ` Luiz Angelo Daros de Luca
2022-01-21 9:07 ` Arınç ÜNAL
2022-01-21 18:50 ` Vladimir Oltean
2022-01-21 21:51 ` Luiz Angelo Daros de Luca
2022-01-21 22:49 ` Vladimir Oltean
2022-01-22 20:12 ` Luiz Angelo Daros de Luca
2022-01-24 15:31 ` Vladimir Oltean
2022-01-24 16:46 ` Jakub Kicinski
2022-01-24 16:55 ` Vladimir Oltean
2022-01-24 17:01 ` Florian Fainelli
2022-01-24 17:21 ` Vladimir Oltean
2022-01-24 17:30 ` Florian Fainelli [this message]
2022-01-24 17:35 ` Jakub Kicinski
2022-01-24 18:20 ` Jakub Kicinski
2022-01-24 19:08 ` Vladimir Oltean
2022-01-24 19:38 ` Jakub Kicinski
2022-01-24 20:56 ` Vladimir Oltean
2022-01-24 21:42 ` Jakub Kicinski
2022-01-24 22:30 ` Vladimir Oltean
2022-01-25 7:15 ` Luiz Angelo Daros de Luca
2022-01-25 9:47 ` Vladimir Oltean
2022-01-25 22:29 ` Luiz Angelo Daros de Luca
2022-01-25 23:56 ` Florian Fainelli
2022-01-26 22:49 ` Luiz Angelo Daros de Luca
2022-01-25 9:44 ` Arınç ÜNAL
2022-01-22 15:51 ` Andrew Lunn
2022-01-30 1:54 ` Re: Re: " Luiz Angelo Daros de Luca
2022-01-30 4:42 ` Luiz Angelo Daros de Luca
2022-01-30 17:24 ` Florian Fainelli
2022-01-31 17:26 ` Luiz Angelo Daros de Luca
2022-02-01 14:46 ` Vladimir Oltean
2022-01-20 14:36 ` [PATCH net-next v4 00/11] net: dsa: realtek: MDIO interface and RTL8367S Vladimir Oltean
2022-01-20 17:46 ` Luiz Angelo Daros de Luca
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=f295ba3f-1e4c-8305-7da7-142ac34b5e10@gmail.com \
--to=f.fainelli@gmail.com \
--cc=ALSI@bang-olufsen.dk \
--cc=andrew@lunn.ch \
--cc=arinc.unal@arinc9.com \
--cc=frank-w@public-files.de \
--cc=kuba@kernel.org \
--cc=linus.walleij@linaro.org \
--cc=luizluca@gmail.com \
--cc=netdev@vger.kernel.org \
--cc=olteanv@gmail.com \
--cc=vivien.didelot@gmail.com \
--subject='Re: [PATCH net-next v4 11/11] net: dsa: realtek: rtl8365mb: multiple cpu ports, non cpu extint' \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).