-
Notifications
You must be signed in to change notification settings - Fork 16
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Moving all changes we have made from the
dpdk-2011-focal
branch to …
…the `master` branch (#21) * Upgrade DPDK to 20.11 - address memseg and mbuf changes - move to meson/ninja build system Signed-off-by: Saikrishna Edupuganti <[email protected]> * Update DPDK version to 20.11.3 ice ddp loading seems reliable when using a PF with this version Signed-off-by: Saikrishna Edupuganti <[email protected]> * Allow override of base image with IMAGE IMAGE="ghcr.io/omec-project/upf-epc/bess_build" \ ./container_build.py shell Signed-off-by: Saikrishna Edupuganti <[email protected]> * Use focal base image Signed-off-by: Saikrishna Edupuganti <[email protected]> * 0001-Add-2-workers-support-to-Nat-module * 0002-Use-same-rss-key-across-interfaces * 0003-Add-FIB-routing-support-in-IPLookup-module * 0004-IOVA-mode-correction * 0005-Expose-PMDPort-socket-memory-allocation * 0006-Add-switch-for-promiscuous-mode * 0008-Enable-hardware-checksum-offload * 0009-Adding-value-attributes-to-ExactMatch-WildcardMatch * 0010-Add-hardware-rx-checksum-offload-option-for-checksum * 0011-Protobuf-update-to-new-module-messages * 0012-Dpdk-concurrent-hash-support-pipeline-improvement * 0013-Use-rte_flow_create-to-do-GTPU-RSS * 0014-Add-ice-iavf-to-list-of-drivers-need-SW-port-stats * 0015-Protobuf-changes-for-Qos * 0016-Newer-versions-require-go_package-stated-in-proto * 0017-Make-table-sizes-configurable * 0017-QoS-Measure * 0018-Increase-max-tuple-num * 0019-GUI-dot-module-name-quote * Removed deprecated DPDK options/functions * Remove unnecesary `endl` * Fix a couple typos * Remove unused variables * No need to use `move` * Improve code * Fix Doxygen for AddMetadataAttr method * Bring DPDK patch from UPF * Move BESS-related files to BESS repo * Bring BESS scripts from UPF repo * Update links to reference ONF's BESS * Remove unnecesary `endl` in loggings * Fix stringstream * Fix format in files * Add override keyword and remove unused attribute * Ubuntu Focal includes this package * Update CXXFLAGS to work with g++ and clang * Explicitily include server_builder.h * Temporarily disabling some tests due to changes made in UPF. Need to address the issues one by one * Add missing header file <linux/ethtool.h> * Use `bytes` for the scapy packets due to problems when using `str` * Moving to python3 due to Python2 EOL These changes are needed to be able to build and test bess with GitHub Actions * Use ghcr.io/omec-project/upf-epc/bess_build for the BESS dependencies This bess_build includes the changes needed to build DPDK 20.11 * Add GitHub Action that will trigger the Build and Test process Additionally, remove Travis.yml file that is not needed anymore * Create pull_request.yaml * Update README.md test the workflow * Remove unnecessary file * Update sugar.py * Action for dependabot and check license/copyright (#14) * Action for dependabot and check license/copyright * Remove empty line * Add empty line at end of file * Add GitHub Action for checking code format (C/C++ and Protobuf) (#15) * Add GitHub Action for checking code format (C/C++ and Protobuf) * Update GitHub Action to only remove the OS from the matrix * Address issues with format compliance for protobuf files * Add missing file that was not formatted * Update parameters for GitHub Action * Add missing license/copyright header and add an exception * Refactor define for the GTPu header (#16) * Update GitHub Action to build docker image locally (#18) - Update GitHub Actions to build docker image locally during pull request - Use protobuf version 3.20 to fix errors in generated _pb2.py file Signed-off-by: Manoj Gopalakrishnan <[email protected]> * Add support for CNDP(Cloud Native Data Plane) port in BESS. (#2) - CNDP BESS port to send/receive n/w packets using AF_XDP socket. - Modify Bess core Makefile to build CNDP port driver. - Dockerfile to build BESS with CNDP. - Add "CndpPortArg" in port_msg.proto file to initialize Bess CNDP port. - Use external BESS PacketPool (rte_mempool/rte_mbuf) with CNDP xskdev. - Example scripts to test Bess CNDP port. - ReadMe file to build docker image and run BESS CNDP example scripts. - GitHub Action for running CNDP tests. Signed-off-by: Manoj Gopalakrishnan <[email protected]> * Build new image taking into account new dependencies (e.g., CNDP) (#22) * Fix typo (#17) * Enable GTPu path monitoring (#19) * Enable GTPu path monitoring * Update pktbatch.h (#24) --------- Signed-off-by: Saikrishna Edupuganti <[email protected]> Signed-off-by: Manoj Gopalakrishnan <[email protected]> Co-authored-by: Saikrishna Edupuganti <[email protected]> Co-authored-by: Ajay Lotan Thakur <[email protected]> Co-authored-by: Ajay Lotan Thakur <[email protected]> Co-authored-by: Amol Jaikar <[email protected]> Co-authored-by: Badhrinath <[email protected]> Co-authored-by: manojgop <[email protected]>
- Loading branch information
1 parent
c05085f
commit 0190223
Showing
457 changed files
with
9,658 additions
and
1,850 deletions.
There are no files selected for viewing
File renamed without changes.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
# SPDX-License-Identifier: Apache-2.0 | ||
# Copyright 2023 Intel Corporation | ||
|
||
version: 2 | ||
updates: | ||
|
||
- package-ecosystem: "github-actions" | ||
directory: "/" | ||
schedule: | ||
interval: "daily" | ||
|
||
- package-ecosystem: "docker" | ||
directory: "/" | ||
schedule: | ||
interval: "daily" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,30 @@ | ||
# SPDX-License-Identifier: Apache-2.0 | ||
# Copyright 2023 Intel Corporation | ||
|
||
name: C++/C/Protobuf Format Check | ||
on: | ||
- pull_request | ||
jobs: | ||
format-check: | ||
runs-on: '${{ matrix.os }}' | ||
strategy: | ||
matrix: | ||
os: | ||
- ubuntu-20.04 | ||
path: | ||
- check: 'core' | ||
exclude: '(kmod)' # Exclude "kmod" dir because of different format | ||
- check: 'protobuf' | ||
exclude: '' # Nothing to exclude | ||
- check: 'sample_plugin/modules' | ||
exclude: '' # Nothing to exclude | ||
- check: 'sample_plugin/protobuf' | ||
exclude: '' # Nothing to exclude | ||
steps: | ||
- uses: actions/checkout@v3 | ||
- name: Run clang-format style check for C/C++/Protobuf programs. | ||
uses: jidicula/[email protected] | ||
with: | ||
clang-format-version: '12' | ||
check-path: ${{ matrix.path['check'] }} | ||
exclude-regex: ${{ matrix.path['exclude'] }} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,45 @@ | ||
# SPDX-License-Identifier: Apache-2.0 | ||
# Copyright 2022 Intel Corporation | ||
|
||
name: Build and Test process | ||
on: | ||
- pull_request | ||
jobs: | ||
build: | ||
runs-on: '${{ matrix.os }}' | ||
strategy: | ||
matrix: | ||
os: | ||
- ubuntu-20.04 | ||
env: | ||
BESS_DPDK_BRANCH: "dpdk-2011-focal" | ||
steps: | ||
- uses: actions/checkout@v2 | ||
- run: sudo sysctl -w vm.nr_hugepages=512 | ||
- run: sudo apt-get update | ||
- run: sudo apt-get install -y python3-pip python3-setuptools python3-coverage python3-pyelftools ccache | ||
- run: sudo pip3 install -r requirements.txt | ||
- run: '[[ ${COVERAGE:-0} == 0 ]] || sudo apt-get install -y gcc-7' | ||
- run: '[[ ${SANITIZE:-0} == 0 ]] || sudo apt-get install -y llvm-3.9' | ||
- name: Install CNDP packages | ||
run: | | ||
sudo apt-get update && sudo apt-get install -y \ | ||
build-essential libbsd-dev libelf-dev libbpf-dev libjson-c-dev \ | ||
libnl-3-dev libnl-cli-3-dev libnuma-dev libpcap-dev meson \ | ||
pkg-config libgflags2.2 | ||
- run: | | ||
cd env | ||
yes n | ./rebuild_images.py focal64 | ||
- run: sudo mkdir -p /mnt/huge | ||
- run: sudo mount -t hugetlbfs nodev /mnt/huge | ||
- run: export CXX="ccache $VER_CXX" | ||
- run: ccache -s | ||
- run: sudo ./container_build.py bess | ||
- run: sudo ./container_build.py kmod_buildtest | ||
- run: (cd core && ./all_test --gtest_shuffle) | ||
- run: python3-coverage run -m unittest discover -v | ||
- run: python3 bessctl/run_module_tests.py | ||
- run: sudo python3 bessctl/run_module_tests.py --test_dir bessctl/module_tests/cndp | ||
- run: ccache -s | ||
- run: bessctl/bessctl daemon stop | ||
- run: '[[ ${COVERAGE:-0} == 0 ]] || { sleep 3; codecov --gcov-exec gcov-7; }' |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
# SPDX-License-Identifier: Apache-2.0 | ||
# Copyright 2023 Intel Corporation | ||
|
||
name: REUSE Compliance Check | ||
|
||
on: [push, pull_request] | ||
|
||
jobs: | ||
check: | ||
runs-on: '${{ matrix.os }}' | ||
strategy: | ||
matrix: | ||
os: | ||
- ubuntu-latest | ||
steps: | ||
- uses: actions/checkout@v3 | ||
- name: REUSE Compliance Check | ||
uses: fsfe/reuse-action@v1 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
# SPDX-License-Identifier: Apache-2.0 | ||
# Copyright 2023 Intel Corporation | ||
|
||
name: Close stale issues and PRs | ||
|
||
on: | ||
schedule: | ||
- cron: '30 1 * * *' | ||
|
||
jobs: | ||
stale: | ||
runs-on: '${{ matrix.os }}' | ||
strategy: | ||
matrix: | ||
os: | ||
- ubuntu-latest | ||
steps: | ||
- uses: actions/stale@v7 | ||
with: | ||
repo-token: ${{ secrets.GITHUB_TOKEN }} | ||
stale-issue-message: 'This issue has been stale for 30 days and will be closed in 5 days. Comment to keep it open.' | ||
stale-pr-message: 'This pull request has been stale for 30 days and will be closed in 5 days. Comment to keep it open.' | ||
stale-issue-label: 'Stale/issue' | ||
stale-pr-label: 'Stale/pr' | ||
exempt-issue-labels: 'awaiting-approval,work-in-progress' | ||
exempt-pr-labels: 'awaiting-approval,work-in-progress' | ||
days-before-stale: 30 | ||
days-before-close: 5 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ | ||
Upstream-Name: bess | ||
Upstream-Contact: OMEC Developers <[email protected]> | ||
Source: https://github.com/omec-project/bess | ||
|
||
Files: .codecov.yml .gitattributes .gitignore CONTRIBUTING.md README.md requirements.txt .hooks/pre-commit bessctl/server.py bessctl/conf/port/vhost/README.md bessctl/conf/samples/mpls_test.bess bessctl/conf/samples/tc/wfs_double.bess bessctl/module_tests/*.pcap bessctl/static/*.* .clang-format core/.gitignore core/coverage core/*.suppress core/memory*.* core/packet_pool.* core/kmod/.clang-format core/kmod/.gitignore core/kmod/install core/pb/.gitignore core/resume_hooks/README.md core/testdata/test-pktcaptures/*.bytes core/testdata/test-pktcaptures/*.pcap deps/bpf_validate.patch deps/ethdev_include.patch doxygen/README.md doxygen/bess.dox env/*.yml env/Dockerfile env/README.md env/Vagrantfile pybess/**/__init__.py pybess/**/.gitignore sample_plugin/README.md | ||
Copyright: 2016-2017, Nefeli Networks, Inc. | ||
Copyright: 2017, The Regents of the University of California. | ||
License: BSD-3-Clause |
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,39 @@ | ||
<!-- | ||
SPDX-License-Identifier: Apache-2.0 | ||
Copyright 2020 Intel Corporation | ||
--> | ||
|
||
# Cloud Native Data Plane (CNDP) BESS Port | ||
|
||
Cloud Native Data Plane (CNDP) is a collection of user space libraries for accelerating packet processing for cloud applications. It aims to provide better performance than that of standard network socket interfaces by using an I/O layer primarily built on AF_XDP, an interface that delivers packets directly to user space, bypassing the kernel networking stack. For more details refer https://cndp.io/ | ||
|
||
CNDP BESS port enables sending/receiving packets to/from network interface using AF-XDP. | ||
|
||
Following are the steps required to build BESS CNDP docker image: | ||
|
||
### Step 1: Build the BESS CNDP docker image. | ||
|
||
> Note: If you are behind a proxy make sure to export/setenv http_proxy and https_proxy | ||
From the top level BESS directory call: | ||
|
||
``` | ||
$ docker build -t besscndp --build-arg http_proxy=${http_proxy} --build-arg https_proxy=${http_proxy} -f env/Dockerfile-cndp . | ||
``` | ||
|
||
### Step 2: Run the besscndp docker container | ||
|
||
From the top level BESS directory call: | ||
|
||
``` | ||
$ docker run --network=host -e http_proxy=${http_proxy} -e https_proxy=${http_proxy} --privileged --cap-add=ALL -v /dev/hugepages:/mnt/huge -v /sys/bus/pci/devices:/sys/bus/pci/devices -v /sys/devices/system/node:/sys/devices/system/node -v /lib/modules:/lib/modules -v /dev:/dev -v /usr/src:/usr/src -it besscndp bash | ||
``` | ||
|
||
### Step 3: Run example CNDP BESS script | ||
|
||
1. Modify the jsonc file in "/build/bess/bessctl/conf/cndp/fwd.jsonc" to use the network device in your system used to send and receive n/w packets. | ||
2. Configure ethtool filter rules as required to send/recv packets via a specified queue id. Ensure that same netdev and queue id is configured in fwd.jsonc file. | ||
3. Run bessctl controller from container shell: `./bessctl/bessctl` | ||
4. From bessctl shell , run bess daemon: `daemon start -log_dir /build/bess/log` | ||
5. Run sample BESS CNDP script: `run cndp/cndpfwd_coreid`. This will run cndpfwd BESS pipeline in a core id specified in "/build/bess/bessctl/conf/cndp/cndpfwd_coreid.bess" script. Before running the script, edit the script to update core in line `bess.add_worker(wid=0, core=28)` to a core id in CPU socket where the network device is attached to get better performance. | ||
6. If everything works fine, then you should see BESS pipeline logs when you run: `monior pipeline` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.