My DPDK setup shell script is as follows.
------------------------------------------------------------------------


#! /bin/bash
ifconfig -a > ifconfig.out.txt
sudo ifconfig p785p1 down
sudo ifconfig p785p2 down

sudo ifconfig p787p1 down
sudo ifconfig p787p2 down

setup_target()
{
        option=$1
        export RTE_TARGET=${TARGETS[option]}

        compiler=${RTE_TARGET##*-}
        if [ "$compiler" == "icc" ] ; then
                platform=${RTE_TARGET%%-*}
                if [ "$platform" == "x86_64" ] ; then
                        setup_icc intel64
                else
                        setup_icc ia32
                fi
        fi
        if [ "$QUIT" == "0" ] ; then
                make install T=${RTE_TARGET}
        fi
        echo 
"------------------------------------------------------------------------------"
        echo " RTE_TARGET exported as $RTE_TARGET"
        echo 
"------------------------------------------------------------------------------"
}

load_igb_uio_module()
{
        if [ ! -f $RTE_SDK/$RTE_TARGET/kmod/igb_uio.ko ];then
                echo "## ERROR: Target does not have the DPDK UIO Kernel 
Module."
                echo "       To fix, please try to rebuild target."
                return
        fi

        remove_igb_uio_module

        /sbin/lsmod | grep -s uio > /dev/null
        if [ $? -ne 0 ] ; then
                if [ -f /lib/modules/$(uname -r)/kernel/drivers/uio/uio.ko ] ; 
then
                        echo "Loading uio module"
                        sudo /sbin/modprobe uio
                        sudo /sbin/modprobe vfio-pci
                fi
        fi

        # UIO may be compiled into kernel, so it may not be an error if it can't
        # be loaded.

        echo "Loading DPDK UIO module"
        sudo /sbin/insmod $RTE_SDK/$RTE_TARGET/kmod/igb_uio.ko
        if [ $? -ne 0 ] ; then
                echo "## ERROR: Could not load kmod/igb_uio.ko."
                quit
        fi
}
#
# Unloads igb_uio.ko.
#
remove_igb_uio_module()
{
        echo "Unloading any existing DPDK UIO module"
        /sbin/lsmod | grep -s igb_uio > /dev/null
        if [ $? -eq 0 ] ; then
                sudo /sbin/rmmod igb_uio
        fi
}

create_mnt_huge()
{
        echo "Creating /mnt/huge and mounting as hugetlbfs"
        sudo mkdir -p /mnt/huge

        grep -s '/mnt/huge' /proc/mounts > /dev/null
        if [ $? -ne 0 ] ; then
                sudo mount -t hugetlbfs nodev /mnt/huge
        fi
}
set_non_numa_pages()
{
        clear_huge_pages

        echo ""
#        echo "  Input the number of 2MB pages"
#        echo "  Example: to have 128MB of hugepages available, enter '64' to"
#        echo "  reserve 64 * 2MB pages"
#        echo -n "Number of pages: "
#        read Pages
#        echo "echo $Pages > 
/sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages" > .echo_tmp

        echo " Reserve 2048 * 2MB pages"
        echo "echo 2048 > 
/sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages" > .echo_tmp

        echo "Reserving hugepages"
        sudo sh .echo_tmp
        rm -f .echo_tmp

        create_mnt_huge
}

#
# Creates hugepages on specific NUMA nodes.
#
set_numa_pages()
{
        clear_huge_pages

        echo ""
        echo "  Input the number of 2MB pages for each node"
        echo "  Example: to have 128MB of hugepages available per node,"
        echo "  enter '64' to reserve 64 * 2MB pages on each node"

        echo > .echo_tmp
        for d in /sys/devices/system/node/node? ; do
                node=$(basename $d)
                echo -n "Number of pages for $node: "
#                read Pages
#                echo "echo $Pages > 
$d/hugepages/hugepages-2048kB/nr_hugepages" >> .echo_tmp
                echo "echo 2048 > 
$d/hugepages/hugepages-2048kB/nr_hugepages" >> .echo_tmp
        done
        echo "Reserving hugepages"
        sudo sh .echo_tmp
        rm -f .echo_tmp

        create_mnt_huge
}

#
# Removes hugepage filesystem.
#
remove_mnt_huge()
{
        echo "Unmounting /mnt/huge and removing directory"
        grep -s '/mnt/huge' /proc/mounts > /dev/null
        if [ $? -eq 0 ] ; then
                sudo umount /mnt/huge
        fi

        if [ -d /mnt/huge ] ; then
                sudo rm -R /mnt/huge
        fi
}
#
# Removes all reserved hugepages.
#
clear_huge_pages()
{
        echo > .echo_tmp
        for d in /sys/devices/system/node/node? ; do
                echo "echo 0 > $d/hugepages/hugepages-2048kB/nr_hugepages" 
>> .echo_tmp
        done
        echo "Removing currently reserved hugepages"
        sudo sh .echo_tmp
        rm -f .echo_tmp

        remove_mnt_huge
}
show_nics()
{
        if  /sbin/lsmod  | grep -q igb_uio ; then
                ${RTE_SDK}/tools/dpdk_nic_bind.py --status
        else
                echo "# Please load the 'igb_uio' kernel module before querying 
or "
                echo "# adjusting NIC device bindings"
        fi
}
bind_nics()
{
        if  /sbin/lsmod  | grep -q igb_uio ; then
                ${RTE_SDK}/tools/dpdk_nic_bind.py --status
                echo ""
#                echo -n "Enter PCI address of device to bind to IGB UIO 
driver: "
#                read PCI_PATH
                echo "Bind NICs to DPDK"
                sudo ${RTE_SDK}/tools/dpdk_nic_bind.py -b igb_uio 0000:09:00.0 
&& echo "OK"
                sudo ${RTE_SDK}/tools/dpdk_nic_bind.py -b igb_uio 0000:09:00.1 
&& echo "OK"

                sudo ${RTE_SDK}/tools/dpdk_nic_bind.py -b igb_uio 0000:81:00.0 
&& echo "OK"
                sudo ${RTE_SDK}/tools/dpdk_nic_bind.py -b igb_uio 0000:81:00.1 
&& echo "OK"
        else
                echo "# Please load the 'igb_uio' kernel module before querying 
or "
                echo "# adjusting NIC device bindings"
        fi
}

# setup environment &  build DPDK 

# export DPDK_DIR=/home/stack/Pktgen-DPDK-master/dpdk
# export RTE_SDK=/home/stack/Pktgen-DPDK-master/dpdk
# export RTE_TARGET=x86_64-pktgen-linuxapp-gcc
export DPDK_DIR=/home/stack/dpdk/
export RTE_SDK=/home/stack/dpdk/
export RTE_TARGET=x86_64-native-linuxapp-gcc

# setup environment &  build DPDK 

#setup_target
echo 
"---------------------------------------------------------------------------------------------"
echo "Build DPDK module"
echo 
"---------------------------------------------------------------------------------------------"
cd $DPDK_DIR
make install T=$RTE_TARGET

# Setup linuxapp environment

echo 
"---------------------------------------------------------------------------------------------"
echo "Insert IGB UIO module"
echo 
"---------------------------------------------------------------------------------------------"
load_igb_uio_module
echo 
"---------------------------------------------------------------------------------------------"
echo "Setup hugepage mappings for NUMA systems"
echo 
"---------------------------------------------------------------------------------------------"
# set_non_numa_pages
set_numa_pages
#echo "Display current Ethernet device settings"
#show_nics
echo 
"---------------------------------------------------------------------------------------------"
echo "Bind current Ethernet device to DPDK"
echo 
"---------------------------------------------------------------------------------------------"
bind_nics
show_nics




-----Original Message-----
From: "???"<pnk...@naver.com> 
To: <dev at dpdk.org>; 
Cc: 
Sent: 2015-10-14 (?) 10:29:22
Subject: [dpdk-dev]  I have a problem in setting up DPDK 2.1.0 in Fedora OS 
release 20 (Heisenbug). I cannot r

Dear DPDK experts.

Thank you very much for your best great efforts and precious answers.

I have a problem in setting up DPDK 2.1.0 in Fedora OS release 20 (Heisenbug).

My problem is that I cannot receive any traffics in test-pmd.

There are 2 nics (2 port NIC), I connected port 0 to port 1(loopback), port 2 
to port3 (loopback).

I attached details of my setup. I also attached my DPDK setup shell script.

Did I miss something? or Is there any my mistakes?


I will really appreciate if you check them and I can be given any advice and 
answers.


It is important for me and urgent job.

Thank you very much.

Sincerely Yours,

Ick-Sung Choi.


* test-pmd log.


$ sudo ./build/app/testpmd -c 0xF -n 4 -- -i --portmask=0xF --nb-cores=3

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 8 on socket 0
EAL: Detected lcore 6 as core 9 on socket 0
EAL: Detected lcore 7 as core 10 on socket 0
EAL: Detected lcore 8 as core 11 on socket 0
EAL: Detected lcore 9 as core 12 on socket 0
EAL: Detected lcore 10 as core 0 on socket 1
EAL: Detected lcore 11 as core 1 on socket 1
EAL: Detected lcore 12 as core 2 on socket 1
EAL: Detected lcore 13 as core 3 on socket 1
EAL: Detected lcore 14 as core 4 on socket 1
EAL: Detected lcore 15 as core 8 on socket 1
EAL: Detected lcore 16 as core 9 on socket 1
EAL: Detected lcore 17 as core 10 on socket 1
EAL: Detected lcore 18 as core 11 on socket 1
EAL: Detected lcore 19 as core 12 on socket 1
EAL: Support maximum 128 logical core(s) by configuration.
EAL: Detected 20 lcore(s)
EAL: Setting up physically contiguous memory...
EAL: Ask a virtual area of 0x1000000 bytes
EAL: Virtual area found at 0x7f85eb000000 (size = 0x1000000)
EAL: Ask a virtual area of 0x3800000 bytes
EAL: Virtual area found at 0x7f85e7600000 (size = 0x3800000)
EAL: Ask a virtual area of 0x200000 bytes
EAL: Virtual area found at 0x7f85e7200000 (size = 0x200000)
EAL: Ask a virtual area of 0x200000 bytes
EAL: Virtual area found at 0x7f85e6e00000 (size = 0x200000)
EAL: Ask a virtual area of 0xfb400000 bytes
EAL: Virtual area found at 0x7f84eb800000 (size = 0xfb400000)
EAL: Ask a virtual area of 0xffc00000 bytes
EAL: Virtual area found at 0x7f83eba00000 (size = 0xffc00000)
EAL: Ask a virtual area of 0x200000 bytes
EAL: Virtual area found at 0x7f83eb600000 (size = 0x200000)
EAL: Ask a virtual area of 0x200000 bytes
EAL: Virtual area found at 0x7f83eb200000 (size = 0x200000)
EAL: Requesting 2048 pages of size 2MB from socket 0
EAL: Requesting 2048 pages of size 2MB from socket 1
EAL: TSC frequency is ~2793267 KHz
EAL: Master lcore 0 is ready (tid=ee4a0940;cpuset=[0])
EAL: lcore 3 is ready (tid=ea1cf700;cpuset=[3])
EAL: lcore 2 is ready (tid=ecc69700;cpuset=[2])
EAL: lcore 1 is ready (tid=ed46a700;cpuset=[1])
EAL: PCI device 0000:04:00.0 on NUMA socket 0
EAL:   probe driver: 8086:1521 rte_igb_pmd
EAL:   Not managed by a supported kernel driver, skipped
EAL: PCI device 0000:04:00.1 on NUMA socket 0
EAL:   probe driver: 8086:1521 rte_igb_pmd
EAL:   Not managed by a supported kernel driver, skipped
EAL: PCI device 0000:04:00.2 on NUMA socket 0
EAL:   probe driver: 8086:1521 rte_igb_pmd
EAL:   Not managed by a supported kernel driver, skipped
EAL: PCI device 0000:04:00.3 on NUMA socket 0
EAL:   probe driver: 8086:1521 rte_igb_pmd
EAL:   Not managed by a supported kernel driver, skipped
EAL: PCI device 0000:09:00.0 on NUMA socket 0
EAL:   probe driver: 8086:10fb rte_ixgbe_pmd
EAL:   PCI memory mapped at 0x7f85ec000000
EAL:   PCI memory mapped at 0x7f85ec080000
PMD: eth_ixgbe_dev_init(): MAC: 2, PHY: 18, SFP+: 5
PMD: eth_ixgbe_dev_init(): port 0 vendorID=0x8086 deviceID=0x10fb
EAL: PCI device 0000:09:00.1 on NUMA socket 0
EAL:   probe driver: 8086:10fb rte_ixgbe_pmd
EAL:   PCI memory mapped at 0x7f85ec084000
EAL:   PCI memory mapped at 0x7f85ec104000
PMD: eth_ixgbe_dev_init(): MAC: 2, PHY: 18, SFP+: 6
PMD: eth_ixgbe_dev_init(): port 1 vendorID=0x8086 deviceID=0x10fb
EAL: PCI device 0000:81:00.0 on NUMA socket 1
EAL:   probe driver: 8086:10fb rte_ixgbe_pmd
EAL:   PCI memory mapped at 0x7f85ec108000
EAL:   PCI memory mapped at 0x7f85ec188000
PMD: eth_ixgbe_dev_init(): MAC: 2, PHY: 18, SFP+: 5
PMD: eth_ixgbe_dev_init(): port 2 vendorID=0x8086 deviceID=0x10fb
EAL: PCI device 0000:81:00.1 on NUMA socket 1
EAL:   probe driver: 8086:10fb rte_ixgbe_pmd
EAL:   PCI memory mapped at 0x7f85ec18c000
EAL:   PCI memory mapped at 0x7f85ec20c000
PMD: eth_ixgbe_dev_init(): MAC: 2, PHY: 18, SFP+: 6
PMD: eth_ixgbe_dev_init(): port 3 vendorID=0x8086 deviceID=0x10fb
Interactive-mode selected
Configuring Port 0 (socket 0)
PMD: ixgbe_dev_tx_queue_setup(): sw_ring=0x7f85e6f8a5c0 hw_ring=0x7f85e6f8c600 
dma_addr=0x6c158c600
PMD: ixgbe_set_tx_function(): Using simple tx code path
PMD: ixgbe_set_tx_function(): Vector tx enabled.
PMD: ixgbe_dev_rx_queue_setup(): sw_ring=0x7f85e6f79cc0 
sw_sc_ring=0x7f85e6f79780 hw_ring=0x7f85e6f7a200 dma_addr=0x6c157a200
PMD: ixgbe_set_rx_function(): Vector rx enabled, please make sure RX burst size 
no less than 32.
Port 0: 90:E2:BA:8B:BF:C0
Configuring Port 1 (socket 0)
PMD: ixgbe_dev_tx_queue_setup(): sw_ring=0x7f85e6f674c0 hw_ring=0x7f85e6f69500 
dma_addr=0x6c1569500
PMD: ixgbe_set_tx_function(): Using simple tx code path
PMD: ixgbe_set_tx_function(): Vector tx enabled.
PMD: ixgbe_dev_rx_queue_setup(): sw_ring=0x7f85e6f56bc0 
sw_sc_ring=0x7f85e6f56680 hw_ring=0x7f85e6f57100 dma_addr=0x6c1557100
PMD: ixgbe_set_rx_function(): Vector rx enabled, please make sure RX burst size 
no less than 32.
Port 1: 90:E2:BA:8B:BF:C1
Configuring Port 2 (socket 0)
PMD: ixgbe_dev_tx_queue_setup(): sw_ring=0x7f85e6f443c0 hw_ring=0x7f85e6f46400 
dma_addr=0x6c1546400
PMD: ixgbe_set_tx_function(): Using simple tx code path
PMD: ixgbe_set_tx_function(): Vector tx enabled.
PMD: ixgbe_dev_rx_queue_setup(): sw_ring=0x7f85e6f33ac0 
sw_sc_ring=0x7f85e6f33580 hw_ring=0x7f85e6f34000 dma_addr=0x6c1534000
PMD: ixgbe_set_rx_function(): Vector rx enabled, please make sure RX burst size 
no less than 32.
Port 2: 90:E2:BA:8B:B8:CC
Configuring Port 3 (socket 0)
PMD: ixgbe_dev_tx_queue_setup(): sw_ring=0x7f85e6f212c0 hw_ring=0x7f85e6f23300 
dma_addr=0x6c1523300
PMD: ixgbe_set_tx_function(): Using simple tx code path
PMD: ixgbe_set_tx_function(): Vector tx enabled.
PMD: ixgbe_dev_rx_queue_setup(): sw_ring=0x7f85e6f109c0 
sw_sc_ring=0x7f85e6f10480 hw_ring=0x7f85e6f10f00 dma_addr=0x6c1510f00
PMD: ixgbe_set_rx_function(): Vector rx enabled, please make sure RX burst size 
no less than 32.
Port 3: 90:E2:BA:8B:B8:CD
Checking link statuses...
Port 0 Link Up - speed 10000 Mbps - full-duplex
Port 1 Link Up - speed 10000 Mbps - full-duplex
Port 2 Link Up - speed 10000 Mbps - full-duplex
Port 3 Link Up - speed 10000 Mbps - full-duplex
Done


testpmd> show port stats all
  ######################## NIC statistics for port 0  ########################
  RX-packets: 0          RX-missed: 0          RX-bytes:  0
  RX-badcrc:  0          RX-badlen: 0          RX-errors: 5
  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-badcrc:  0          RX-badlen: 0          RX-errors: 3
  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-badcrc:  0          RX-badlen: 0          RX-errors: 4
  RX-nombuf:  0         
  TX-packets: 0          TX-errors: 0          TX-bytes:  0
  ############################################################################

  ######################## NIC statistics for port 3  ########################
  RX-packets: 0          RX-missed: 0          RX-bytes:  0
  RX-badcrc:  0          RX-badlen: 0          RX-errors: 3
  RX-nombuf:  0         
  TX-packets: 0          TX-errors: 0          TX-bytes:  0
  ############################################################################


testpmd> start tx_first  io packet forwarding - CRC stripping disabled - 
packets/burst=32
  nb forwarding cores=3 - nb forwarding ports=4
  RX queues=1 - RX desc=128 - RX free threshold=32
  RX threshold registers: pthresh=8 hthresh=8 wthresh=0
  TX queues=1 - TX desc=512 - TX free threshold=32
  TX threshold registers: pthresh=32 hthresh=0 wthresh=0
  TX RS bit threshold=32 - TXQ flags=0xf01


testpmd> 
testpmd> 
testpmd> 
testpmd> stop

Telling cores to stop...
Waiting for lcores to finish...

  ---------------------- Forward statistics for port 0  ----------------------
  RX-packets: 0              RX-dropped: 0             RX-total: 0
  RX-badcrc:  0              RX-badlen:  0             RX-error: 5
  RX-nombufs: 0             
  TX-packets: 0              TX-dropped: 0             TX-total: 0
  ----------------------------------------------------------------------------

  ---------------------- Forward statistics for port 1  ----------------------
  RX-packets: 0              RX-dropped: 0             RX-total: 0
  RX-badcrc:  0              RX-badlen:  0             RX-error: 3
  RX-nombufs: 0             
  TX-packets: 0              TX-dropped: 0             TX-total: 0
  ----------------------------------------------------------------------------

  ---------------------- Forward statistics for port 2  ----------------------
  RX-packets: 0              RX-dropped: 0             RX-total: 0
  RX-badcrc:  0              RX-badlen:  0             RX-error: 4
  RX-nombufs: 0             
  TX-packets: 0              TX-dropped: 0             TX-total: 0
  ----------------------------------------------------------------------------

  ---------------------- Forward statistics for port 3  ----------------------
  RX-packets: 0              RX-dropped: 0             RX-total: 0
  RX-badcrc:  0              RX-badlen:  0             RX-error: 3
  RX-nombufs: 0             
  TX-packets: 0              TX-dropped: 0             TX-total: 0
  ----------------------------------------------------------------------------

  +++++++++++++++ Accumulated forward statistics for all ports+++++++++++++++
  RX-packets: 0              RX-dropped: 0             RX-total: 0
  TX-packets: 0              TX-dropped: 0             TX-total: 0
  ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Done.


testpmd> quitStopping port 0...done
Stopping port 1...done
Stopping port 2...done
Stopping port 3...done
bye...




* Port setup.

Network devices using DPDK-compatible driver
============================================
0000:09:00.0 '82599ES 10-Gigabit SFI/SFP+ Network Connection' drv=igb_uio 
unused=ixgbe,vfio-pci
0000:09:00.1 '82599ES 10-Gigabit SFI/SFP+ Network Connection' drv=igb_uio 
unused=ixgbe,vfio-pci
0000:81:00.0 '82599ES 10-Gigabit SFI/SFP+ Network Connection' drv=igb_uio 
unused=ixgbe,vfio-pci
0000:81:00.1 '82599ES 10-Gigabit SFI/SFP+ Network Connection' drv=igb_uio 
unused=ixgbe,vfio-pci

Network devices using kernel driver
===================================
0000:04:00.0 'I350 Gigabit Network Connection' if=em1 drv=igb 
unused=igb_uio,vfio-pci *Active*
0000:04:00.1 'I350 Gigabit Network Connection' if=em2 drv=igb 
unused=igb_uio,vfio-pci 
0000:04:00.2 'I350 Gigabit Network Connection' if=em3 drv=igb 
unused=igb_uio,vfio-pci 
0000:04:00.3 'I350 Gigabit Network Connection' if=em4 drv=igb 
unused=igb_uio,vfio-pci

Other network devices
=====================
<none>


* I used 2048 for NUMA node 0, 2048 for NUMA node 1.

/proc/meminfo file.
HugePages_Total:    4096
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0

* Fedora OS version : Fedora release 20 (Heisenbug)

* gcc version : gcc (GCC) 4.8.3 20140911 (Red Hat 4.8.3-7).

* Intel(R) Xeon(R) CPU E5-2680  10 cores, 64G bytes system memory.
* 2 2-port NIC cards, Intel? 82599ES 10 Gigabit Ethernet 2 port Controller. 
SFI/SFP+. optical link. Hence there are 4 10 GbE ports.

* I attached DPDK setup script in my environment.


Thank you very much.

Sincerely Yours,

Ick-Sung Choi.

Reply via email to