-
Notifications
You must be signed in to change notification settings - Fork 466
Home
- Release Notes
- How to build TRex
- How to index for vscode
- How to debug with gdb TRex
- How to build TRex Simulator
- How to build doc
- Run simulation unit-test
- Run simulation functional
- Documentation
- Presentations
- Manual
- Download
- TRex on your laptop (using VirtualBox OVA)
- TRex Sandbox
- Python API
- Running regression
- How to contribute
- Regression/setups matrix (partial)
- Travis CI
$cd linux_dpdk
$./b configure (only once)
$./b build
Install clang-tools/clang-8
apt-get install clang-8 lldb-8 lld-8 clang-tools-8
$cd linux_dpdk
$CC=clang-8 CXX=clang++-8 ./b configure
$./b build
This will create compile_commands.json under linux_dpdk/build_dpdk/
"settings": {
"clangd.arguments": [
"-background-index",
"--compile-commands-dir=linux_dpdk/build_dpdk"
],
Build Output will be in "scripts" folder
$./b configure --sanitized
$./b configure --gcc6
$./b configure --no-mlx
$./b configure --with-ntacc
from "scripts" folder
$./t-rex-64-debug-gdb [args]
this script will load set the patch to so and run gdb
$cd linux
$./b configure (only once)
$./b build
$cd doc
$./b configure (only once)
$./b build
Build Output will be in "scripts" folder
$cd script
$./bp-sim-64 --ut
$./bp-sim-64-debug --ut
$cd script
$ ./run_regression --func
Stateless support: http://www.slideshare.net/HanochHaim/trex-realistic-traffic-generator-stateless-support
DPDK 2015 summit: http://www.slideshare.net/harryvanhaaren/trex-traffig-gen-hanoch-haim
Video of DPDK 2015 summit: https://www.youtube.com/watch?v=U0gRalB7DOs
Presentation-html: http://trex-tgn.cisco.com/trex/doc/trex_preso.html
In case you did some changes in code and/or want to check some new NIC, you can run our regression:
-
Create TRex config file: sudo ./dpdk_setup_ports.py -i
-
Run TRex daemon: sudo ./trex_daemon_server start
-
Make a copy of directory with setup parameters: automation/regression/setups/trex07
-
Update yaml files in that directory if needed
-
Run full regression:
./run_regression --cfg ./automation/regression/setups/<new dir>
Note
|
|
-
For small fix, just create a PR and make sure it solves the problem you are facing.
-
For a big feature do this:
-
Open an issue describing the feature, why?, what are the high level design etc
-
Try to deliver the feature in small pieces. If it is a full stack feature (Python/CP/DP) you can commit the new feature in small chunks untested and not working as long as it does not break the current code base and regression (see below)
-
Using small chunks you will get early code review and design review. if you will try to commit everything in a big commit you might get rejected at the end
-
Each commit needs to pass the following criteria in this order:
-
Pass current functional tests (see above)
-
Code review (without passing functional the code will not be inspected)
-
Regression with at least one physical setup with XL710 NIC bare-metal (see trex-08/trex/09 setups below)
-
Add documentation in asciidoc format (see $root/doc/..)
-
Add Python API documentation inside the code
-
Add new gtests (Google tests) in the code
-
Add new regression tests that test your specific features — test it on your XL710 setup
-
-
Our regression in running on multiple setups (see below) We had a plan to provide the ability to run any github remote branch against our setups, but we stop this activity due to lack of time and lack of contributors.
-
System tests on a real setups — python/nose
-
Performance tests
-
Save the results to ES/Grafana/Kibana
-
Runs 24/7 in loop (1 hours for all tests/all setups)
see Setups
see Travis