Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 10 Feb 2014 09:44:09 +0100
From:      =?ISO-8859-1?Q?Ermal_Lu=E7i?= <eri@freebsd.org>
To:        Luigi Rizzo <rizzo@iet.unipi.it>
Cc:        "freebsd-net@freebsd.org" <freebsd-net@freebsd.org>, Raimundo Santos <raitech@gmail.com>
Subject:   Re: netmap pipes (Re: vnet + netmap: how is it possible?)
Message-ID:  <CAPBZQG36fRntxYGQ-a7iX6rQj=G0bwb5-zvkBO33nr9d6_jiVg@mail.gmail.com>
In-Reply-To: <CA%2BhQ2%2Bhfxtq5_toTttK0n2Ajfe8Vrh4z%2BzBhWnRXpeJPskmccw@mail.gmail.com>
References:  <CA%2BhQ2%2Bhfxtq5_toTttK0n2Ajfe8Vrh4z%2BzBhWnRXpeJPskmccw@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
Hello Luigi,

On Mon, Feb 10, 2014 at 2:14 AM, Luigi Rizzo <rizzo@iet.unipi.it> wrote:

> On Sun, Feb 9, 2014 at 4:21 PM, Raimundo Santos <raitech@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.
>
>
Is this netgraph overlayed over netmap or is something rewritten from
scratch?



> 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@freebsd.org mailing list
> > http://lists.freebsd.org/mailman/listinfo/freebsd-net
> > To unsubscribe, send any mail to "freebsd-net-unsubscribe@freebsd.org"
> >
>
>
> --
> -----------------------------------------+-------------------------------
>  Prof. Luigi RIZZO, rizzo@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)
> -----------------------------------------+-------------------------------
> _______________________________________________
> freebsd-net@freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-net
> To unsubscribe, send any mail to "freebsd-net-unsubscribe@freebsd.org"
>



-- 
Ermal



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAPBZQG36fRntxYGQ-a7iX6rQj=G0bwb5-zvkBO33nr9d6_jiVg>