From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by dpdk.org (Postfix) with ESMTP id 8C036C57E for ; Thu, 25 Jun 2015 11:20:25 +0200 (CEST) Received: from orsmga002.jf.intel.com ([10.7.209.21]) by orsmga101.jf.intel.com with ESMTP; 25 Jun 2015 02:20:24 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.13,675,1427785200"; d="scan'208";a="752956255" Received: from irsmsx105.ger.corp.intel.com ([163.33.3.28]) by orsmga002.jf.intel.com with ESMTP; 25 Jun 2015 02:20:23 -0700 Received: from irsmsx102.ger.corp.intel.com ([169.254.2.117]) by irsmsx105.ger.corp.intel.com ([169.254.7.245]) with mapi id 14.03.0224.002; Thu, 25 Jun 2015 10:20:22 +0100 From: "Kulasek, TomaszX" To: "Xu, HuilongX" , "dev@dpdk.org" Thread-Topic: [dpdk-dev] [PATCH 0/8] Dynamic RSS Configuration for Bonding Thread-Index: AQHQneykndyoTOx3VUOBnwZ9kZr3cZ2oVrcAgBSjC3A= Date: Thu, 25 Jun 2015 09:20:21 +0000 Message-ID: <3042915272161B4EB253DA4D77EB373A019FA74B@IRSMSX102.ger.corp.intel.com> References: <1433329147-2840-1-git-send-email-tomaszx.kulasek@intel.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [163.33.239.182] Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Subject: Re: [dpdk-dev] [PATCH 0/8] Dynamic RSS Configuration for Bonding X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 25 Jun 2015 09:20:26 -0000 There's a bug in bonding itself, which prevents the bonding, made of Fortvi= lle NICs, start and is not related to Dynamic RSS Configuration. This problem solves separate patch "bond: fix check initial link status of = slave". -----Original Message----- From: Xu, HuilongX=20 Sent: Friday, June 12, 2015 07:36 To: Kulasek, TomaszX; dev@dpdk.org Subject: RE: [dpdk-dev] [PATCH 0/8] Dynamic RSS Configuration for Bonding Tested-by: huilong xu - Tested Commit: 1a1109404e702d3ad1ccc1033df55c59bec1f89a + PATCH - OS: Linux dpdk-fedora20 3.11.10-301.fc20.x86_64 - GCC: gcc version 4.8.3 20140624 (Red Hat 4.8.3-1) (GCC) - CPU: Intel(R) Xeon(R) CPU E5-2680 v2 @ 2.80GHz - NIC: Intel Corporation 82599ES 10-Gigabit SFI/SFP+ Network Connection [80= 86:10fb] - NIC: Intel Corporation Ethernet Controller XL710 for 40GbE QSFP+ [8086:15= 83] - Default x86_64-native-linuxapp-gcc configuration - Total 4 cases, 2 passed, 2 failed. Niantic NIC case all passed, but Fortv= ille NIC case all failed. First case: This is a unit test case, not need NIC 1. build dpdk driver and insmod driver 2. set 1024*2M hugepage 3. compile test app in app/test 4. run test ./test -c f -n 4=20 5. exec dynamic rss confif unit test link_bonding_rssconf_autotest 6. print "test ok" 7. this case passed Second case: This is a function test case, used Fortville NIC(8086:1583) 1. build dpdk driver and insmod driver 2. bind dpdk driver to Fortville nic 3. set 1024*2M hugepage 4. run test pmd ./x86_64-native-linuxapp-gcc/app/testpmd -c 0xff -n 4 --= -i --txqflags=3D0x2 --mbcache=3D128 --burst=3D32 --txfreet=3D32 --rxfreet= =3D64 --rxq=3D4 --txq=3D4 5. exec testpmd cmd a) create bonded device 0 0 b) add bonding slave 0 3 c) add bonding slave 1 3 d) port start 3 port can start, and link stats is down, so this case failed= . Thirdly case: This is a function test case, used Fortville NIC(8086:1583) 1. build dpdk driver and insmod driver 2. bind dpdk driver to Fortville nic 3. set 1024*2M hugepage 4. run test pmd ./x86_64-native-linuxapp-gcc/app/testpmd -c 0xff -n 4 --= -i --txqflags=3D0x2 --mbcache=3D128 --burst=3D32 --txfreet=3D32 --rxfreet= =3D64 --rxq=3D4 --txq=3D4 5. exec testpmd cmd a) create bonded device 0 0 b) add bonding slave 0 3 c) add bonding slave 1 3 d) port config all rss ip e) show port 3 rss-hash printf:=20 RSS functions: ipv4-frag ipv4-other ipv6-frag ipv6-other f) show port 0 rss-hash printf: RSS disabled Slave rss not enable, so this case failed Fourthly case: This is a function test case, used Niantic NIC(8086:10fb) 1. build dpdk driver and insmod driver 2. bind dpdk driver to Fortville nic 3. set 1024*2M hugepage 4. run test pmd ./x86_64-native-linuxapp-gcc/app/testpmd -c 0xff -n 4 --= -i --txqflags=3D0x2 --mbcache=3D128 --burst=3D32 --txfreet=3D32 --rxfreet= =3D64 --rxq=3D4 --txq=3D4 5. exec testpmd cmd a) create bonded device 0 0 b) add bonding slave 0 3 c) add bonding slave 1 3 d) port start 3 e) port stop all f) set verbose 8 g) set fwd rxonly h) set stat_qmap 3 0 0 i) set stat_qmap 3 1 1 =20 j) set stat_qmap 3 1 1 k) set stat_qmap 3 1 1 l) port config all rss ip m) port start all n)start 6. send 50 ip packages to salve 0 by ixia, the package confi= g as below a) dst mac: bond device (port 3) mac address. b) src mac: 00:00:00:12:34:56 c) package type:0800 e) dst ip: 192.168.1.1=20 f) src ip: from 192.168.1.2 to 192.168.1.51, one package,= this ip add 1 7. stop=20 Port 3 queue 0 received 9 packages Port 3 queue 1 received 9 packages Port 3 queue 2 received 16 packages Port 3 queue 3 received 16 packages 8. send 50 ip packages to slave 1 by ixia, the package conf= ig as same 9. stop and check port 3 received packages again Form slave 0 and slave 1 the rss are some, the test passed > -----Original Message----- > From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Tomasz Kulasek > Sent: Wednesday, June 03, 2015 6:59 PM > To: dev@dpdk.org > Subject: [dpdk-dev] [PATCH 0/8] Dynamic RSS Configuration for Bonding >=20 > OVERVIEW > -------- > 1) Setting .rxmode.mq_mode for bonding device to ETH_MQ_RX_RSS makes=20 > bonding device fully RSS-capable, so all slaves are synchronized with=20 > its configuration. > This mode is intended to provide RSS configuration as known from=20 > "dynamic RSS configuration for one port" and made slaves transparent=20 > for client application implementation. >=20 > 2) If .rxmode.mq_mode for bonding device isn't ETH_MQ_RX_RSS, slaves=20 > are not synchronized. That provides an ability to configure them=20 > manually. This mode may be useful when application wants to manage RSS=20 > in an unusual way and the consistency of RSS configuration for slaves=20 > isn't required. >=20 > Turning on/off RSS mode for slaves when bonding is started is not possibl= e. > Other RSS configuration is propagated over slaves, when bonding device=20 > API is used to do it. >=20 > Tomasz Kulasek (8): > bond: dynamic rss configuration > ring: dynamic rss configuration > test: dynamic rss configuration > bond: queue stats mapping > ring: queue stats mapping set dummy implementation > examples: dynamic rss configuration for bonding > doc: fixed spellings and typos > doc: dynamic rss configuration for bonding >=20 > app/test/Makefile | 1 + > app/test/test_link_bonding_rssconf.c | 674 ++++++++++++++ > .../prog_guide/link_bonding_poll_mode_drv_lib.rst | 40 +- > drivers/net/bonding/rte_eth_bond_api.c | 22 + > drivers/net/bonding/rte_eth_bond_pmd.c | 222 ++++- > drivers/net/bonding/rte_eth_bond_private.h | 11 + > drivers/net/ring/rte_eth_ring.c | 133 ++- > examples/bond_rss/Makefile | 59 ++ > examples/bond_rss/bondrss.c | 293 +++++++ > examples/bond_rss/bondrss.h | 163 ++++ > examples/bond_rss/config.c | 251 ++++++ > examples/bond_rss/ui.c | 915 > ++++++++++++++++++++ > 12 files changed, 2759 insertions(+), 25 deletions(-) create mode=20 > 100644 app/test/test_link_bonding_rssconf.c > create mode 100644 examples/bond_rss/Makefile create mode 100644=20 > examples/bond_rss/bondrss.c create mode 100644=20 > examples/bond_rss/bondrss.h create mode 100644=20 > examples/bond_rss/config.c create mode 100644 examples/bond_rss/ui.c >=20 > -- > 1.7.9.5