mirror of
https://github.com/danderson/netboot.git
synced 2025-10-22 04:51:21 +02:00
AF_PACKET is poorly suited to be the main receiving socket of this implementation, for a variety of reasons: it bypasses netfilter, you receive duplicate packets when bridges and aggregated links are involved, and more generally it's a lot of pain just to get a MAC address out of the link layer. Next up, I'm going to try using an AF_INET/SOCK_RAW socket as the main listening socket, which loses a bit of precision in acquiring packets, but puts more of the kernel and its desirable semantics between us and the wire. We'll still have to use an AF_PACKET socket to transmit to unconfigured clients (although the spec gives us an option to sidestep that as well if we want).