dirbaio[m]: > Also I'm unclear if/how smoltcp handles interrupts from the Ethernet hardware, it doesn't. you have to handle them. When an interrupt happens, service it and and arrange for iface.poll() to get called when there might be an incoming packet pending, so it can process it through Device::receive() and RxToken::consume(). > Where in the process does the system wait until a packet is RXd? Nowhere, you have to do it and call iface.poll() at the right times.