LS2085ARDB and OpenDataPlane

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

LS2085ARDB and OpenDataPlane

Jump to solution
3,602 Views
nicolaskury
Contributor II

Hi

I have received a LS2085ARDB board and I would like to try OpenDataPlane. I start with the default (pre-installed) image and it seems that OpenDataPlane is already installed. In usr/nadk/nadk-static/bin there are some applications such odp_pktio and odp_l2fwd.

But I have some errors

root@ls2085ardb:/usr/nadk/nadk-static/bin# ./odp_generator

odp_init.c:211:odp_nadk_init_global():Enviroment varialble DPRC_NAME is not setodp_init.c:271:odp_init_global():ODP nadk init failed.

odp_generator.c:573:main():Error: ODP global init failed.

odp_init.c:124:odp_finish():odp_finish

Should I also run the  script ./usr/nadk/nadk-static/bin/bind_dprc.sh ?

I didn't find the documentation. My ethernet interface in front the board are also not available in Linux, is it normal ?

Thank you!

Labels (1)
Tags (1)
0 Kudos
1 Solution
2,250 Views
yipingwang
NXP TechSupport
NXP TechSupport

Hello nicolaskury,

ODP v1.1 is included in Linux SDK EAR 5.0 release(the latest release for LS2085A), it would be better than the previous release, you could require the software ISOs from you local FAE or submit a service request.


Have a great day,
Yiping

-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

View solution in original post

0 Kudos
9 Replies
2,251 Views
nicolaskury
Contributor II

Ok, I have progressed but I have still some problems...

First;

cd /usr/nadk/nadk-static/bin

./dynamic_dpl.sh dpmac.1 dpmac.2

####### Parsing argument number 1 (dpmac.1) #######

dpni.0 created with MAC addr = 00:00:00:00:00:01

Disconnecting the dpmac.1

dpmac.1 Linked with dpni.0

dpni.0 assigned to  dprc.2

    dpmac.1 <--------connected------> dpni.0

******* End of parsing ARGS *******

[...]

    dpmac.2 <--------connected------> dpni.5

USE dprc.2 FOR YOUR APPLICATIONS

So I export DPRC_NAME:

export DPRC_NAME='dprc.2'

Then

./odp_l2fwd -i dpni-0,dpni-5 -m 0

I'm not sure what the format of the interface is. dpni-0 or dpni.0 ?

And what is the relation between dpmac, dpni and the port in front the board ? Is dpmac.1 the eth1 port ?

The board doesn't forward anything... What did I miss ? I'm sending packet to dst mac 00:00:00:00:00:01 (dpmac.1 <-> dpni.0)

The log

root@ls2085ardb:/usr/nadk/nadk-static/bin# ./odp_l2fwd -i dpni-0,dpni-5 -m 0

Initializing NADK framework with following parameters:

        Resource container :dprc.2

        Data Memory size:0x2000000

        Buffer memory size:0x0

        Log_level:5

        Flags:0x0

Bits 55-60 of /proc/PID/pagemap entries are about to stop being page-shift some time soon. See the linux/Documentation/vm/pagemap.txt for details.

odp_pool.c:70:odp_pool_init_global():

Pool init global

odp_pool.c:71:odp_pool_init_global():  pool_entry_s size     128

odp_pool.c:72:odp_pool_init_global():  pool_entry_t size     128

odp_pool.c:73:odp_pool_init_global():  odp_buffer_hdr_t size 128

odp_pool.c:74:odp_pool_init_global():

odp_queue.c:99:odp_queue_init_global():Queue init ... odp_queue.c:119:odp_queue_init_global():done

odp_queue.c:120:odp_queue_init_global():Queue init global

odp_queue.c:122:odp_queue_init_global():  struct queue_entry_s size 256

odp_queue.c:124:odp_queue_init_global():  queue_entry_t size        256

odp_queue.c:125:odp_queue_init_global():

odp_schedule.c:90:odp_schedule_init_global():Schedule init ... odp_schedule.c:104:odp_schedule_init_global():done

odp_crypto.c:332:odp_crypto_init_global():Crypto init ...

nadk_sec_setup_rx_vq 429-NOTICE-

Setting DPSEC to DPSEC_DEST_NONE, no notification will be sent

create_mem_pool 229-NOTICE- mempool created

ODP system info

---------------

ODP API version: 1.0.0

CPU model:       UNKNOWN

CPU freq (hz):   1400000000

Cache line size: 64

CPU count:       8

Running ODP appl: "odp_l2fwd"

-----------------

IF-count:        2

Using IFs:       dpni-0 dpni-5

Mode:            APPL_MODE_PKT_BURST(0)

num worker threads: 8

first CPU:          0

cpu mask:           0xFF

odp_pool.c:214:odp_pool_create():Configuring buffer pool list 0xf393cd0odp_pool.c:348:odp_pool_print():NADK BMAN buffer pool bpid 10odp_packet_io.c:209:odp_pktio_oo

odp_packet_nadk.c:41:setup_pkt_nadk():setup_pkt_nadk

created pktio 1 (dpni-0)

odp_packet_io.c:209:odp_pktio_open():Allocating nadk pktio

odp_packet_nadk.c:41:setup_pkt_nadk():setup_pkt_nadk

created pktio 2 (dpni-5)

[01] srcif:dpni-0 dstif:dpni-5 spktio:01 dpktio:02 BURST mode

[02] srcif:dpni-0 dstif:dpni-5 spktio:01 dpktio:02 BURST mode

[03] srcif:dpni-5 dstif:dpni-0 spktio:02 dpktio:01 BURST mode

[04] srcif:dpni-0 dstif:dpni-5 spktio:01 dpktio:02 BURST mode

[05] srcif:dpni-5 dstif:dpni-0 spktio:02 dpktio:01 BURST mode

[06] srcif:dpni-0 dstif:dpni-5 spktio:01 dpktio:02 BURST mode

[07] srcif:dpni-5 dstif:dpni-0 spktio:02 dpktio:01 BURST mode

[08] srcif:dpni-5 dstif:dpni-0 spktio:02 dpktio:01 BURST mode

Thank you

0 Kudos
2,251 Views
yipingwang
NXP TechSupport
NXP TechSupport

Hello nicolaskury,

On LS2085ARDB, dpmac.1-dpmac.4 map XFI1-XFI4(SFPJ2-SFPJ6), dpmac.5 is XFI5(RJ45LAN1) and dpmac.7 is XFI7(RJ45LAN3), the connection between DPNI and DPMAC is defined by restool or in the DPL file.

Please check whether your target board is pre-loaded with the DPL file which allocates "dprc.1" with the following command, because in script dynamic_dpl.sh, a child resource container is created dynamically for NADK based on the parent resource container "dprc.1".

$restool dprc list

In addition, it's better to use the latest EAR5.0 images with ODP API version: 1.1.

I checked your log, it looks there is no obvious error, I attached my log file for running odp_l2fwd with pre-loaded DPL file dpl-eth-aiop-nadk.0x2A_0x41, please have a reference.

$ restool dprc list

$ cd /usr/nadk/nadk-static/bin/

$ source ./dynamic_dpl.sh dpmac.3 dpmac.4

$ export DPRC=dprc.2

$ ./odp_l2fwd -c 2 -m 0 -i dpni-0,dpni-2

===== Spirent =====

Interface 1:

Destination MAC address 00:00:00:00:00:01

Source MAC address 00:10:94:00:00:02

Interface 2:

Destination MAC address 00:00:00:00:00:02

Source MAC address 00:10:94:00:00:03

If your problem remains, please attach your u-boot , kernel and the application setup logs.


Have a great day,
Yiping

-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

0 Kudos
2,251 Views
nicolaskury
Contributor II

Hi

Thank you for your answer.

Could you look at my picture please ? I'm not sure to understand the the mapping between dpmac and the physical interfaces. I used dpni-0 and dpni-5 because first, I would like to try with a RJ45 cable.

./odp_l2fwd -c 2 -m 0 -i dpni-0,dpni-5

Where can I get the latest EAR5.0 images with ODP API version: 1.1 ? Could you send me all necessary files in order to executes some tests on ODP ? It is for a project at my university, I only need to run some tests on ODP, no more... It would be a gain of time.

I have attached the full log. I loaded the pre-installed image, I don't know if dpl-eth-aiop-nadk.0x2A_0x41 is also loaded...

I noticed these errors during the boot of uboot. Are they important ?

fsl-mc: Deploying data path layout ... SUCCESS

e1000: 68:05:ca:36:8d:be

       DPNI10, DPNI8

Error: DPNI8 address not set.

, DPNI1, DPNI2

Error: DPNI2 address not set.

, DPNI3

Error: DPNI3 address not set.

, DPNI4

Error: DPNI4 address not set.

, DPNI7, DPNI9

Error: DPNI9 address not set.

, e1000#0 [PRIME]

Warning: e1000#0 MAC addresses don't match:

Address in SROM is         68:05:ca:36:8d:be

Address in environment is  68:05:ca:2e:24:ee

Hit any key to stop autoboot:  0 

Then I sent traffic to 00:00:00:00:00:01. But it seems not forwarding.

Thank you

0 Kudos
2,251 Views
yipingwang
NXP TechSupport
NXP TechSupport

Hello nicolaskury,

I checked your picture and the console log.

On the target board dpmac.5 is ETH0 and dpmac.7 is ETH2, please change to use the correct networking interfaces and check whether there would be any progress.

Please refer to the following from Linux SDK document.

pastedImage_0.png


Have a great day,
Yiping

-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

2,251 Views
nicolaskury
Contributor II

Thanks for your prompt reply.

It seems working ! It was really a dummy issue! The LS2085 was connected to a HP switch and the ports in the switch stayed down (no idea why). When I connect the board directly to a computer that generates traffic, it works.

Now I know that ODP works and what is the relation between dpmac and the physical ports, I'm going to test the througput at 10Gb/s with a Spirent equipment.

Thank you for everything. I let you know if I succeed in doing the measures.

PS: are the performances (odp_l2fwd) better with ODP v1.1 ?
.

0 Kudos
2,251 Views
yipingwang
NXP TechSupport
NXP TechSupport

Hello nicolaskury,

ODP v1.1 is included in Linux SDK EAR 5.0 release(the latest release for LS2085A), it would be better than the previous release, you could require the software ISOs from you local FAE or submit a service request.


Have a great day,
Yiping

-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

0 Kudos
2,251 Views
nicolaskury
Contributor II

I measured the throughput at 10Gb/s and the result is unfortunelly bad. I got only 1.39Mpps insteadof 14.48Mpps with packets size 64 Bytes. (with SFP as fibber and as copper)

./odp_l2fwd -c 2 -m 0 -i dpni-0,dpni-5

I don't have any local FAE. I'm a student, my school has received the LS2085 for my project. I could ask my teacher (responsabel) to request the SDK 5.0 but it may take time. Would it be not possible to get it from you ? Or to get an image with ODP 1.1 ? I just need to run odp_l2fwd, eventually odp_ipsec and see if the throughput is near to the maximal (14.48Mpps)

Thank you!

0 Kudos
2,251 Views
yipingwang
NXP TechSupport
NXP TechSupport

Hello nicolaskury,

Please use "-c" parameter to specify more cores(or threads) to run this application.

I will send EAR 5.0 image to you, please try whether it could run on your target board directly.

If your require the entire ISO, please refer to How I could create a Service Request?  to submit a service request.


Have a great day,
Yiping

-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

0 Kudos
2,251 Views
nicolaskury
Contributor II

Hi!

Thank you for your help! I downloaded and booted on kernel-ls2085ardb.itb.

But I have an issue. The driver mc_restool (Management Complex restool) is not loaded so restool cannot work proprely. I have attached the full log.

root@ls2085ardb:/# restool -v

Freescale MC restool tool version 1.1

root@ls2085ardb:/# restool -m

open() failed for /dev/mc_restool: No such file or directory

And then I run dynamic_dpl.sh, there is the same error message.

root@ls2085ardb:/usr/nadk/nadk-static/bin# source ./dynamic_dpl.sh dpmac.5 dpmac.7

Available DPRCs

open() failed for /dev/mc_restool: No such file or directory

open() failed for /dev/mc_restool: No such file or directory

Created

open() failed for /dev/mc_restool: No such file or directory

Created

####### Parsing argument number 1 (dpmac.5) #######

open() failed for /dev/mc_restool: No such file or directory

Unfortually, I haven't find any information about how to load this driver. How can I fixe the problem ?

The filed in red are not present in your image...

root@ls2085ardb:~# find / -name "*restool*"

/dev/mc_restool

/sys/devices/virtual/misc/mc_restool

/sys/class/misc/mc_restool

/usr/bin/restool

I had also tried to boot with dpl-eth-aiop-nadk.0x2A_0x41.dtb but I'm not sure if it correct... because it doesn't boot

qixis_reset altbank

tftp a0000000 odpdpaa2/kernel-ls2085ardb.itb

tftp 0x90000000 my_ls2085ardb/dpl-examples/dpl-eth-aiop-nadk.0x2A_0x41.dtb

bootm a0000000 - 0x90000000

fdt_fixup_smmu: WARNING: no SMMU node found

fdt_fixup_board_enet: ERROR: fsl-mc node not found in device tree (error -1)

Starting kernel ...

[    0.000000] Booting Linux on physical CPU 0x0

[    0.000000] Initializing cgroup subsys cpu

[    0.000000] Linux version 4.0.4 (jenkins@sun) (gcc version 4.9.3 20150311 (prerelease) (Linaro GCC 4.9-2015.03) ) #1 SMP PREEMPT Thu Aug 27 135

[    0.000000] CPU: AArch64 Processor [411fd071] revision 1

[    0.000000] Detected PIPT I-cache on CPU0

[    0.000000] alternatives: enabling workaround for ARM erratum 832075

[    0.000000] Ignoring memory range 0x0 - 0x80000000

[    0.000000] Ignoring memory range 0x0 - 0x80000000

[    0.000000] Ignoring memory range 0x1000 - 0x80000000

[    0.000000] Ignoring memory block 0x1000 - 0x60000000

[    0.000000] Early serial console at MMIO 0x21c0600 (options '')

[    0.000000] bootconsole [uart0] enabled

[    0.000000] efi: Getting EFI parameters from FDT:

[    0.000000] efi: UEFI not found.

[    0.000000] cma: Failed to reserve 16 MiB

[    0.000000] Kernel panic - not syncing: ERROR: Failed to allocate 0x1000 bytes below 0x0.

[    0.000000]

[    0.000000] CPU: 0 PID: 0 Comm: swapper Not tainted 4.0.4 #1

[    0.000000] Hardware name: (null) (DT)

[    0.000000] Call trace:

[    0.000000] [<ffff80000008992c>] dump_backtrace+0x0/0x11c

[    0.000000] [<ffff800000089a58>] show_stack+0x10/0x1c

[    0.000000] [<ffff8000005ff62c>] dump_stack+0x84/0xc4

[    0.000000] [<ffff8000005fe5f8>] panic+0xe0/0x220

[    0.000000] [<ffff800000865ff4>] memblock_alloc_base+0x2c/0x3c

[    0.000000] [<ffff800000866010>] memblock_alloc+0xc/0x18

[    0.000000] [<ffff80000085b960>] early_alloc+0x14/0x80

[    0.000000] [<ffff80000085bac4>] paging_init+0xcc/0x138

[    0.000000] [<ffff80000085950c>] setup_arch+0x2b4/0x5b0

[    0.000000] [<ffff800000856674>] start_kernel+0xa4/0x3a8

[    0.000000] ---[ end Kernel panic - not syncing: ERROR: Failed to allocate 0x1000 bytes below 0x0.

[    0.000000]

PS: with 8 cores I got only 5.3Mpps and with 4 cores, 2.8Mpps. The generator was sending only 1 stream to only one port.

Thank you

0 Kudos