netmap pipes (Re: vnet + netmap: how is it possible?)

Luigi Rizzo rizzo at iet.unipi.it
Mon Feb 10 01:14:06 UTC 2014


On Sun, Feb 9, 2014 at 4:21 PM, Raimundo Santos <raitech at gmail.com> wrote:

> Hello list!
>
> I am willing to test an idea: modularize network functions using vnet
> jails. One vnet jail do the NAT, other do balancing, another one the
> traffic shapping, and so on.
>

For these low level packet processing functions, jails are overkill.

The upcoming version of netmap has "netmap pipes",
pairs of netmap ports connected back to back and sharing memory,
with blocking I/O through select/poll/epoll (and we are looking
at supporting kqueue).

You can use netmap pipes to build a graph of processes (nodes)
which apply the desired transformations to your traffic.
Nodes can be anything that speaks netmap (or libpcap),
including your custom C code, Click instances, or whatever
you like.

Netmap pipes have names, so you can dynamically
replace nodes in the graph.

You can also freely chose how netmap pipes, NICs and
VALE switch ports share memory so depending on how
much you want to decouple the nodes you can do
full zero-copy paths.

Performance:
you can move up to about 100 Mpps across a pipe,
irrespective of the size (because you move metadata through
the pipe). Latency is that of an IPC (and really depends on
the OS, hw configuration, batch size).
Think something in the range 1..10us.

NOTE, things become much slower once you start touching
data, but the point is that you can forget about
performance in moving data around and concentrate on
how you want to process things.

cheers
luigi


>
> And I wonder if netmap could help to interconnect these vnets, because I
> can not see a way to do this. May be using netgraph or epair? But any of
> these options are not netmap aware, are they?
>
> Well, the question is in the air!
>
> Thank you all,
> Raimundo
> _______________________________________________
> freebsd-net at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-net
> To unsubscribe, send any mail to "freebsd-net-unsubscribe at freebsd.org"
>


-- 
-----------------------------------------+-------------------------------
 Prof. Luigi RIZZO, rizzo at iet.unipi.it  . Dip. di Ing. dell'Informazione
 http://www.iet.unipi.it/~luigi/        . Universita` di Pisa
 TEL      +39-050-2211611               . via Diotisalvi 2
 Mobile   +39-338-6809875               . 56122 PISA (Italy)
-----------------------------------------+-------------------------------


More information about the freebsd-net mailing list