The
aoeping(8)
program performs simple one or two-round-trip communication with an
ATA over Ethernet (AoE) device. It creates and receives AoE packets
directly, using raw network sockets.
Running
aoeping(8)
without command line arguments will result in a
short usage summary being displayed.
The
aoeping(8)
program will wait forever if it doesn't receive
an expected response. The caller should use a time out to catch
this situation.
Arguments
shelf
This should be the shelf address (major AoE address) of the AoE device
to communicate with.
slot
This should be the slot address (minor AoE address) of the AoE device
to communicate with.
netif
The name of the ethernet network interface to use for AoE
communications, e.g., eth1.
Options
-i
Issue an ATA "identify device" command after receiving the AoE
device's Config
Query response. The "ident" response will be printed on standard
output as a hexidecimal dump.
-I
Issue an ATA "identify device" command after receiving the AoE
device's Config
Query response. The "ident" response will be pretty-printed on standard
output as selected human-readable fields.
-v
Turn on
more copious output, including a hexidecimal dump of the Config Query
response from the AoE device (see AoE spec at URL below).
-s
This option takes an argument. The
argument is a decimal integer that specifies the number of seconds
that
aoeping(8)
will wait for a response before timing out and
exiting with a non-zero status.
-S
This option takes an argument. The
argument is the name of a SMART command to send to the disk. The
SMART commands in the list below are supported. If the command
requires data
transfer, one sector (512 bytes) of data is always the amount
transfered. If the command takes a parameter (for the Low LBA
register), then the name of the SMART command is immediately followed
by a colon and then a number, the value of the parameter, e.g., "-S
read_log:1".
For write_log,
aoeping(8)
reads from
standard input the one sector of data to be
written to the specified log.
If the AoE device does not support SMART commands or if the command is
aborted, an error message
is printed to standard error and
aoeping(8)
exits with a non-zero status. A command may be aborted if SMART is
disabled on the device.
The
aoeping(8)
command just sends and receives SMART commands, without
interpreting them. See the ATA specification for more information on
using SMART.
-t
(This is an advanced feature.) This option has an argument. The
argument is a decimal integer that is used as the initial tag, with
the highest bit set, as
the
first tag in ATA commands. Tags for subsequent ATA commands will be
incremented by one.
-h
Show a usage summary.
EXAMPLE
In this example, the root user
uses
aoeping(8)
to check for the presence of aoe device e10.9 on
network interface eth0.
The next example shows root making sure the disk on the e10.9 is still
responsive by issuing an ATA device identify command with a 20-second
timeout.
bash# aoeping -i -s 20 \
10 9 eth0 > /dev/null \
&& echo ok
ok
The next example uses SMART to determine whether the disk on e10.9
thinks it
has exceeded its error threshold. The ATA spec says that the LBA Mid
register will be 0x4f when the disk has not exceeded its error
threshold.
Note that in a script, it would be prudent to specify and handle a
timeout. Also, a good script would make sure the
Status register does not have the error bit (bit zero) or the
device fault bit (bit 5) set.