A received frame becomes socket data

This figure documents the historical i386 source baseline. Current native x86-64/AArch64 qualification is recorded separately; this is not an ELF64 or native SMP implementation diagram.

A received frame becomes socket data VirtIO-net supplies frames. Ethernet dispatches ARP or IPv4; IPv4 dispatches ICMP, UDP or TCP. UDP supports DHCP, DNS and mesh discovery. TCP state and fixed buffers feed user PID-owned sockets or kernel mesh transport. Transmit constructs the headers in reverse order. The TCP table has 32 connection slots. virtio->ethernet received frame ethernet->arp ARP ethernet->ipv4 IPv4 ipv4->icmp protocol 1 ipv4->udp protocol 17 ipv4->tcp protocol 6 tcp->user socket data / readiness tcp->mesh encrypted peer channel virtio VirtIO-net receive queue ethernet Ethernet frame dispatch arp ARP neighbor lookup / reply ipv4 IPv4 protocol dispatch icmp ICMP udp UDP DHCP / DNS / mesh discovery tcp TCP state + receive / transmit buffers user PID-owned socket operations syscall_net → user program mesh Kernel mesh / federation note Receive path shown · transmit adds the same headers in reverse order. 32 TCP connection slots; fixed buffers, not an unbounded host socket stack.
A received frame becomes socket data VirtIO-net supplies frames. Ethernet dispatches ARP or IPv4; IPv4 dispatches ICMP, UDP or TCP. UDP supports DHCP, DNS and mesh discovery. TCP state and fixed buffers feed user PID-owned sockets or kernel mesh transport. Transmit constructs the headers in reverse order. The TCP table has 32 connection slots. Receive path; transmit reverses headers. 32 fixed TCP connection slots. virtio->ethernet ethernet->arp ARP ethernet:e->ipv4:e IPv4 ipv4->icmp 1 ipv4:e->udp:e 17 ipv4:e->tcp:e 6 tcp->user data / readiness tcp:e->mesh:e peer channel virtio VirtIO-net receive queue ethernet Ethernet frame dispatch arp ARP: neighbor lookup / reply ipv4 IPv4 protocol dispatch icmp ICMP · protocol 1 udp UDP · protocol 17 DHCP / DNS / mesh discovery tcp TCP · protocol 6 state + RX / TX buffers user PID-owned user sockets syscall_net → user program mesh Kernel mesh / federation

VirtIO and Ethernet feed protocol-specific paths, not one universal packet handler.

Text equivalent and source references
  • VirtIO-net supplies frames. Ethernet dispatches ARP or IPv4; IPv4 dispatches ICMP, UDP or TCP.
  • UDP supports DHCP, DNS and mesh discovery. TCP state and fixed buffers feed user PID-owned sockets or kernel mesh transport. Transmit constructs the headers in reverse order. The TCP table has 32 connection slots.

Protocol dispatch tree. Source paths refer to the atlas baseline; the kernel checkout is private.

  • kernel/drivers/virtio_net.c · receive path
  • kernel/net/net.c · Ethernet / IPv4 dispatch
  • kernel/net/tcp.c · tcp_handle_packet
  • kernel/core/syscall_net.c · socket dispatch
  • include/tcp.h · TCP_MAX_CONNS