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_tmac_len,boolenable_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 93 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 179 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 212 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 259 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 266 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 298 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 311 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 332 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 358 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 393 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 421 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 460 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 482 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 488 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 502 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 508 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 532 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 546 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 550 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 556 of file ../../src/virtualization/bin/vmm/device/virtio_net/src/cpp/guest_ethernet.cc
void GetPowerDependencyToken (fdf::Arena & arena, GetPowerDependencyTokenCompleter::Sync & completer)
Defined at line 558 of file ../../src/virtualization/bin/vmm/device/virtio_net/src/cpp/guest_ethernet.cc