Network Subsystem 0 ▲ Internals for Interns 5 hours ago · Tech · hide · 0 comments At the end of the previous article we watched a module fill in a struct net_device_ops (include/linux/netdevice.h:1436), hand it to register_netdev() (net/core/dev.c:11531), and walk away. That’s a promise: here are my function pointers, call me when you need the hardware. What we never got to see is the other half of the promise — who calls them, and what happens in between the wire and your program. So let’s go look. We’re going to follow one packet all the way in, and then one packet all the way back out. No comments yet. Log in to reply on the Fediverse. Comments will appear here.