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 69 of file ../../src/virtualization/bin/vmm/device/virtio_net/src/cpp/guest_ethernet.cc

void ~GuestEthernet ()

Defined at line 78 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 94 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 180 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 213 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 260 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 267 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 299 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 312 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 333 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 359 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 394 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 422 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 461 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 483 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 489 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 503 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 509 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 533 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 547 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 551 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 557 of file ../../src/virtualization/bin/vmm/device/virtio_net/src/cpp/guest_ethernet.cc