From owner-freebsd-net@FreeBSD.ORG Sat Jun 11 18:39:19 2011 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E52961065672 for ; Sat, 11 Jun 2011 18:39:19 +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 A81C08FC0A for ; Sat, 11 Jun 2011 18:39:19 +0000 (UTC) Received: by onelab2.iet.unipi.it (Postfix, from userid 275) id 2EF4B7300A; Sat, 11 Jun 2011 20:55:33 +0200 (CEST) Date: Sat, 11 Jun 2011 20:55:33 +0200 From: Luigi Rizzo To: "K. Macy" Message-ID: <20110611185533.GA67980@onelab2.iet.unipi.it> References: <20110611181352.GA67777@onelab2.iet.unipi.it> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.4.2.3i Cc: freebsd-net@freebsd.org Subject: Re: FreeBSD I/OAT (QuickData now?) driver 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: Sat, 11 Jun 2011 18:39:20 -0000 On Sat, Jun 11, 2011 at 08:07:18PM +0200, K. Macy wrote: > > I'd really encourage people to look at the code (e.g. the pkt-gen.c > > program, which is part of the archive) so you can see how easy it > > is to use. > > Provided one has a dedicated interface. yes, but this doesnt mean that the host stack is disconnected. Netmap also creates a "virtual" ring pair to talk to the host stack, and the archive you find a orogram, bridge.c, which passes packets between the host and the card. Depending on what you need to do with the card, it is easy to modify this program to process interesting packets without passing them up, etc. I am also looking at other options, eg. a "mixed" mode where certain packets (e.g. depending on the MAC address) retain the usual path, whereas others stay in the netmap ring. Of course when you need to replicate packets (multicast/broadcast) you have to pay the price somewhere -- even the 85299 (intel 10G controller) can do some replication in hardware but it takes some precious PCIe and memory bus cycles to do so. This said, one should consider that going fast and being completely general don't go well together -- you don't do F1 races with a minivan, and don't carry large groups of people around with an F1 car. I don't think we'll ever manage to have both at the same time. It is good to have a "transformer" vehicle though! cheers luigi