class NetworkPort
Defined at line 30 of file ../../src/connectivity/wlan/drivers/lib/components/cpp/include/wlan/drivers/components/network_port.h
A network port corresponds to a network interface. A network device can provide multiple network
ports. Such as a NIC with multiple RJ45 ports or in this case a WLAN device supporting multiple
interfaces using a single device.
The user should instantiate an object of this class and provide an implementation of
NetworkPort::Callbacks to handle the various calls that are made to it. An implementation can
choose to either inherit from NetworkPort (and optionally NetworkPort::Callbacks at the same
time) or create a standalone object.
A network port is created and registered with the network device when Init is called. The port
is removed when the destructor of this class is called, i.e. when the object is destroyed.
Public Methods
void NetworkPort (fdf::WireSharedClient<fuchsia_hardware_network_driver::NetworkDeviceIfc> &&netdev_ifc,Callbacks &iface,uint8_tport_id)
Defined at line 13 of file ../../src/connectivity/wlan/drivers/lib/components/cpp/network_port.cc
void ~NetworkPort ()
Defined at line 18 of file ../../src/connectivity/wlan/drivers/lib/components/cpp/network_port.cc
void Init (Rolerole,fdf_dispatcher_t *dispatcher,fit::callback<void (zx_status_t)> &&on_complete)
Must be called to make the port operational. If this fails the port object is no longer valid
and no further operations on the port are valid. Initialization is asynchronous and the result
will be reported through |on_complete|. The port is not valid for use until |on_complete| has
been called. In case of an error |on_complete| may (but is not guaranteed to) be called inline
from this function, be careful about acquiring locks during error handling in |on_complete| if
those locks are already held when calling Init. On success |on_complete| is always called
asynchronously. The |dispatcher| must stay alive and running until the port is removed, either
through |RemovePort|, object destruction, or |Callbacks::PortRemoved| being called. Otherwise
removal of the port could deadlock.
Defined at line 26 of file ../../src/connectivity/wlan/drivers/lib/components/cpp/network_port.cc
uint8_t PortId ()
Defined at line 92 of file ../../src/connectivity/wlan/drivers/lib/components/cpp/include/wlan/drivers/components/network_port.h
void RemovePort (fit::callback<void (zx_status_t)> && on_complete)
Remove the port. |on_complete| will be used to report the result asynchronously. After calling
RemovePort no further operations on the port are valid. If the port was successfully
initialized by a call to Init it must be removed by a call to RemovePort. If Init has been
called it's not safe to destroy the port until RemovePort has been called and completion has
been signaled via a call to |on_complete|. It's safe to destroy the port even if |on_complete|
reports an error.
Defined at line 116 of file ../../src/connectivity/wlan/drivers/lib/components/cpp/network_port.cc
void SetPortOnline (bool online)
Defined at line 214 of file ../../src/connectivity/wlan/drivers/lib/components/cpp/network_port.cc
bool IsOnline ()
Defined at line 236 of file ../../src/connectivity/wlan/drivers/lib/components/cpp/network_port.cc
void GetInfo (fdf::Arena & arena, GetInfoCompleter::Sync & completer)
NetworkPortProtocol implementation
Defined at line 241 of file ../../src/connectivity/wlan/drivers/lib/components/cpp/network_port.cc
void GetStatus (fdf::Arena & arena, GetStatusCompleter::Sync & completer)
Defined at line 267 of file ../../src/connectivity/wlan/drivers/lib/components/cpp/network_port.cc
void SetActive (fuchsia_hardware_network_driver::wire::NetworkPortSetActiveRequest *request,fdf::Arena &arena,SetActiveCompleter::Sync &completer)
Defined at line 275 of file ../../src/connectivity/wlan/drivers/lib/components/cpp/network_port.cc
void GetMac (fdf::Arena & arena, GetMacCompleter::Sync & completer)
Defined at line 279 of file ../../src/connectivity/wlan/drivers/lib/components/cpp/network_port.cc
void Removed (fdf::Arena & arena, RemovedCompleter::Sync & completer)
Defined at line 309 of file ../../src/connectivity/wlan/drivers/lib/components/cpp/network_port.cc
void GetAddress (fdf::Arena & arena, GetAddressCompleter::Sync & completer)
MacAddrProtocol implementation
Defined at line 317 of file ../../src/connectivity/wlan/drivers/lib/components/cpp/network_port.cc
void GetFeatures (fdf::Arena & arena, GetFeaturesCompleter::Sync & completer)
Defined at line 323 of file ../../src/connectivity/wlan/drivers/lib/components/cpp/network_port.cc
void SetMode (fuchsia_hardware_network_driver::wire::MacAddrSetModeRequest *request,fdf::Arena &arena,SetModeCompleter::Sync &completer)
Defined at line 329 of file ../../src/connectivity/wlan/drivers/lib/components/cpp/network_port.cc
Enumerations
enum class Role
| Name | Value |
|---|---|
| Client | 0 |
| Ap | 1 |
Defined at line 65 of file ../../src/connectivity/wlan/drivers/lib/components/cpp/include/wlan/drivers/components/network_port.h