template <typename BuilderImpl>

class WireTableBaseBuilder

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

Public Methods

::fuchsia_hardware_network_driver::wire::DeviceImplInfo Build ()

Build and return the table. The builder should not be used after this.

bool has_device_features ()
void clear_device_features ()

Clears the device_features field.

This method should be used sparingly, such as only during tests, as it has

O(number_of_fields) complexity.

uint32_t & device_features ()

Device features

Required.

BuilderImpl & device_features (uint32_t elem)

Device features

Required.

bool has_tx_depth ()
void clear_tx_depth ()

Clears the tx_depth field.

This method should be used sparingly, such as only during tests, as it has

O(number_of_fields) complexity.

uint16_t & tx_depth ()

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

Required.

BuilderImpl & tx_depth (uint16_t elem)

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

Required.

bool has_rx_depth ()
void clear_rx_depth ()

Clears the rx_depth field.

This method should be used sparingly, such as only during tests, as it has

O(number_of_fields) complexity.

uint16_t & rx_depth ()

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

Required.

BuilderImpl & rx_depth (uint16_t elem)

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

Required.

bool has_rx_threshold ()
void clear_rx_threshold ()

Clears the rx_threshold field.

This method should be used sparingly, such as only during tests, as it has

O(number_of_fields) complexity.

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.

BuilderImpl & rx_threshold (uint16_t elem)

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.

bool has_max_buffer_parts ()
void clear_max_buffer_parts ()

Clears the max_buffer_parts field.

This method should be used sparingly, such as only during tests, as it has

O(number_of_fields) complexity.

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.

BuilderImpl & max_buffer_parts (uint8_t elem)

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.

bool has_max_buffer_length ()
void clear_max_buffer_length ()

Clears the max_buffer_length field.

This method should be used sparingly, such as only during tests, as it has

O(number_of_fields) complexity.

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.

BuilderImpl & max_buffer_length (uint32_t elem)

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.

bool has_buffer_alignment ()
void clear_buffer_alignment ()

Clears the buffer_alignment field.

This method should be used sparingly, such as only during tests, as it has

O(number_of_fields) complexity.

uint32_t & buffer_alignment ()

Alignment requirement for buffers relative to the start of VMOs.

Must be greater than zero.

Required.

BuilderImpl & buffer_alignment (uint32_t elem)

Alignment requirement for buffers relative to the start of VMOs.

Must be greater than zero.

Required.

bool has_min_rx_buffer_length ()
void clear_min_rx_buffer_length ()

Clears the min_rx_buffer_length field.

This method should be used sparingly, such as only during tests, as it has

O(number_of_fields) complexity.

uint32_t & min_rx_buffer_length ()

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

Required.

BuilderImpl & min_rx_buffer_length (uint32_t elem)

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

Required.

bool has_min_tx_buffer_length ()
void clear_min_tx_buffer_length ()

Clears the min_tx_buffer_length field.

This method should be used sparingly, such as only during tests, as it has

O(number_of_fields) complexity.

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.

BuilderImpl & min_tx_buffer_length (uint32_t elem)

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.

bool has_tx_head_length ()
void clear_tx_head_length ()

Clears the tx_head_length field.

This method should be used sparingly, such as only during tests, as it has

O(number_of_fields) complexity.

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.

BuilderImpl & tx_head_length (uint16_t elem)

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.

bool has_tx_tail_length ()
void clear_tx_tail_length ()

Clears the tx_tail_length field.

This method should be used sparingly, such as only during tests, as it has

O(number_of_fields) complexity.

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.

BuilderImpl & tx_tail_length (uint16_t elem)

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.

bool has_rx_accel ()
void clear_rx_accel ()

Clears the rx_accel field.

This method should be used sparingly, such as only during tests, as it has

O(number_of_fields) complexity.

::fidl::VectorView< ::fuchsia_hardware_network::wire::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.

BuilderImpl & rx_accel (Wrapper_Ignore_Me_< ::fidl::ObjectView< ::fidl::VectorView< ::fuchsia_hardware_network::wire::RxAcceleration>>> elem)

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.

bool has_tx_accel ()
void clear_tx_accel ()

Clears the tx_accel field.

This method should be used sparingly, such as only during tests, as it has

O(number_of_fields) complexity.

::fidl::VectorView< ::fuchsia_hardware_network::wire::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.

BuilderImpl & tx_accel (Wrapper_Ignore_Me_< ::fidl::ObjectView< ::fidl::VectorView< ::fuchsia_hardware_network::wire::TxAcceleration>>> elem)

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.

Protected Methods

void WireTableBaseBuilder< ::fuchsia_hardware_network_driver::wire::DeviceImplInfo, BuilderImpl> (::fidl::ObjectView< ::fidl::WireTableFrame< ::fuchsia_hardware_network_driver::wire::DeviceImplInfo>> && frame)

Records