From: "Neeli, Srinivas" <srneeli@amd.com>
To: Jakub Kicinski <kuba@kernel.org>,
Srinivas Neeli <srinivas.neeli@amd.com>
Cc: Nagadheeraj Rottela <nagadheeraj.rottela@amd.com>,
Andrew Lunn <andrew+netdev@lunn.ch>,
"David S. Miller" <davem@davemloft.net>,
Eric Dumazet <edumazet@google.com>,
Paolo Abeni <pabeni@redhat.com>, Rob Herring <robh@kernel.org>,
Krzysztof Kozlowski <krzk+dt@kernel.org>,
Conor Dooley <conor+dt@kernel.org>,
Richard Cochran <richardcochran@gmail.com>,
Michal Simek <michal.simek@amd.com>,
Sebastian Andrzej Siewior <bigeasy@linutronix.de>,
Clark Williams <clrkwllms@kernel.org>,
Steven Rostedt <rostedt@goodmis.org>,
netdev@vger.kernel.org, devicetree@vger.kernel.org,
linux-kernel@vger.kernel.org,
linux-arm-kernel@lists.infradead.org,
linux-rt-devel@lists.linux.dev, neelisrinivas18@gmail.com,
git@amd.com
Subject: Re: [PATCH net-next v2 0/8] Add Xilinx TSN Endpoint Ethernet MAC driver
Date: Wed, 16 Sep 2026 13:31:26 +0530 [thread overview]
Message-ID: <cab3aede-940d-4ebb-80ac-41f4755d6d78@amd.com> (raw)
In-Reply-To: <20260915172232.04df37b2@kernel.org>
Hi Jakub,
On 9/16/2026 5:52 AM, Jakub Kicinski wrote:
> On Wed, 9 Sep 2026 00:49:48 +0530 Srinivas Neeli wrote:
>> This series adds the wrapper and endpoint side of the IP. The switch-facing
>> part is exposed through the Distributed Switch Architecture (DSA) framework
>> in a follow-up series, so that MAC1 and MAC2 show up to Linux as switch
>> ports with the endpoint acting as the CPU/conduit port. The endpoint frames
>> are already classified by source-port id and tagged with DSA port metadata
>> here, so the switch series can consume them without further endpoint
>> change.
> I'm not sure why you're implementing this as DSA.
> This needs to be explained, if a single driver can bind and control
> the whole thing, that's AFAIU preferable. You can keep the
> implementation details in the driver without exposing the conduit
> to user space
When we sent the
RFC(https://lore.kernel.org/lkml/5f884e29-151a-4ee7-9e1a-d7e1f84d9f6c@lunn.ch/),
Andrew framed the choice as: if the host sees a netdev connected to a
port of the switch, it is most likely a DSA switch. That matches our
hardware,
the host sees the Endpoint as a netdev on a switch port, with the two
external MACs as user ports, so we implemented it as DSA.
The Endpoint is not only the switch conduit. It is also a scheduling
endpoint in its own. It drives a dedicated hardware block for
time-triggered per-stream
scheduling (IEEE 802.1Qcc-2018, Annex U.1.3, "Using per-stream
scheduling"). That block is armed by a schedule programmed on the
Endpoint's own Qbv scheduler, which acts
as its time trigger. Configuring that schedule and the per-stream
trigger requires an Endpoint netdev, so we keep it to expose the
Endpoint's Qbv/taprio configuration,
distinct from the wire-port schedules on the user netdevs.
On the data path, DSA maps onto the hardware cleanly. On RX, the EP DMA
path delivers the source port in sideband metadata, which feeds DSA's
existing metadata-based
demultiplexing to the per-port netdevs. On TX, the normal data path has
no destination-port selector and the switch has no independent per-port
forwarding mask, so
standalone isolation is done with a private VLAN containing only the
selected port and the EP. The next version uses DSA's tag_8021q helpers
to manage those VLANs, insert
the destination port's VLAN tag (which the hardware strips before wire
egress), and handle the transitions between standalone and bridged
operation.
A single driver could control the whole block, but it would still have
to reimplement the same pieces, RX demultiplexing, TX tagging, the VLAN
lifecycle, and the per-port
netdevs. We chose DSA to reuse that existing infrastructure while
keeping the Endpoint and wire-port scheduling controls separate.
Thanks,
Srinivas Neeli
prev parent reply other threads:[~2026-09-16 8:01 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-08 19:19 Srinivas Neeli
2026-09-08 19:19 ` [PATCH net-next v2 1/8] dt-bindings: net: add Xilinx TSN Endpoint Ethernet MAC Srinivas Neeli
2026-09-12 20:36 ` netdev-bot+sashiko
2026-09-08 19:19 ` [PATCH net-next v2 2/8] net: xilinx: tsn: add TSN endpoint wrapper driver Srinivas Neeli
2026-09-12 20:36 ` netdev-bot+sashiko
2026-09-08 19:19 ` [PATCH net-next v2 3/8] net: xilinx: tsn: add endpoint MAC driver skeleton Srinivas Neeli
2026-09-12 20:36 ` netdev-bot+sashiko
2026-09-16 0:23 ` Jakub Kicinski
2026-09-08 19:19 ` [PATCH net-next v2 4/8] net: xilinx: tsn: parse endpoint DMA channel configuration Srinivas Neeli
2026-09-09 19:21 ` sashiko-bot
2026-09-12 20:36 ` netdev-bot+sashiko
2026-09-08 19:19 ` [PATCH net-next v2 5/8] net: xilinx: tsn: bring up the endpoint MCDMA channels Srinivas Neeli
2026-09-12 20:36 ` netdev-bot+sashiko
2026-09-08 19:19 ` [PATCH net-next v2 6/8] net: xilinx: tsn: add the endpoint RX data path Srinivas Neeli
2026-09-09 19:21 ` sashiko-bot
2026-09-12 20:36 ` netdev-bot+sashiko
2026-09-16 0:25 ` Jakub Kicinski
2026-09-08 19:19 ` [PATCH net-next v2 7/8] net: xilinx: tsn: add the endpoint TX " Srinivas Neeli
2026-09-09 19:21 ` sashiko-bot
2026-09-12 20:36 ` netdev-bot+sashiko
2026-09-08 19:19 ` [PATCH net-next v2 8/8] net: xilinx: tsn: deliver endpoint RX frames to DSA user ports Srinivas Neeli
2026-09-12 20:36 ` netdev-bot+sashiko
2026-09-16 0:22 ` [PATCH net-next v2 0/8] Add Xilinx TSN Endpoint Ethernet MAC driver Jakub Kicinski
2026-09-16 8:01 ` Neeli, Srinivas [this message]
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=cab3aede-940d-4ebb-80ac-41f4755d6d78@amd.com \
--to=srneeli@amd.com \
--cc=andrew+netdev@lunn.ch \
--cc=bigeasy@linutronix.de \
--cc=clrkwllms@kernel.org \
--cc=conor+dt@kernel.org \
--cc=davem@davemloft.net \
--cc=devicetree@vger.kernel.org \
--cc=edumazet@google.com \
--cc=git@amd.com \
--cc=krzk+dt@kernel.org \
--cc=kuba@kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-rt-devel@lists.linux.dev \
--cc=michal.simek@amd.com \
--cc=nagadheeraj.rottela@amd.com \
--cc=neelisrinivas18@gmail.com \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=richardcochran@gmail.com \
--cc=robh@kernel.org \
--cc=rostedt@goodmis.org \
--cc=srinivas.neeli@amd.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®