You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/Docker.md
+2-2Lines changed: 2 additions & 2 deletions
Original file line number
Diff line number
Diff line change
@@ -34,7 +34,7 @@ sudo ./docker.sh -h HUGEPAGES -o ONVM -n NAME [-D DEVICES] [-d DIRECTORY] [-c CO
34
34
- This will start a container with two NIC devices mapped in, /dev/uio0 and /dev/uio1, the hugepage directory at `/mnt/huge` mapped in, and the openNetVM source directory at `/root/openNetVM` mapped into the container with the name of Basic_Monitor_NF.
- This will start a container with one NIC device mapped in, /dev/uio0 , the hugepage directory at `/mnt/huge` mapped in, and the openNetVM source directory at `/root/openNetVM` mapped into the container with the name of Speed_Tester_NF. Also, the container will be started in detached mode (no connection to it) and it will run the go script of the simple forward NF.
@@ -162,7 +162,7 @@ Older Dockerfiles
162
162
163
163
If you want to use an older ONVM version on Ubuntu 14, take a look at the [Available Tags][onvm-docker-tags].
164
164
The 18.03 tag runs ONVM when it had been set up for an older version of Ubuntu.
165
-
The `latest` dockerfile runs on Ubuntu 18.04 and is called `latest`.
165
+
The `latest` dockerfile runs on Ubuntu 20.04 and is called `latest`.
Copy file name to clipboardExpand all lines: docs/Install.md
+6-4Lines changed: 6 additions & 4 deletions
Original file line number
Diff line number
Diff line change
@@ -21,7 +21,7 @@ Check System
21
21
22
22
Install the Linux Kernel headers package for your kernel version.
23
23
```sh
24
-
sudo apt-get install build-essential linux-headers-$(uname -r) git bc
24
+
sudo apt-get install build-essential linux-headers-$(uname -r) git bc gcc make pkg-config
25
25
```
26
26
If your distribution didn't come with Python or came with an earlier version, you will need to install Python 3 v3.4+.
27
27
@@ -50,7 +50,7 @@ Check System
50
50
```sh
51
51
sudo apt-get install libnuma-dev
52
52
```
53
-
If installing libnuma-dev fails, your system may not be up to date. To fix this, run:
53
+
If installing libnuma-dev fails, your package information may not be up to date. To fix this, run:
54
54
```sh
55
55
sudo apt-get update
56
56
```
@@ -105,7 +105,7 @@ Set up Environment
105
105
echoexport ONVM_NUM_HUGEPAGES=1024 >>~/.bashrc
106
106
```
107
107
108
-
ONVM_NIC_PCI is a variable that specifies NIC ports to be bound to DPDK. If ONVM_NIC_PCI is not specified, the default action is to bind all non-active 10G NIC ports to DPDK. Note, NIC PCI device IDs may not be the same across all hosts. In that case, please retrieve this information for your host before setting the variable.
108
+
ONVM_NIC_PCI is a variable that specifies NIC ports to be bound to DPDK. If ONVM_NIC_PCI is not specified, the default action is to bind all non-active 10G NIC ports to DPDK. Note, NIC PCI device IDs may not be the same across all hosts. In that case, please retrieve this information for your host before setting the variable. (e.g., via `lspci`)
109
109
```sh
110
110
export ONVM_NIC_PCI=" 07:00.0 07:00.1 "
111
111
```
@@ -117,7 +117,7 @@ Set up Environment
117
117
7. Disable ASLR since it makes sharing memory with NFs harder:
118
118
```sh
119
119
sudo sh -c "echo 0 > /proc/sys/kernel/randomize_va_space"
120
-
```
120
+
```
121
121
122
122
Configure and compile DPDK
123
123
--
@@ -130,6 +130,8 @@ Configure and compile DPDK
130
130
131
131
The [install script](../scripts/install.sh) will automatically run the [environment setup script](../scripts/setup_environment.sh), which configures your local environment. This should be run once for every reboot, as it loads the appropraite kernel modules and can bind your NIC ports to the DPDK driver.
132
132
133
+
If `which python` shows **not found**in your environment, please link `python` to Python3, e.g., via `link -s` or `alias python=$(which python3)`.
Copy file name to clipboardExpand all lines: docs/Releases.md
+46Lines changed: 46 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -13,6 +13,52 @@ use a date based versioning system. Now, a release version can look
13
13
like `17.11` where the "major" number is the year and the "minor" number
14
14
is the month.
15
15
16
+
## v21.10 (10/2020): Bug Fixes, Test cases, Dev Environment Improvements
17
+
This release focused on general bug fixing and improving our test/development environments.
18
+
A CloudLab template will be available with the latest release here: [https://www.cloudlab.us/p/GWCloudLab/onvm](https://www.cloudlab.us/p/GWCloudLab/onvm)
19
+
20
+
**New Features and NFs**
21
+
22
+
-[[243](https://github.com/sdnfv/openNetVM/pull/243)] Adds L3 Switch example based on DPDK `l3fwd` sample code. This NF can forward packets either using longest prefix match or a hash table lookup.
23
+
-[[254](https://github.com/sdnfv/openNetVM/pull/254)] Adds Fair Queue NF that demonstrates how to use advanced rings mode to directly access packets and distribute them to a set of child NFs. Packets are "classified" using a CRC32 hash and assigned to a queue. Queues are then read from in Round Robin order to process packets of different types in a fair way. Contributed by ([Rohit M P](https://github.com/rohit-mp)) from NITK.
24
+
-[[277](https://github.com/sdnfv/openNetVM/pull/277)] Adds support for Jumbo frame packets. Enable by adding a `-j` flag to the manager's go.sh script.
25
+
26
+
27
+
**Testing and Development Improvements**
28
+
29
+
-[[296](https://github.com/sdnfv/openNetVM/pull/296)] Adds unit test for NF messaging infrastructure and fixes memory leak related to overflow of message pools [[Issue 293](https://github.com/sdnfv/openNetVM/pull/293)].
30
+
-[[297](https://github.com/sdnfv/openNetVM/pull/297)] Adds VS Code profile to simplify debugging of NFs.
31
+
-[[302](https://github.com/sdnfv/openNetVM/pull/302)] Adds NF chain performance test to measure and plot inter-NF throughput and latency.
32
+
-[[308](https://github.com/sdnfv/openNetVM/pull/308)] Adds socket ID information to NF and manager logging print statements.
33
+
34
+
**Miscellaneous Bug and Documentation Fixes**
35
+
36
+
-[[304](https://github.com/sdnfv/openNetVM/pull/304)] Fixes the NF_TAG of `aes_decrypt` in `openNetVM/examples/aes_decrypt/aesdecrypt.c`.
37
+
-[[300](https://github.com/sdnfv/openNetVM/pull/300)] Updates MoonGen installation document to work with the new DPDK version.
38
+
-[[270](https://github.com/sdnfv/openNetVM/pull/270)] Fixes issues with relative path in the onvm go script to find the web directory. Now using `$ONVM_HOME` instead of `..`.
39
+
-[[272](https://github.com/sdnfv/openNetVM/pull/272)] Fixes two bugs (including Issue #233) where the NF rings would not be cleared after deallocation and an underflow bug in stats.
40
+
-[[265](https://github.com/sdnfv/openNetVM/pull/265)] Updates Install README to provide further clarification as well as to include a missing package.
41
+
-[[267](https://github.com/sdnfv/openNetVM/pull/267)] Fixes typos in `onvm_pkt_helper.h`.
42
+
-[[317](https://github.com/sdnfv/openNetVM/pull/317)] Fixes the ARP NF endianness for source IP addresses.
43
+
-[[306](https://github.com/sdnfv/openNetVM/pull/306)] Updates linter installation script to use newer versions of cppcheck and Ubuntu.
44
+
-[[316](https://github.com/sdnfv/openNetVM/pull/316)] Fixes Speed Tester NF so that it does not crash while loading a PCAP trace with jumbo frames without the correct flags.
45
+
46
+
Contributors:
47
+
48
+
- Dennis Afanasev ([dennisafa](https://github.com/dennisafa))
## v20.10 (10/2020): OS/Dependency Updates, Bug Fixes, New NFs
17
63
A CloudLab template will be available with the latest release here: [https://www.cloudlab.us/p/GWCloudLab/onvm](https://www.cloudlab.us/p/GWCloudLab/onvm)
Copy file name to clipboardExpand all lines: docs/moongen.md
+82-43Lines changed: 82 additions & 43 deletions
Original file line number
Diff line number
Diff line change
@@ -1,26 +1,33 @@
1
-
MoonGen Installation (DPDK-2.0 Version)
1
+
MoonGen Installation (DPDK-19.5 Version)
2
2
===================
3
3
4
-
#### Welcome to installation memo for [MoonGen](http://scholzd.github.io/MoonGen/install.html), MoonGen is a "Scriptable High-Speed Packet Generator".
4
+
#### Welcome to installation memo for [MoonGen](http://scholzd.github.io/MoonGen/install.html). MoonGen is a "Scriptable High-Speed Packet Generator".
5
5
----------
6
6
7
-
1. Preparation steps
7
+
## 1. Preparation steps
8
8
===================
9
-
Installation steps are assuming that you have already got OpenNetVM installed. If you have already got OpenNetVM installed, please following the steps below for a double check of your system.
10
9
11
-
1.1 check if you have available hugepages
10
+
Installation steps are assuming that you already have [openNetVM installed](./Install.md). Follow the steps below to double check your system configuration.
12
11
13
-
`$grep -i huge /proc/meminfo`
12
+
### 1.1 Check for available hugepages
14
13
15
-
If ***HugePages_Free*** 's value equals to 0, which means there is no free hugepages available, you probably have to reboot your machine, by `$sudo reboot` to get some released hugepages.
14
+
`$ grep -i huge /proc/meminfo`
16
15
17
-
1.2 check if you have available ports binded to DPDK
16
+
If the ***HugePages_Free*** 's value equals 0, which means there are no free hugepages available, there may be a few reasons why:
17
+
- The manager crashed, but an NF(s) is still running.
18
+
- In this case, either kill them manually by hitting Ctrl+C or run `$ sudo pkill NF_NAME` for every NF that you have ran.
19
+
- The manager and NFs are not running, but something crashed without freeing hugepages.
20
+
- To fix this, please run `$ sudo rm -rf /mnt/huge/*` to remove all files that contain hugepage data.
21
+
- The above two cases are not met, something weird is happening:
22
+
- A reboot might fix this problem and free memory: `$ sudo reboot`
18
23
19
-
`$cd dirctory_of_your_installed_dpdk`
24
+
### 1.2 Check NIC ports are bound to DPDK
20
25
21
-
`$./tools/dpdk_nic_bind.py --status`
26
+
`$ cd dirctory_of_your_installed_dpdk`
22
27
23
-
if you got the follwing binding information indicating that you have the two 10-Gigabit NIC ports binded with DPDK driver, then you are fine, please jump to step 1.4, otherwise, please jump to step 1.3.
28
+
`$ ./usertools/dpdk-devbind.py --status`
29
+
30
+
If you got the follwing similar binding information indicating that you have the two 10-Gigabit NIC ports bound with the DPDK driver, jump to step 1.4. Otherwise, please jump to step 1.3.
24
31
25
32
```
26
33
Network devices using DPDK-compatible driver
@@ -34,73 +41,105 @@ Network devices using kernel driver
In our example above, we see two 10G capable NIC ports that we could use with description '82599EB 10-Gigabit SFI/SFP+ Network Connection'.
46
62
47
-
if it showed up as alredy bind, use `$sudo rmmod igb_uio`, and then perform `$sudo insmod x86_64-native-linuxapp-gcc/kmod/igb_uio.ko`.
63
+
One of the two NIC ports, 07:00.0, is active shown by the *Active* at the end of the line. Since the Linux Kernel is currently using that port, network interface eth2, we will not be able to use it with openNetVM. We must first disable the network interface in the Kernel, and then proceed to bind the NIC port to the DPDK Kernel module, igb_uio:
Rerun the status command, ./usertools/dpdk-devbind.py --status, to see that it is not active anymore. Once that is done, proceed to bind the NIC port to the DPDK Kenrel module:
2.4 execute the test, configure the ***quality-of-service-test.lua*** with your destination ip address (ip address for the server you want to sent packets to) in line 60 and line 177, and your source ip address (ip address for the machine you are executing MoonGen on) in line 68 and line 165, and run with command:
137
+
### 2.4 Execute the test
138
+
Configure the ***quality-of-service-test.lua*** with your destination ip address (ip address for the server you want to sent packets to) and your source ip address (ip address for the machine you are executing MoonGen on), and run with command:
0 commit comments