sdnfv / openNetVM

A high performance container-based NFV platform from GW and UCR.
http://sdnfv.github.io/onvm/
Other
261 stars 134 forks source link

Moongen Docs Update #300

Closed catherinemeadows closed 2 years ago

catherinemeadows commented 2 years ago

Updated Moongen documentation

Summary:

Documentation update for building and running Moongen with newer version of DPDK

This PR includes
Resolves issues
Breaking API changes
Internal API changes
Usability improvements
Bug fixes
New functionality
New NF/onvm_mgr args
Changes to starting NFs
Dependency updates
Web stats updates
Documentation update 👍🏼

Merging notes:

TODO before merging :

Test Plan:

Follow new documentation to ensure it includes all dependencies we need and leads to desired results.

Review:

@NoahChinitzGWU

Lhahn01 commented 2 years ago

MoonGen's sudo ./build.sh and sudo ./bind-interfaces.sh scripts does not seem to work as it prints: ./build.sh: line 95: cmake: command not found make: *** No targets specified and no makefile found. Stop. Trying to bind interfaces, this will fail if you are not root Try sudo ./bind-interfaces.sh if this step fails Could not find any inactive interfaces to bind to DPDK. Note that this script does not bind interfaces that are in use by the OS. Delete IP addresses from interfaces you would like to use with libmoon and run this script again. You can also use the script dpdk-devbind.py in deps/dpdk/usertools manually to manage interfaces used by libmoon and the OS.

I was running the commands on a node from CloudLab. And the following were bound to the DPDK:

Screen Shot 2021-07-30 at 1 14 00 PM
Lhahn01 commented 2 years ago

Here's the procedure that I went through to get the MoonGen working for me:

  1. I did not initially have any 10G ports connected to the DPDK.
  2. ./build.sh
  3. sudo ./bind-interfaces.sh
  4. sudo ./setup-hugetlbfs.sh
  5. sudo apt install libtbb2
  6. sudo ./build/MoonGen ./examples/quality-of-service-test.lua 0 1

The sudo ./bind-interfaces.sh [step 3] connects all the available NICs to the DPDK. I believe this step will not be needed if we manually connect them to the DPDK.

The main problem that I had when running step 6 was that I would get the following error: ./build/MoonGen: error while loading shared libraries: libtbbmalloc.so.2: cannot open shared object file: No such file or directory. This error was solved by doing step 5.

twood02 commented 2 years ago

I think this is ready to merge, right @catherinemeadows ?

catherinemeadows commented 2 years ago

yes, ready to merge! @twood02