2011-02-25 10:32:35 -08:00
|
|
|
## -*- Mode: python; py-indent-offset: 4; indent-tabs-mode: nil; coding: utf-8; -*-
|
|
|
|
|
import os
|
|
|
|
|
import sys
|
|
|
|
|
|
2013-04-01 22:33:46 +02:00
|
|
|
from waflib import Options, Logs, Utils, Task
|
|
|
|
|
|
2011-02-25 10:32:35 -08:00
|
|
|
|
|
|
|
|
# Required NSC version
|
2012-05-27 15:34:02 -07:00
|
|
|
NSC_RELEASE_NAME = "nsc-0.5.3"
|
2011-02-25 10:32:35 -08:00
|
|
|
|
|
|
|
|
|
2011-09-12 14:54:27 +01:00
|
|
|
def options(opt):
|
2011-02-25 10:32:35 -08:00
|
|
|
opt.add_option('--with-nsc',
|
|
|
|
|
help=('Use Network Simulation Cradle, given by the indicated path,'
|
|
|
|
|
' to allow the use of real-world network stacks'),
|
|
|
|
|
default='', dest='with_nsc')
|
2014-09-05 15:25:10 -07:00
|
|
|
opt.add_option('--disable-nsc',
|
|
|
|
|
help=('Disable Network Simulation Cradle support'),
|
|
|
|
|
dest='disable_nsc', default=False, action="store_true")
|
2011-02-25 10:32:35 -08:00
|
|
|
|
|
|
|
|
def configure(conf):
|
|
|
|
|
conf.env['ENABLE_NSC'] = False
|
|
|
|
|
|
2014-09-05 15:25:10 -07:00
|
|
|
if Options.options.disable_nsc:
|
|
|
|
|
conf.report_optional_feature("nsc", "Network Simulation Cradle", False,
|
|
|
|
|
"disabled by user request")
|
|
|
|
|
return
|
|
|
|
|
|
2011-02-25 10:32:35 -08:00
|
|
|
# checks for flex and bison, which is needed to build NSCs globaliser
|
|
|
|
|
# TODO: how to move these checks into the allinone scripts?
|
|
|
|
|
#def check_nsc_buildutils():
|
|
|
|
|
# import flex
|
|
|
|
|
# import bison
|
|
|
|
|
# conf.check_tool('flex bison')
|
|
|
|
|
# conf.check(lib='fl', mandatory=True)
|
|
|
|
|
|
|
|
|
|
# Check for the location of NSC
|
2013-04-24 15:54:13 -07:00
|
|
|
lib_to_check = 'liblinux2.6.26.so'
|
2011-02-25 10:32:35 -08:00
|
|
|
if Options.options.with_nsc:
|
|
|
|
|
if os.path.isdir(Options.options.with_nsc):
|
2011-09-20 14:25:45 +01:00
|
|
|
conf.msg("Checking for NSC location", ("%s (given)" % Options.options.with_nsc))
|
2011-02-25 10:32:35 -08:00
|
|
|
conf.env['WITH_NSC'] = os.path.abspath(Options.options.with_nsc)
|
|
|
|
|
else:
|
2013-04-24 15:54:13 -07:00
|
|
|
# bake.py uses ../../build, while ns-3-dev uses ../nsc,
|
|
|
|
|
# and ns-3 release uses ../NSC_RELEASE_NAME
|
|
|
|
|
nsc_bake_build_dir = os.path.join('..', '..', 'build')
|
|
|
|
|
nsc_bake_lib_dir = os.path.join(nsc_bake_build_dir, 'lib')
|
2011-02-25 10:32:35 -08:00
|
|
|
nsc_dir = os.path.join('..', "nsc")
|
|
|
|
|
nsc_release_dir = os.path.join('..', NSC_RELEASE_NAME)
|
2013-04-24 15:54:13 -07:00
|
|
|
if os.path.exists(os.path.join(nsc_bake_lib_dir, lib_to_check)):
|
|
|
|
|
conf.msg("Checking for NSC location",("%s (guessed)" % nsc_bake_build_dir))
|
|
|
|
|
conf.env['WITH_NSC'] = os.path.abspath(nsc_bake_build_dir)
|
|
|
|
|
elif os.path.isdir(nsc_dir):
|
2011-09-20 14:25:45 +01:00
|
|
|
conf.msg("Checking for NSC location",("%s (guessed)" % nsc_dir))
|
2011-02-25 10:32:35 -08:00
|
|
|
conf.env['WITH_NSC'] = os.path.abspath(nsc_dir)
|
|
|
|
|
elif os.path.isdir(nsc_release_dir):
|
2011-09-20 14:25:45 +01:00
|
|
|
conf.msg("Checking for NSC location", ("%s (guessed)" % nsc_release_dir))
|
2011-02-25 10:32:35 -08:00
|
|
|
conf.env['WITH_NSC'] = os.path.abspath(nsc_release_dir)
|
2013-04-24 15:54:13 -07:00
|
|
|
del nsc_bake_build_dir
|
|
|
|
|
del nsc_bake_lib_dir
|
2011-02-25 10:32:35 -08:00
|
|
|
del nsc_dir
|
|
|
|
|
del nsc_release_dir
|
|
|
|
|
|
|
|
|
|
if not conf.env['WITH_NSC']:
|
2011-09-20 14:25:45 +01:00
|
|
|
conf.msg("Checking for NSC location", False)
|
2011-02-25 10:32:35 -08:00
|
|
|
conf.report_optional_feature("nsc", "Network Simulation Cradle", False,
|
|
|
|
|
"NSC not found (see option --with-nsc)")
|
2015-09-03 21:14:55 -07:00
|
|
|
return
|
2011-02-25 10:32:35 -08:00
|
|
|
|
2011-09-23 11:42:49 +01:00
|
|
|
if Options.platform in ['linux', 'freebsd']:
|
2011-02-25 10:32:35 -08:00
|
|
|
arch = os.uname()[4]
|
|
|
|
|
else:
|
|
|
|
|
arch = None
|
|
|
|
|
ok = False
|
2011-09-23 11:42:49 +01:00
|
|
|
if arch in ('amd64', 'x86_64', 'i686', 'i586', 'i486', 'i386'):
|
2011-02-25 10:32:35 -08:00
|
|
|
conf.env['NSC_ENABLED'] = True
|
|
|
|
|
conf.env.append_value('CXXDEFINES', 'NETWORK_SIMULATION_CRADLE')
|
2011-09-22 13:03:25 +01:00
|
|
|
conf.check_nonfatal(mandatory=True, lib='dl', define_name='HAVE_DL', uselib_store='DL')
|
2011-02-25 10:32:35 -08:00
|
|
|
ok = True
|
2011-09-23 11:42:49 +01:00
|
|
|
conf.msg('Checking for NSC supported architecture ' + (arch or ''), ok)
|
2011-02-25 10:32:35 -08:00
|
|
|
|
|
|
|
|
if not ok:
|
|
|
|
|
conf.env['NSC_ENABLED'] = False
|
|
|
|
|
conf.report_optional_feature("nsc", "Network Simulation Cradle", False,
|
|
|
|
|
"architecture %r not supported" % arch)
|
|
|
|
|
return
|
|
|
|
|
|
2011-03-30 14:12:46 +02:00
|
|
|
found = False
|
2011-04-27 10:16:08 -04:00
|
|
|
for path in ['.', 'lib', 'lib64', 'linux-2.6.26']:
|
2011-03-30 14:12:46 +02:00
|
|
|
if os.path.exists(os.path.join(conf.env['WITH_NSC'], path, lib_to_check)):
|
2011-03-30 15:02:38 -07:00
|
|
|
# append the NSC kernel dir to the module path so that this dir
|
2011-03-30 14:12:46 +02:00
|
|
|
# will end up in the LD_LIBRARY_PATH, thus allowing the NSC NS-3
|
|
|
|
|
# module to find the necessary NSC shared libraries.
|
|
|
|
|
found = True
|
2011-03-30 15:02:38 -07:00
|
|
|
conf.env.append_value('NS3_MODULE_PATH',
|
|
|
|
|
os.path.abspath(os.path.join(conf.env['WITH_NSC'], path)))
|
2011-03-30 14:12:46 +02:00
|
|
|
if not found:
|
2011-02-25 10:32:35 -08:00
|
|
|
conf.env['NSC_ENABLED'] = False
|
|
|
|
|
conf.report_optional_feature("nsc", "Network Simulation Cradle", False,
|
2011-03-30 14:12:46 +02:00
|
|
|
"NSC library %s is missing: NSC has not been built?" % lib_to_check)
|
|
|
|
|
else:
|
|
|
|
|
conf.report_optional_feature("nsc", "Network Simulation Cradle", True, "")
|
2011-02-25 10:32:35 -08:00
|
|
|
|
2013-04-26 10:09:32 -07:00
|
|
|
|
2011-02-25 10:32:35 -08:00
|
|
|
def build(bld):
|
|
|
|
|
# bridge and mpi dependencies are due to global routing
|
2011-03-18 10:58:21 -07:00
|
|
|
obj = bld.create_ns3_module('internet', ['bridge', 'mpi', 'network', 'core'])
|
2011-02-25 10:32:35 -08:00
|
|
|
obj.source = [
|
2012-02-20 14:05:07 +01:00
|
|
|
'model/ip-l4-protocol.cc',
|
2011-02-25 10:32:35 -08:00
|
|
|
'model/udp-header.cc',
|
|
|
|
|
'model/tcp-header.cc',
|
|
|
|
|
'model/ipv4-interface.cc',
|
|
|
|
|
'model/ipv4-l3-protocol.cc',
|
|
|
|
|
'model/ipv4-end-point.cc',
|
|
|
|
|
'model/udp-l4-protocol.cc',
|
|
|
|
|
'model/tcp-l4-protocol.cc',
|
|
|
|
|
'model/arp-header.cc',
|
|
|
|
|
'model/arp-cache.cc',
|
|
|
|
|
'model/arp-l3-protocol.cc',
|
|
|
|
|
'model/udp-socket-impl.cc',
|
|
|
|
|
'model/ipv4-end-point-demux.cc',
|
|
|
|
|
'model/udp-socket-factory-impl.cc',
|
|
|
|
|
'model/tcp-socket-factory-impl.cc',
|
|
|
|
|
'model/pending-data.cc',
|
|
|
|
|
'model/rtt-estimator.cc',
|
|
|
|
|
'model/ipv4-raw-socket-factory-impl.cc',
|
|
|
|
|
'model/ipv4-raw-socket-impl.cc',
|
|
|
|
|
'model/icmpv4.cc',
|
|
|
|
|
'model/icmpv4-l4-protocol.cc',
|
|
|
|
|
'model/loopback-net-device.cc',
|
|
|
|
|
'model/ndisc-cache.cc',
|
|
|
|
|
'model/ipv6-interface.cc',
|
|
|
|
|
'model/icmpv6-header.cc',
|
|
|
|
|
'model/ipv6-l3-protocol.cc',
|
|
|
|
|
'model/ipv6-end-point.cc',
|
|
|
|
|
'model/ipv6-end-point-demux.cc',
|
|
|
|
|
'model/ipv6-raw-socket-factory-impl.cc',
|
|
|
|
|
'model/ipv6-raw-socket-impl.cc',
|
|
|
|
|
'model/ipv6-autoconfigured-prefix.cc',
|
|
|
|
|
'model/ipv6-extension.cc',
|
|
|
|
|
'model/ipv6-extension-header.cc',
|
|
|
|
|
'model/ipv6-extension-demux.cc',
|
|
|
|
|
'model/ipv6-option.cc',
|
|
|
|
|
'model/ipv6-option-header.cc',
|
|
|
|
|
'model/ipv6-option-demux.cc',
|
|
|
|
|
'model/icmpv6-l4-protocol.cc',
|
|
|
|
|
'model/tcp-socket-base.cc',
|
2015-10-16 10:42:30 -07:00
|
|
|
'model/tcp-congestion-ops.cc',
|
2013-04-18 15:57:07 -04:00
|
|
|
'model/tcp-westwood.cc',
|
2011-02-25 10:32:35 -08:00
|
|
|
'model/tcp-rx-buffer.cc',
|
|
|
|
|
'model/tcp-tx-buffer.cc',
|
2014-09-05 16:57:11 -07:00
|
|
|
'model/tcp-option.cc',
|
|
|
|
|
'model/tcp-option-rfc793.cc',
|
|
|
|
|
'model/tcp-option-winscale.cc',
|
|
|
|
|
'model/tcp-option-ts.cc',
|
2011-02-25 10:32:35 -08:00
|
|
|
'model/ipv4-packet-info-tag.cc',
|
|
|
|
|
'model/ipv6-packet-info-tag.cc',
|
|
|
|
|
'model/ipv4-interface-address.cc',
|
|
|
|
|
'model/ipv4-address-generator.cc',
|
|
|
|
|
'model/ipv4-header.cc',
|
|
|
|
|
'model/ipv4-route.cc',
|
|
|
|
|
'model/ipv4-routing-protocol.cc',
|
|
|
|
|
'model/udp-socket.cc',
|
|
|
|
|
'model/udp-socket-factory.cc',
|
|
|
|
|
'model/tcp-socket.cc',
|
|
|
|
|
'model/tcp-socket-factory.cc',
|
|
|
|
|
'model/ipv4.cc',
|
|
|
|
|
'model/ipv4-raw-socket-factory.cc',
|
|
|
|
|
'model/ipv6-header.cc',
|
|
|
|
|
'model/ipv6-interface-address.cc',
|
|
|
|
|
'model/ipv6-route.cc',
|
|
|
|
|
'model/ipv6.cc',
|
|
|
|
|
'model/ipv6-raw-socket-factory.cc',
|
|
|
|
|
'model/ipv6-routing-protocol.cc',
|
|
|
|
|
'model/ipv4-list-routing.cc',
|
|
|
|
|
'model/ipv6-list-routing.cc',
|
|
|
|
|
'helper/ipv4-list-routing-helper.cc',
|
|
|
|
|
'helper/ipv6-list-routing-helper.cc',
|
|
|
|
|
'model/ipv4-static-routing.cc',
|
|
|
|
|
'model/ipv4-routing-table-entry.cc',
|
|
|
|
|
'model/ipv6-static-routing.cc',
|
|
|
|
|
'model/ipv6-routing-table-entry.cc',
|
|
|
|
|
'helper/ipv4-static-routing-helper.cc',
|
|
|
|
|
'helper/ipv6-static-routing-helper.cc',
|
|
|
|
|
'model/global-router-interface.cc',
|
|
|
|
|
'model/global-route-manager.cc',
|
|
|
|
|
'model/global-route-manager-impl.cc',
|
|
|
|
|
'model/candidate-queue.cc',
|
2014-09-04 12:18:19 -07:00
|
|
|
'model/codel-queue.cc',
|
2011-02-25 10:32:35 -08:00
|
|
|
'model/ipv4-global-routing.cc',
|
|
|
|
|
'helper/ipv4-global-routing-helper.cc',
|
|
|
|
|
'helper/internet-stack-helper.cc',
|
2011-02-25 15:07:29 -08:00
|
|
|
'helper/internet-trace-helper.cc',
|
2011-02-25 10:32:35 -08:00
|
|
|
'helper/ipv4-address-helper.cc',
|
|
|
|
|
'helper/ipv4-interface-container.cc',
|
|
|
|
|
'helper/ipv4-routing-helper.cc',
|
|
|
|
|
'helper/ipv6-address-helper.cc',
|
|
|
|
|
'helper/ipv6-interface-container.cc',
|
|
|
|
|
'helper/ipv6-routing-helper.cc',
|
2011-11-26 20:33:45 -08:00
|
|
|
'model/ipv6-address-generator.cc',
|
2013-08-08 06:40:41 -07:00
|
|
|
'model/ipv4-packet-probe.cc',
|
2013-08-11 12:34:17 +02:00
|
|
|
'model/ipv6-packet-probe.cc',
|
2013-08-12 06:51:18 +02:00
|
|
|
'model/ipv6-pmtu-cache.cc',
|
2014-03-17 20:01:49 +01:00
|
|
|
'model/ripng.cc',
|
|
|
|
|
'model/ripng-header.cc',
|
|
|
|
|
'helper/ripng-helper.cc',
|
2011-02-25 10:32:35 -08:00
|
|
|
]
|
|
|
|
|
|
2011-03-24 15:05:20 -07:00
|
|
|
internet_test = bld.create_ns3_module_test_library('internet')
|
|
|
|
|
internet_test.source = [
|
2011-03-28 15:09:39 -07:00
|
|
|
'test/global-route-manager-impl-test-suite.cc',
|
2011-04-06 16:51:14 -07:00
|
|
|
'test/ipv4-address-generator-test-suite.cc',
|
|
|
|
|
'test/ipv4-address-helper-test-suite.cc',
|
2011-03-28 15:09:39 -07:00
|
|
|
'test/ipv4-list-routing-test-suite.cc',
|
|
|
|
|
'test/ipv4-packet-info-tag-test-suite.cc',
|
2011-03-24 15:05:20 -07:00
|
|
|
'test/ipv4-raw-test.cc',
|
2011-10-21 08:52:15 -04:00
|
|
|
'test/ipv4-header-test.cc',
|
2011-07-08 21:09:22 +02:00
|
|
|
'test/ipv4-fragmentation-test.cc',
|
2013-06-30 14:10:49 +02:00
|
|
|
'test/ipv4-forwarding-test.cc',
|
2011-07-08 21:09:22 +02:00
|
|
|
'test/error-channel.cc',
|
2011-03-24 15:05:20 -07:00
|
|
|
'test/ipv4-test.cc',
|
2014-09-06 07:09:08 +02:00
|
|
|
'test/ipv4-static-routing-test-suite.cc',
|
|
|
|
|
'test/ipv4-global-routing-test-suite.cc',
|
2011-03-24 15:05:20 -07:00
|
|
|
'test/ipv6-extension-header-test-suite.cc',
|
2011-03-28 15:09:39 -07:00
|
|
|
'test/ipv6-list-routing-test-suite.cc',
|
|
|
|
|
'test/ipv6-packet-info-tag-test-suite.cc',
|
2011-03-24 15:05:20 -07:00
|
|
|
'test/ipv6-test.cc',
|
2013-02-12 12:44:25 +09:00
|
|
|
'test/ipv6-raw-test.cc',
|
2011-03-24 15:05:20 -07:00
|
|
|
'test/tcp-test.cc',
|
2014-09-05 16:57:11 -07:00
|
|
|
'test/tcp-timestamp-test.cc',
|
|
|
|
|
'test/tcp-wscaling-test.cc',
|
|
|
|
|
'test/tcp-option-test.cc',
|
|
|
|
|
'test/tcp-header-test.cc',
|
2015-10-16 10:43:36 -07:00
|
|
|
'test/tcp-general-test.cc',
|
2015-10-16 10:43:44 -07:00
|
|
|
'test/tcp-error-model.cc',
|
2015-10-16 10:43:48 -07:00
|
|
|
'test/tcp-slow-start-test.cc',
|
2011-03-24 15:05:20 -07:00
|
|
|
'test/udp-test.cc',
|
2011-11-26 20:33:45 -08:00
|
|
|
'test/ipv6-address-generator-test-suite.cc',
|
2012-02-20 14:05:07 +01:00
|
|
|
'test/ipv6-dual-stack-test-suite.cc',
|
2012-03-21 18:51:55 +01:00
|
|
|
'test/ipv6-fragmentation-test.cc',
|
2013-06-30 14:10:49 +02:00
|
|
|
'test/ipv6-forwarding-test.cc',
|
2014-03-17 20:01:49 +01:00
|
|
|
'test/ipv6-ripng-test.cc',
|
|
|
|
|
'test/ipv6-address-helper-test-suite.cc',
|
2013-04-19 14:52:17 -04:00
|
|
|
'test/rtt-test.cc',
|
2014-09-04 12:27:00 -07:00
|
|
|
'test/codel-queue-test-suite.cc',
|
2011-03-24 15:05:20 -07:00
|
|
|
]
|
2015-01-29 19:00:01 -08:00
|
|
|
privateheaders = bld(features='ns3privateheader')
|
|
|
|
|
privateheaders.module = 'internet'
|
|
|
|
|
privateheaders.source = [
|
|
|
|
|
'model/tcp-option-winscale.h',
|
|
|
|
|
'model/tcp-option-ts.h',
|
|
|
|
|
'model/tcp-option-rfc793.h',
|
|
|
|
|
]
|
2013-04-01 22:33:46 +02:00
|
|
|
headers = bld(features='ns3header')
|
2011-02-25 10:32:35 -08:00
|
|
|
headers.module = 'internet'
|
|
|
|
|
headers.source = [
|
|
|
|
|
'model/udp-header.h',
|
|
|
|
|
'model/tcp-header.h',
|
2014-09-05 16:57:11 -07:00
|
|
|
'model/tcp-option.h',
|
2011-02-25 10:32:35 -08:00
|
|
|
'model/icmpv4.h',
|
|
|
|
|
'model/icmpv6-header.h',
|
|
|
|
|
# used by routing
|
|
|
|
|
'model/ipv4-interface.h',
|
|
|
|
|
'model/ipv4-l3-protocol.h',
|
|
|
|
|
'model/ipv6-l3-protocol.h',
|
2012-08-14 10:35:43 -07:00
|
|
|
'model/ipv6-extension.h',
|
|
|
|
|
'model/ipv6-extension-demux.h',
|
2011-02-25 10:32:35 -08:00
|
|
|
'model/ipv6-extension-header.h',
|
|
|
|
|
'model/ipv6-option-header.h',
|
|
|
|
|
'model/arp-l3-protocol.h',
|
|
|
|
|
'model/udp-l4-protocol.h',
|
|
|
|
|
'model/tcp-l4-protocol.h',
|
|
|
|
|
'model/icmpv4-l4-protocol.h',
|
2012-02-20 14:05:07 +01:00
|
|
|
'model/ip-l4-protocol.h',
|
2011-02-25 10:32:35 -08:00
|
|
|
'model/arp-header.h',
|
|
|
|
|
'model/arp-cache.h',
|
|
|
|
|
'model/icmpv6-l4-protocol.h',
|
|
|
|
|
'model/ipv6-interface.h',
|
|
|
|
|
'model/ndisc-cache.h',
|
|
|
|
|
'model/loopback-net-device.h',
|
|
|
|
|
'model/ipv4-packet-info-tag.h',
|
|
|
|
|
'model/ipv6-packet-info-tag.h',
|
|
|
|
|
'model/ipv4-interface-address.h',
|
|
|
|
|
'model/ipv4-address-generator.h',
|
|
|
|
|
'model/ipv4-header.h',
|
|
|
|
|
'model/ipv4-route.h',
|
|
|
|
|
'model/ipv4-routing-protocol.h',
|
|
|
|
|
'model/udp-socket.h',
|
|
|
|
|
'model/udp-socket-factory.h',
|
|
|
|
|
'model/tcp-socket.h',
|
|
|
|
|
'model/tcp-socket-factory.h',
|
|
|
|
|
'model/ipv4.h',
|
|
|
|
|
'model/ipv4-raw-socket-factory.h',
|
2011-02-27 11:31:43 +00:00
|
|
|
'model/ipv4-raw-socket-impl.h',
|
2011-02-25 10:32:35 -08:00
|
|
|
'model/ipv6-header.h',
|
|
|
|
|
'model/ipv6-interface-address.h',
|
|
|
|
|
'model/ipv6-route.h',
|
|
|
|
|
'model/ipv6.h',
|
|
|
|
|
'model/ipv6-raw-socket-factory.h',
|
|
|
|
|
'model/ipv6-routing-protocol.h',
|
|
|
|
|
'model/ipv4-list-routing.h',
|
|
|
|
|
'model/ipv6-list-routing.h',
|
|
|
|
|
'helper/ipv4-list-routing-helper.h',
|
|
|
|
|
'helper/ipv6-list-routing-helper.h',
|
|
|
|
|
'model/ipv4-static-routing.h',
|
|
|
|
|
'model/ipv4-routing-table-entry.h',
|
|
|
|
|
'model/ipv6-static-routing.h',
|
|
|
|
|
'model/ipv6-routing-table-entry.h',
|
|
|
|
|
'helper/ipv4-static-routing-helper.h',
|
|
|
|
|
'helper/ipv6-static-routing-helper.h',
|
|
|
|
|
'model/global-router-interface.h',
|
|
|
|
|
'model/global-route-manager.h',
|
2011-03-28 15:09:39 -07:00
|
|
|
'model/global-route-manager-impl.h',
|
|
|
|
|
'model/candidate-queue.h',
|
2014-09-04 12:18:19 -07:00
|
|
|
'model/codel-queue.h',
|
2011-02-25 10:32:35 -08:00
|
|
|
'model/ipv4-global-routing.h',
|
|
|
|
|
'helper/ipv4-global-routing-helper.h',
|
|
|
|
|
'helper/internet-stack-helper.h',
|
2011-02-25 15:07:29 -08:00
|
|
|
'helper/internet-trace-helper.h',
|
2011-02-25 10:32:35 -08:00
|
|
|
'helper/ipv4-address-helper.h',
|
|
|
|
|
'helper/ipv4-interface-container.h',
|
|
|
|
|
'helper/ipv4-routing-helper.h',
|
|
|
|
|
'helper/ipv6-address-helper.h',
|
|
|
|
|
'helper/ipv6-interface-container.h',
|
|
|
|
|
'helper/ipv6-routing-helper.h',
|
2011-11-26 20:33:45 -08:00
|
|
|
'model/ipv6-address-generator.h',
|
2015-10-16 10:42:30 -07:00
|
|
|
'model/tcp-congestion-ops.h',
|
2013-04-18 15:57:07 -04:00
|
|
|
'model/tcp-westwood.h',
|
|
|
|
|
'model/tcp-socket-base.h',
|
|
|
|
|
'model/tcp-tx-buffer.h',
|
|
|
|
|
'model/tcp-rx-buffer.h',
|
|
|
|
|
'model/rtt-estimator.h',
|
2013-08-08 06:40:41 -07:00
|
|
|
'model/ipv4-packet-probe.h',
|
2013-08-11 12:34:17 +02:00
|
|
|
'model/ipv6-packet-probe.h',
|
2013-08-12 06:51:18 +02:00
|
|
|
'model/ipv6-pmtu-cache.h',
|
2014-03-17 20:01:49 +01:00
|
|
|
'model/ripng.h',
|
|
|
|
|
'model/ripng-header.h',
|
|
|
|
|
'helper/ripng-helper.h',
|
2011-02-25 10:32:35 -08:00
|
|
|
]
|
|
|
|
|
|
|
|
|
|
if bld.env['NSC_ENABLED']:
|
|
|
|
|
obj.source.append ('model/nsc-tcp-socket-impl.cc')
|
|
|
|
|
obj.source.append ('model/nsc-tcp-l4-protocol.cc')
|
|
|
|
|
obj.source.append ('model/nsc-tcp-socket-factory-impl.cc')
|
|
|
|
|
obj.source.append ('model/nsc-sysctl.cc')
|
|
|
|
|
headers.source.append('model/nsc-tcp-l4-protocol.h')
|
2011-09-22 13:03:25 +01:00
|
|
|
obj.use.append('DL')
|
|
|
|
|
internet_test.use.append('DL')
|
2011-03-12 18:34:30 +00:00
|
|
|
|
2011-04-15 13:03:02 -07:00
|
|
|
if (bld.env['ENABLE_EXAMPLES']):
|
2013-04-01 22:33:46 +02:00
|
|
|
bld.recurse('examples')
|
2011-04-15 13:03:02 -07:00
|
|
|
|
2011-03-12 18:34:30 +00:00
|
|
|
bld.ns3_python_bindings()
|
|
|
|
|
|