#pragma once #include #include #include #include "eth.h" #include "ipv4.h" #include "span_writer.h" #include "msgpack.h" struct net_state { eth::mac_addr mac; ipv4::ip4_addr ip; }; using net_handler = std::function payload, std::function)> send)>; using net_frame_callback = std::function frame)>; bool net_init(); const net_state& net_get_state(); void net_set_handler(net_handler handler); void net_add_frame_callback(net_frame_callback cb); void net_poll(std::span tx); void net_send_raw(std::span data);