Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/supereg/acn-router-project
The Advance Computer Networking Router Project.
https://github.com/supereg/acn-router-project
Last synced: 5 days ago
JSON representation
The Advance Computer Networking Router Project.
- Host: GitHub
- URL: https://github.com/supereg/acn-router-project
- Owner: Supereg
- Created: 2021-12-19T17:14:10.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2022-01-28T18:45:47.000Z (almost 3 years ago)
- Last Synced: 2024-10-30T03:49:10.959Z (14 days ago)
- Language: C
- Homepage:
- Size: 18.1 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
Setting up DPDK
===============Install dependencies
```
apt-get update
apt-get install meson
```Compile DPDK
```
cd dpdk
meson build
cd build
ninja
ninja install
ldconfig
```Load the `vfio-pci` driver :
```
modprobe uio
modprobe uio_pci_generic
```Use the tool `dpdk-devbind.py` to bind the VirtIO NICs to the `uio_pci_generic` driver.
(Find out how to do this, the tool is self-explanatory.)
```
cd [root_repo]
dpdk/usertools/dpdk-devbind.py --h
```Setup hugetlbfs huge pages for DPDK
```
mkdir /mnt/huge
mount -t hugetlbfs nodev /mnt/huge
```Statically allocate 256 2MB huge pages
```
echo 256 > /sys/devices/system/node/node0/hugepages/hugepages-2048kB/nr_hugepages
```Compiling your App
==================This example project comes with a CMakeFile and a simple wrapper that initializes DPDK for you.
Run the following steps to build the router app
```
cd [root_repo]
cmake .
make
```That's all!
DPDK Reference
==============For this project, we use DPDK 20.11 (LTS).
The comprehensive DPDK documentation can be found at:* [HTML guides](https://doc.dpdk.org/guides-20.11/)
* [HTML API](https://doc.dpdk.org/api-20.11/)Compiling gtest
===============Installing/Compiling gtest is no longer necessary, VM contains compiled library.
Remark on ACN-VM
================add `recv_from_device()` utility function
The virtual switch behaves different from real hardware.
It sets rx = tx queues with automatic load balancing (even when not configured).
The `recv_from_device()` function fixes this issue by receiving from all available queues.