2004-01-14 20:35:05

by Joonas Koivunen

[permalink] [raw]
Subject: Duplex setting with pcnet32 driver, help appriciated

Hey everone,

A friend of mine just told me that my Internet connection should be 1024/1024
(full duplex), not 1024(hf) shared by up- and download -- as it is at the
moment. The connection is HomePNA for which I've got this cheap pci card,
can't know who has made it.
So this is what I've tried so far:

For eth0 (homepna, pcnet32 driver) mii-tool tells me:
SIOCGMIIPHY on 'eth0' failed: Operation not supported
Which must equal as bad luck.

ethtool on the otherhand is able to dig something out of the card:
# ethtool eth0
Settings for eth0:
Supported ports: [ TP MII ]
Supported link modes: 10baseT/Half 10baseT/Full 100baseT/Half
100baseT/Full
Supports auto-negotiation: Yes
Advertised link modes: Not reported
Advertised auto-negotiation: No
Speed: 10Mb/s
Duplex: Half
Port: MII
PHYAD: 0
Transceiver: internal
Auto-negotiation: off
Current message level: 0x00000001 (1)
Link detected: no

Bingo, it seems to support 10baseT/Full but is only at Half at the moment.
# ethtool -s eth0 duplex full; ethtool eth0 | grep Duplex
Duplex: Half
Damn.

I have tried:
# ifconfig eth0 down; ethtool -s eth0 duplex full; ifconfig eth0 up; ethtool
eth0 | grep Duplex
Duplex: Half
Still no change.

lspci's thoughts about this cheap HomePNA card:
# lspci -v -s 00:0b.0
00:0b.0 Ethernet controller: Advanced Micro Devices [AMD] 79c978 [HomePNA]
(rev 52)
Subsystem: Advanced Micro Devices [AMD]: Unknown device 2000
Flags: bus master, medium devsel, latency 32, IRQ 19
I/O ports at a000 [size=32]
Memory at eb000000 (32-bit, non-prefetchable) [size=32]
Capabilities: [40] Power Management version 2

I haven't been able to check with Windows' drivers but as those are generic
pcnet32 too, I doubt that the outcome would be any different. Just that
ethtool doesn't give out any warnings, as it does with for example autoneg:
# ethtool -s eth0 autoneg on
Cannot set new settings: Invalid argument
not setting autoneg

Here it seems that it's not supported by the cheap card of mine? But nothing
is said about duplex setting even being "heard" by the card itself. How to
proceed? The kernel I'm using is linux-2.6.0-rc1 with the rmmap security
patch by Linus.

-rzei


2004-01-16 06:33:26

by Willy Tarreau

[permalink] [raw]
Subject: Re: Duplex setting with pcnet32 driver, help appriciated

On Wed, Jan 14, 2004 at 10:34:27PM +0200, Joonas Koivunen wrote:
> Hey everone,
>
> A friend of mine just told me that my Internet connection should be 1024/1024
> (full duplex), not 1024(hf) shared by up- and download -- as it is at the
> moment. The connection is HomePNA for which I've got this cheap pci card,
> can't know who has made it.

It's independant of your network card. The full duplex is between your modem,
router, or I don't know what and your provider. It can fully be half duplex
between this equipment and your network card.

> Supports auto-negotiation: Yes
> Advertised link modes: Not reported
> Advertised auto-negotiation: No
> Speed: 10Mb/s
^^^^^^^^^^^^^^^^^^^^^^^^^

Your card is connected at 10 Mbps, so the other end is at 10 Mbps too. There
are very very very few hardware which support full duplex on 10 Mbps. It is
automatic for many people to think "half duplex" when they hear "10 Mbps".
So I really think that your equipment uses half duplex too. Don't worry, a
fully saturated 10 Mbps half converges to about 3.6 Mbps effective, which
is clearly enough for your usage.

> Bingo, it seems to support 10baseT/Full but is only at Half at the moment.
> # ethtool -s eth0 duplex full; ethtool eth0 | grep Duplex
> Duplex: Half
> Damn.

It's very likely that the pcnet32 chip doesn't support full duplex on 10 Mbps.

> # ifconfig eth0 down; ethtool -s eth0 duplex full; ifconfig eth0 up; ethtool
> eth0 | grep Duplex
> Duplex: Half
> Still no change.

You should use ethtool on an up link preferably. Also, you can try to load
the module with "full_duplex=1" as a modprobe argument if you really want
to be sure.

Hoping this helps,
Willy