dpdk: xstats vecor stuck at 0 elements
[vpp.git] / src / plugins / marvell / README.rst
1 Marvell device plugin
2 =====================
3
4 Overview
5 --------
6
7 This plugins provides native device support for Marvell PP2 network
8 device, by use of Marvell Usermode SDK
9 (`MUSDK <https://github.com/MarvellEmbeddedProcessors/musdk-marvell>`__).
10 Code is developed and tested on
11 `MACCHIATObin <http://macchiatobin.net>`__ board.
12
13 Prerequisites
14 -------------
15
16 Plugins depends on installed MUSDK and Marvell provided linux
17 `kernel <https://github.com/MarvellEmbeddedProcessors/linux-marvell>`__
18 with MUSDK provided kernel patches (see ``patches/linux`` in musdk repo
19 and relevant documentation. Kernel version used: **4.14.22
20 armada-18.09.3** MUSDK version used: **armada-18.09.3** Following kernel
21 modules from MUSDK must be loaded for plugin to work: \*
22 ``musdk_cma.ko`` \* ``mv_pp_uio.ko``
23
24 Musdk 18.09.3 compilation steps
25 -------------------------------
26
27 ::
28
29    ./bootstrap
30    ./configure --prefix=/opt/vpp/external/aarch64/ CFLAGS="-Wno-error=unused-result -g -fPIC" --enable-shared=no
31    sed -i -e  's/marvell,mv-pp-uio/generic-uio/' modules/pp2/mv_pp_uio.c
32    sed -i -e  's/O_CREAT/O_CREAT, S_IRUSR | S_IWUSR/' src/lib/file_utils.c
33    make
34    sudo make install
35
36 Usage
37 -----
38
39 Interface Creation
40 ~~~~~~~~~~~~~~~~~~
41
42 Interfaces are dynamically created with following CLI:
43
44 ::
45
46    create interface marvell pp2 name eth0
47    set interface state mv-ppio-0/0 up
48
49 Where ``eth0`` is linux interface name and ``mv-ppio-X/Y`` is VPP
50 interface name where X is PP2 device ID and Y is PPIO ID Interface needs
51 to be assigned to MUSDK in FDT configuration and linux interface state
52 must be up.
53
54 Interface Deletion
55 ~~~~~~~~~~~~~~~~~~
56
57 Interface can be deleted with following CLI:
58
59 ::
60
61    delete interface marvell pp2 <interface name>
62
63 Interface Statistics
64 ~~~~~~~~~~~~~~~~~~~~
65
66 Interface statistics can be displayed with
67 ``sh hardware-interface mv-ppio0/0`` command.
68
69 Interaction with DPDK plugin
70 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
71
72 This plugin doesn’t have any dependency on DPDK or DPDK plugin but it
73 can work with DPDK plugin enabled or disabled. It is observed that
74 performance is better around 30% when DPDK plugin is disabled, as DPDK
75 plugin registers own buffer manager, which needs to deal with additional
76 metadata in each packet.
77
78 DPKD plugin can be disabled by adding following config to the
79 startup.conf.
80
81 ::
82
83    plugins {
84      dpdk_plugin.so { disable }
85    }