df9c620d97
Signed-off-by: Tuan-Dat Tran <tuan-dat.tran@tudattr.dev>
3.7 KiB
3.7 KiB
Notes for "P4 Experiment Setup"
- Review
- Requirements
- Plan Project
- Implement MVP (Minimum Viable Product)
- Refine
- Documentation
Review
Patricks Code
Patrick Review Notes
Everything in dev
branch.
picoquic is a minimalist QUIC implementation Patrick used to conduct his experiments with QUIC.
The wedge is the P4 Switch Patrick used for testing on hardware. It is pre-configured to run P4 Code.
Test nodes are:
- ncs-node3-tailscale
- ncs-node4-tailscale
- ncs-node5-tailscale
- ncs-node6-tailscale
- ncs-node7-tailscale
Three folders:
bqm
:bqm
: Implementation of bqm along with a compilation scriptconfig
: scripts to configure bfrt - automates interactions with bfshelltaildrop
: Drop bqm control packets and if queue is full (INCOMPLETE EXPLANATION)test
: Testing scripted setup of a network namespace on one hostclean_env.sh
: Delete all network namespacessetup_env.sh
: Setup NSexp_server
andexp_client
, add interfaces/IP/ARP entriesstart_tshark_1.sh
: Runstshark
in the network namespaceexp_server
oneno1np0
test.py
: Use scapy to send 20 UDP packets
test_switch
: P4 Script and BFRT configuration for testingcopy_all.sh
: Script to copy bqm and config to the Wedge
experiment-scripts
:experiment_set_1
: Experiment. Explanation inREADME.md
experiment_set_2
: Experiment. Explanation inREADME.md
experiment_set_3
: Experiment. Explanation inREADME.md
experiment_set_4
: Experiment. Explanation inREADME.md
experiment_set_reno1
: Experiment. Explanation inREADME.md
experiment_set_reno2
: Experiment. Explanation inREADME.md
experiment_set_reno3
: Experiment. Explanation inREADME.md
experiment_set_reno4
: Experiment. Explanation inREADME.md
results
: Results of prior experiments.cleanup_network.sh
: Delete all namespaces on each test nodeconfigure_picoquic.sh
: Compile picoquic on each test nodecreate_folders.sh
: Create experiment folderscredentials
: Git credentialsdiagrams.ipynb
:old.ipynb
:run_sudo.sh
: Helper script to run sudo commands via sshset_arp_entries.sh
: Set ARP entries of test setupsetup_log_locations.sh
: Copy and executecreate_folders.sh
-script on each test nodesetup_network.sh
: Setup test network. Includes:- Namespaces
- Interfaces/IPs
- Routing
- ARP Entries (with
set_arp_entries.sh
)
setup_repositories.sh
: Setup git to get picoquic on each test nodesync_time.sh
: Set time on each nodeupdate_repositories.sh
: Update picoquic on each test node
picoquic-sync
: Local copy of the picoquic library
RECN Code
04_-_Projekte/14-run_rpecn_tests/codes/Big_Topo
README.md
:- Explains the setup and prerequisite steps to run an experiment
- Prerequisite Steps:
- Setup ARP on each host
- (When first time) Install required tools
- Run switch program on wedge
- Prepare Ports on wedge
- Configure touting tables on wedge
- Do Portshaping
- Run experiment-script
- Reset of setup can be done by executing
reset.sh
on each test node
Requirements
Notes
- Testbed setup with alveo network cards to run on host and a switch
- Pluggable network traffic generation at the experimentation stage
- Xilinx FPGA Cards will be used
- Non static testbed - Make general first especially ARP/IP/Interface and go from there
Whats needed
TODO
Plan Project
Rough Sketch
I start by creating a rough sketch in ./sketch.md.