Age | Commit message (Collapse) | Author | Files | Lines |
|
Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
|
|
'ethtool -k eth0' generally works for unprivileged users, but in some
kernel versions ETHTOOL_GSSET_INFO wrongly returns -EPERM. We need
to fall back to the old offload operations in this case. Also, if
we get some other error code, report that before exiting.
Add regression test cases covering this and some other operations
that may fail (which were already handled correctly).
Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
|
|
This removes lots of repeated code and makes it trivial to support
additional modes.
Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
|
|
Signed-off-by: Ajit Khaparde <ajit.khaparde@emulex.com>
Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
|
|
This covers kernel changes up to:
commit 80f12eccce775dc6bb93dba9b52529740f929237
Author: Yuval Mintz <yuvalmin@broadcom.com>
Date: Wed Jun 6 17:13:06 2012 +0000
Added kernel support in EEE Ethtool commands
Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
|
|
Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
|
|
Rewrite the offload get and set functions to use the generic features
API where available, while maintaining a similar output format.
Add the long options --show-features and --features as additional
aliases for -k and -K.
Where there is exactly one named feature corresponding to an old
offload name, show the feature using the old offload name. Where
there are multiple features corresponding to an old offload name,
show the features as a group, indented underneath it.
Add some test cases to check that this works properly with or without
the generic features API. (These may well be insufficient.)
Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
|
|
When an offload feature is enabled or disabled, this can change the
state of other features that depend on it, or may itself be deferred
if it depends on a feature that is disabled. Report when this
happens, and fail if no offload features could be changed.
Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
|
|
This is partly preparation for use of the new net device features API,
but is useful in its own right.
Replace repetitive code for getting/setting offload flags with data-
driven loops.
This changes error messages to use the same long names for offload
flags as in dump_offload(), and changes various exit codes to 1.
Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
|
|
Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
|
|
test_ioctl() verifies an ethtool ioctl structure and either returns a
canned response (if it was as expected) or aborts the test.
Adjust the file redirection in test_cmdline() so that test_ioctl() can
always print error messages.
Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
|
|
Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
|
|
Wrap main(), exit(), and resource management so that ethtool commands
can be tested without starting a new process and without leaking.
This will allow deeper teesting that covers ioctl requests and
responses.
Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
|
|
The -m option now allows for retrieval of EEPROM
information form a plug in module such as SFP+. This
shows specific information about the type and
capabilities of the module in use The format can be
easily extended to support other modules types such as
QSFP in future. Raw data dump is also supported.
Signed-off-by: Stuart Hodgson <smhodgson@solarflare.com>
Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
|
|
Split out printing of hex data to common function from
dump_regs and dump_eeprom. Ready for use by module
eeprom dumping.
Signed-off-by: Stuart Hodgson <smhodgson@solarflare.com>
[bwh: Line up columns like the version in dump_eeprom(), not dump_regs()]
Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
|
|
Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
|
|
Signed-off-by: Richard Cochran <richardcochran@gmail.com>
[bwh: Rename the long option to '--show-time-stamping']
Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
|
|
This covers kernel changes up to:
commit 41c3cb6d20f0252308e9796fa4f3dacb4960de91
Author: Stuart Hodgson <smhodgson@solarflare.com>
Date: Thu Apr 19 09:44:42 2012 +0100
ethtool: Extend the ethtool API to obtain plugin module eeprom data
Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
|
|
Signed-off-by: Amir Hanania <amir.hanania@intel.com>
Tested-by: Stephen Ko <stephen.s.ko@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
|
|
State explicitly that arguments beginning with 'flow-type' will
insert or update a rule.
Refer consistently to 'flow type' rather than 'network traffic type'.
Refer to 'options and rules', covering both flow hashing and
steering/filtering.
Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
|
|
The sfc driver implemented a 'clear rule' action as a means to delete
a rule through the n-tuple API. This action is not valid or useful in
the RX NFC API and it's probably confusing to mention it at all.
Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
|
|
Santwona Behera originally intended to extend the -n and -N options to
cover querying and setting rules as well as flow hash options.
However, his patch fell between the cracks and the ethtool utility got
n-tuple support first, using the -u and -U options. When RX NFC rule
support was finally added I insisted that it should not require
different command syntax, so rules must be accessed through these
options.
The sets of valid argument lists following the -n and -u options are
still non-overlapping, and similarly for the -N and -U options. Since
the top level argument parser now supports arbitrary numbers of option
aliases, we can merge these pairs together and achieve the original
intent.
Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
|
|
It doesn't make sense to to list it between the two RX NFC options in
the online help.
Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
|
|
Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
|
|
When support was added to dump the registers on 82575 chipset devices,
six register offsets (receive/transmit desc length, head, and tail)
were incorrectly mapped. This patch remaps the offsets to the correct
registers.
Signed-off-by: Matthew Vick <matthew.vick@intel.com>
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
|
|
If the user does not specify a location for an RX NFC rule to be added
and the result of the ETHTOOL_GRXCLSRLCNT command indicates that the
driver supports special rule locations, let the driver select the
location.
Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
|
|
The macro RX_CLS_LOC_ANY is now defined in ethtool(-copy).h with the
same intended semantics and same value as RX_CLS_LOC_UNSPEC.
Change some equality tests to check for the flag RX_CLS_LOC_SPECIAL,
to allow for future support of other special location value.
Remove the special case for RX_CLS_LOC_UNSPEC in
rxclass_print_nfc_rule(), since it is dead code.
Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
|
|
This covers kernel changes up to:
commit 6cfb5e759d47f037cbd0953ec2c3ceb220ed9e96
Author: Ben Hutchings <bhutchings@solarflare.com>
Date: Tue Jan 3 12:07:59 2012 +0000
ethtool: Remove ethtool_ops::set_rx_ntuple operation
Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
|
|
Some register tables on Solarflare controllers are very large and may
have only a few rows in use. Make register dumps more readable by
omitting rows where all bits read as zero.
Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
|
|
Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
|
|
Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
|
|
Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
|
|
Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
|
|
Most functions in ethtool.c are defined before use. The major
exception is that the args array refers to a large number of functions
defined after it. Move the args array and show_usage() functions down,
and move a few other functions up.
This leaves just one forward declaration in ethtool.c, which is
unavoidable because show_usage() and args refer to each other.
Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
|
|
Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
|
|
Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
|
|
This is necessary preparation for in-process testing. It should also
reduce the risk of some classes of bug by putting declaration and use
closer together.
Add parameters to various functions as necessary.
Leave the global constants alone.
Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
|
|
Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
|
|
cmdline_msglvl is used both in do_gset() and do_sset(), but it refers
to variables only used in do_sset(). I want to get rid of the global
variables without duplicating the flag definitions. So separate out
the flag definitions into a new structure and generate cmdline_msglvl
from that at run-time.
Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
|
|
cmdline_ring and cmdline_channels have the same array size, so this
just happened to work.
Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
|
|
Instead of supporting a single short and long option for each
mode, take a string of options separated by "|" (matching the
way they are displayed in online help).
Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
|
|
Instead of doing most of the argument parsing in parse_cmdline(),
find the sub-command and (if required) the device name in main()
and do the rest in the sub-command handler function. Pass argc
and argp around in struct cmd_context.
This also tightens up argument parsing slightly: extraneous or missing
arguments will now result in an error in a few cases where they were
previously ignored. All test cases now pass.
Replace sub-command dispatch in doit() with a function pointer
in struct option.
Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
|
|
These test cases currently fail.
Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
|
|
Preparation for refactoring command-line parsing.
All these test cases pass.
Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
|
|
Replace the fd and ifr arguments to each sub-command handler with
struct cmd_context. Change send_ioctl() to take a pointer to
this context and a pointer to the ethtool_cmd or other structure.
Use send_ioctl() consistently.
Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
|
|
Also put the whole of the help string on a line of its own where
necessary.
Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
|
|
Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
|
|
These lines are currently unbreakable and result in ugly wrapping
in an 80-column window.
Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
|
|
The name 'ethX' is a poor choice because:
- Many ethtool options are applicable to non-Ethernet devices
- Ethernet device names don't have to begin with 'eth', and the
new convention is to use the prefix 'lan' for LAN-on-motherboard
or 'pci' for PCI plug-in cards
The online help text already uses 'DEVNAME' instead, so change the
manual page to be consistent.
Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
|
|
The index must not be negative, so the parameter does not need to be
signed. Division and modulus on signed operands generally cannot be
optimised to right-shift and bitwise-and.
Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
|