User: Password:
Subscribe / Log in / New account

Network protocol midlayers.

Network protocol midlayers.

Posted Jun 23, 2009 11:33 UTC (Tue) by neilbrown (subscriber, #359)
In reply to: Linux kernel design patterns - part 3 by johill
Parent article: Linux kernel design patterns - part 3

Yes, TCP/IP is an interesting example (and I understand that you are referring to the implementation, not the design or specification).

It is an example that I was not able to write about with any particular understanding, so I had to leave it out.

But now that I'm not writing formally.....

The situation where I imagine that a network protocol would work better as a library than as a midlayer is when the network device can manage the protocol itself. If the card does TCP-Offload, then you maybe don't want a midlayer in the way.

And yes, I know Dave Miller doesn't like TCP-Offload, and I find his arguments quite convincing. And quite possibly those reasons also point to why a midlayer might be a suitable pattern in the case of a network protocol. It would be valuable to understand exactly why (and if) a midlayer is more appropriate in one place than another. Having a Pattern that describes when a midlayer is a mistake and another that describes when it is a success would be very valuable.

If I were interested in exploring the network layer for midlayer/library structure (which I am) and if I had time (which I don't) I would explore the history and mechanism for the partial offload support, such as checksumming and tcp segmentation. If there is anywhere where a midlayer could have caused problems, or where some other aspect of design has removed problems, I suspect that is where you would find it.

(Log in to post comments)

Copyright © 2018, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds