Netdev List
 help / color / mirror / Atom feed
From: Ziyou Xu <xuziyougm@gmail.com>
To: Gaoyang Wei <yhyxwgy@gmail.com>, Andrew Lunn <andrew@lunn.ch>
Cc: netdev@vger.kernel.org,
	Matheus Sampaio Queiroga <srherobrine20@gmail.com>,
	Benjamin Larsson <benjamin.larsson@genexis.eu>,
	Lorenzo Bianconi <lorenzo@kernel.org>,
	Andrew Lunn <andrew+netdev@lunn.ch>,
	Russell King <linux@armlinux.org.uk>
Subject: Re: [RFC] net: towards a generic PON framework
Date: Mon, 28 Sep 2026 03:24:48 +0800	[thread overview]
Message-ID: <b100f190-93fa-4ac7-a588-b95ff1d68ffd@gmail.com> (raw)
In-Reply-To: <92d9c8a9-ef43-45ce-a599-2c00d0a2fa61@gmail.com>

Hi Gaoyang,

I agree that the transport and the control API should probably be
considered separately.

I am wondering whether we need a Generic Netlink interface at all at
this stage.

If the immediate userspace requirement is only transporting raw OMCI
PDUs, AF_PACKET already provides that abstraction.  Other PON state
may remain internal to the kernel or be exposed through existing
subsystems until we have a concrete operation which requires a new
xPON-specific UAPI.

The reason I still see value in a net_device is not to model OMCI as
Ethernet, but to provide the packet endpoint required by AF_PACKET.

With an ARPHRD_NONE device, the interface could carry only raw OMCI
PDUs, without Ethernet headers, addressing, ARP, or Ethernet bridge
semantics.

There is also a practical debugging advantage to this model.

A packet endpoint gives us a natural capture point for
tcpdump/libpcap/Wireshark without having to introduce a second
debugging interface.  There are already Wireshark dissectors for
OMCI, for example:

   https://github.com/0liv1er/omci-wireshark-dissector

This is particularly useful for interoperability work.

Although G.988 specifies OMCI, deployed networks are often less
uniform than the base standard suggests.  Vendors and operators use
private managed entities, profiles, and behavioral quirks.

One example is China Telecom's LOID authentication extension, which
uses the private OMCI ME class 65530 (0xfffa).  Debugging this kind of
interoperability issue is much easier when the raw OMCI exchange can
be captured and decoded directly.

Using a packet-like netdev for OMCI is also not unique to the current
AN7581/AN7583 implementation.  There is precedent for this model in
vendor SDK/BSP implementations as well; the older Airoha SDK, for
example, also exposed OMCI through a netdev-like userspace path.

I do not think vendor precedent by itself is a reason to standardize
such an ABI, but it suggests that representing OMCI as a packet
channel maps reasonably well to existing hardware and driver designs.

Without a packet endpoint, we would need to define equivalent RX/TX,
delivery, and probably observability semantics through another
interface such as Generic Netlink.

I am not yet sure that buys us much if the only thing crossing the
kernel/userspace boundary is an opaque OMCI PDU.

So perhaps there are two questions:

   1. Is using a minimal non-Ethernet net_device purely as an
      AF_PACKET endpoint itself considered undesirable?

   2. If it is, what would be the preferred Linux-native transport for
      raw OMCI PDUs while retaining packet-level observability?

I think we should avoid defining a broader xPON Generic Netlink UAPI
until we have a concrete control operation which cannot be represented
cleanly by an existing interface.

Thanks,
Ziyou Xu

  reply	other threads:[~2026-09-27 19:24 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-09-26 17:46 [RFC] net: towards a generic PON framework Gaoyang Wei
2026-09-26 19:28 ` Matheus Sampaio Queiroga
2026-09-26 20:21   ` Gaoyang Wei
2026-09-26 21:55     ` Matheus Sampaio Queiroga
2026-09-26 22:15       ` Gaoyang Wei
2026-09-27  0:05         ` Matheus Sampaio Queiroga
2026-09-27  4:38           ` Gaoyang Wei
2026-09-27 17:47             ` Matheus Sampaio Queiroga
2026-09-27 18:27               ` Gaoyang Wei
2026-09-27 16:57 ` Andrew Lunn
2026-09-27 17:22   ` Gaoyang Wei
2026-09-27 19:24     ` Ziyou Xu [this message]
2026-09-27 19:47     ` Andrew Lunn
2026-09-27 20:29       ` Ziyou Xu
2026-09-27 22:30         ` Andrew Lunn
2026-09-27 22:49         ` Andrew Lunn
2026-09-27 23:11           ` Gaoyang Wei
2026-09-28  1:25             ` Andrew Lunn
2026-09-28  8:37               ` John Crispin
2026-09-28 10:54                 ` Benjamin Larsson
2026-09-28 14:10                   ` Andrew Lunn
2026-10-01 12:25                     ` Benjamin Larsson
2026-09-28 11:23                 ` Gaoyang Wei
2026-09-28 14:05                 ` Andrew Lunn
2026-09-27 20:47 ` Benjamin Larsson
2026-09-27 20:58   ` Gaoyang Wei

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=b100f190-93fa-4ac7-a588-b95ff1d68ffd@gmail.com \
    --to=xuziyougm@gmail.com \
    --cc=andrew+netdev@lunn.ch \
    --cc=andrew@lunn.ch \
    --cc=benjamin.larsson@genexis.eu \
    --cc=linux@armlinux.org.uk \
    --cc=lorenzo@kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=srherobrine20@gmail.com \
    --cc=yhyxwgy@gmail.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