From owner-freebsd-net@FreeBSD.ORG Tue Sep 23 16:00:46 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 ADFC25C8; Tue, 23 Sep 2014 16:00:46 +0000 (UTC) Received: from mail-wi0-x234.google.com (mail-wi0-x234.google.com [IPv6:2a00:1450:400c:c05::234]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 1EF39149; Tue, 23 Sep 2014 16:00:45 +0000 (UTC) Received: by mail-wi0-f180.google.com with SMTP id q5so5411288wiv.13 for ; Tue, 23 Sep 2014 09:00:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:date:message-id:subject :from:to:cc:content-type; bh=UAresm+NFRCVr2yzqhS/IxOGcUZXz+LjAwXe3CmVy2Q=; b=VYbZ83OsvjZqkfUqj38nSSf3cMwui4itw7s1ZbHByX6ifd/8/CrQ/TjoiTAqRsvUiF DfOkYINKOvz1sLWDyclBo5jKfjmQj9fmPFRb4dYxrCzuEJZ4HIgpos+a6VeJpRTYWcA/ Alt5Yr+Sf3iODay9FEq+/w99yZzDDzHPqBTCFr81LsbV9v3pqRKiLuJJTbQDEJRWfc4g SFYwzVwnY+w/CDWvA0EN6SQ8s2KTL4TfwHpMoJWlbns4sHe1Egs//5wRWQTcXC7rLaXt MQYcKiMNcGHmLWuF0A9xFSbEXzi1bZWX7MAZQUVshGVq+eucmw+Bu/HsxsLcT5JfurIv ygMw== MIME-Version: 1.0 X-Received: by 10.180.101.129 with SMTP id fg1mr23828477wib.20.1411488044435; Tue, 23 Sep 2014 09:00:44 -0700 (PDT) Sender: adrian.chadd@gmail.com Received: by 10.216.106.199 with HTTP; Tue, 23 Sep 2014 09:00:44 -0700 (PDT) In-Reply-To: <20140923154610.GD84074@onelab2.iet.unipi.it> References: <5421310C.5010406@FreeBSD.org> <54218EF4.6090102@FreeBSD.org> <20140923154610.GD84074@onelab2.iet.unipi.it> Date: Tue, 23 Sep 2014 09:00:44 -0700 X-Google-Sender-Auth: FDhHZMDkr3mv29Kj_2GOQzTpvBk Message-ID: Subject: Re: How do I balance bandwidth over several virtual NICs? From: Adrian Chadd To: Luigi Rizzo Content-Type: text/plain; charset=UTF-8 Cc: "freebsd-net@freebsd.org" , Elof Ofel , "Alexander V. Chernikov" X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 23 Sep 2014 16:00:46 -0000 Ah, this behaviour. It's called DROP_EN on the intel igb / ixgbe hardware. Grep the drivers for that particular register bit/setting. Set that bit for an RX queue and it'll instruct the MAC to drop frames destined if that RX ring is full to it and keep receiving on the other rings. Otherwise yes, receiving on that ring with the ring full cuases the MAC to stop receiving on all rings until that ring has free space. You flip this on with ixgbe and igb by disabling tx/rx flowcontrol (sysctl dev.ix|igb.X.fc=0) before configuring the interface. -a