Sorry, replied to fast and to OP only. Below is one use case and a lot o things that Henning have said, put from my point of view. ---------- Forwarded message ---------- From: Raimundo Santos <rait...@gmail.com> Date: 14 October 2014 15:02 Subject: Re: NetMap in OpenBSD To: Mikael <mikael.tr...@gmail.com>
On 14 October 2014 11:33, Mikael <mikael.tr...@gmail.com> wrote: > > > userland reimplementing the stack[...] > > > I didn't necessarily/specifically suggest that. The only case I can see to not reimplement full stack is working on pure Ethernet. All other "really nice" one can do with TCP/IP are sadly going to be reimplemented. This is how netmap works, barely: put packets in ring buffers, bypassing all the neat work of years in the OS network stack. How do you route a packet within netmap logic? How do you check for source or destiny addresses or TCP/UDP ports? You need to reimplement it on your own program, and do that for EVERY program using netmap. > > > > There is a whole world of need of network monitoring and manipulation and > > > other specialized networking software. > > > > > I read a collection of buzzwords with nothing specific. > > > > "A solution in dire need of a problem." Here I see the limit of a general purpose OS. Well, lets deal with all the corner cases, and all the possibilities, and lets create a general purpose OS that is a specific purpose for everyone who uses it. Makes no sense to me. Specific needs that are not covered by the general facilities of such an OS must be covered by specific work of who needs it. You can even make a profitable product of this work. :) Bypass years of correct and conscious work to make all the stack more secure just because the needs of a few are for speed? It is a bad choice. netmap have one thing that really interests me: the ability to enforce specific per-ip bandwidth with dummynet, but at the cost of doing this with netmap-ipfw, reimplementing all the needed stack parts. Why, my sacred believes, WHY?! So, instead of improving that stack to do a free for all, correct and conscious speed up, lets do it by reimplementing the "needed parts" in every application. sosplice(9) may serve us with a starting point to that "really fast" things of zero-copy hype. http://www.openbsd.org/papers/eurobsdcon_2013_sosplice-slides.pdf Summarizing: netmap bypasses ALL the OS network stack. Period. Therefore, you must reimplement such things. Best regards, Raimundo Santos