Thread (14 messages) 14 messages, 5 authors, 2025-07-25

Re: [PATCH] usbnet: Set duplex status to unknown in the absence of MII

From: <hidden>
Date: 2025-07-23 01:29:49
Also in: linux-usb

On Tue, 22 Jul 2025 15:06:37 +0200	[thread overview] Andrew [off-list ref] wrote:
On Tue, Jul 22, 2025 at 10:09:33AM +0800, yicongsrfy@163.com wrote:
quoted
Thanks for your reply!

According to the "Universal Serial Bus Class Definitions for Communications Devices v1.2":
In Section 6.3, which describes notifications such as NetworkConnection and ConnectionSpeedChange,
there is no mention of duplex status.In particular, for ConnectionSpeedChange, its data payload
only contains two 32-bit unsigned integers, corresponding to the uplink and downlink speeds.
Thanks for checking this.

Just one more question. This is kind of flipping the question on its
head. Does the standard say devices are actually allowed to support
1/2 duplex? Does it say they are not allowed to support 1/2 duplex?

If duplex is not reported, maybe it is because 1/2 duplex is simply
not allowed, so there is no need to report it.
No, the standard does not mention anything about duplex at all.

However, Chapter 2 of the standard describes the scope of devices
covered by CDC, including wired and wireless network adapters,
among others.

We know that wireless communication is inherently half-duplex;
for wired network adapters, the duplex status depends on the
capabilities of both communication ends.

One of the USB network adapters I have (AX88179) supports both
the vendor-specific driver and the cdc_ncm driver.

When using the vendor-specific driver, all operational states
function normally, and the information reported by ethtool
matches the actual hardware behavior — which means the hardware
definitely supports both full-duplex and half-duplex modes.

The issue we are discussing only occurs when using the cdc_ncm driver.

To further investigate, I conducted the following tests using
the cdc_ncm driver:

1. I set the peer network adapter (r8169) to auto-negotiation
and connected it to the device under test. On the peer adapter,
I was able to observe that the link was operating in full-duplex mode.

2. I disabled auto-negotiation on the peer adapter and manually
set it to half-duplex. The setting was successfully applied,
and communication remained functional.

From these two tests, we can conclude that both full-duplex
and half-duplex modes are supported — the problem is simply
that the duplex status cannot be retrieved in the absence of
MII support.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help