From owner-freebsd-net@FreeBSD.ORG Fri Jun 8 16:52:46 2012 Return-Path: Delivered-To: net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 4544F1065675 for ; Fri, 8 Jun 2012 16:52:46 +0000 (UTC) (envelope-from luigi@onelab2.iet.unipi.it) Received: from onelab2.iet.unipi.it (onelab2.iet.unipi.it [131.114.59.238]) by mx1.freebsd.org (Postfix) with ESMTP id 089C98FC1B for ; Fri, 8 Jun 2012 16:52:45 +0000 (UTC) Received: by onelab2.iet.unipi.it (Postfix, from userid 275) id 640117300B; Fri, 8 Jun 2012 19:11:26 +0200 (CEST) Date: Fri, 8 Jun 2012 19:11:26 +0200 From: Luigi Rizzo To: net@freebsd.org Message-ID: <20120608171126.GA29273@onelab2.iet.unipi.it> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.4.2.3i Cc: Subject: VALE, a Virtual Local Ethernet. http://info.iet.unipi.it/~luigi/vale/ X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 08 Jun 2012 16:52:46 -0000 We have just completed a netmap extensions that let you build a local high speed switch called VALE which i think can be very useful. http://info.iet.unipi.it/~luigi/vale/ VALE is a software Virtual Local Ethernet whose ports are accessible using the netmap API. Designed to be used as the interconnect between virtual machines (or as a fast local bus), it works as a learning bridge and supports speeds of up to 20 Mpps with short frames, and an aggregate 70 Gbit/s with 1514-byte packets. The VALE paper contains more details and performance measurements. VALE is implemented as a small extension of the netmap module, and is available for FreeBSD and Linux. The source code includes a backend for qemu and KVM, so you can use VALE to interconnect virtual machines launching them with qemu -net nic -net netmap,ifname=vale0 ... qemu -net nic -net netmap,ifname=vale1 ... ... Processes can talk to a VALE switch too, so you can use the pkt-gen or bridge tools that are part of the netmap distribution, or even the pcap.c module that maps libpcap calls into netmap equivalents. This lets you use VALE for all sort of pcap-based applications. More details, code, bootable images on the VALE page, http://info.iet.unipi.it/~luigi/vale/ feedback welcome, as usual. cheers luigi -----------------------------------------+------------------------------- 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) -----------------------------------------+-------------------------------