PROTOCOLS
Device
Defined in fuchsia.hardware.ethernet/ethernet.fidl
Operation
Packets are transmitted by writing data into the IO buffer and writing
a FifoEntry referencing that data (offset + length) into the tx fifo.
When the driver is done accessing the data, a FifoEntry with the same
cookie value (opaque to the driver) will be readable from the tx fifo.
Packets are received by writing a FifoEntry referencing an available
buffer (offset + length) in the IO buffer. When a packet is received,
a FifoEntry with the same cookie value (opaque to the driver) will be
readable from the rx fifo. The offset field will be the same as was
sent. The length field will reflect the actual size of the received
packet. The flags field will indicate success or a specific failure
condition.
IMPORTANT: The driver will not buffer response messages. It is the
client's responsibility to ensure that there is space in the reply side
of each fifo for each outstanding tx or rx request. The fifo sizes
are returned along with the fifo handles from GetFifos().
See //zircon/system/public/zircon/device/ethernet.h for fifo entry layout
and request / response message bits.
ConfigMulticastAddMac
Request
Response
ConfigMulticastDeleteMac
Request
Response
ConfigMulticastSetPromiscuousMode
Request
Response
ConfigMulticastTestFilter
Request
Response
DumpRegisters
Request
Response
GetFifos
Obtain a pair of fifos for queueing tx and rx operations
Request
Response
GetInfo
Obtain information about device
Request
Response
GetStatus
Obtain the device status bits
When these change, the signal SIGNAL_STATUS is asserted on the rx fifo.
When these are read, the signal is deasserted.
Request
Response
ListenStart
Start listening to the packets that we're transmitting
as well as the packets we're receiving.
Request
Response
ListenStop
Stop listening to the packets that we're transmitting.
Request
Response
SetClientName
Request
Response
SetIOBuffer
Set the IO Buffer that will provide the data buffers for tx and rx operations
Request
Response
SetPromiscuousMode
Request
Response
Start
Start transferring packets
Start will not succeed (ZX_ERR_BAD_STATE) until the fifos have been
obtained and an io buffer vmo has been registered.
Request
Response
Stop
Stop transferring packets
Request
Response
STRUCTS
Fifos
Defined in fuchsia.hardware.ethernet/ethernet.fidl
Name | Type | Description | Default |
---|
rx |
handle<fifo>
|
|
No default |
tx |
handle<fifo>
|
|
No default |
rx_depth |
uint32
|
|
No default |
tx_depth |
uint32
|
|
No default |
Info
Defined in fuchsia.hardware.ethernet/ethernet.fidl
Name | Type | Description | Default |
---|
features |
Features
|
|
No default |
mtu |
uint32
|
|
No default |
mac |
MacAddress
|
|
No default |
MacAddress
Defined in fuchsia.hardware.ethernet/ethernet.fidl
Name | Type | Description | Default |
---|
octets |
uint8[6]
|
|
No default |
BITS
DeviceStatus
Type: uint32
Defined in fuchsia.hardware.ethernet/ethernet.fidl
Name | Value | Description |
---|
ONLINE |
1 |
|
Features
Type: uint32
Defined in fuchsia.hardware.ethernet/ethernet.fidl
Features distinguishes between NICs with different features.
Name | Value | Description |
---|
WLAN |
1 |
|
SYNTHETIC |
2 |
|
LOOPBACK |
4 |
|
CONSTANTS
Name | Value | Type | Description |
---|
MAX_CLIENT_NAME_LEN |
15
|
uint32 |
Max client name length
|
SET_CLIENT_NAME_MAX_LEN |
16
|
uint32 |
For compatibility with a past revision, allow one extra byte for an optional
null-terminator.
|
SIGNAL_STATUS |
16777216
|
uint32 |
Signal that is asserted on the RX fifo whenever the Device has a status
change. This is ZX_USER_SIGNAL_0.
|