From owner-freebsd-net@FreeBSD.ORG Mon Feb 10 01:14:06 2014 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 15FA8CB3 for ; Mon, 10 Feb 2014 01:14:06 +0000 (UTC) Received: from mail-la0-x231.google.com (mail-la0-x231.google.com [IPv6:2a00:1450:4010:c03::231]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 7EE751A84 for ; Mon, 10 Feb 2014 01:14:05 +0000 (UTC) Received: by mail-la0-f49.google.com with SMTP id y1so4258175lam.36 for ; Sun, 09 Feb 2014 17:14:03 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:date:message-id:subject:from:to:cc:content-type; bh=r5IgieaYvO4gWrHhjGrV0Bl6BqvBvu1bx6EAtw3+Hfg=; b=iXTldywFndc6Lzu7kDyuJ3dY+4Sc9x8sRp1Yu7MZ9Nt0P8EMOWIlCis49ZGIT2V8oR 3CGG0UfjHl3OGtcNMSjV+/Zshi8hoQb1uuMQ5LGluzXzxuf4REuCHDz6OlggXwiuA2fU +xwkgsa8eIv39TG4murqd2Z96PjSbXzuQXVCSSWxqnlitIMsWlYo5TGXl3fUT79hA6CW DiwPS1MHCkI2ko7vPyngw0mz9a2fc20JfRmmU8OGAtnS4ZQ/12JLRWZZOdJncHlTc32Q o6riONkWrF2F1PWyUlPlG61nh+uq/mM7OyS36bcpDuBuPbFElKb824pwIh1PJQpydMh1 kEQw== MIME-Version: 1.0 X-Received: by 10.112.132.131 with SMTP id ou3mr18550319lbb.29.1391994843370; Sun, 09 Feb 2014 17:14:03 -0800 (PST) Sender: rizzo.unipi@gmail.com Received: by 10.115.4.162 with HTTP; Sun, 9 Feb 2014 17:14:03 -0800 (PST) Date: Sun, 9 Feb 2014 17:14:03 -0800 X-Google-Sender-Auth: xpLFZxVS3iiUG2aDEoWLlXJjWcY Message-ID: Subject: netmap pipes (Re: vnet + netmap: how is it possible?) From: Luigi Rizzo To: "freebsd-net@freebsd.org" Content-Type: text/plain; charset=ISO-8859-1 X-Content-Filtered-By: Mailman/MimeDel 2.1.17 Cc: Raimundo Santos X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.17 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 10 Feb 2014 01:14:06 -0000 On Sun, Feb 9, 2014 at 4:21 PM, Raimundo Santos 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@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) -----------------------------------------+-------------------------------