From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <couyang@shecgisg004.sh.intel.com>
Received: from mga01.intel.com (mga01.intel.com [192.55.52.88])
 by dpdk.org (Postfix) with ESMTP id D7A885A7C
 for <dev@dpdk.org>; Mon, 12 Jan 2015 06:59:19 +0100 (CET)
Received: from orsmga001.jf.intel.com ([10.7.209.18])
 by fmsmga101.fm.intel.com with ESMTP; 11 Jan 2015 21:59:18 -0800
X-ExtLoop1: 1
X-IronPort-AV: E=Sophos;i="5.07,742,1413270000"; d="scan'208";a="635864070"
Received: from shvmail01.sh.intel.com ([10.239.29.42])
 by orsmga001.jf.intel.com with ESMTP; 11 Jan 2015 21:59:17 -0800
Received: from shecgisg004.sh.intel.com (shecgisg004.sh.intel.com
 [10.239.29.89])
 by shvmail01.sh.intel.com with ESMTP id t0C5xF3j023478;
 Mon, 12 Jan 2015 13:59:15 +0800
Received: from shecgisg004.sh.intel.com (localhost [127.0.0.1])
 by shecgisg004.sh.intel.com (8.13.6/8.13.6/SuSE Linux 0.8) with ESMTP id
 t0C5xDXE022433; Mon, 12 Jan 2015 13:59:15 +0800
Received: (from couyang@localhost)
 by shecgisg004.sh.intel.com (8.13.6/8.13.6/Submit) id t0C5xCr5022429;
 Mon, 12 Jan 2015 13:59:12 +0800
From: Ouyang Changchun <changchun.ouyang@intel.com>
To: dev@dpdk.org
Date: Mon, 12 Jan 2015 13:59:06 +0800
Message-Id: <1421042352-22399-1-git-send-email-changchun.ouyang@intel.com>
X-Mailer: git-send-email 1.7.12.2
In-Reply-To: <1420612355-6666-1-git-send-email-changchun.ouyang@intel.com>
References: <1420612355-6666-1-git-send-email-changchun.ouyang@intel.com>
Subject: [dpdk-dev] [PATCH v6 0/6] Enable VF RSS for Niantic
X-BeenThere: dev@dpdk.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: patches and discussions about DPDK <dev.dpdk.org>
List-Unsubscribe: <http://dpdk.org/ml/options/dev>,
 <mailto:dev-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://dpdk.org/ml/archives/dev/>
List-Post: <mailto:dev@dpdk.org>
List-Help: <mailto:dev-request@dpdk.org?subject=help>
List-Subscribe: <http://dpdk.org/ml/listinfo/dev>,
 <mailto:dev-request@dpdk.org?subject=subscribe>
X-List-Received-Date: Mon, 12 Jan 2015 05:59:20 -0000

This patch enables VF RSS for Niantic, which allow each VF having at most 4 queues.
The actual queue number per VF depends on the total number of pool, which is
determined by the max number of VF at PF initialization stage and the number of
queue specified in config:
1) If the max number of VF is in the range from 1 to 32, and the number of rxq is 4
('--rxq 4' in testpmd), then there is totally 32 pools(ETH_32_POOLS), and each VF
have 4 queues;
 
2)If the max number of VF is in the range from 33 to 64, and the number of rxq is 2
('--rxq 2' in testpmd), then there is totally 64 pools(ETH_64_POOLS), and each VF
have 2 queues;
 
On host, to enable VF RSS functionality, rx mq mode should be set as ETH_MQ_RX_VMDQ_RSS
or ETH_MQ_RX_RSS mode, and SRIOV mode should be activated(max_vfs >= 1).
It also needs config VF RSS information like hash function, RSS key, RSS key length.
 
The limitation for Niantic VF RSS is:
the hash and key are shared among PF and all VF, the RETA table with 128 entries are
also shared among PF and all VF. So it could not to provide a method to query the hash
and reta content per VF on guest, while, if possible, please query them on host(PF) for
the shared RETA information.
 
changes in v6:
  - refine codes and update message according to comments;

changes in v5:
  - Fix minor issue and some comments;
 
changes in v4:
  - Extract a function to remove embeded switch-case statement;
  - Check whether RX queue number is a valid one, otherwise return error;
  - Update the description a bit;
 
changes in v3:
  - More cleanup;
 
changes in v2:
  - Update the description;
  - Use receiving queue number('--rxq <q-num>') specified in config to determine the
    number of pool and the number of queue per VF;
 
changes in v1:
  - Config VF RSS;

Changchun Ouyang (6):
  ixgbe: Code cleanup
  ixgbe: Negotiate VF API version
  ixgbe: Get VF queue number
  ether: Check VMDq RSS mode
  ixgbe: Config VF RSS
  testpmd: Set Rx VMDq RSS mode

 app/test-pmd/testpmd.c              |  12 +++-
 lib/librte_ether/rte_ethdev.c       |  51 ++++++++++++--
 lib/librte_pmd_ixgbe/ixgbe_ethdev.h |   1 +
 lib/librte_pmd_ixgbe/ixgbe_pf.c     |  80 ++++++++++++++++++++-
 lib/librte_pmd_ixgbe/ixgbe_rxtx.c   | 137 ++++++++++++++++++++++++++++--------
 5 files changed, 245 insertions(+), 36 deletions(-)

-- 
1.8.4.2