Re: ethtool documentation

From: Abraham vd Merwe (
Date: Tue Aug 06 2002 - 05:17:51 EST

Hi Tim!

> These are the valid parameters to the SIOCETHTOOL ioctl(). Network drivers
> should support these as much as possible.
> Get/set NIC settings. These commands expect a 'struct ethtool_cmd *'
> argument. This struct includes fields for supported features (speed,
> duplex, transceiver), advertised features, speed, duplex, port,
> transceiver, and autonegotiation. If the caller attempts to set an
> invalid value for any field, return -EINVAL.

What is the difference between the supported and advertising fields?
What is MII? (as in the SUPPORTED_MII feature?).

If you can't control the # of ints before Tx/Rx, I take it you can just
set those fields to 0?

> Get driver information. This command expects a 'struct ethtool_drvinfo *'
> argument. This struct includes the driver identifier as a string, the
> driver version as a string, bus information for the interface, and length
> information for other ETHTOOL_* commands.

What do you set the bus_info field to if there is no bus? Where are all
these bus types defined? The header file isn't very clear about anything
other than pci bus types.

I take it you can just set fw_version to zero length string if it is unknown?

> Get/set EEPROM data. These commands expect a 'struct ethtool_eeprom *'
> argument. This struct has a magic number, an offset and length pair, and a
> data field. If the offset+length are longer than the maximum size, the
> extra is silently ignored.

Wouldn't it have been better to make this 'n character device which can be
read from / written to just like a normal file (/dev/nvram-like interface) -
that way applications can actually use unused eeprom space.

> Get/set coalescing parameters. These commands expect a 'struct
> ethtool_coalesce *' argument. This struct has several fields for
> configuring coalescing - see ethtool.h for details. If the caller
> attempts to set an invalid value, return -EINVAL.

Wtf is coalescing parameters? These commands aren't even defined in the
2.4.18 kernel headers. Is this 2.5.xx additions?

Same goes for the following commands:



Regards Abraham

Lying is an indispensable part of making life tolerable. -- Bergan Evans

__________________________________________________________ Abraham vd Merwe - 2d3D, Inc.

Device Driver Development, Outsourcing, Embedded Systems

Cell: +27 82 565 4451 Snailmail: Tel: +27 21 761 7549 Block C, Aintree Park Fax: +27 21 761 7648 Doncaster Road Email: Kenilworth, 7700 Http: South Africa

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to More majordomo info at Please read the FAQ at

This archive was generated by hypermail 2b29 : Wed Aug 07 2002 - 22:00:30 EST