Dig into NES

nasm

apt-get install libfont-ttf-perl libsort-versions-perl texinfo

libipsec-mb-dev

apt-get install nasm

Installed packages

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
apt-get install dpdk dpdk-igb-uio-dkms

The following NEW packages will be installed:
  dpdk dpdk-dev dpdk-igb-uio-dkms hwdata libdpdk-dev librte-acl18.08 librte-bbdev18.08 librte-bitratestats18.08 librte-bpf18.08 librte-bus-dpaa18.08 librte-bus-fslmc18.08
  librte-bus-ifpga18.08 librte-bus-pci18.08 librte-bus-vdev18.08 librte-bus-vmbus18.08 librte-cfgfile18.08 librte-cmdline18.08 librte-common-octeontx18.08
  librte-compressdev18.08 librte-cryptodev18.08 librte-distributor18.08 librte-eal18.08 librte-efd18.08 librte-ethdev18.08 librte-eventdev18.08 librte-flow-classify18.08
  librte-gro18.08 librte-gso18.08 librte-hash18.08 librte-ip-frag18.08 librte-jobstats18.08 librte-kni18.08 librte-kvargs18.08 librte-latencystats18.08 librte-lpm18.08
  librte-mbuf18.08 librte-member18.08 librte-mempool-bucket18.08 librte-mempool-dpaa18.08 librte-mempool-dpaa2-18.08 librte-mempool-octeontx18.08 librte-mempool-ring18.08
  librte-mempool-stack18.08 librte-mempool18.08 librte-meter18.08 librte-metrics18.08 librte-net18.08 librte-pci18.08 librte-pdump18.08 librte-pipeline18.08
  librte-pmd-aesni-gcm18.08 librte-pmd-aesni-mb18.08 librte-pmd-af-packet18.08 librte-pmd-ark18.08 librte-pmd-avf18.08 librte-pmd-avp18.08 librte-pmd-axgbe18.08
  librte-pmd-bbdev-null18.08 librte-pmd-bnxt18.08 librte-pmd-bond18.08 librte-pmd-crypto-scheduler18.08 librte-pmd-cxgbe18.08 librte-pmd-dpaa-event18.08
  librte-pmd-dpaa-sec18.08 librte-pmd-dpaa18.08 librte-pmd-dpaa2-18.08 librte-pmd-dpaa2-cmdif18.08 librte-pmd-dpaa2-event18.08 librte-pmd-dpaa2-qdma18.08
  librte-pmd-dpaa2-sec18.08 librte-pmd-e1000-18.08 librte-pmd-ena18.08 librte-pmd-enic18.08 librte-pmd-failsafe18.08 librte-pmd-fm10k18.08 librte-pmd-i40e18.08
  librte-pmd-ifc18.08 librte-pmd-ifpga-rawdev18.08 librte-pmd-ixgbe18.08 librte-pmd-kni18.08 librte-pmd-lio18.08 librte-pmd-mlx4-18.08 librte-pmd-mlx5-18.08
  librte-pmd-netvsc18.08 librte-pmd-nfp18.08 librte-pmd-null-crypto18.08 librte-pmd-null18.08 librte-pmd-octeontx-ssovf18.08 librte-pmd-octeontx-zip18.08
  librte-pmd-octeontx18.08 librte-pmd-opdl-event18.08 librte-pmd-openssl18.08 librte-pmd-pcap18.08 librte-pmd-qat18.08 librte-pmd-qede18.08 librte-pmd-ring18.08
  librte-pmd-sfc-efx18.08 librte-pmd-skeleton-event18.08 librte-pmd-skeleton-rawdev18.08 librte-pmd-softnic18.08 librte-pmd-sw-event18.08 librte-pmd-tap18.08
  librte-pmd-thunderx-nicvf18.08 librte-pmd-vdev-netvsc18.08 librte-pmd-vhost18.08 librte-pmd-virtio-crypto18.08 librte-pmd-virtio18.08 librte-pmd-vmxnet3-uio18.08
  librte-port18.08 librte-power18.08 librte-rawdev18.08 librte-reorder18.08 librte-ring18.08 librte-sched18.08 librte-security18.08 librte-table18.08 librte-timer18.08
  librte-vhost18.08 python3-pyelftools zlib1g-dev

Building

export RTE_SDK="/usr/share/dpdk" export NES_ROOT_DIR="/root/nevsdk/nes_root" export RTE_TARGET="x86_64-default-linuxapp-gcc" export LIBABIVER="0" export CONFIG_RTE_MAJOR_ABI="18.08"

Manually building dpdk

make config T=x86_64-native-linuxapp-gcc make -j32 make install

export RTE_SDK="/usr/local/share/dpdk"

apt-get install cmake libjsoncpp-dev libfcgi-dev libboost-all-dev libssl1.0-dev libhiredis-dev

modprobe uio insmod /lib/modules/4.15.0-48-generic/extra/dpdk/igb_uio.ko

dpdk-devbind -b igb_uio 3d:00.1 3d:00.2 3d:00.3

gir1.2-harfbuzz-0.0 icu-devtools libboost-all-dev libboost-atomic-dev libboost-atomic1.65-dev libboost-atomic1.65.1 libboost-chrono-dev libboost-chrono1.65-dev libboost-chrono1.65.1 libboost-container-dev libboost-container1.65-dev libboost-container1.65.1 libboost-context-dev libboost-context1.65-dev libboost-context1.65.1 libboost-coroutine-dev libboost-coroutine1.65-dev libboost-coroutine1.65.1 libboost-date-time-dev libboost-date-time1.65-dev libboost-dev libboost-exception-dev libboost-exception1.65-dev libboost-fiber-dev libboost-fiber1.65-dev libboost-fiber1.65.1 libboost-filesystem-dev libboost-filesystem1.65-dev libboost-graph-dev libboost-graph-parallel-dev libboost-graph-parallel1.65-dev libboost-graph-parallel1.65.1 libboost-graph1.65-dev libboost-graph1.65.1 libboost-iostreams-dev libboost-iostreams1.65-dev libboost-locale-dev libboost-locale1.65-dev libboost-log-dev libboost-log1.65-dev libboost-log1.65.1 libboost-math-dev libboost-math1.65-dev libboost-math1.65.1 libboost-mpi-dev libboost-mpi-python-dev libboost-mpi-python1.65-dev libboost-mpi-python1.65.1 libboost-mpi1.65-dev libboost-mpi1.65.1 libboost-numpy-dev libboost-numpy1.65-dev libboost-numpy1.65.1 libboost-program-options-dev libboost-program-options1.65-dev libboost-program-options1.65.1 libboost-python-dev libboost-python1.65-dev libboost-python1.65.1 libboost-random-dev libboost-random1.65-dev libboost-random1.65.1 libboost-regex-dev libboost-regex1.65-dev libboost-regex1.65.1 libboost-serialization-dev libboost-serialization1.65-dev libboost-serialization1.65.1 libboost-signals-dev libboost-signals1.65-dev libboost-signals1.65.1 libboost-stacktrace-dev libboost-stacktrace1.65-dev libboost-stacktrace1.65.1 libboost-system-dev libboost-system1.65-dev libboost-test-dev libboost-test1.65-dev libboost-test1.65.1 libboost-thread-dev libboost-thread1.65-dev libboost-timer-dev libboost-timer1.65-dev libboost-timer1.65.1 libboost-tools-dev libboost-type-erasure-dev libboost-type-erasure1.65-dev libboost-type-erasure1.65.1 libboost-wave-dev libboost-wave1.65-dev libboost-wave1.65.1 libboost1.65-dev libboost1.65-tools-dev libexpat1-dev libfabric1 libglib2.0-dev libglib2.0-dev-bin libgraphite2-dev libharfbuzz-dev libharfbuzz-gobject0 libhwloc-dev libhwloc-plugins libhwloc5 libicu-dev libicu-le-hb-dev libicu-le-hb0 libiculx60 libltdl-dev libopenmpi-dev libopenmpi2 libpcre16-3 libpcre3-dev libpcre32-3 libpcrecpp0v5 libpsm-infinipath1 libpython-dev libpython2.7-dev libpython3-dev libpython3.6-dev librdmacm1 mpi-default-bin mpi-default-dev ocl-icd-libopencl1 openmpi-bin openmpi-common pkg-config python-dev python2.7-dev python3-dev python3.6-dev zlib1g-dev

export NES_ROOT_DIR="/root/nevsdk/nes_root" export RTE_TARGET="x86_64-default-linuxapp-gcc"

VSCODE

Add *.so path to ld.so.conf

  • edit /etc/ld.so.conf.d/nevsdk.conf

    1
    2
    
    /root/nevsdk/nes_root/build/lib
    /root/nevsdk/nes_root/build
    

route add 3c:fd:fe:a9:eb:5d prio:99,encap_proto:noencap,srv_ip:172.16.16.0/24

NES: [WARNING] Overlapping rule: prio:99,encap_proto:noencap,srv_ip:172.20.16.0/24

docker network create -d macvlan
--subnet=10.103.11.0/24 --ip-range=10.103.11.16/30 --gateway=10.103.11.1 -o parent=enp61s0f0 mymacvlan
docker network create -d macvlan
--subnet=10.103.11.0/24 --ip-range=10.103.11.18/31 --gateway=10.103.11.1 -o parent=enp61s0f0 mymacvlan

docker run -tid --network mymacvlan --privileged u1804-nfv-base

? (10.103.11.16) at 02:42:0a:67:0b:10 [ether] on enp61s0f0 route add 02:42:0a:67:0b:10 prio:99,encap_proto:noencap,srv_ip:10.103.11.16/32 route add 02:42:0a:67:0b:11 prio:99,encap_proto:noencap,srv_ip:10.103.11.17/32 route add 02:42:0a:67:0b:12 prio:99,encap_proto:noencap,srv_ip:10.103.11.18/32

route add 8a:ab:31:05:d7:e5 prio:99,encap_proto:noencap,srv_ip:10.103.11.155/32

route add 02:42:0a:67:0b:10 prio:99,encap_proto:noencap,srv_ip:10.103.11.0/24

comments powered by Disqus