DPDK patches and discussions
 help / color / mirror / Atom feed
* [dpdk-dev] l2fwd application - packets not getting forwarded
@ 2014-06-12 19:47 Raj Ravi
  2014-06-13  1:06 ` Raj Ravi
  0 siblings, 1 reply; 6+ messages in thread
From: Raj Ravi @ 2014-06-12 19:47 UTC (permalink / raw)
  To: dev

Hi,
I am trying to run l2fwd application in ixgbe based network adapter.

Followed the below steps:
1. Add hugepages in grub commandline. 1024 pages of 2 MB allocated.
2. verify hugepages support in /proc/meminfo.
3.mounted huge pages as below:
mount -t hugetlbfs nodev /mnt/huge

4. built DPDK environment for x86_64-default-linuxapp-gcc.
5. built l2fwd applicaition after exporting $RTE_SDK and  $RTE_TARGET.

I have three machines connected like this:

machine 1  <----> machine 2 <---> machine 3

machine 1 -> where pktgen runs to generate traffic

machine 2 -> l2fwd runs

machine 3 -> I should be able to observe packets here using tcpdump.??


First I run l2fwd like below (in machine 2):
./l2fwd -c f -n 4 -- -q 4 -p 3

Note port 1 and 2 are ixgbe port which are already bind to igb_uio driver.

Q1. My understanding is whatever traffic arrives in port 1 will be
forwarded to port 2.
and port 2 will be forwarded to port 1.
Please correct me here. ?

Q2. from machine 1 to machine 3 , ping should work??


In machine 1 , pktgen script is run as below :

==============
pktgen script used:
#!/bin/sh
# pktgen.conf -- Sample configuration for send on two devices on a UP system

#modprobe pktgen
#modprobe pktgen

function pgset() {
    local result

    echo $1 > $PGDEV
    result=`cat $PGDEV | fgrep "Result: OK:"`
    if [ "$result" = "" ]; then
         cat $PGDEV | fgrep Result:
    fi
}

function pg() {
    echo inject > $PGDEV
    cat $PGDEV
}

# On UP systems only one thread exists -- so just add devices
# We use eth0
echo "Adding devices to run".

PGDEV=/proc/net/pktgen/kpktgend_0
pgset "rem_device_all"
pgset "add_device eth0"
pgset "max_before_softirq 10000"

#pgset "add_device eth0"

# Configure the individual devices
echo "Configuring devices"

PGDEV=/proc/net/pktgen/eth0
#pgset "delay 0"
pgset "clone_skb 1000000"
pgset "pkt_size 60"
#pgset "min_pkt_size 60"
#pgset "max_pkt_size 60"
#pgset "min_pkt_size 92"
#pgset "max_pkt_size 92"


pgset "src_mac 70:71:BC:A8:5A:E8"
pgset "dst_mac 70:71:bc:dc:92:ab"

pgset "count 10000000"

# Time to run

PGDEV=/proc/net/pktgen/pgctrl

echo "Running... ctrl^C to stop"

pgset "start"

echo "Done"

cat /proc/net/pktgen/eth0
==============

Q3:  In above script, is it mandatory to mention both source and
destination macs ??

Also, destination mac should "machine 3" 's mac address??


Q4: With the above setting , I "CANNOT" see the stats getting
incremented at all ?? I fear the traffic is not passing through the
ixgbe ports at all.

Q5: I have tried using testpmd application, here, all the packets are
shown in RX errors.

RHEL7, 3.10.32 kernel used. DPDK 1.6.0-18.zip used.

l2fwd application log:
===========================
EAL: Detected lcore 0 as core 0 on socket 0
EAL: Detected lcore 1 as core 1 on socket 0
EAL: Detected lcore 2 as core 2 on socket 0
EAL: Detected lcore 3 as core 3 on socket 0
EAL: Detected lcore 4 as core 4 on socket 0
EAL: Detected lcore 5 as core 5 on socket 0
EAL: Detected lcore 6 as core 6 on socket 0
EAL: Detected lcore 7 as core 7 on socket 0
EAL: Detected lcore 8 as core 0 on socket 0
EAL: Detected lcore 9 as core 1 on socket 0
EAL: Detected lcore 10 as core 2 on socket 0
EAL: Detected lcore 11 as core 3 on socket 0
EAL: Detected lcore 12 as core 4 on socket 0
EAL: Detected lcore 13 as core 5 on socket 0
EAL: Detected lcore 14 as core 6 on socket 0
EAL: Detected lcore 15 as core 7 on socket 0
EAL: Support maximum 64 logical core(s) by configuration.
EAL: Detected 16 lcore(s)
EAL: Setting up memory...
EAL: Ask a virtual area of 0x200000 bytes
EAL: Virtual area found at 0x7f6e89400000 (size = 0x200000)
EAL: Ask a virtual area of 0x7fc00000 bytes
EAL: Virtual area found at 0x7f6e09600000 (size = 0x7fc00000)
EAL: Ask a virtual area of 0x200000 bytes
EAL: Virtual area found at 0x7f6e09200000 (size = 0x200000)
EAL: Requesting 1024 pages of size 2MB from socket 0
EAL: TSC frequency is ~2200002 KHz
EAL: Master core 2 is ready (tid=89bbd840)
EAL: PCI device 0000:01:00.0 on NUMA socket 0
EAL:   probe driver: 8086:1528 rte_ixgbe_pmd
EAL:   PCI memory mapped at 0x7f6e89987000
EAL:   PCI memory mapped at 0x7f6e89bcf000
EAL: PCI device 0000:01:00.1 on NUMA socket 0
EAL:   probe driver: 8086:1528 rte_ixgbe_pmd
EAL:   PCI memory mapped at 0x7f6e89787000
EAL:   PCI memory mapped at 0x7f6e89bcb000
EAL: PCI device 0000:06:00.0 on NUMA socket 0
EAL:   probe driver: 8086:1521 rte_igb_pmd
EAL:   PCI memory mapped at 0x7f6e89687000
EAL:   PCI memory mapped at 0x7f6e89bc7000
EAL: PCI device 0000:06:00.1 on NUMA socket 0
EAL:   probe driver: 8086:1521 rte_igb_pmd
EAL:   0000:06:00.1 not managed by UIO driver, skipping
Lcore 2: RX port 0
Lcore 2: RX port 1
Initializing port 0... done:
Port 0, MAC address: A0:36:9F:05:E8:2C

Initializing port 1... done:
Port 1, MAC address: A0:36:9F:05:E8:2E

Skipping disabled port 2

Checking link status.................................done
Port 0 Link Up - speed 1000 Mbps - full-duplex
Port 1 Link Up - speed 1000 Mbps - full-duplex
L2FWD: entering main loop on lcore 2
L2FWD:  -- lcoreid=2 portid=0
L2FWD:  -- lcoreid=2 portid=1
^[[2J^[[1;1H
Port statistics ====================================
Statistics for port 0 ------------------------------
Packets sent:                        0
Packets received:                    0
Packets dropped:                     0
Statistics for port 1 ------------------------------
Packets sent:                        0
Packets received:                    0
Packets dropped:                     0
Aggregate statistics ===============================
Total packets sent:                  0
Total packets received:              0
Total packets dropped:               0
====================================================
^[[2J^[[1;1H
Port statistics ====================================
Statistics for port 0 ------------------------------
Packets sent:                        0
Packets received:                    0
Packets dropped:                     0
Statistics for port 1 ------------------------------
Packets sent:                        0
Packets received:                    0
Packets dropped:                     0
Aggregate statistics ===============================
Total packets sent:                  0
Total packets received:              0
Total packets dropped:               0
====================================================
^[[2J^[[1;1H
Port statistics ====================================
Statistics for port 0 ------------------------------
Packets sent:                        0
Packets received:                    0
Packets dropped:                     0
Statistics for port 1 ------------------------------
Packets sent:                        0
Packets received:                    0
Packets dropped:                     0
Aggregate statistics ===============================
Total packets sent:                  0
Total packets received:              0
Total packets dropped:               0
====================================================
^[[2J^[[1;1H
Port statistics ====================================
Statistics for port 0 ------------------------------
Packets sent:                        0
Packets received:                    0
Packets dropped:                     0
Statistics for port 1 ------------------------------
Packets sent:                        0
Packets received:                    0
Packets dropped:                     0
Aggregate statistics ===============================
Total packets sent:                  0
Total packets received:              0
Total packets dropped:               0
====================================================
^[[2J^[[1;1H
Port statistics ====================================
Statistics for port 0 ------------------------------
Packets sent:                        0
Packets received:                    0
Packets dropped:                     0
Statistics for port 1 ------------------------------
Packets sent:                        0
Packets received:                    0
Packets dropped:                     0
Aggregate statistics ===============================
Total packets sent:                  0
Total packets received:              0
Total packets dropped:               0
====================================================
^[[2J^[[1;1H
Port statistics ====================================
Statistics for port 0 ------------------------------
Packets sent:                        0
Packets received:                    0
Packets dropped:                     0
Statistics for port 1 ------------------------------
Packets sent:                        0
Packets received:                    0
Packets dropped:                     0
Aggregate statistics ===============================
Total packets sent:                  0
Total packets received:              0
Total packets dropped:               0
====================================================
^[[2J^[[1;1H
Port statistics ====================================
Statistics for port 0 ------------------------------
Packets sent:                        0
Packets received:                    0
Packets dropped:                     0
Statistics for port 1 ------------------------------
Packets sent:                        0
=========================================
Please correct/ provide suggestion if any of my assumption is wrong.

Thanks,
Kavi

^ permalink raw reply	[flat|nested] 6+ messages in thread
* Re: [dpdk-dev] l2fwd application - packets not getting forwarded
@ 2014-06-22  6:09 Lu, Patrick
  0 siblings, 0 replies; 6+ messages in thread
From: Lu, Patrick @ 2014-06-22  6:09 UTC (permalink / raw)
  To: Raj Ravi; +Cc: dev

You can also pass iommu=pt, then you can keep intel_iommu=on and have dpdk co-exist on native and virtialized.

Patrick

On Jun 15, 2014 11:08 PM, Raj Ravi <mekaviraj@gmail.com> wrote:
I can get this working after some changes.

1. I have pci_assign=buses and intel_iommu=on present in grub.conf ,
Removed them
2. Before running l2fwd application, removed ixgbe driver. I was actually
getting some kernel errors without these steps, while running l2fwd application.

Now, I can see the packets getting forwarded using l2fwd application and able
to observe the packets using tcpdump.

Yes, as you said, ping is not getting reply back. but it is getting forwarded to
the other end ( observed using tcpdump).

Thanks!


On Fri, Jun 13, 2014 at 10:39 PM, Richardson, Bruce
<bruce.richardson@intel.com> wrote:
>> -----Original Message-----
>> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Raj Ravi
>> Sent: Thursday, June 12, 2014 6:35 PM
>> To: dev@dpdk.org
>> Subject: Re: [dpdk-dev] l2fwd application - packets not getting forwarded
>>
>> Is there any requirement to modify l2fwd appliucation with updated mac
>> address to make it work ?
>>
>> In one example, it is mentioned something similar.
>> www.slideshare.net/hisaki/intel-dpdk-step-by-step-instructions<http://www.slideshare.net/hisaki/intel-dpdk-step-by-step-instructions>
>>
>>
>> Also, in order to make ping work it is necessary to add static entry
>> for those IP addresses ?
>>
>> Please let me know. Thanks,
>>
> Hi,
>
> In terms of using ping: the Intel DPDK works below the IP level, and the basic l2fwd sample app has no concept of an IP address or what an ICMP ping message is, so you won't get a proper ping reply out of the application as there is no IP stack to reply. What it will do, its take the ping message and forward it out a different port.
>
> As for the more basic question of receiving packets on the NIC, normally, yes, you would need to set the destination mac address of your packets to match that of the NIC port, but in this case I believe the l2fwd app switches the port to promiscuous mode so it should receive all packets sent to it. [Other sample apps often need a "-P" flag passed to them to do this.]
>
> Regards,
> /Bruce

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2014-06-22  6:09 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-06-12 19:47 [dpdk-dev] l2fwd application - packets not getting forwarded Raj Ravi
2014-06-13  1:06 ` Raj Ravi
2014-06-13  1:34   ` Raj Ravi
2014-06-13 17:09     ` Richardson, Bruce
2014-06-16  6:07       ` Raj Ravi
2014-06-22  6:09 Lu, Patrick

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).