From owner-freebsd-net@FreeBSD.ORG Sat Jun 11 21:20:35 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 080AC1065670; Sat, 11 Jun 2011 21:20:35 +0000 (UTC) (envelope-from rysto32@gmail.com) Received: from mail-ey0-f182.google.com (mail-ey0-f182.google.com [209.85.215.182]) by mx1.freebsd.org (Postfix) with ESMTP id 5BB0B8FC15; Sat, 11 Jun 2011 21:20:33 +0000 (UTC) Received: by eyg7 with SMTP id 7so1779327eyg.13 for ; Sat, 11 Jun 2011 14:20:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=CM6B83YwrQ9rSmK6eQg47mT8o5myVIUqb7Lvf+KSYgQ=; b=w4k5qBj1xs74t4bSCoN6fW7ZUGu8X98sCuqp71d0kjZWTY2r6+OdQMHVATMjFdTE8A aje20CgQJCPBerBdqloN0yyLx79Y6ULICA1UkiBukPwnqGHiBDGbWnQClgoYnT+MKxY5 PyIiLpGaA8KmsMvIHZck8dycQ8gDpNktdljOo= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; b=rz14k8wz1ODHM+lLYNni14NwJLJRRsb3FcRufhzCKLbwcK0yOlB/xyCSh+jeOrmMFu 5KWvpT3yyMdUK5H0Biag+aOalVKiuNFY92srKxmBF5oIh0kF/VAMCGZ+wc67MHo/1NMZ jQEa0mOhs2jtw7LAi63K5HgQF0I5dmIn0lf8s= MIME-Version: 1.0 Received: by 10.213.20.194 with SMTP id g2mr470147ebb.6.1307825584958; Sat, 11 Jun 2011 13:53:04 -0700 (PDT) Received: by 10.213.9.81 with HTTP; Sat, 11 Jun 2011 13:53:04 -0700 (PDT) In-Reply-To: <20110611185533.GA67980@onelab2.iet.unipi.it> References: <20110611181352.GA67777@onelab2.iet.unipi.it> <20110611185533.GA67980@onelab2.iet.unipi.it> Date: Sat, 11 Jun 2011 16:53:04 -0400 Message-ID: From: Ryan Stone To: Luigi Rizzo Content-Type: text/plain; charset=ISO-8859-1 Cc: freebsd-net@freebsd.org, "K. Macy" 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 21:20:35 -0000 On Sat, Jun 11, 2011 at 2:55 PM, Luigi Rizzo wrote: > 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. I've independently implemented something very similar to this at $(WORK) for the ixgbe driver and I intend on cleaning up the patch this summer and submitting it to jfv. My approach is more general than what you're describing here: my ixgbe driver has the capability to present multiple virtual interfaces to the rest of the system that share a single virtual interface. The main use case I was envisioning for this was with vnet and/or jails, but it sounds like it would mesh very well with netmap. You can create one virtual interface for netmap and one for the stack, and the driver and hardware take care of the multiplexing transparently.