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

Reply via email to