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