Skip to content

Commit

Permalink
Add tquic-goodput-debug.yml
Browse files Browse the repository at this point in the history
  • Loading branch information
iyangsj committed Nov 6, 2024
1 parent 3c5cf77 commit 0800502
Show file tree
Hide file tree
Showing 2 changed files with 86 additions and 1 deletion.
85 changes: 85 additions & 0 deletions .github/workflows/tquic-goodput-debug.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
name: Goodput

on:
schedule:
- cron: '30 1 * * *'
workflow_dispatch:

env:
CARGO_TERM_COLOR: always
QUIC_IMAGES: gquiche=tquicgroup/qirgq,lsquic=tquicgroup/qirls,picoquic=tquicgroup/qirpq,quiche=tquicgroup/qircq

jobs:
measure:
runs-on: ubuntu-latest

strategy:
matrix:
impl: [tquic]
case: [goodput10m]
cc: [cubic]

# The scheduled workflow only runs for the main repository.
# You can manually trigger it if necessary.
if: ${{ ( github.event_name == 'schedule' && github.repository == 'tencent/tquic' ) || github.event_name == 'workflow_dispatch' }}
steps:
- uses: actions/checkout@v4
with:
submodules: 'recursive'

- name: Build docker image
run: docker build -t tquic_interop:v1 -f interop/Dockerfile .

- name: Install quic-interop-runner
run: |
git clone https://github.com/tquic-group/quic-interop-runner.git
cd quic-interop-runner
pip3 install -r requirements.txt
- name: Install dependencies
run: |
sudo modprobe ip6table_filter
sudo add-apt-repository -y ppa:wireshark-dev/stable
sudo apt install -y tshark
- name: Run the interop tests
run: |
cd quic-interop-runner
python3 run.py -r "$QUIC_IMAGES,tquic=tquic_interop:v1" -s ${{ matrix.impl }} -c ${{ matrix.impl }} -t ${{ matrix.case }} -a ${{ matrix.cc }} -d -n "drop-rate --delay=15ms --bandwidth=10Mbps --queue=25 --rate_to_server=0 --rate_to_client=0" -j ${{ matrix.case }}-0-${{ matrix.cc }}-${{ matrix.impl }}.json
- name: Store measurement results
uses: actions/upload-artifact@v4
with:
name: ${{ matrix.case }}-${{ matrix.cc }}-${{ matrix.impl }}
path: quic-interop-runner/*

result:
runs-on: ubuntu-latest
needs: measure
steps:
- name: Download all workflow run artifacts
uses: actions/download-artifact@v4

- name: Display structure of downloaded files
run: ls -R

- name: Display all measurement details
run: grep "details.*" . -Ro

- name: Download plot tools
uses: actions/checkout@v4
with:
path: tools

- name: Install dependencies
run: |
sudo apt install python3-matplotlib
- name: Plot all measurement results
run: python3 tools/.github/workflows/plot-goodput.py .

- name: Store all measurement results
uses: actions/upload-artifact@v4
with:
name: goodput-all-result
path: goodput*
2 changes: 1 addition & 1 deletion interop/run_endpoint.sh
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ esac

# Note: You can add extra command-line options to tquic_client/tquic_sever by
# using the `EXTRA_ARGS` environment variable.
COMMON_ARGS="--keylog-file $SSLKEYLOGFILE --log-level DEBUG --log-file $LOG_DIR/$ROLE.log --idle-timeout 30000 --handshake-timeout 30000 --initial-rtt 100 --congestion-control-algor $CC_ALGOR $EXTRA_ARGS"
COMMON_ARGS="--keylog-file $SSLKEYLOGFILE --log-level trace --log-file $LOG_DIR/$ROLE.log --idle-timeout 30000 --handshake-timeout 30000 --initial-rtt 100 --congestion-control-algor $CC_ALGOR $EXTRA_ARGS"

if [ "$TESTCASE" != "transfer" ]; then
COMMON_ARGS="$COMMON_ARGS --qlog-dir $QLOG_DIR"
Expand Down

0 comments on commit 0800502

Please sign in to comment.