Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature/dpdk-update #337

Open
wants to merge 21 commits into
base: develop
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
75bd512
[Bug Fix] ARP endianess fixed (#317)
NoahChinitz Dec 2, 2021
20e0150
[Release] ONVM v21.10
catherinemeadows Feb 1, 2022
c2c0c6a
Update to Meson build system to match DPDK
marascoben Apr 16, 2024
f195101
Merge branch 'sdnfv:master' into feature/dpdk-update
marascoben Apr 16, 2024
4271286
Add dynfield for onvm_pkt_meta and apply dpdk renaming patches
marascoben Apr 24, 2024
2dc731a
Update Meson files to build onvm_mgr
marascoben Apr 24, 2024
8da80d2
Update onvm_mgr to support DPDK 24.03.0
marascoben May 2, 2024
35871bd
Update example apps to DPDK 24 and meson
marascoben May 11, 2024
dd5bd48
Delete old makefiles
marascoben May 11, 2024
d720d9e
Cleanup example nf Meson script and add Meson artifacts to .gitignore
marascoben May 16, 2024
3fe65a0
Update runtime setup and project installation scripts
marascoben Jun 14, 2024
8c92b22
Add dpdk-kmods gitmodule to support igb_uio driver
marascoben Jun 14, 2024
4e2b3b8
Add new startup script for onvm_mgr
marascoben Jun 26, 2024
e08de18
Update README.md to reflect changes since DPDK update
marascoben Jun 26, 2024
d36313f
Fix installation issue with example apps and meson
marascoben Jun 26, 2024
c695a76
Update README refs to readthedocs
marascoben Jun 26, 2024
513f293
Update runtime script to configure hugepages
marascoben Jun 26, 2024
7ca9af2
Fix install script on CloudLab and README
marascoben Aug 26, 2024
e823acd
Update install location and tags
marascoben Aug 26, 2024
7356263
Fix pthread missing dep that occurs on cloudlab
marascoben Sep 9, 2024
06e732f
Update to use system wide dpdk install
marascoben Sep 10, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 14 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
# build directories
**/build/**
**/x86_64-native-linuxapp-gcc/**
/build

# dpdk built target
dpdk-1.8.0/x86_64-native-linuxapp-gcc/*
Expand Down Expand Up @@ -49,3 +50,16 @@ _preinstall

# Debug files
*.dSYM/

# Python virtual environment
env

# Meson artifacts
/insstall
**/insstall/**

# Submodules
/subprojects/dpdk-kmods/*

# Output directories
/bin
12 changes: 7 additions & 5 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
[submodule "dpdk-1.8.0"]
path = dpdk
url = https://dpdk.org/git/dpdk
branch = master
commit = 0da7f445df445630c794897347ee360d6fe6348b
[submodule "tools/Pktgen/pktgen-dpdk"]
path = tools/Pktgen/pktgen-dpdk
url = http://dpdk.org/git/apps/pktgen-dpdk
branch = master
commit = 807b4d2cfcc8ded46ece85353cefe5d655674de3

[submodule "dpdk"]
path = subprojects/dpdk
url = https://github.com/DPDK/dpdk.git
[submodule "subprojects/dpdk-kmods"]
path = subprojects/dpdk-kmods
url = https://dpdk.org/git/dpdk-kmods
ignore = all
55 changes: 0 additions & 55 deletions Makefile

This file was deleted.

112 changes: 60 additions & 52 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,81 +1,89 @@
[openNetVM][onvm]
==
# [openNetVM][onvm]

_Please let us know if you use OpenNetVM in your research by [emailing us](mailto:[email protected]) or completing this [short survey](https://goo.gl/forms/oxcnGO45Kxq1Zyyi2)._
> _Please let us know if you use OpenNetVM in your research by [emailing us](mailto:[email protected]) or completing this [short survey](https://goo.gl/forms/oxcnGO45Kxq1Zyyi2)._

_Want to get started quickly?_ Try using our NSF CloudLab profile: https://www.cloudlab.us/p/GWCloudLab/onvm
> _Want to get started quickly?_ Try using our NSF CloudLab profile: <https://www.cloudlab.us/p/GWCloudLab/onvm>

openNetVM is a high performance NFV platform based on [DPDK][dpdk] and [Docker][docker] containers. openNetVM provides a flexible framework for deploying network functions and interconnecting them to build service chains.

openNetVM is an open source version of the NetVM platform described in our [NSDI 2014][nsdi14] and [HotMiddlebox 2016][hotmiddlebox16] papers, released under the [BSD][license] license.

The [develop][dev] branch tracks experimental builds (active development) whereas the [master][mast] branch tracks verified stable releases. Please read our [releases][rels] document for more information about our releases and release cycle.

You can find information about research projects building on [OpenNetVM][onvm] at the [UCR/GW SDNFV project site][sdnfv]. OpenNetVM is supported in part by NSF grants CNS-1422362 and CNS-1522546.

Notes
--
## Getting Started

We have updated our DPDK submodule to point to a new version, v20.05. If you have already cloned this repository, please update your DPDK submodule by running:
We've provided two scripts to install required dependencies, and configure your machine to run OpenNetVM. Required dependencies are installed by [`scripts/install.sh`](/scripts/install.sh), and configuration is done by [`scripts/setup_runtime.sh`](/scripts/setup_runtime.sh).

From the `openNetVM` folder, run the following two commands:

```text
sudo ./scripts/install.sh
```
git submodule sync
git submodule update --init

```text
sudo ./scripts/setup_runtime.sh
```

And then rebuild DPDK using the [install guide][install] or running these commands:
### Building

OpenNetVM uses the [Meson][meson] build system to compile all components, including dpdk. From the `openNetVM` parent folder run the following to setup build:

```text
./scripts/build.sh
```
cd dpdk
make config T=$RTE_TARGET
make T=$RTE_TARGET -j 8
make install T=$RTE_TARGET -j 8

This will take care of the Meson build setup, compilation, and installation of onvm shared libriaries.

Afterwards you may need to run the following comand to update the linker.

```text
ldconfig
```

The current OpenNetVM version is 20.10. Please see our [release](docs/Releases.md) document for more information.
### Running onvm_mgr

About
--
openNetVM is a high performance NFV platform based on [DPDK][dpdk] and [Docker][docker] containers. openNetVM provides a flexible framework for deploying network functions and interconnecting them to build service chains.
You can use our provided startup script to launch onvm_mgr. This scripts assumes the `openNetVM` folder is your working directory.

openNetVM is an open source version of the NetVM platform described in our [NSDI 2014][nsdi14] and [HotMiddlebox 2016][hotmiddlebox16] papers, released under the [BSD][license] license.
```text
./scripts/startup.sh
```

The [develop][dev] branch tracks experimental builds (active development) whereas the [master][mast] branch tracks verified stable releases. Please read our [releases][rels] document for more information about our releases and release cycle.
## Usage Guide

You can find information about research projects building on [OpenNetVM][onvm] at the [UCR/GW SDNFV project site][sdnfv]. OpenNetVM is supported in part by NSF grants CNS-1422362 and CNS-1522546.
### Sample NFs

Installing
--
To install openNetVM, please see the [openNetVM Installation][install] guide for a thorough walkthrough.
openNetVM comes with several sample NFs. To get started with these, check out the [examples guide][examples].

Using openNetVM
--
openNetVM comes with several sample network functions. To get started with some examples, please see the [Example Uses][examples] guide
### Creating NFs

Creating NFs
--
The [NF Development][nfs] guide will provide what you need to start creating your own NFs.
We have created an [NF development guide][nfs] to provide you with steps to create your first NF.

### Containerizing NFs

Dockerize NFs
--
NFs can be run inside docker containers, with the NF being automatically or hand started. For more informations, see our [Docker guide][docker-nf].

TCP Stack
--
### mTCP apps as NFs

openNetVM can run mTCP applications as NFs. For more information, visit [mTCP][mtcp].

Citing OpenNetVM
--
## Citing

If you use OpenNetVM in your work, please cite our paper:
```

```text
@inproceedings{zhang_opennetvm:_2016,
title = {{OpenNetVM}: {A} {Platform} for {High} {Performance} {Network} {Service} {Chains}},
booktitle = {Proceedings of the 2016 {ACM} {SIGCOMM} {Workshop} on {Hot} {Topics} in {Middleboxes} and {Network} {Function} {Virtualization}},
publisher = {ACM},
author = {Zhang, Wei and Liu, Guyue and Zhang, Wenhui and Shah, Neel and Lopreiato, Phillip and Todeschi, Gregoire and Ramakrishnan, K.K. and Wood, Timothy},
month = aug,
year = {2016},
title = {{OpenNetVM}: {A} {Platform} for {High} {Performance} {Network} {Service} {Chains}},
booktitle = {Proceedings of the 2016 {ACM} {SIGCOMM} {Workshop} on {Hot} {Topics} in {Middleboxes} and {Network} {Function} {Virtualization}},
publisher = {ACM},
author = {Zhang, Wei and Liu, Guyue and Zhang, Wenhui and Shah, Neel and Lopreiato, Phillip and Todeschi, Gregoire and Ramakrishnan, K.K. and Wood, Timothy},
month = aug,
year = {2016},
}
```

_Please let us know if you use OpenNetVM in your research by [emailing us](mailto:[email protected]) or completing this [short survey](https://goo.gl/forms/oxcnGO45Kxq1Zyyi2)._




>_Please let us know if you use OpenNetVM in your research by [emailing us](mailto:[email protected]) or completing this [short survey](https://goo.gl/forms/oxcnGO45Kxq1Zyyi2)._

[onvm]: http://sdnfv.github.io/onvm/
[sdnfv]: http://sdnfv.github.io/
Expand All @@ -84,11 +92,11 @@ _Please let us know if you use OpenNetVM in your research by [emailing us](mailt
[docker]: https://www.docker.com/
[nsdi14]: http://faculty.cs.gwu.edu/timwood/papers/14-NSDI-netvm.pdf
[hotmiddlebox16]: http://faculty.cs.gwu.edu/timwood/papers/16-HotMiddlebox-onvm.pdf
[install]: docs/Install.md
[examples]: docs/Examples.md
[nfs]: docs/NF_Dev.md
[docker-nf]: docs/Docker.md
[examples]: https://opennetvm.readthedocs.io/en/develop/examples/index.html
[nfs]: https://opennetvm.readthedocs.io/en/develop/nfdev/index.html
[docker-nf]: https://opennetvm.readthedocs.io/en/develop/docker/index.html
[dev]: https://github.com/sdnfv/openNetVM/tree/develop
[mast]: https://github.com/sdnfv/openNetVM/tree/master
[rels]: docs/Releases.md
[mtcp]: https://github.com/eunyoung14/mtcp
[meson]: https://mesonbuild.com/
1 change: 0 additions & 1 deletion dpdk
Submodule dpdk deleted from e2a234
64 changes: 0 additions & 64 deletions examples/Makefile

This file was deleted.

69 changes: 0 additions & 69 deletions examples/aes_decrypt/Makefile

This file was deleted.

4 changes: 4 additions & 0 deletions examples/aes_decrypt/meson.build
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
sources = files(
'aes.c',
'aesdecrypt.c'
)
Loading