class DeviceImplInfo

Defined at line 1506 of file fidling/gen/sdk/fidl/fuchsia.hardware.network.driver/fuchsia.hardware.network.driver/cpp/fidl/fuchsia.hardware.network.driver/cpp/natural_types.h

Static device information.

`DeviceImplInfo` must not change for the entire lifetime of a device.

Public Methods

void DeviceImplInfo ()

Defined at line 1511 of file fidling/gen/sdk/fidl/fuchsia.hardware.network.driver/fuchsia.hardware.network.driver/cpp/fidl/fuchsia.hardware.network.driver/cpp/natural_types.h

void DeviceImplInfo (DeviceImplInfo && )

Defined at line 1512 of file fidling/gen/sdk/fidl/fuchsia.hardware.network.driver/fuchsia.hardware.network.driver/cpp/fidl/fuchsia.hardware.network.driver/cpp/natural_types.h

void DeviceImplInfo (Storage_ storage)
void DeviceImplInfo (const DeviceImplInfo & other)
DeviceImplInfo & operator= (const DeviceImplInfo & other)
bool operator== (const DeviceImplInfo & other)
bool operator!= (const DeviceImplInfo & other)
bool IsEmpty ()
const std::optional<uint32_t> & device_features ()

Device features

Required.

::std::optional<uint32_t> & device_features ()

Device features

Required.

DeviceImplInfo & device_features (std::optional<uint32_t> value)

Device features

Required.

const std::optional<uint16_t> & tx_depth ()

Maximum depth of tx frames in device's outgoing queue.

Required.

::std::optional<uint16_t> & tx_depth ()

Maximum depth of tx frames in device's outgoing queue.

Required.

DeviceImplInfo & tx_depth (std::optional<uint16_t> value)

Maximum depth of tx frames in device's outgoing queue.

Required.

const std::optional<uint16_t> & rx_depth ()

Maximum number of rx frames in a device's incoming queue.

Required.

::std::optional<uint16_t> & rx_depth ()

Maximum number of rx frames in a device's incoming queue.

Required.

DeviceImplInfo & rx_depth (std::optional<uint16_t> value)

Maximum number of rx frames in a device's incoming queue.

Required.

const std::optional<uint16_t> & rx_threshold ()

Rx depth threshold at which the device should be fed new rx buffers.

New buffer notifications from [`NetworkDeviceIfc`] may be skipped while

the number of rx buffers held by the implementation is larger than

`rx_threshold`. It is invalid to provide a value larger than `rx_depth`.

`rx_threshold = rx_depth` is functionally equivalent to `rx_threshold =

rx_depth - 1`.

A large value (close to `rx_depth`) may cause considerable CPU thrash

for small rx completion transaction sizes, while a small value may cause

the implementation to be starved of buffers. The typical choice of value

is `rx_depth / 2`.

Required.

::std::optional<uint16_t> & rx_threshold ()

Rx depth threshold at which the device should be fed new rx buffers.

New buffer notifications from [`NetworkDeviceIfc`] may be skipped while

the number of rx buffers held by the implementation is larger than

`rx_threshold`. It is invalid to provide a value larger than `rx_depth`.

`rx_threshold = rx_depth` is functionally equivalent to `rx_threshold =

rx_depth - 1`.

A large value (close to `rx_depth`) may cause considerable CPU thrash

for small rx completion transaction sizes, while a small value may cause

the implementation to be starved of buffers. The typical choice of value

is `rx_depth / 2`.

Required.

DeviceImplInfo & rx_threshold (std::optional<uint16_t> value)

Rx depth threshold at which the device should be fed new rx buffers.

New buffer notifications from [`NetworkDeviceIfc`] may be skipped while

the number of rx buffers held by the implementation is larger than

`rx_threshold`. It is invalid to provide a value larger than `rx_depth`.

`rx_threshold = rx_depth` is functionally equivalent to `rx_threshold =

rx_depth - 1`.

A large value (close to `rx_depth`) may cause considerable CPU thrash

for small rx completion transaction sizes, while a small value may cause

the implementation to be starved of buffers. The typical choice of value

is `rx_depth / 2`.

Required.

const std::optional<uint8_t> & max_buffer_parts ()

Maximum virtual discontiguous buffer parts accepted by the device.

Devices that can't perform scatter-gather operations must set

`max_buffer_parts` to 1.

Must be in the range [1, `MAX_BUFFER_PARTS`].

Required.

::std::optional<uint8_t> & max_buffer_parts ()

Maximum virtual discontiguous buffer parts accepted by the device.

Devices that can't perform scatter-gather operations must set

`max_buffer_parts` to 1.

Must be in the range [1, `MAX_BUFFER_PARTS`].

Required.

DeviceImplInfo & max_buffer_parts (std::optional<uint8_t> value)

Maximum virtual discontiguous buffer parts accepted by the device.

Devices that can't perform scatter-gather operations must set

`max_buffer_parts` to 1.

Must be in the range [1, `MAX_BUFFER_PARTS`].

Required.

const std::optional<uint32_t> & max_buffer_length ()

Maximum total length of buffers. May be set to zero for no maximum.

Devices that do not support scatter-gather DMA may set this to a value

smaller than a page size to guarantee compatibility.

Required.

::std::optional<uint32_t> & max_buffer_length ()

Maximum total length of buffers. May be set to zero for no maximum.

Devices that do not support scatter-gather DMA may set this to a value

smaller than a page size to guarantee compatibility.

Required.

DeviceImplInfo & max_buffer_length (std::optional<uint32_t> value)

Maximum total length of buffers. May be set to zero for no maximum.

Devices that do not support scatter-gather DMA may set this to a value

smaller than a page size to guarantee compatibility.

Required.

const std::optional<uint32_t> & buffer_alignment ()

Alignment requirement for buffers relative to the start of VMOs.

Must be greater than zero.

Required.

::std::optional<uint32_t> & buffer_alignment ()

Alignment requirement for buffers relative to the start of VMOs.

Must be greater than zero.

Required.

DeviceImplInfo & buffer_alignment (std::optional<uint32_t> value)

Alignment requirement for buffers relative to the start of VMOs.

Must be greater than zero.

Required.

const std::optional<uint32_t> & min_rx_buffer_length ()

The minimum rx buffer length for correct operation, in bytes.

Required.

::std::optional<uint32_t> & min_rx_buffer_length ()

The minimum rx buffer length for correct operation, in bytes.

Required.

DeviceImplInfo & min_rx_buffer_length (std::optional<uint32_t> value)

The minimum rx buffer length for correct operation, in bytes.

Required.

const std::optional<uint32_t> & min_tx_buffer_length ()

The minimum tx buffer length for correct operation, in bytes.

This length accounts only for the buffer's body, and should not account

for `tx_head_length` or `tx_tail_length`.

Required.

::std::optional<uint32_t> & min_tx_buffer_length ()

The minimum tx buffer length for correct operation, in bytes.

This length accounts only for the buffer's body, and should not account

for `tx_head_length` or `tx_tail_length`.

Required.

DeviceImplInfo & min_tx_buffer_length (std::optional<uint32_t> value)

The minimum tx buffer length for correct operation, in bytes.

This length accounts only for the buffer's body, and should not account

for `tx_head_length` or `tx_tail_length`.

Required.

void DeviceImplInfo (::fidl::internal::DefaultConstructPossiblyInvalidObjectTag )
DeviceImplInfo & operator= (DeviceImplInfo && )

Defined at line 1513 of file fidling/gen/sdk/fidl/fuchsia.hardware.network.driver/fuchsia.hardware.network.driver/cpp/fidl/fuchsia.hardware.network.driver/cpp/natural_types.h

const std::optional<uint16_t> & tx_head_length ()

Number of bytes requested as header bytes on tx buffers.

If set to zero, tx buffers will never contain header space. Otherwise,

tx buffers will start at the beginning of the header space, and the

header region will be informed.

Required.

::std::optional<uint16_t> & tx_head_length ()

Number of bytes requested as header bytes on tx buffers.

If set to zero, tx buffers will never contain header space. Otherwise,

tx buffers will start at the beginning of the header space, and the

header region will be informed.

Required.

DeviceImplInfo & tx_head_length (std::optional<uint16_t> value)

Number of bytes requested as header bytes on tx buffers.

If set to zero, tx buffers will never contain header space. Otherwise,

tx buffers will start at the beginning of the header space, and the

header region will be informed.

Required.

const std::optional<uint16_t> & tx_tail_length ()

Number of bytes requested as tail bytes on tx buffers.

If set to zero, tx buffers will never contain tail space. Otherwise, tx

buffers will end at the end of the tail space, and the tail region will

be informed.

Required.

::std::optional<uint16_t> & tx_tail_length ()

Number of bytes requested as tail bytes on tx buffers.

If set to zero, tx buffers will never contain tail space. Otherwise, tx

buffers will end at the end of the tail space, and the tail region will

be informed.

Required.

DeviceImplInfo & tx_tail_length (std::optional<uint16_t> value)

Number of bytes requested as tail bytes on tx buffers.

If set to zero, tx buffers will never contain tail space. Otherwise, tx

buffers will end at the end of the tail space, and the tail region will

be informed.

Required.

const std::optional< ::std::vector< ::fuchsia_hardware_network::RxAcceleration>> & rx_accel ()

Available Rx acceleration flags for this device, as defined in

[`fuchsia.hardware.network/RxAcceleration`].

`rx_accel` maps the `RX_ACCEL_*` flags in the frame descriptors with

semantic acceleration features described by `RxAcceleration`. Position

`n` of `rx_accel` conveys the meaning of the `RX_ACCEL_n` flag.

Required.

::std::optional< ::std::vector< ::fuchsia_hardware_network::RxAcceleration>> & rx_accel ()

Available Rx acceleration flags for this device, as defined in

[`fuchsia.hardware.network/RxAcceleration`].

`rx_accel` maps the `RX_ACCEL_*` flags in the frame descriptors with

semantic acceleration features described by `RxAcceleration`. Position

`n` of `rx_accel` conveys the meaning of the `RX_ACCEL_n` flag.

Required.

DeviceImplInfo & rx_accel (std::optional< ::std::vector< ::fuchsia_hardware_network::RxAcceleration>> value)

Available Rx acceleration flags for this device, as defined in

[`fuchsia.hardware.network/RxAcceleration`].

`rx_accel` maps the `RX_ACCEL_*` flags in the frame descriptors with

semantic acceleration features described by `RxAcceleration`. Position

`n` of `rx_accel` conveys the meaning of the `RX_ACCEL_n` flag.

Required.

const std::optional< ::std::vector< ::fuchsia_hardware_network::TxAcceleration>> & tx_accel ()

Available tx acceleration flags for this device, as defined in

[`fuchsia.hardware.network/TxAcceleration`].

`tx_accel` maps the `TX_ACCEL_*` flags in the frame descriptors with

semantic acceleration features described by `TxAcceleration`. Position

`n` of `tx_accel` conveys the meaning of the `TX_ACCEL_n` flag.

Required.

::std::optional< ::std::vector< ::fuchsia_hardware_network::TxAcceleration>> & tx_accel ()

Available tx acceleration flags for this device, as defined in

[`fuchsia.hardware.network/TxAcceleration`].

`tx_accel` maps the `TX_ACCEL_*` flags in the frame descriptors with

semantic acceleration features described by `TxAcceleration`. Position

`n` of `tx_accel` conveys the meaning of the `TX_ACCEL_n` flag.

Required.

DeviceImplInfo & tx_accel (std::optional< ::std::vector< ::fuchsia_hardware_network::TxAcceleration>> value)

Available tx acceleration flags for this device, as defined in

[`fuchsia.hardware.network/TxAcceleration`].

`tx_accel` maps the `TX_ACCEL_*` flags in the frame descriptors with

semantic acceleration features described by `TxAcceleration`. Position

`n` of `tx_accel` conveys the meaning of the `TX_ACCEL_n` flag.

Required.

Friends

class MemberVisitor
class NaturalTableCodingTraits