Hi all,
I'm interested in OS network stacks, and I'm very interested in OpenBSD,
but I'm coming from a Linux background, and I've had a hard time finding
resources that cover the way the kernel code is organized. Learning
cold from the source code is tricky - so if someone could point me in
the right direction I'd appreciate it.
In Linux terms, I'm looking for the equivalent of queue_dev_xmit and
net_rx. Simply put - they're the 'send' and 'recieve' interface between
device drivers and the link layer (although there are lesser-used
alternatives). I've found ether_input and ether_output in net/
if_ethersubr.c, and it seems they're called by USB and other device
code. Are these the functions I'm looking for? And if so, are there
other functions that support other Link Layer protocols? (Not that I'm
aware of any common ones) I like thinking of the network stack as a well
define top (system calls) and a well-defined bottom (a device agnostic
interface, perhaps?) but this bottom is hard to define, and that's what
I'm looking for. Of course, if I'm totally missing some significant
difference between Linux and BSD, please tell me!
I hope I can become a contributing member of the community quickly.

Cheers,
Sean Mackrory
[email protected]

Reply via email to