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
/Any help ? let me know if any additional info. is required.
Thanks.
On Fri, Jun 13, 2014 at 1:17 AM, Raj Ravi <mekaviraj@gmail.com> wrote:
> 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
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
Also, in order to make ping work it is necessary to add static entry
for those IP addresses ?
Please let me know. Thanks,
On Fri, Jun 13, 2014 at 6:36 AM, Raj Ravi <mekaviraj@gmail.com> wrote:
> /Any help ? let me know if any additional info. is required.
>
> Thanks.
>
> On Fri, Jun 13, 2014 at 1:17 AM, Raj Ravi <mekaviraj@gmail.com> wrote:
>> 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
> -----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
>
>
> 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
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
>>
>>
>> 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
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