[Cake] Exercising all cake tins in diffserv4 with flent

Kevin Darbyshire-Bryant kevin at darbyshire-bryant.me.uk
Tue Nov 10 06:18:24 EST 2015


Hi All,

Maybe someone will find this useful:  Attached is a flent config for
exercising all of cake's diffserv tins in diffserv4 mode.  Very much
based on rrul, in essence it runs at least 1 tcp stream in each tin.  2
streams are used in each tin for upload, only 1 stream per tin for
download - I was interested in upload fairness between tins & flows
within tins in a 'full on, everyone competing for everything' type test.

Well, it's kept me entertained for a few minutes :-)

Kevin
-------------- next part --------------
## -*- mode: python; coding: utf-8 -*-

## rrul test specification

include("netperf_definitions.inc")
DESCRIPTION="Realtime Response Under Load 4-way cake split-tin bake"
DEFAULTS={'PLOT': "all_scaled"}

DATA_SETS = o([
    ('TCP upload BE-1',
     {'command': find_netperf("TCP_STREAM", LENGTH, HOST, marking="CS0,CS0"),
      'delay': DELAY,
      'units': 'Mbits/s',
      'runner': 'netperf_demo',}),
    ('TCP upload BE-2',
     {'command': find_netperf("TCP_STREAM", LENGTH, HOST, marking="CS0,CS0"),
      'delay': DELAY,
      'units': 'Mbits/s',
      'runner': 'netperf_demo',}),
    ('TCP upload BK-1',
     {'command': find_netperf("TCP_STREAM", LENGTH, HOST, marking="CS1,CS1"),
      'delay': DELAY,
      'units': 'Mbits/s',
      'runner': 'netperf_demo',}),
    ('TCP upload BK-2',
     {'command': find_netperf("TCP_STREAM", LENGTH, HOST, marking="CS1,CS1"),
      'delay': DELAY,
      'units': 'Mbits/s',
      'runner': 'netperf_demo',}),
    ('TCP upload CS3-1',
     {'command': find_netperf("TCP_STREAM", LENGTH, HOST, marking="CS3,CS3"),
      'delay': DELAY,
      'units': 'Mbits/s',
      'runner': 'netperf_demo',}),
    ('TCP upload CS3-2',
     {'command': find_netperf("TCP_STREAM", LENGTH, HOST, marking="CS3,CS3"),
      'delay': DELAY,
      'units': 'Mbits/s',
      'runner': 'netperf_demo',}),
    ('TCP upload EF-1',
     {'command': find_netperf("TCP_STREAM", LENGTH, HOST, marking="EF,EF"),
       'delay': DELAY,
       'units': 'Mbits/s',
       'runner': 'netperf_demo',}),
    ('TCP upload EF-2',
     {'command': find_netperf("TCP_STREAM", LENGTH, HOST, marking="EF,EF"),
       '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 BE',
     {'command': find_netperf("TCP_MAERTS", LENGTH, HOST, marking="CS0,CS0"),
      'delay': DELAY,
      'units': 'Mbits/s',
      'runner': 'netperf_demo',}),
    ('TCP download BK',
     {'command': find_netperf("TCP_MAERTS", LENGTH, HOST, marking="CS1,CS1"),
      'delay': DELAY,
      'units': 'Mbits/s',
      'runner': 'netperf_demo',}),
    ('TCP download CS3',
     {'command': find_netperf("TCP_MAERTS", LENGTH, HOST, marking="CS3,CS3"),
      'delay': DELAY,
      'units': 'Mbits/s',
      'runner': 'netperf_demo',}),
    ('TCP download EF',
     {'command': find_netperf("TCP_MAERTS", LENGTH, HOST, marking="EF,EF"),
       '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',}),
    ('TCP totals',
     {'apply_to': [glob("TCP*", exclude=["TCP download avg", "TCP download sum", "TCP upload avg", "TCP upload sum"])],
       'units': 'Mbits/s',
       'runner': 'sum',}),

    ('Ping (ms) UDP EF',
     {'command': find_netperf("UDP_RR", TOTAL_LENGTH, HOST, marking="EF,EF"),
      'data_transform': 'rr_to_ms',
      'units': 'ms',
      'runner': 'netperf_demo',}),
    ('Ping (ms) UDP BK',
     {'command': find_netperf("UDP_RR", TOTAL_LENGTH, HOST, marking="CS1,CS1"),
      'data_transform': 'rr_to_ms',
      'units': 'ms',
      'runner': 'netperf_demo',}),
    ('Ping (ms) UDP CS3',
     {'command': find_netperf("UDP_RR", TOTAL_LENGTH, HOST, marking="CS3,CS3"),
      'data_transform': 'rr_to_ms',
      'units': 'ms',
      'runner': 'netperf_demo',}),
    ('Ping (ms) UDP BE',
     {'command': find_netperf("UDP_RR", TOTAL_LENGTH, HOST),
      'data_transform': 'rr_to_ms',
      'units': 'ms',
      'runner': 'netperf_demo',}),
    ('Ping (ms) ICMP',
     {'command': find_ping(IP_VERSION, STEP_SIZE, TOTAL_LENGTH, 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 BE',
                  'label': 'BE'},
                 {'data': 'TCP download BK',
                  'label': 'BK'},
                 {'data': 'TCP download CS3',
                  'label': 'CS3'},
                 {'data': 'TCP download EF',
                  'label': 'EF'},
                 {'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 BE-1',
                  'label': 'BE-1'},
                 {'data': 'TCP upload BE-2',
                  'label': 'BE-2'},
                 {'data': 'TCP upload BK-1',
                  'label': 'BK-1'},
                 {'data': 'TCP upload BK-2',
                  'label': 'BK-2'},
                 {'data': 'TCP upload CS3-1',
                  'label': 'CS3-1'},
                 {'data': 'TCP upload CS3-2',
                  'label': 'CS3-2'},
                 {'data': 'TCP upload EF-1',
                  'label': 'EF-1'},
                 {'data': 'TCP upload EF-2',
                  'label': 'EF-2'},
                 {'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 BE',
                  'label': 'UDP BE'},
                 {'data': 'Ping (ms) UDP BK',
                  'label': 'UDP BK'},
                 {'data': 'Ping (ms) ICMP',
                  'label': 'ICMP'},
		 {'data': 'Ping (ms) UDP EF',
                  'label': 'UDP EF'},
		 {'data': 'Ping (ms) UDP CS3',
                  'label': 'UDP CS3'},
                 {'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_bandwidth',
     {'description': 'Total bandwidth',
      'type': 'timeseries',
      'series': [{'data': 'TCP download sum',
                  'label': 'Download',
                  'smoothing': 10},
                 {'data': 'TCP upload sum',
                  'label': 'Upload',
                  'smoothing': 10}]}),
    ('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,
                  'color': 'red',
                  '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',}),
    ('icmp_combine',
     {'description': 'Combined ICMP ping plot',
      'parent': 'icmp_cdf',
      'type': 'timeseries_combine',
      'group_by': 'groups_points',
      'cutoff': None}),

    ('box_combine',
     {'description': 'Box plot of averages of several data files.',
      'type': 'box_combine',
      'dual_axes': True,
      'axis_labels': ['Mean TCP goodput (Mbit/s)', 'Mean induced latency (ms)'],
      'cutoff': (DELAY,DELAY),
      'series': [{'data': 'TCP download sum',
                  'label': 'Download',
                  'combine_mode': 'meta:MEAN_VALUE'},
                 {'data': 'TCP upload sum',
                  'label': 'Upload',
                  'combine_mode': 'meta:MEAN_VALUE'},
                 {'data': 'Ping (ms) avg',
                  'label': 'Induced latency (ms)',
                  'combine_mode': 'mean_span',
                  'axis': 2}]}),

    ('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)'},
                 ]}),
    ('ellipsis',
     {'description': 'Ellipsis plot',
      'type': 'ellipsis',
      'series': [{'data': 'Ping (ms) avg',
                   'label': 'Latency (avg)'},
                   {'data': 'TCP upload sum',
                  'label': 'Upload (Mbps)'}
                   ]}),
    ('ellipsis_down',
     {'description': 'Ellipsis plot',
      'type': 'ellipsis',
      'series': [{'data': 'Ping (ms) avg',
                   'label': 'Latency (avg)'},
                {'data': 'TCP download sum',
                 'label': 'Download (Mbps)'},
                   ]}),
    ('ellipsis_sum',
     {'description': 'Ellipsis plot',
      'type': 'ellipsis',
      'series': [{'data': 'Ping (ms) avg',
                   'label': 'Latency (avg)'},
                {'data': 'TCP totals',
                 'label': 'Throughput (Mbps)'}
                   ]}),
    ])
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 4816 bytes
Desc: S/MIME Cryptographic Signature
URL: <https://lists.bufferbloat.net/pipermail/cake/attachments/20151110/434f5eca/attachment-0002.bin>


More information about the Cake mailing list