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!
Solved! Go to Solution.
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!
-----------------------------------------------------------------------------------------------------------------------
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
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!
-----------------------------------------------------------------------------------------------------------------------
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
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.
Have a great day,
Yiping
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
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 ?
.
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!
-----------------------------------------------------------------------------------------------------------------------
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!
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!
-----------------------------------------------------------------------------------------------------------------------
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