prf::net::NetworkTaskRunner class final

Generic networking task runner.

Drives lwIP init, netif apply, downlink packet injection, and one-time PPPoS init.

Public static variables

static size_t kMaxEthernetLikeInterfaces constexpr
static size_t kMaxIfaceNameBytes constexpr

Constructors, destructors, conversion operators

NetworkTaskRunner(INetworkConfigProvider& config_provider, Ipv4LinkAdapter& ipv4_link_adapter, parp::IParpRoutePolicyProvider* parp_route_policy_provider = nullptr, std::span<const EthernetLikeRuntimeBinding> eth_like_runtimes = {}, pool::Ipv4PoolManager* pool_manager = nullptr, dhcps::DhcpServerManager* dhcp_server_manager = nullptr, prf::system::ITaskHeartbeatSink* task_heartbeat_sink = nullptr, prf::system::TaskHealthTaskId task_id = prf::system::TaskHealthTaskId::Network)
Constructs network task runner.

Public functions

void run()
Runs networking task loop forever.
auto runtime_binding_count_for_test() const -> size_t
Test hook: number of runtime bindings accepted by constructor.
auto runtime_binding_name_for_test(const size_t index) const -> std::string_view
Test hook: returns stored interface name for accepted runtime binding.
auto runtime_registry_invalid_for_test() const -> bool
Test hook: returns true when constructor rejected runtime registry input.

Function documentation

prf::net::NetworkTaskRunner::NetworkTaskRunner(INetworkConfigProvider& config_provider, Ipv4LinkAdapter& ipv4_link_adapter, parp::IParpRoutePolicyProvider* parp_route_policy_provider = nullptr, std::span<const EthernetLikeRuntimeBinding> eth_like_runtimes = {}, pool::Ipv4PoolManager* pool_manager = nullptr, dhcps::DhcpServerManager* dhcp_server_manager = nullptr, prf::system::ITaskHeartbeatSink* task_heartbeat_sink = nullptr, prf::system::TaskHealthTaskId task_id = prf::system::TaskHealthTaskId::Network)

Constructs network task runner.

Parameters
config_provider Source of current network addressing/configuration.
ipv4_link_adapter Packet bridge between transport stack and radio runtime.
parp_route_policy_provider
eth_like_runtimes
pool_manager
dhcp_server_manager
task_heartbeat_sink
task_id

void prf::net::NetworkTaskRunner::run()

Runs networking task loop forever.

The loop initializes lwIP, applies config revisions, forwards downlink traffic to lwIP input, and starts PPPoS exactly once when config becomes valid. This method never returns.