NAME
aoeping - simple communication with AoE device
SYNOPSIS
aoeping [options] {shelf} {slot} {netif}
DESCRIPTION
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".
read_data
offline_immediate
read_log
write_log
enable
disable
return_status
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.
bash# aoeping -v 10 9 eth0 | head
tag: 80000000
eth: eth0
shelf: 10
slot: 9
config query response:
00 0d 87 aa c9 00 00 10 04 00 11 1f 88 a2 18 00
00 0a 09 01 00 00 00 00 00 03 30 08 00 10 00 04
66 6f 6f 0a 00 ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
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.
bash# aoeping -S return_status \
10 9 eth0 | grep ’LBA Mid: 0x4f’ \
> /dev/null \
&& echo ok
ok
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.
SEE ALSO
aoe-discover(8), aoe-interfaces(8), aoe-mkdevs(8), aoe-mkshelf(8), aoe-
stat(8),
AoE (ATA over Ethernet):
http://support.coraid.com/documents/AoEr10.txt,
ATA specification
AUTHOR
Ed L. Cashin (ecashin@coraid.com)
aoeping(8)