#pragma once #include #include "eth.h" #include "ipv4.h" #include "span_writer.h" namespace arp { struct __attribute__((packed)) header { uint16_t htype; uint16_t ptype; uint8_t hlen; uint8_t plen; uint16_t oper; eth::mac_addr sha; ipv4::ip4_addr spa; eth::mac_addr tha; ipv4::ip4_addr tpa; }; static_assert(sizeof(header) == 28); void handle(std::span frame, span_writer& tx); } // namespace arp