prf::net::eth::EthNetifRuntime class final

Generic Ethernet lwIP netif runtime over injected L2 device.

This runtime owns lwIP netif registration and frame flow adaptation, while physical transport remains in injected HAL device implementation.

Public types

struct State

Constructors, destructors, conversion operators

EthNetifRuntime(const char* iface_name = "et1") explicit
~EthNetifRuntime()

Public functions

auto apply_config(const Ipv4NetifConfig& config) -> bool
auto bind_device(IEthernetDevice* device) -> bool
Binds backend device before first init.
auto bind_parp_eth_config(const cfg::EthConfigSection* config, pool::Ipv4PoolManager* pool_manager, std::span<const char*const> known_interfaces) -> bool
auto bind_parp_usb_config(const cfg::UsbConfigSection* config, pool::Ipv4PoolManager* pool_manager, std::span<const char*const> known_interfaces) -> bool
auto binding_snapshot(EthNetifBindingSnapshot* out) const -> bool
auto emit_tx_frame_for_hook(const uint8_t* frame, size_t frame_size) -> bool
auto init() -> bool
auto parp_status_snapshot(parp::ParpStatusSnapshot* out) const -> bool
auto ready() const -> bool
void service()
void set_rx_wakeup_context(TaskHandle_t task_handle)
auto status_snapshot(EthNetifStatusSnapshot* out) const -> bool

Friends

auto eth_linkoutput(struct netif* iface, struct pbuf* p) -> err_t
auto eth_netif_init_fn(struct netif* iface) -> err_t

Function documentation

bool prf::net::eth::EthNetifRuntime::bind_device(IEthernetDevice* device)

Binds backend device before first init.

Returns false when trying to switch backend after lwIP netif exists.