From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by dpdk.org (Postfix) with ESMTP id 7C701214A for ; Fri, 4 Nov 2016 07:36:34 +0100 (CET) Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by fmsmga101.fm.intel.com with ESMTP; 03 Nov 2016 23:36:33 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.31,442,1473145200"; d="scan'208";a="27278124" Received: from fmsmsx106.amr.corp.intel.com ([10.18.124.204]) by fmsmga006.fm.intel.com with ESMTP; 03 Nov 2016 23:36:33 -0700 Received: from shsmsx104.ccr.corp.intel.com (10.239.4.70) by FMSMSX106.amr.corp.intel.com (10.18.124.204) with Microsoft SMTP Server (TLS) id 14.3.248.2; Thu, 3 Nov 2016 23:36:32 -0700 Received: from shsmsx102.ccr.corp.intel.com ([169.254.2.206]) by SHSMSX104.ccr.corp.intel.com ([169.254.5.209]) with mapi id 14.03.0248.002; Fri, 4 Nov 2016 14:36:30 +0800 From: "Lu, Wenzhuo" To: Adrien Mazarguil CC: "Ananyev, Konstantin" , "Liu, Yu Y" , "Chen, WeichunX" , "Xu, HuilongX" , "dev@dpdk.org" Thread-Topic: dpdk16.11 RC2 package ipv4 reassembly example can't work Thread-Index: AdI04yz4VXwpza0CRuO91fxsoQ3DXQAAHmKg///sEoD//OsHEA== Date: Fri, 4 Nov 2016 06:36:30 +0000 Message-ID: <6A0DE07E22DDAD4C9103DF62FEBC090939341118@shsmsx102.ccr.corp.intel.com> References: <6A0DE07E22DDAD4C9103DF62FEBC09093934068B@shsmsx102.ccr.corp.intel.com> <20161102152111.GD5733@6wind.com> In-Reply-To: <20161102152111.GD5733@6wind.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.239.127.40] Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Subject: Re: [dpdk-dev] dpdk16.11 RC2 package ipv4 reassembly example can't work 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: Fri, 04 Nov 2016 06:36:35 -0000 Hi Adrien, > -----Original Message----- > From: Adrien Mazarguil [mailto:adrien.mazarguil@6wind.com] > Sent: Wednesday, November 2, 2016 11:21 PM > To: Lu, Wenzhuo > Cc: Ananyev, Konstantin; Liu, Yu Y; Chen, WeichunX; Xu, HuilongX; > dev@dpdk.org > Subject: Re: dpdk16.11 RC2 package ipv4 reassembly example can't work >=20 > Hi all, >=20 > On Wed, Nov 02, 2016 at 08:39:31AM +0000, Lu, Wenzhuo wrote: > > Correct the typo of receiver. > > > > Hi Adrien, > > The change from struct ip_frag_pkt pkt[0] to struct ip_frag_pkt pkt[] = will > make IP reassembly not working. I think this is not the root cause. Maybe > Konstantin can give us some idea. > > But I notice one thing, you change some from [0] to [], but others just= add > '__extension__'. I believe if you add '__extension__' for struct ip_frag_= pkt pkt[0], > we'll not hit this issue. Just curious why you use 2 ways to resolve the = same > problem. >=20 > I've used the __extension__ method whenever the C99 syntax could not work > due to invalid usage in the code, e.g. a flexible array cannot be the onl= y member > of a struct, you cannot make arrays out of structures that contain such f= ields, > while there is no such constraint with the GNU syntax. >=20 > For example see __extension__ uint8_t action_data[0] in struct > rte_pipeline_table_entry. The C99 could not be used because of > test_table_acl.c: >=20 > struct rte_pipeline_table_entry entries[5]; >=20 > If replacing ip_frag_pkt[] with __extension__ ip_frag_pkt pkt[0] in rte_i= p_frag.h > solves the issue, either some code is breaking some constraint somewhere = or > this change broke the ABI (unlikely considering a simple recompilation sh= ould > have taken care of the issue). I did not notice any change in sizeof(stru= ct > rte_ip_frag_tbl) nor offsetof(struct rte_ip_frag_tbl, pkt) on my setup, p= erhaps > the compilation flags used in your test affect them somehow. Thanks for your explanation. I also checked sizeof(struct rte_ip_frag_tbl).= I don't see any change either. >=20 > Can you confirm whether only reverting this particular field solves the i= ssue? Yes. ip_frag_pkt pkt[0] or even ip_frag_pkt pkt[1] can work but ip_frag_pkt= pkt[] cannot :( Do you like the idea of changing the ip_frag_pkt[] to __extension__ ip_frag= _pkt pkt[0]? >=20 > > From: Xu, HuilongX > > Sent: Wednesday, November 2, 2016 4:29 PM > > To: drien.mazarguil@6wind.com > > Cc: Ananyev, Konstantin; Liu, Yu Y; Chen, WeichunX; Lu, Wenzhuo; Xu, > > HuilongX > > Subject: dpdk16.11 RC2 package ipv4 reassembly example can't work > > > > Hi mazarguil, > > I find ip reassembly example can't work with dpdk16.11 rc2 package. > > But when I reset dpdk code before > 347a1e037fd323e6c2af55d17f7f0dc4bfe1d479, it works ok. > > Could you have time to check this issue, thanks a lot. > > Unzip password: intel123 > > > > Test detail info: > > > > os&kernel:4.2.3-300.fc23.x86_64 > > gcc version:5.3.1 20160406 (Red Hat 5.3.1-6) (GCC) > > NIC:03:00.0 Ethernet controller [0200]: Intel Corporation Ethernet > > Connection X552/X557-AT 10GBASE-T [8086:15ad] and > > 84:00.0 Ethernet controller [0200]: Intel Corporation 82599ES > > 10-Gigabit SFI/SFP+ Network Connection [8086:10fb] (rev 01) > > package: dpdk16.11.rc2.tar.gz > > test steps: > > 1. build and install dpdk > > 2. build ip_reassembly example > > 3. run ip_reassembly > > ./examples/ip_reassembly/build/ip_reassembly -c 0x2 -n 4 - -p 0x1 > > --maxflows=3D1024 --flowttl=3D10s 4. set tester port mtu ip link set mt= u > > 9000 dev ens160f1 5. setup scapy on tester and send packet scapy pcap > > =3D rdpcap("file.pcap") sendp(pcap, iface=3D"ens160f1") 6. sniff packet= on > > tester and check packet test result: > > dpdk16.04 reassembly packet successful but dpdk16.11 reassembly pack fa= iled. > > > > comments: > > file.pcap: send packets pcap file > > tcpdump_16.04_reassembly_successful.pcap: sniff packets by tcpdump on > 16.04. > > tcpdump_reset_code_reassembly_failed.pcap: sniff packets by tcpdump on > > 16.11 > > reset_code_reassembly_successful_.jpg: reassembly a packets successful > > detail info > > dpdk16.11_reassembly_failed.jpg: reassembly a packets failed detail > > info > > >=20 > -- > Adrien Mazarguil > 6WIND