aoe – ATA-over-Ethernet (AoE) interface
bind -a #æ /dev
unhandled troff command .sp
The AoE (ATA-over-Ethernet) interface serves a three-level
directory providing control and access to AoE targets.
The interface provided is primarily intended for low-level
control of the AoE initiator. See
for the standard interface.
In order to access AoE targets, one or more Ethernet controllers
need to be bound to the AoE initiator. By default, the system
starts with no interfaces bound. For automatic binding of interfaces
on boot, the
configuration variable is set in
Ethernet interfaces are specified as
To bind the first and second Ethernet devices on boot, add
to a running system:
% echo bind '#l1/ether1' >/dev/aoe/ctl
And to unbind it
% echo unbind '#l1/ether1' >/dev/aoe/ctl
When an interface is unbound, targets depending
on that interface are removed.
Each local interface is called a
The mapping of
AoE targets to netlinks is called a
Each devlink may
see multiple interfaces per target.
For example, if the local
machine has one Ethernet address bound and the target has
two interfaces on the same Ethernet segment, this will result
in one netlink and one devlink with two Ethernet addresses.
AoE frames are sent in round-robin fashion.
frame is sent on the next address available on the next available
devlink (local interface).
Normally the initiator automatically discovers and adds new
device directories on startup. New devices are not added
except as new interfaces are bound to the initiator.
Several messages can be written to
which alter this behavior:
If toggle is absent,
the state of
is toggled. If it is the string
it is turned on. Any other string turns
This option is not useful after Ethernet devices have been bound.
Attempt to find the named target on all bound interfaces.
The converse of
remove the named target if it exists.
Allow or disallow rediscovery.
This allows for automatic discovery of new targets.
Unfortunately, it also allows automatic modification
or loss of existing targets. This option is considered dangerous.
returns a list of colon-separated lines
with keywords and their values:
Returns the current state of the variable named by the keyword.
Writing the variable’s
name to the control file toggles the state of that variable.
bound Ethernet device.
Ethernet address of this device.
A flag of “Up” indicates that this interface is available.
Number of consecutive lost jumbograms.
Incorrect and unused.
Once configured, each AoE target is accessed via files in the directory named
for its shelf and slot. For example, shelf 42, slot 0 would be
accessed through the path
file contains the read-only, verbatim result of the identify unit ATA command.
file contains the target’s AoE configuration string. Writing to this file
sets the targets configuration string.
Reading a shelf and slot’s
file returns a list of colon-separated lines
with the following keywords and values:
“Up” or “down”.
Number of clients using this target.
Number of outstanding AoE frames.
Maximum number of outstanding frames allowed.
Maximum number of outstanding frames.
is greater than
when the initiator is reducing the number of in-flight
frames due to packet loss. It is assumed that packet
loss is due to an overwhelmed target and not poor
Maximum number of data bytes per AoE frame. Using
is 1024 or two sectors.
AoE ATA headers are 36 bytes.
The respective fields from the ATA
List of flags useful for debugging. The flag
indicates that jumbo frames are accepted, not that
they are being used.
should be consulted for this purpose.
file may be read or written like a normal file
except that reads and writes to this file are converted to
AoE commands to the target, so transfers should be 512 or 1024 bytes long
(or a larger multiple of 512 iff jumbo packets are in use).
The size of this file is the usable size of the target.
directory contains one file for each interface the target was
discovered on. The files are numbers from 0 to
and contain a list of colon-separated lines
with keywords and their values:
A space-separated list of the target’s Ethernet addresses visible from
The number of frames sent on this interface.
The number of frames re-sent. Frames are re-sent
when they have been outstanding twice the RTT average.
“Up” when the netlink is up.
Minimum timer and RTT average as per
Congestion Avoidance and Control .
Path of the Ethernet device.
Ethernet address of the local Ethernet device.
“Up” if the local interface is up.
Number of consecutive jumbograms lost.
Van Jacobson and Michael J. Karels,
“Congestion Avoidance and Control” ,
ACM Computer Communication Review;
Proceedings of the Sigcomm ’88 Symposium in Stanford, CA, August, 1988.
There is no
file for executing arbitrary commands.
This is a fairly primitive interface;
is usually more suitable.