Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add TCP Prague tests #318

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
79 changes: 79 additions & 0 deletions flent/tests/4up_squarewave_prague_bbr.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
## -*- mode: python; coding: utf-8 -*-

include("netperf_definitions.inc")
DESCRIPTION="Four TCP upload streams; 2nd streams started delayed, Prague vs BBR"
DEFAULTS={'PLOT': 'totals'}
TOTAL_LENGTH=(LENGTH + DELAY*6)

DATA_SETS = o([
('TCP bbr 1',
{'test': 'TCP_STREAM', 'length': LENGTH, 'host': HOST, 'extra_test_args':
'-M ,64k', 'cong_control': 'bbr', 'units': 'Mbits/s', 'runner':
'netperf_demo'}),
('TCP prague 2',
{'test': 'TCP_STREAM', 'length': LENGTH, 'host': HOST, 'extra_test_args':
'-M ,64k', 'cong_control': 'prague', 'delay': DELAY, 'units': 'Mbits/s',
'runner': 'netperf_demo'}),
('TCP prague 3',
{'test': 'TCP_STREAM', 'length': LENGTH, 'host': HOST, 'extra_test_args':
'-M ,64k', 'cong_control': 'prague', 'delay': DELAY * 5, 'units':
'Mbits/s', 'runner': 'netperf_demo'}),
('TCP bbr 4',
{'test': 'TCP_STREAM', 'length': LENGTH, 'host': HOST, 'extra_test_args':
'-M ,64k', 'cong_control': 'bbr', 'delay': DELAY * 3, 'units':
'Mbits/s', 'runner': 'netperf_demo'}),
]
)


PLOTS = o([
('totals',
{'description': 'Bandwidth plot',
'type': 'timeseries',
'series': [{'data': 'TCP bbr 1',
'label': 'BBR 1'},
{'data': 'TCP prague 2',
'label': 'Prague 2'},
{'data': 'TCP prague 3',
'label': 'Prague 3'},
{'data': 'TCP bbr 4',
'label': 'BBR 4'},]}
),
('totals_5s',
{'description': 'Bandwidth plot, 5 second smoothed sample size',
'type': 'timeseries',
'series': [{'data': 'TCP bbr 1',
'label': 'BBR 1',
'smoothing': 5.0/STEP_SIZE},
{'data': 'TCP prague 2',
'label': 'Prague 2',
'smoothing': 5.0/STEP_SIZE},
{'data': 'TCP prague 3',
'label': 'Prague 3',
'smoothing': 5.0/STEP_SIZE},
{'data': 'TCP bbr 4',
'label': 'BBR 4',
'smoothing': 5.0/STEP_SIZE}]},
),
('box_combine',
{'description': 'Summarising combined tests',
'type': 'box_combine',
'cutoff': (DELAY,0),
'group_by': 'series',
'axis_labels': ['Mean bandwidth (MBits/s)'],
'series': [{'data': 'TCP bbr 1',
'label': 'BBR 1',
'combine_mode': 'mean'},
{'data': 'TCP prague 2',
'label': 'Prague 2',
'combine_mode': 'mean'},
{'data': 'TCP prague 3',
'label': 'Prague 3',
'combine_mode': 'mean'},
{'data': 'TCP bbr 4',
'label': 'BBR 4',
'combine_mode': 'mean'}]},
),
])

include("common.inc")
239 changes: 239 additions & 0 deletions flent/tests/prague_bbr.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,239 @@
## -*- mode: python; coding: utf-8 -*-

## rrul test specification

include("netperf_definitions.inc")
DESCRIPTION="Prague VS BBR smackdown"
DEFAULTS={'PLOT': "all_scaled"}

DATA_SETS = o([
('TCP upload Prague BE',
{'test': 'TCP_STREAM', 'length': LENGTH, 'host': HOST, 'marking': 'CS0,CS0',
'cong_control': 'prague', 'delay': DELAY, 'units': 'Mbits/s', 'runner':
'netperf_demo'}),
('TCP upload BBR BE',
{'test': 'TCP_STREAM', 'length': LENGTH, 'host': HOST, 'marking': 'CS0,CS0',
'cong_control': 'bbr', 'delay': DELAY, 'units': 'Mbits/s', 'runner':
'netperf_demo'}),
('TCP upload Prague CS1',
{'test': 'TCP_STREAM', 'length': LENGTH, 'host': HOST, 'marking': 'CS1,CS1',
'cong_control': 'prague', 'delay': DELAY, 'units': 'Mbits/s', 'runner':
'netperf_demo'}),
('TCP upload BBR CS1',
{'test': 'TCP_STREAM', 'length': LENGTH, 'host': HOST, 'marking': 'CS1,CS1',
'cong_control': 'bbr', 'delay': DELAY, 'units': 'Mbits/s', 'runner':
'netperf_demo'}),
('TCP upload avg',
{'apply_to': [glob("TCP upload*", exclude=["TCP upload sum"])],
'units': 'Mbits/s',
'runner': 'average',}),
('TCP upload sum',
{'apply_to': [glob("TCP upload*", exclude=["TCP upload avg"])],
'units': 'Mbits/s',
'runner': 'sum',}),

('TCP download Prague BE',
{'test': 'TCP_MAERTS', 'length': LENGTH, 'host': HOST, 'marking': 'CS0,CS0',
'cong_control': 'prague', 'delay': DELAY, 'units': 'Mbits/s', 'runner':
'netperf_demo'}),
('TCP download BBR BE',
{'test': 'TCP_MAERTS', 'length': LENGTH, 'host': HOST, 'marking': 'CS0,CS0',
'cong_control': 'bbr', 'delay': DELAY, 'units': 'Mbits/s', 'runner':
'netperf_demo'}),
('TCP download Prague CS1',
{'test': 'TCP_MAERTS', 'length': LENGTH, 'host': HOST, 'marking': 'CS1,CS1',
'cong_control': 'prague', 'delay': DELAY, 'units': 'Mbits/s', 'runner':
'netperf_demo'}),
('TCP download BBR CS1',
{'test': 'TCP_MAERTS', 'length': LENGTH, 'host': HOST, 'marking': 'CS1,CS1',
'cong_control': 'bbr', 'delay': DELAY, 'units': 'Mbits/s', 'runner':
'netperf_demo'}),
('TCP download avg',
{'apply_to': [glob("TCP download*", exclude=["TCP download sum"])],
'units': 'Mbits/s',
'runner': 'average',}),
('TCP download sum',
{'apply_to': [glob("TCP download*", exclude=["TCP download avg"])],
'units': 'Mbits/s',
'runner': 'sum',}),

('Ping (ms) UDP BE',
{'runner': 'udp_rtt', 'length': TOTAL_LENGTH, 'host': HOST, 'marking':
'CS0,CS0', 'units': 'ms'}),
('Ping (ms) UDP CS1',
{'runner': 'udp_rtt', 'length': TOTAL_LENGTH, 'host': HOST, 'marking':
'CS1,CS1', 'units': 'ms'}),
('Ping (ms) UDP CS6',
{'runner': 'udp_rtt', 'length': TOTAL_LENGTH, 'host': HOST, 'marking':
'CS6,CS6', 'units': 'ms'}),
('Ping (ms) ICMP',
{'ip_version': IP_VERSION, 'interval': STEP_SIZE, 'length': TOTAL_LENGTH,
'host': HOST, 'units': 'ms', 'runner': 'ping'}),
('Ping (ms) avg',
{'apply_to': [glob("Ping (ms)*")],
'units': 'ms',
'runner': 'average',}),
])

PLOTS = o([
('download',
{'description': 'Download bandwidth plot',
'type': 'timeseries',
'legend_title': 'TCP download',
'series': [{'data': 'TCP download BBR BE',
'label': 'BBR BE',
'linewidth': 2.0},
{'data': 'TCP download Prague BE',
'label': 'Prague BE'},
{'data': 'TCP download BBR CS1',
'label': 'BBR CS1'},
{'data': 'TCP download Prague CS1',
'label': 'Prague CS1'},
{'data': 'TCP download avg',
'label': 'Avg',
'smoothing': 10,
'color': 'black',
'linewidth': 2}]}),

('download_scaled',
{'description': 'Download bandwidth w/axes scaled to remove outliers',
'parent': 'download',
'scaling': (5,95)}),

('upload',
{'description': 'Upload bandwidth plot',
'type': 'timeseries',
'legend_title': 'TCP upload',
'series': [{'data': 'TCP upload BBR BE',
'label': 'BBR BE',
'linewidth': 2.0},
{'data': 'TCP upload Prague BE',
'label': 'Prague BE'},
{'data': 'TCP upload BBR CS1',
'label': 'BBR CS1'},
{'data': 'TCP upload Prague CS1',
'label': 'Prague CS1'},
{'data': 'TCP upload avg',
'label': 'Avg',
'smoothing': 10,
'color': 'black',
'linewidth': 2}]}),

('upload_scaled',
{'description': 'Upload bandwidth w/axes scaled to remove outliers',
'parent': 'upload',
'scaling': (5,95)}),

('ping',
{'description': 'Ping plot',
'type': 'timeseries',
'legend_title': 'Ping (ms)',
'axis_labels': ['Latency (ms)'],
'series': [{'data': 'Ping (ms) UDP CS6',
'label': 'UDP CS6'},
{'data': 'Ping (ms) UDP CS1',
'label': 'UDP CS1'},
{'data': 'Ping (ms) UDP BE',
'label': 'UDP BE'},
{'data': 'Ping (ms) ICMP',
'label': 'ICMP'},
{'data': 'Ping (ms) avg',
'label': 'Avg',
'smoothing': 10,
'color': 'black',
'linewidth': 2}]}),

('ping_scaled',
{'description': 'Ping w/axes scaled to remove outliers',
'parent': 'ping',
'scaling': (5,95)}),

('ping_cdf',
{'description': 'Ping CDF plot',
'type': 'cdf',
'axis_labels': ['Latency (ms)'],
'parent': 'ping',
'cutoff': (DELAY,-DELAY)}),

('icmp_cdf',
{'description': 'ICMP CDF plot',
'type': 'cdf',
'axis_labels': ['Latency (ms)'],
'series': [{'data': 'Ping (ms) ICMP',
'label': 'Ping (ms)'},
],
'cutoff': (DELAY,-DELAY)}),

('totals',
{'description': 'Total bandwidth and average ping plot',
'type': 'timeseries',
'dual_axes': True,
'axis_labels': [None, 'Latency (ms)'],
'series': [{'data': 'TCP download sum',
'label': 'Download',
'smoothing': 10},
{'data': 'TCP upload sum',
'label': 'Upload',
'smoothing': 10},
{'data': 'Ping (ms) avg',
'label': 'Ping (ms)',
'smoothing': 10,
'axis': 2}]}),
('totals_scaled',
{'description': 'Total bandwidth and average ping plot (scaled)',
'parent': 'totals',
'scaling': (5,95)}),

('all_scaled',
{'description': 'Download, upload, ping (scaled versions)',
'type': 'meta',
'subplots': ('download_scaled', 'upload_scaled', 'ping_scaled')}),

('all',
{'description': 'Download, upload, ping (unscaled versions)',
'type': 'meta',
'subplots': ('download', 'upload', 'ping')}),

('box_download',
{'description': 'Download bandwidth box plot',
'parent': 'download',
'type': 'box'}),

('box_upload',
{'description': 'Upload bandwidth box plot',
'parent': 'upload',
'type': 'box'}),

('box_ping',
{'description': 'Ping box plot',
'parent': 'ping',
'type': 'box'}),

('box_totals',
{'description': 'Box plot of totals',
'parent': 'totals',
'type': 'box',}),

('qq_icmp',
{'description': 'Q-Q plot of ICMP pings',
'type': 'qq',
'series': [{'data': 'Ping (ms) ICMP',
'label': 'Latency (ms)'},
]}),

('qq_download',
{'description': 'Q-Q plot of total download bandwidth',
'type': 'qq',
'series': [{'data': 'TCP download sum',
'label': 'Download (Mbps)'},
]}),

('qq_upload',
{'description': 'Q-Q plot of total upload bandwidth',
'type': 'qq',
'series': [{'data': 'TCP upload sum',
'label': 'Upload (Mbps)'},
]}),
])

include("common.inc")
Loading