class GuestEthernet

Defined at line 26 of file ../../src/virtualization/bin/vmm/device/virtio_net/src/cpp/guest_ethernet.h

Public Members

static const uint8_t kPortId

Public Methods

void GuestEthernet (fdf::Dispatcher * sync_dispatcher, const network::DeviceInterfaceDispatchers & netdev_dispatchers)

Defined at line 68 of file ../../src/virtualization/bin/vmm/device/virtio_net/src/cpp/guest_ethernet.cc

void ~GuestEthernet ()

Defined at line 77 of file ../../src/virtualization/bin/vmm/device/virtio_net/src/cpp/guest_ethernet.cc

zx_status_t Initialize (const void * rust_guest_ethernet, const uint8_t * mac, size_t mac_len, bool enable_bridge)

Initializes this guest ethernet object by parsing the Rust provided MAC address, preparing

callbacks, and registering it the netstack. This will be invoked by the Rust thread, and

scheduled on the C++ dispatch loop.

Returns ZX_OK if it was successfully scheduled, and sends ZX_OK via set_status_ when finished.

Defined at line 87 of file ../../src/virtualization/bin/vmm/device/virtio_net/src/cpp/guest_ethernet.cc

zx_status_t Send (const void * data, uint16_t length)

Send the packet to the netstack, returning ZX_OK if the packet was sent successfully, and

ZX_ERR_SHOULD_WAIT if no buffer space is available and the device should retry later.

Defined at line 173 of file ../../src/virtualization/bin/vmm/device/virtio_net/src/cpp/guest_ethernet.cc

void Complete (uint32_t buffer_id, zx_status_t status)

Indicate that a packet has been successfully sent to the guest and that the memory can be

reclaimed.

Defined at line 206 of file ../../src/virtualization/bin/vmm/device/virtio_net/src/cpp/guest_ethernet.cc

fdf::ClientEnd<fuchsia_hardware_network_driver::NetworkDeviceImpl> BindDriver ()

Defined at line 253 of file ../../src/virtualization/bin/vmm/device/virtio_net/src/cpp/guest_ethernet.cc

void Init (fuchsia_hardware_network_driver::wire::NetworkDeviceImplInitRequest * request, fdf::Arena & arena, InitCompleter::Sync & completer)

Methods implementing the `NetworkDevice` protocol.

Defined at line 260 of file ../../src/virtualization/bin/vmm/device/virtio_net/src/cpp/guest_ethernet.cc

void Start (fdf::Arena & arena, StartCompleter::Sync & completer)

Defined at line 292 of file ../../src/virtualization/bin/vmm/device/virtio_net/src/cpp/guest_ethernet.cc

void Stop (fdf::Arena & arena, StopCompleter::Sync & completer)

Defined at line 305 of file ../../src/virtualization/bin/vmm/device/virtio_net/src/cpp/guest_ethernet.cc

void GetInfo (fdf::Arena & arena, fdf::WireServer<fuchsia_hardware_network_driver::NetworkDeviceImpl>::GetInfoCompleter::Sync & completer)

Defined at line 326 of file ../../src/virtualization/bin/vmm/device/virtio_net/src/cpp/guest_ethernet.cc

void QueueTx (fuchsia_hardware_network_driver::wire::NetworkDeviceImplQueueTxRequest * request, fdf::Arena & arena, QueueTxCompleter::Sync & completer)

Defined at line 352 of file ../../src/virtualization/bin/vmm/device/virtio_net/src/cpp/guest_ethernet.cc

void QueueRxSpace (fuchsia_hardware_network_driver::wire::NetworkDeviceImplQueueRxSpaceRequest * request, fdf::Arena & arena, QueueRxSpaceCompleter::Sync & completer)

Defined at line 387 of file ../../src/virtualization/bin/vmm/device/virtio_net/src/cpp/guest_ethernet.cc

void PrepareVmo (fuchsia_hardware_network_driver::wire::NetworkDeviceImplPrepareVmoRequest * request, fdf::Arena & arena, PrepareVmoCompleter::Sync & completer)

Defined at line 415 of file ../../src/virtualization/bin/vmm/device/virtio_net/src/cpp/guest_ethernet.cc

void ReleaseVmo (fuchsia_hardware_network_driver::wire::NetworkDeviceImplReleaseVmoRequest * request, fdf::Arena & arena, ReleaseVmoCompleter::Sync & completer)

Defined at line 454 of file ../../src/virtualization/bin/vmm/device/virtio_net/src/cpp/guest_ethernet.cc

void GetAddress (fdf::Arena & arena, GetAddressCompleter::Sync & completer)

Methods implementing the `MacAddr` protocol.

Defined at line 476 of file ../../src/virtualization/bin/vmm/device/virtio_net/src/cpp/guest_ethernet.cc

void GetFeatures (fdf::Arena & arena, GetFeaturesCompleter::Sync & completer)

Defined at line 482 of file ../../src/virtualization/bin/vmm/device/virtio_net/src/cpp/guest_ethernet.cc

void SetMode (fuchsia_hardware_network_driver::wire::MacAddrSetModeRequest * request, fdf::Arena & arena, SetModeCompleter::Sync & completer)

Defined at line 496 of file ../../src/virtualization/bin/vmm/device/virtio_net/src/cpp/guest_ethernet.cc

void GetInfo (fdf::Arena & arena, fdf::WireServer<fuchsia_hardware_network_driver::NetworkPort>::GetInfoCompleter::Sync & completer)

Methods implementing the `NetworkPort` protocol.

Defined at line 502 of file ../../src/virtualization/bin/vmm/device/virtio_net/src/cpp/guest_ethernet.cc

void GetStatus (fdf::Arena & arena, GetStatusCompleter::Sync & completer)

Defined at line 526 of file ../../src/virtualization/bin/vmm/device/virtio_net/src/cpp/guest_ethernet.cc

void SetActive (fuchsia_hardware_network_driver::wire::NetworkPortSetActiveRequest * request, fdf::Arena & arena, SetActiveCompleter::Sync & completer)

Defined at line 540 of file ../../src/virtualization/bin/vmm/device/virtio_net/src/cpp/guest_ethernet.cc

void GetMac (fdf::Arena & arena, GetMacCompleter::Sync & completer)

Defined at line 544 of file ../../src/virtualization/bin/vmm/device/virtio_net/src/cpp/guest_ethernet.cc

void Removed (fdf::Arena & arena, RemovedCompleter::Sync & completer)

Defined at line 550 of file ../../src/virtualization/bin/vmm/device/virtio_net/src/cpp/guest_ethernet.cc