Re: ethtool documentation

From: Tim Hockin (thockin@hockin.org)
Date: Mon Aug 05 2002 - 14:06:39 EST


> > Is there a document describing the ethtool ioctl's which need to be
> > implemented in each ethernet driver?
>
>
> Unfortunately not. There is a distinct lack of network driver docs at
> the moment... The best documentation is looking at source code of
> drivers that implement the most ioctls.

I've got a draft of a quick overview doc. I need to add docs for a few of
the newer commands, still, and I want to get into the structs for each call
in more detail, too. I want to re-examine a few of recent additions,
before they become too ubiquitous - am I too late to pipe up for my own
aesthetics?

Tim

The ethtool API
08/05/2002

These are the valid parameters to the SIOCETHTOOL ioctl(). Network drivers
should support these as much as possible.

ETHTOOL_GSET
ETHTOOL_SSET

  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.

ETHTOOL_GDRVINFO

  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.

ETHTOOL_GREGS

  Get a register dump from the NIC. This command expects a 'struct
  ethtool_regs regs *' argument. This struct has a driver-specific version
  field and a length field. The length field indicates the length of the
  data field to be populated with register information.

ETHTOOL_GWOL
ETHTOOL_SWOL

  Get/set wake-on-lan options for the NIC. These commands expect a 'struct
  ethtool_wolinfo *' argument. This struct has fields for supprted and
  active WoL options, and the SecureOn password, if active. If the caller
  attempts to set an invalid value, return -EINVAL.

ETHTOOL_GMSGLVL
ETHTOOL_SMSGLVL

  Get/set the driver message-level value for the NIC. This command expects
  a 'struct ethtool_value *' argument.

ETHTOOL_NWAY_RST

  Force auto-negotiation to restart, if it is enabled. If it is not
  enabled, return -EINVAL.

ETHTOOL_GLINK

  Read the current link status. This command expects a 'struct
  ethtool_value *' argument.

ETHTOOL_GEEPROM
ETHTOOL_SEEPROM

  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.

ETHTOOL_GCOALESCE
ETHTOOL_SCOALESCE

  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.

ETHTOOL_GRINGPARAM
ETHTOOL_SRINGPARAM

  Get/set RX/TX ring parameters. These commands expect a 'struct
  ethtool_ringparam *' aargument. This struct has fields for several
  rx pending options, and tx pending. If the caller attempts to set an invalid
  value, return -EINVAL.

ETHTOOL_GPAUSEPARAM
ETHTOOL_SPAUSEPARAM

  Get/set the RX/TX pause parameters. These commands expect a 'struct
  ethtool_pauseparam *' argument. This struct has fields to enable
  autonegotiation of pause parameters and to force RX and TX pause control.

ETHTOOL_GRXCSUM
ETHTOOL_SRXCSUM

  Get/set the RX hardware checksum capability/flag. These commands expect
  a 'struct ethtool_value *' argument. If the caller attempts to enable RX
  hardware checksumming on an interface that does not support it, return
  -EINVAL.

ETHTOOL_GTXCSUM
ETHTOOL_STXCSUM

  Get/set the TX hardware checksum capability/flag. These commands expect
  a 'struct ethtool_value *' argument. If the caller attempts to enable TX
  hardware checksumming on an interface that does not support it, return
  -EINVAL.

ETHTOOL_GSG
ETHTOOL_SSG

  Get/set the scatter/gather capability/flag. These commands expect a 'struct
  ethtool_value *' argument. If the caller attempts to set an invalid value,
  return -EINVAL.

ETHTOOL_TEST
/* execute NIC self-test, priv. */

ETHTOOL_GSTRINGS
/* get specified string set */

ETHTOOL_PHYS_ID
/* identify the NIC */

ETHTOOL_GSTATS
/* get NIC-specific statistics */
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/



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