From: Jakub Kicinski <kuba@kernel.org>
To: Vladimir Oltean <vladimir.oltean@nxp.com>
Cc: "netdev@vger.kernel.org" <netdev@vger.kernel.org>,
"David S. Miller" <davem@davemloft.net>,
Eric Dumazet <edumazet@google.com>,
Paolo Abeni <pabeni@redhat.com>,
Michal Kubecek <mkubecek@suse.cz>,
Claudiu Manoil <claudiu.manoil@nxp.com>,
Vinicius Costa Gomes <vinicius.gomes@intel.com>,
Xiaoliang Yang <xiaoliang.yang_1@nxp.com>,
Kurt Kanzenbach <kurt@linutronix.de>,
Rui Sousa <rui.sousa@nxp.com>,
Ferenc Fejes <ferenc.fejes@ericsson.com>
Subject: Re: [RFC PATCH net-next 0/7] 802.1Q Frame Preemption and 802.3 MAC Merge support via ethtool
Date: Wed, 17 Aug 2022 11:46:42 -0700 [thread overview]
Message-ID: <20220817114642.4de48b52@kernel.org> (raw)
In-Reply-To: <20220817115008.t56j2vkd6ludcuu6@skbuf>
On Wed, 17 Aug 2022 11:50:09 +0000 Vladimir Oltean wrote:
> On Tue, Aug 16, 2022 at 08:34:17PM -0700, Jakub Kicinski wrote:
> > I have a couple of general questions. The mm and fp are related but fp
> > can be implemented without mm or they must always come together? (I'd
> > still split patch 2 for ease of review, tho.)
>
> FP cannot be implemented without MM and MM makes limited (but some)
> sense without FP. Since FP just decides which packets you TX via the
> pMAC and which via the eMAC, you can configure just the MM layer such
> that you interoperate with a FP-capable switch, but you don't actually
> generate any preemptable traffic yourself.
>
> In fact, the reasons why I decided to split these are:
> - because they are part of different specs, which call for different
> managed objects
> - because in an SoC where IPs are mixed and matched from different
> vendors, it makes perfect sense to me that the FP portion (more
> related to the queue/classification system) is provided by one vendor,
> and the MM portion is provided by another. In the future, we may find
> enough commonalities to justify introducing the concept of a dedicated
> MAC driver, independent/reusable between Ethernet controller ("net_device")
> drivers. We have this today already with the PCS layer in phylink.
> So if there is a physical split between the layers, I think keeping a
> split in terms of callbacks makes some sense too.
Hah, interesting. I was under the impression that FP can be done
without MM, if frame is preempted it just gets scrambled (bad FCS
gets injected or a special symbol) and dropped by the receiver.
I had it completely backwards, then.
> > When we have separate set of stats for pMAC the normal stats are sum of
> > all traffic, right? So normal - pMAC == eMAC, everything that's not
> > preemptible is express?
>
> Actually not quite, or at least not for the LS1028A ENETC and Felix switch.
> The normal counters report just what the eMAC sees, and the pMAC counters
> just what the pMAC sees. After all, only the eMAC was enabled up until now.
> Nobody does the addition currently.
I see. And the netdev stats are the total?
> > Did you consider adding an attribute for switching between MAC and pMAC
> > for stats rather than duplicating things?
>
> No. Could you expand on that idea a little? Add a netlink attribute
> where, and this helps reduce duplication where, and how?
Add a attribute to ETHTOOL_MSG_STATS_GET, let's call it
ETHTOOL_A_STATS_EXPRESS, a flag.
Plumb thru to all the stats callback an extra argument
(a structure for future extensibility) with a bool pMAC;
Add a capability field to ethtool_ops to announce that
driver will pay attention to the bool pMAC / has support.
We can then use the existing callbacks.
Am I making sense?
next prev parent reply other threads:[~2022-08-17 18:46 UTC|newest]
Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-08-16 22:29 [RFC PATCH net-next 0/7] 802.1Q Frame Preemption and 802.3 MAC Merge support via ethtool Vladimir Oltean
2022-08-16 22:29 ` [RFC PATCH net-next 1/7] net: ethtool: netlink: introduce ethnl_update_bool() Vladimir Oltean
2022-08-17 11:27 ` Michal Kubecek
2022-08-17 11:52 ` Vladimir Oltean
2022-08-17 12:00 ` Vladimir Oltean
2022-08-17 12:05 ` Michal Kubecek
2022-08-16 22:29 ` [RFC PATCH net-next 2/7] net: ethtool: add support for Frame Preemption and MAC Merge layer Vladimir Oltean
2022-08-17 3:22 ` Jakub Kicinski
2022-08-17 11:41 ` Vladimir Oltean
2022-08-17 18:35 ` Jakub Kicinski
2022-08-17 23:15 ` Vinicius Costa Gomes
2022-08-19 16:12 ` Vladimir Oltean
2022-08-24 0:35 ` Vinicius Costa Gomes
2022-09-07 20:57 ` Vladimir Oltean
2022-09-10 0:19 ` Vinicius Costa Gomes
2022-09-10 16:36 ` Vladimir Oltean
2022-09-14 2:59 ` Vinicius Costa Gomes
2022-09-15 14:14 ` Vladimir Oltean
2022-11-10 10:33 ` 回复: " Xiaoliang Yang
2022-11-14 15:42 ` Vladimir Oltean
2022-11-15 3:01 ` 回复: " Xiaoliang Yang
2022-11-16 12:36 ` Vladimir Oltean
2022-08-16 22:29 ` [RFC PATCH net-next 3/7] net: ethtool: stats: make stats_put_stats() take input from multiple sources Vladimir Oltean
2022-08-16 22:29 ` [RFC PATCH net-next 4/7] net: ethtool: stats: replicate standardized counters for the pMAC Vladimir Oltean
2022-08-16 22:29 ` [RFC PATCH net-next 5/7] net: enetc: parameterize port MAC stats to also cover " Vladimir Oltean
2022-08-16 22:29 ` [RFC PATCH net-next 6/7] net: enetc: expose some standardized ethtool counters Vladimir Oltean
2022-08-16 22:29 ` [RFC PATCH net-next 7/7] net: enetc: add support for Frame Preemption and MAC Merge layer Vladimir Oltean
2022-08-17 3:34 ` [RFC PATCH net-next 0/7] 802.1Q Frame Preemption and 802.3 MAC Merge support via ethtool Jakub Kicinski
2022-08-17 11:50 ` Vladimir Oltean
2022-08-17 18:46 ` Jakub Kicinski [this message]
2022-10-01 15:53 ` Vladimir Oltean
2022-10-03 14:36 ` Jakub Kicinski
2022-10-03 14:51 ` Vladimir Oltean
2022-08-17 22:47 ` Vinicius Costa Gomes
2022-08-19 8:16 ` Kurt Kanzenbach
2022-08-19 16:59 ` Vladimir Oltean
2022-08-23 10:50 ` Kurt Kanzenbach
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=20220817114642.4de48b52@kernel.org \
--to=kuba@kernel.org \
--cc=claudiu.manoil@nxp.com \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=ferenc.fejes@ericsson.com \
--cc=kurt@linutronix.de \
--cc=mkubecek@suse.cz \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=rui.sousa@nxp.com \
--cc=vinicius.gomes@intel.com \
--cc=vladimir.oltean@nxp.com \
--cc=xiaoliang.yang_1@nxp.com \
/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
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.