From owner-freebsd-net@FreeBSD.ORG Mon Aug 13 10:58:36 2012 Return-Path: Delivered-To: net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id B2B0F1065674 for ; Mon, 13 Aug 2012 10:58:36 +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 722BD8FC0C for ; Mon, 13 Aug 2012 10:58:35 +0000 (UTC) Received: by onelab2.iet.unipi.it (Postfix, from userid 275) id A047673029; Mon, 13 Aug 2012 13:17:22 +0200 (CEST) Date: Mon, 13 Aug 2012 13:17:22 +0200 From: Luigi Rizzo To: net@freebsd.org Message-ID: <20120813111722.GA79347@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: ipfw meets netmap (6.5 Mpps in userspace) 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: Mon, 13 Aug 2012 10:58:36 -0000 I just finished a netmap-enabled version of ipfw/dummynet, which runs in userspace and is able to process over 6 million packets per second (Mpps) with simple rulesets, and over 2.2 Mpps through dummynet pipes (tested on an i7-3400 connected to VALE ports; VALE is a software switch part of netmap). You can find it at http://info.iet.unipi.it/~luigi/dummynet/#8696 It works on FreeBSD and Linux. It even run on OSX, but there is no netmap support there; any interest, Apple ? In any case, it should be simple to adapt the network backend to talk to other devices. To run this you might want to use the most recent version of netmap, also recently updated so it works with recent kernels http://info.iet.unipi.it/~luigi/netmap/ (the code is already in FreeBSD HEAD). On passing, I have also updated the dummynet distributions for Linux and Windows, which should now compile for most recent version of Linux, and for Windows 32 and 64 bit: http://info.iet.unipi.it/~luigi/dummynet/ cheers luigi