From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by dpdk.org (Postfix) with ESMTP id 07C94E6D for ; Wed, 20 Jul 2016 12:17:30 +0200 (CEST) Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by orsmga102.jf.intel.com with ESMTP; 20 Jul 2016 03:17:30 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.28,393,1464678000"; d="scan'208,217";a="1010415974" Received: from irsmsx106.ger.corp.intel.com ([163.33.3.31]) by fmsmga001.fm.intel.com with ESMTP; 20 Jul 2016 03:17:29 -0700 Received: from irsmsx109.ger.corp.intel.com ([169.254.13.193]) by IRSMSX106.ger.corp.intel.com ([169.254.8.145]) with mapi id 14.03.0248.002; Wed, 20 Jul 2016 11:17:27 +0100 From: "Pattan, Reshma" To: Raja Jayapal , "De Lara Guarch, Pablo" CC: "users@dpdk.org" Thread-Topic: [dpdk-dev] capture packets on VM Thread-Index: AQHR3l3PBM/NNSIisUSz4M/pXmgUeKAZg6mggAYS8ACAAC/NoIABBq6AgABNAEA= Date: Wed, 20 Jul 2016 10:17:27 +0000 Message-ID: <3AEA2BF9852C6F48A459DA490692831F0105B038@IRSMSX109.ger.corp.intel.com> References: <3AEA2BF9852C6F48A459DA490692831F0105ABD7@IRSMSX109.ger.corp.intel.com>, <3AEA2BF9852C6F48A459DA490692831F0105A1B4@IRSMSX109.ger.corp.intel.com>, In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiZjBiNWViMGMtYjVmYS00ZDc3LWFhYzgtNzVkMWI4NjZmMDAyIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX0lDIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE1LjkuNi42IiwiVHJ1c3RlZExhYmVsSGFzaCI6IlhCVGhJSE9oZ0JZWVpRaHhHZ0xTODFFcVhQSjhyT1VIQjcwVkI5ZndUMjg9In0= x-ctpclassification: CTP_IC x-originating-ip: [163.33.239.182] MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable X-Content-Filtered-By: Mailman/MimeDel 2.1.15 Subject: Re: [dpdk-users] [dpdk-dev] capture packets on VM X-BeenThere: users@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: usage discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 Jul 2016 10:17:32 -0000 Hi Raja, You can use l3fwd to forward packets to specific ports based on destinatio= n ip. L3fwd uses LPM lookup to do destination based forwarding. As described in b= elow paragraph from the given link, you need to add routing entry for the destinations ips of your interest and= compile the code. Place where routing entry should go is in below strut from file dpdk/exampl= es/l3fwd/ l3fwd_lpm.c static struct ipv4_l3fwd_lpm_route ipv4_l3fwd_lpm_route_array[] =3D { {IPv4(1, 1, 1, 0), 24, 0}, {IPv4(2, 1, 1, 0), 24, 1}, {IPv4(3, 1, 1, 0), 24, 2}, {IPv4(4, 1, 1, 0), 24, 3}, {IPv4(5, 1, 1, 0), 24, 4}, {IPv4(6, 1, 1, 0), 24, 5}, {IPv4(7, 1, 1, 0), 24, 6}, {IPv4(8, 1, 1, 0), 24, 7}, }; http://dpdk.org/doc/guides-16.04/sample_app_ug/l3_forward.html "The LPM lookup key is represented by the Destination IP Address field read= from the input packet. The ID of the output interface for the input packet is the next hop returne= d by the LPM lookup. The set of LPM rules used by the application is statically configured and l= oaded into the LPM object at initialization time." @Pablo: Do you know how MAC based forwarding can be done using L2? Thanks, Reshma From: Raja Jayapal [mailto:raja.jayapal@tcs.com] Sent: Wednesday, July 20, 2016 7:10 AM To: Pattan, Reshma Cc: users@dpdk.org; De Lara Guarch, Pablo Subject: RE: [dpdk-dev] capture packets on VM Hi Reshma/All, Please find the "show config fwd" output below. testpmd> show config fwd Warning! Cannot handle an odd number of ports with the current port topolog= y. Configuration must be changed to have an even number of ports, or relaun= ch application with --port-topology=3Dchained io packet forwarding - ports=3D3 - cores=3D1 - streams=3D3 - NUMA support d= isabled, MP over anonymous pages disabled Logical Core 1 (socket 0) forwards packets on 3 streams: RX P=3D0/Q=3D0 (socket 0) -> TX P=3D2/Q=3D0 (socket 0) peer=3D02:00:00:00= :00:02 RX P=3D1/Q=3D0 (socket 0) -> TX P=3D0/Q=3D0 (socket 0) peer=3D02:00:00:00= :00:00 RX P=3D2/Q=3D0 (socket 0) -> TX P=3D0/Q=3D0 (socket 0) peer=3D02:00:00:00= :00:00 As described above, i have modified the topology to have even number of por= ts. testpmd> show config fwd io packet forwarding - ports=3D4 - cores=3D1 - streams=3D4 - NUMA support d= isabled, MP over anonymous pages disabled Logical Core 1 (socket 0) forwards packets on 4 streams: RX P=3D0/Q=3D0 (socket 0) -> TX P=3D1/Q=3D0 (socket 0) peer=3D02:00:00:00= :00:01 RX P=3D1/Q=3D0 (socket 0) -> TX P=3D0/Q=3D0 (socket 0) peer=3D02:00:00:00= :00:00 RX P=3D2/Q=3D0 (socket 0) -> TX P=3D3/Q=3D0 (socket 0) peer=3D02:00:00:00= :00:03 RX P=3D3/Q=3D0 (socket 0) -> TX P=3D2/Q=3D0 (socket 0) peer=3D02:00:00:00= :00:02 I could confirm that the packet is getting forwarded as per the config and = setting the IP and MAC in packet generator does not take effect. In testpmd app, whatever the MAC/IP is configured on traffic generator, the= packets are forwaded in adjacent ports. If i want to forward the packet based on IP&MAC, will it be achieved by run= ning l2fwd or l3fwd ? Kindly suggest. Thanks, Raja -----"Pattan, Reshma" > wrote: ----- To: Raja Jayapal > From: "Pattan, Reshma" > Date: 07/19/2016 07:12PM Cc: "users@dpdk.org" >, "De Lara Guarch, Pablo" > Subject: RE: [dpdk-dev] capture packets on VM Hi Raja, Since this is a usability question this should be discussed under users@dpd= k.org mailing list. Hence I removed dev@dpdk.org. Ya actually packets received from port 0 should be transmitted on to port1 = and packets received from port1 should go to port2. Can you paste o/p of "show config fwd" and also interpret if traffic on y= our board is flowing as per existing flow rules. Ex: testpmd> show config fwd io packet forwarding - ports=3D2 - cores=3D1 - streams=3D2 - NUMA support d= isabled, MP over anonymous pages disabled Logical Core 5 (socket 0) forwards packets on 2 streams: RX P=3D0/Q=3D0 (socket 0) -> TX P=3D1/Q=3D0 (socket 0) peer=3D02:00:00:00= :00:01 =3D=3D> this means, Streams received on port 0 will be sent on to p= ort1 . RX P=3D1/Q=3D0 (socket 0) -> TX P=3D0/Q=3D0 (socket 0) peer=3D02:00:00:00= :00:00 =3D=3D> this means, Streams received on port1 will be sent onto port= 0. Thanks, Reshma From: Raja Jayapal [mailto:raja.jayapal@tcs.com] Sent: Tuesday, July 19, 2016 12:38 PM To: Pattan, Reshma = > Cc: dev@dpdk.org Subject: RE: [dpdk-dev] capture packets on VM Hi Reshma, Thanks for your information. I have been trying to run the testpmd app and would like to get some idea o= n the packet flow in testpmd. br0 -----vnet0----- (port0)VM NIC br1------vnet1------(port1)VM NIC br2------vnet2------(port2)VM NIC br0 IP and MAC: fe:54:00:0d:af:af - 192.168.100.10 br1 IP and MAC: fe:54:00:4e:5b:df - 192.168.100.20 br2 IP and MAC: fe:54:00:93:78:6d - 192.168.100.30 Ran testpmd application on VM and sending packets from Host using packeth. Using PackETH generator, sent traffic from br0 destined to br1(modified the= source / destination MAC and IP in packeth tool), but i could see that the= packets are received on port0 and transmitted on port2. Sending packets from br0 to br1: ./testpmd -c 3 -n 4 -- -i --total-num-mbufs=3D3000 testpmd> show port stats all ######################## NIC statistics for port 0 #####################= ### RX-packets: 4 RX-missed: 0 RX-bytes: 0 RX-errors: 0 RX-nombuf: 0 TX-packets: 0 TX-errors: 0 TX-bytes: 0 #########################################################################= ### ######################## NIC statistics for port 1 #####################= ### RX-packets: 0 RX-missed: 0 RX-bytes: 0 RX-errors: 0 RX-nombuf: 0 TX-packets: 0 TX-errors: 0 TX-bytes: 0 #########################################################################= ### ######################## NIC statistics for port 2 #####################= ### RX-packets: 0 RX-missed: 0 RX-bytes: 0 RX-errors: 0 RX-nombuf: 0 TX-packets: 4 TX-errors: 0 TX-bytes: 0 #########################################################################= ### testpmd> Second time, sent traffic from br1 to br2, but the packets are received on = port2 and transmitted on port0. Sending packets from br1 to br2: testpmd> show port stats all ######################## NIC statistics for port 0 #####################= ### RX-packets: 0 RX-missed: 0 RX-bytes: 0 RX-errors: 0 RX-nombuf: 0 TX-packets: 6 TX-errors: 0 TX-bytes: 0 #########################################################################= ### ######################## NIC statistics for port 1 #####################= ### RX-packets: 6 RX-missed: 0 RX-bytes: 0 RX-errors: 0 RX-nombuf: 0 TX-packets: 0 TX-errors: 0 TX-bytes: 0 #########################################################################= ### ######################## NIC statistics for port 2 #####################= ### RX-packets: 0 RX-missed: 0 RX-bytes: 0 RX-errors: 0 RX-nombuf: 0 TX-packets: 0 TX-errors: 0 TX-bytes: 0 #########################################################################= ### testpmd> Could you please suggest whether this is expected behaviour? Also suggest if any configuarion needs to be done to make the flow to work = correctly. Thanks, Raja -----"Pattan, Reshma" > wrote: ----- To: Raja Jayapal > From: "Pattan, Reshma" > Date: 07/15/2016 07:33PM Cc: "dev@dpdk.org" > Subject: RE: [dpdk-dev] capture packets on VM > -----Original Message----- > From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Raja Jayapal > Sent: Friday, July 15, 2016 6:55 AM > To: dev@dpdk.org > Subject: [dpdk-dev] capture packets on VM > > Hi All, > > I have installed dpdk on VM and would like to know how to capture the pac= kets > on dpdk ports. > I am sending traffic from host and want to know how to confirm whether t= he > packets are flowing via dpdk ports. > I tried with tcpdump and wireshark but could not capture the packets insi= de VM. > setup : bridge1(Host)------- VM(Guest with DPDK) ----- bridge2(Host) > Hi, On DPDK you can capture packets with app/pdump/ tool. This tool is availabl= e for use from 16.07RC1. What you can do is run testpmd and see if packets are seen in testpmd, that= confirms if packets are landing on dpdk ports or not. If you also want to capture packet for analysis, you need to run app/pdump/= tool along with testpmd. The pdump tool captures the packet to pcap file, so you can use tcpdump -ni= to view the packets. More about the tool usage can be found under doc/guides/sample_app_ug/pdump= .rst Let me know if you need further help on this. Thanks, Reshma =3D=3D=3D=3D=3D-----=3D=3D=3D=3D=3D-----=3D=3D=3D=3D=3D Notice: The information contained in this e-mail message and/or attachments to it may contain confidential or privileged information. If you are not the intended recipient, any dissemination, use, review, distribution, printing or copying of the information contained in this e-mail message and/or attachments to it are strictly prohibited. If you have received this communication in error, please notify us by reply e-mail or telephone and immediately and permanently delete the message and any attachments. Thank you