LEFT | RIGHT |
1 ## -*- Mode: python; py-indent-offset: 4; indent-tabs-mode: nil; coding: utf-8;
-*- | 1 ## -*- Mode: python; py-indent-offset: 4; indent-tabs-mode: nil; coding: utf-8;
-*- |
2 import os | 2 import os |
3 import sys | 3 import sys |
4 | 4 |
5 from waflib import Options, Logs, Utils, Task | 5 from waflib import Options, Logs, Utils, Task |
6 | 6 |
7 | 7 |
8 # Required NSC version | 8 # Required NSC version |
9 NSC_RELEASE_NAME = "nsc-0.5.3" | 9 NSC_RELEASE_NAME = "nsc-0.5.3" |
10 | 10 |
11 | 11 |
12 def options(opt): | 12 def options(opt): |
13 opt.add_option('--with-nsc', | 13 opt.add_option('--with-nsc', |
14 help=('Use Network Simulation Cradle, given by the indicated
path,' | 14 help=('Use Network Simulation Cradle, given by the indicated
path,' |
15 ' to allow the use of real-world network stacks'), | 15 ' to allow the use of real-world network stacks'), |
16 default='', dest='with_nsc') | 16 default='', dest='with_nsc') |
17 | 17 opt.add_option('--disable-nsc', |
| 18 help=('Disable Network Simulation Cradle support'), |
| 19 dest='disable_nsc', default=False, action="store_true") |
18 | 20 |
19 def configure(conf): | 21 def configure(conf): |
20 conf.env['ENABLE_NSC'] = False | 22 conf.env['ENABLE_NSC'] = False |
| 23 |
| 24 if Options.options.disable_nsc: |
| 25 conf.report_optional_feature("nsc", "Network Simulation Cradle", False, |
| 26 "disabled by user request") |
| 27 return |
21 | 28 |
22 # checks for flex and bison, which is needed to build NSCs globaliser | 29 # checks for flex and bison, which is needed to build NSCs globaliser |
23 # TODO: how to move these checks into the allinone scripts? | 30 # TODO: how to move these checks into the allinone scripts? |
24 #def check_nsc_buildutils(): | 31 #def check_nsc_buildutils(): |
25 # import flex | 32 # import flex |
26 # import bison | 33 # import bison |
27 # conf.check_tool('flex bison') | 34 # conf.check_tool('flex bison') |
28 # conf.check(lib='fl', mandatory=True) | 35 # conf.check(lib='fl', mandatory=True) |
29 | 36 |
30 # Check for the location of NSC | 37 # Check for the location of NSC |
(...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
143 'model/tcp-reno.cc', | 150 'model/tcp-reno.cc', |
144 'model/tcp-newreno.cc', | 151 'model/tcp-newreno.cc', |
145 'model/tcp-highspeed.cc', | 152 'model/tcp-highspeed.cc', |
146 'model/tcp-westwood.cc', | 153 'model/tcp-westwood.cc', |
147 'model/tcp-bic.cc', | 154 'model/tcp-bic.cc', |
148 'model/tcp-cubic.cc', | 155 'model/tcp-cubic.cc', |
149 'model/tcp-noordwijk.cc', | 156 'model/tcp-noordwijk.cc', |
150 'model/tcp-hybla.cc', | 157 'model/tcp-hybla.cc', |
151 'model/tcp-rx-buffer.cc', | 158 'model/tcp-rx-buffer.cc', |
152 'model/tcp-tx-buffer.cc', | 159 'model/tcp-tx-buffer.cc', |
| 160 'model/tcp-option.cc', |
| 161 'model/tcp-option-rfc793.cc', |
| 162 'model/tcp-option-winscale.cc', |
| 163 'model/tcp-option-ts.cc', |
153 'model/ipv4-packet-info-tag.cc', | 164 'model/ipv4-packet-info-tag.cc', |
154 'model/ipv6-packet-info-tag.cc', | 165 'model/ipv6-packet-info-tag.cc', |
155 'model/ipv4-interface-address.cc', | 166 'model/ipv4-interface-address.cc', |
156 'model/ipv4-address-generator.cc', | 167 'model/ipv4-address-generator.cc', |
157 'model/ipv4-header.cc', | 168 'model/ipv4-header.cc', |
158 'model/ipv4-route.cc', | 169 'model/ipv4-route.cc', |
159 'model/ipv4-routing-protocol.cc', | 170 'model/ipv4-routing-protocol.cc', |
160 'model/udp-socket.cc', | 171 'model/udp-socket.cc', |
161 'model/udp-socket-factory.cc', | 172 'model/udp-socket-factory.cc', |
162 'model/tcp-socket.cc', | 173 'model/tcp-socket.cc', |
(...skipping 13 matching lines...) Expand all Loading... |
176 'model/ipv4-static-routing.cc', | 187 'model/ipv4-static-routing.cc', |
177 'model/ipv4-routing-table-entry.cc', | 188 'model/ipv4-routing-table-entry.cc', |
178 'model/ipv6-static-routing.cc', | 189 'model/ipv6-static-routing.cc', |
179 'model/ipv6-routing-table-entry.cc', | 190 'model/ipv6-routing-table-entry.cc', |
180 'helper/ipv4-static-routing-helper.cc', | 191 'helper/ipv4-static-routing-helper.cc', |
181 'helper/ipv6-static-routing-helper.cc', | 192 'helper/ipv6-static-routing-helper.cc', |
182 'model/global-router-interface.cc', | 193 'model/global-router-interface.cc', |
183 'model/global-route-manager.cc', | 194 'model/global-route-manager.cc', |
184 'model/global-route-manager-impl.cc', | 195 'model/global-route-manager-impl.cc', |
185 'model/candidate-queue.cc', | 196 'model/candidate-queue.cc', |
| 197 'model/codel-queue.cc', |
186 'model/ipv4-global-routing.cc', | 198 'model/ipv4-global-routing.cc', |
187 'helper/ipv4-global-routing-helper.cc', | 199 'helper/ipv4-global-routing-helper.cc', |
188 'helper/internet-stack-helper.cc', | 200 'helper/internet-stack-helper.cc', |
189 'helper/internet-trace-helper.cc', | 201 'helper/internet-trace-helper.cc', |
190 'helper/ipv4-address-helper.cc', | 202 'helper/ipv4-address-helper.cc', |
191 'helper/ipv4-interface-container.cc', | 203 'helper/ipv4-interface-container.cc', |
192 'helper/ipv4-routing-helper.cc', | 204 'helper/ipv4-routing-helper.cc', |
193 'helper/ipv6-address-helper.cc', | 205 'helper/ipv6-address-helper.cc', |
194 'helper/ipv6-interface-container.cc', | 206 'helper/ipv6-interface-container.cc', |
195 'helper/ipv6-routing-helper.cc', | 207 'helper/ipv6-routing-helper.cc', |
(...skipping 12 matching lines...) Expand all Loading... |
208 'test/ipv4-address-generator-test-suite.cc', | 220 'test/ipv4-address-generator-test-suite.cc', |
209 'test/ipv4-address-helper-test-suite.cc', | 221 'test/ipv4-address-helper-test-suite.cc', |
210 'test/ipv4-list-routing-test-suite.cc', | 222 'test/ipv4-list-routing-test-suite.cc', |
211 'test/ipv4-packet-info-tag-test-suite.cc', | 223 'test/ipv4-packet-info-tag-test-suite.cc', |
212 'test/ipv4-raw-test.cc', | 224 'test/ipv4-raw-test.cc', |
213 'test/ipv4-header-test.cc', | 225 'test/ipv4-header-test.cc', |
214 'test/ipv4-fragmentation-test.cc', | 226 'test/ipv4-fragmentation-test.cc', |
215 'test/ipv4-forwarding-test.cc', | 227 'test/ipv4-forwarding-test.cc', |
216 'test/error-channel.cc', | 228 'test/error-channel.cc', |
217 'test/ipv4-test.cc', | 229 'test/ipv4-test.cc', |
| 230 'test/ipv4-static-routing-test-suite.cc', |
| 231 'test/ipv4-global-routing-test-suite.cc', |
218 'test/ipv6-extension-header-test-suite.cc', | 232 'test/ipv6-extension-header-test-suite.cc', |
219 'test/ipv6-list-routing-test-suite.cc', | 233 'test/ipv6-list-routing-test-suite.cc', |
220 'test/ipv6-packet-info-tag-test-suite.cc', | 234 'test/ipv6-packet-info-tag-test-suite.cc', |
221 'test/ipv6-test.cc', | 235 'test/ipv6-test.cc', |
222 'test/ipv6-raw-test.cc', | 236 'test/ipv6-raw-test.cc', |
223 'test/tcp-test.cc', | 237 'test/tcp-test.cc', |
| 238 'test/tcp-timestamp-test.cc', |
| 239 'test/tcp-wscaling-test.cc', |
| 240 'test/tcp-option-test.cc', |
| 241 'test/tcp-header-test.cc', |
224 'test/udp-test.cc', | 242 'test/udp-test.cc', |
225 'test/ipv6-address-generator-test-suite.cc', | 243 'test/ipv6-address-generator-test-suite.cc', |
226 'test/ipv6-dual-stack-test-suite.cc', | 244 'test/ipv6-dual-stack-test-suite.cc', |
227 'test/ipv6-fragmentation-test.cc', | 245 'test/ipv6-fragmentation-test.cc', |
228 'test/ipv6-forwarding-test.cc', | 246 'test/ipv6-forwarding-test.cc', |
229 'test/ipv6-ripng-test.cc', | 247 'test/ipv6-ripng-test.cc', |
230 'test/ipv6-address-helper-test-suite.cc', | 248 'test/ipv6-address-helper-test-suite.cc', |
231 'test/rtt-test.cc', | 249 'test/rtt-test.cc', |
| 250 'test/codel-queue-test-suite.cc', |
| 251 ] |
| 252 privateheaders = bld(features='ns3privateheader') |
| 253 privateheaders.module = 'internet' |
| 254 privateheaders.source = [ |
| 255 'model/tcp-option-winscale.h', |
| 256 'model/tcp-option-ts.h', |
| 257 'model/tcp-option-rfc793.h', |
232 ] | 258 ] |
233 headers = bld(features='ns3header') | 259 headers = bld(features='ns3header') |
234 headers.module = 'internet' | 260 headers.module = 'internet' |
235 headers.source = [ | 261 headers.source = [ |
236 'model/udp-header.h', | 262 'model/udp-header.h', |
237 'model/tcp-header.h', | 263 'model/tcp-header.h', |
| 264 'model/tcp-option.h', |
238 'model/icmpv4.h', | 265 'model/icmpv4.h', |
239 'model/icmpv6-header.h', | 266 'model/icmpv6-header.h', |
240 # used by routing | 267 # used by routing |
241 'model/ipv4-interface.h', | 268 'model/ipv4-interface.h', |
242 'model/ipv4-l3-protocol.h', | 269 'model/ipv4-l3-protocol.h', |
243 'model/ipv6-l3-protocol.h', | 270 'model/ipv6-l3-protocol.h', |
244 'model/ipv4-end-point.h', | 271 'model/ipv4-end-point.h', |
245 'model/ipv6-extension.h', | 272 'model/ipv6-extension.h', |
246 'model/ipv6-extension-demux.h', | 273 'model/ipv6-extension-demux.h', |
247 'model/ipv6-extension-header.h', | 274 'model/ipv6-extension-header.h', |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
284 'model/ipv4-static-routing.h', | 311 'model/ipv4-static-routing.h', |
285 'model/ipv4-routing-table-entry.h', | 312 'model/ipv4-routing-table-entry.h', |
286 'model/ipv6-static-routing.h', | 313 'model/ipv6-static-routing.h', |
287 'model/ipv6-routing-table-entry.h', | 314 'model/ipv6-routing-table-entry.h', |
288 'helper/ipv4-static-routing-helper.h', | 315 'helper/ipv4-static-routing-helper.h', |
289 'helper/ipv6-static-routing-helper.h', | 316 'helper/ipv6-static-routing-helper.h', |
290 'model/global-router-interface.h', | 317 'model/global-router-interface.h', |
291 'model/global-route-manager.h', | 318 'model/global-route-manager.h', |
292 'model/global-route-manager-impl.h', | 319 'model/global-route-manager-impl.h', |
293 'model/candidate-queue.h', | 320 'model/candidate-queue.h', |
| 321 'model/codel-queue.h', |
294 'model/ipv4-global-routing.h', | 322 'model/ipv4-global-routing.h', |
295 'helper/ipv4-global-routing-helper.h', | 323 'helper/ipv4-global-routing-helper.h', |
296 'helper/internet-stack-helper.h', | 324 'helper/internet-stack-helper.h', |
297 'helper/internet-trace-helper.h', | 325 'helper/internet-trace-helper.h', |
298 'helper/ipv4-address-helper.h', | 326 'helper/ipv4-address-helper.h', |
299 'helper/ipv4-interface-container.h', | 327 'helper/ipv4-interface-container.h', |
300 'helper/ipv4-routing-helper.h', | 328 'helper/ipv4-routing-helper.h', |
301 'helper/ipv6-address-helper.h', | 329 'helper/ipv6-address-helper.h', |
302 'helper/ipv6-interface-container.h', | 330 'helper/ipv6-interface-container.h', |
303 'helper/ipv6-routing-helper.h', | 331 'helper/ipv6-routing-helper.h', |
304 'model/ipv6-address-generator.h', | 332 'model/ipv6-address-generator.h', |
305 'model/tcp-rfc793.h',········ | 333 'model/tcp-rfc793.h',········ |
306 'model/tcp-tahoe.h', | 334 'model/tcp-tahoe.h', |
307 'model/tcp-reno.h', | 335 'model/tcp-reno.h', |
308 'model/tcp-newreno.h', | 336 'model/tcp-newreno.h', |
309 'model/tcp-highspeed.h', | 337 'model/tcp-highspeed.h', |
310 'model/tcp-hybla.h', | 338 'model/tcp-hybla.h', |
311 'model/tcp-westwood.h', | 339 'model/tcp-westwood.h', |
312 'model/tcp-cubic.h', | 340 'model/tcp-cubic.h', |
| 341 'model/tcp-bic.h', |
313 'model/tcp-noordwijk.h', | 342 'model/tcp-noordwijk.h', |
314 'model/tcp-socket-base.h', | 343 'model/tcp-socket-base.h', |
315 'model/tcp-tx-buffer.h', | 344 'model/tcp-tx-buffer.h', |
316 'model/tcp-rx-buffer.h', | 345 'model/tcp-rx-buffer.h', |
317 'model/rtt-estimator.h', | 346 'model/rtt-estimator.h', |
318 'model/ipv4-packet-probe.h', | 347 'model/ipv4-packet-probe.h', |
319 'model/ipv6-packet-probe.h', | 348 'model/ipv6-packet-probe.h', |
320 'model/ipv6-pmtu-cache.h', | 349 'model/ipv6-pmtu-cache.h', |
321 'model/ripng.h', | 350 'model/ripng.h', |
322 'model/ripng-header.h', | 351 'model/ripng-header.h', |
323 'helper/ripng-helper.h', | 352 'helper/ripng-helper.h', |
324 ] | 353 ] |
325 | 354 |
326 if bld.env['NSC_ENABLED']: | 355 if bld.env['NSC_ENABLED']: |
327 obj.source.append ('model/nsc-tcp-socket-impl.cc') | 356 obj.source.append ('model/nsc-tcp-socket-impl.cc') |
328 obj.source.append ('model/nsc-tcp-l4-protocol.cc') | 357 obj.source.append ('model/nsc-tcp-l4-protocol.cc') |
329 obj.source.append ('model/nsc-tcp-socket-factory-impl.cc') | 358 obj.source.append ('model/nsc-tcp-socket-factory-impl.cc') |
330 obj.source.append ('model/nsc-sysctl.cc') | 359 obj.source.append ('model/nsc-sysctl.cc') |
331 headers.source.append('model/nsc-tcp-l4-protocol.h') | 360 headers.source.append('model/nsc-tcp-l4-protocol.h') |
332 obj.use.append('DL') | 361 obj.use.append('DL') |
333 internet_test.use.append('DL') | 362 internet_test.use.append('DL') |
334 | 363 |
335 if (bld.env['ENABLE_EXAMPLES']): | 364 if (bld.env['ENABLE_EXAMPLES']): |
336 bld.recurse('examples') | 365 bld.recurse('examples') |
337 | 366 |
338 bld.ns3_python_bindings() | 367 bld.ns3_python_bindings() |
339 | 368 |
LEFT | RIGHT |