forked from tohojo/flent
-
Notifications
You must be signed in to change notification settings - Fork 0
/
batchfile.example
263 lines (217 loc) · 5.66 KB
/
batchfile.example
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
# -*- mode:conf -*-
[Command::clear_caches]
exec = ./clear_caches.sh
type = pre
essential = yes
[Command::setup_qdiscs]
exec = ./setup_qdiscs.sh ${qdisc_name} "${qdisc_args_down}" "${qdisc_args_up}" ${rate_down} ${rate_up} ${rtt}
type = pre
essential = yes
[Command::qdisc_stats]
exec = ./qdisc_stats.sh
type = post
essential = no
[Command::tcpdump]
filename = ${data_filename}
exec = ssh ${hostname} "python tcpdump-wrapper.py start ${filename} -i ${interface} -s ${capsize}"
type = pre
essential = yes
[Command::tcpdump_stop]
filename = ${data_filename}
exec = ssh ${hostname} "python tcpdump-wrapper.py stop ${filename} -d /home/data/${batch_name}"
type = post
essential = yes
[Command::tcpdump_egress]
inherits = tcpdump
hostname = ${egress_router_hostname}
interface = ${egress_router_iface}
extra_commands = tcpdump_egress_stop
[Command::tcpdump_egress_stop]
inherits = tcpdump_stop
hostname = ${egress_router_hostname}
[Command::tcpdump_ingress]
inherits = tcpdump
hostname = ${ingress_router_hostname}
interface = ${ingress_router_iface}
extra_commands = tcpdump_ingress_stop
[Command::tcpdump_ingress_stop]
inherits = tcpdump_stop
hostname = ${ingress_router_hostname}
[Command::tcpdump_server]
inherits = tcpdump
hostname = ${server_hostname}
interface = ${server_iface}
extra_commands = tcpdump_server_stop
[Command::tcpdump_server_stop]
inherits = tcpdump_stop
hostname = ${server_hostname}
[Command::tcpdump_client]
filename = ${data_filename}
exec = python tcpdump-wrapper.py start ${filename} -i ${interface} -s ${capsize}
interface = "${client_iface}"
type = pre
essential = yes
extra_commands = tcpdump_client_stop
[Command::tcpdump_client_stop]
filename = ${data_filename}
exec = python tcpdump-wrapper.py stop ${filename} -d /home/data/${batch_name}
type = post
essential = yes
[Batch::global]
# rc file keys
remote_metadata = ${egress_router_hostname}, ${ingress_router_hostname}, ${end_hostname}, ${delaybox_hostname}
extended_metadata = yes
title = qdisc:${qdisc_label} rep:${repetition} rtt:${rtt} rate:${rate_down}/${rate_up}
filename_extra = ${rtt}-${rate_up}-${qdisc_label}-${repetition}
output_path = batch-${batch_time}/${batch_name}/${rate_up}-${repetition}
ip_version = 4
length = 60
commands = clear_caches, setup_qdiscs, tcpdump_client, tcpdump_egress, tcpdump_ingress, tcpdump_server, qdisc_stats
for_qdiscs = ared, fq_codel, fq_nocodel, codel, pie, pfifo_fast, sfq
for_bandwidths = 10mbit, 1mbit
for_rtts = 50ms
repetitions = 1
debug_log = yes
hosts = testserv-05
# Not runnable
abstract = yes
# how long to pause after each run?
pause = 5
[Batch::rrul]
inherits = global
test_name = rrul_be
disabled = yes
[Batch::tcp-upload]
inherits = global
test_name = tcp_1up_noping
disabled = yes
[Batch::tcp-upload-compete]
inherits = global
test_name = tcp_2up_delay
for_cap = fullcap
repetitions = 30
[Batch::rtt-fair]
inherits = global
hosts = testserv-01, testserv-02, testserv-03, testserv-04
test_name = rtt_fair_up
for_qdiscs = ared, fq_codel, fq_nocodel, codel, pie, pfifo_fast, pfifo_fast_1000, sfq
for_rtts = multi
repetitions = 30
[Batch::voip]
inherits = global
test_name = voip
disabled = yes
[Batch::voip-1up]
inherits = global
test_name = voip-1up
repetitions = 30
[Batch::voip-rrul]
inherits = global
test_name = voip-rrul
repetitions = 30
[Batch::http]
inherits = global
filename_extra = ${rtt}-${rate_up}-${http_site}-${qdisc_label}-${repetition}
title = qdisc:${qdisc_label} rep:${repetition} site:${http_site} rtt:${rtt} rate:${rate_down}/${rate_up}
test_name = http
for_rtts = multi
for_sites = google, huffpost
[Batch::http-1up]
inherits = http
test_name = http-1up
repetitions = 30
[Batch::http-rrul]
inherits = http
test_name = http-rrul
repetitions = 30
[Arg::global]
egress_router_hostname = testbed-02
egress_router_iface = eth2
ingress_router_hostname = testbed-04
ingress_router_iface = eth1
server_hostname = testbed-05
server_iface = eth1
client_iface = eth2
delaybox_hostname = testbed-03
end_hostname = testbed-05
capsize = 128
qdisc_args =
qdisc_label = ${qdisc_name}
rate_down = 10Mbit
rate_up = 10Mbit
rtt = 50ms
qdisc_args_up = ${qdisc_args}
qdisc_args_down = ${qdisc_args}
[Arg::fullcap]
capsize = 0
[Arg::http]
http_getter_urllist = http://testserv-05.http/mirror/${http_site}_files.txt
http_getter_dns = 10.60.5.1
[Arg::google]
inherits = http
http_site = google
[Arg::cnn]
inherits = http
http_site = cnn
step_size = 1.0
[Arg::huffpost]
inherits = http
http_site = huffpost
step_size = 1.0
[Arg::dn]
inherits = http
http_site = dn
step_size = 1.0
[Arg::1mbit]
rate_up = 1Mbit
ared_args_up = min 1514 max 3028
codel_args_up = target 13ms
[Arg::10mbit]
rate_up = 10Mbit
[Arg::50ms]
rtt = 50ms
[Arg::multi]
rtt = multi
[Arg::pie]
inherits = global
qdisc_name = pie
qdisc_args = limit 100
[Arg::codel]
inherits = global
qdisc_name = codel
qdisc_args = limit 100
qdisc_args_up = ${qdisc_args} ${codel_args_up}
codel_args_up =
[Arg::fq_codel]
inherits = global
qdisc_name = fq_codel
qdisc_args = limit 100 noecn
qdisc_args_up = ${qdisc_args} ${codel_args_up}
codel_args_up =
[Arg::fq_nocodel]
inherits = fq_codel
qdisc_args = limit 100 noecn target 100s
qdisc_args_up = ${qdisc_args}
qdisc_label = fq_nocodel
[Arg::ared]
inherits = global
qdisc_name = red
ared_args_up = min 3125
ared_args_down = min 3125
qdisc_args = limit 151400 avpkt 1514 adaptive harddrop
qdisc_args_up = ${qdisc_args} bandwidth ${rate_up} ${ared_args_up}
qdisc_args_down = ${qdisc_args} bandwidth ${rate_down} ${ared_args_down}
qdisc_label = ared
[Arg::pfifo_fast]
inherits = global
qdisc_name = pfifo_fast
qdisc_args = limit 100
[Arg::pfifo_fast_1000]
inherits = global
qdisc_name = pfifo_fast
qdisc_args = limit 1000
qdisc_label = pfifo_fast(1000)
[Arg::sfq]
inherits = global
qdisc_name = sfq
qdisc_args = limit 100