mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
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


      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®