LEFT | RIGHT |
1 ## - *-Mode : python; | 1 ## -*- Mode: python; py-indent-offset: 4; indent-tabs-mode: nil; coding: utf-8;
-*- |
2 py - indent - offset : 4; | |
3 indent - tabs - mode : nil; | |
4 coding : utf - 8; | |
5 -*- | |
6 import os | 2 import os |
7 import sys | 3 import sys |
8 | 4 |
9 from waflib import Options, Logs, Utils, Task | 5 from waflib import Options, Logs, Utils, Task |
10 | 6 |
11 | 7 |
12 # Required NSC version | 8 # Required NSC version |
13 NSC_RELEASE_NAME = "nsc-0.5.3" | 9 NSC_RELEASE_NAME = "nsc-0.5.3" |
14 | 10 |
15 | 11 |
16 def options (opt) | 12 def options(opt): |
17 : opt.add_option ('--with-nsc', | 13 opt.add_option('--with-nsc', |
18 help = ('Use Network Simulation Cradle, given by the indic
ated path,' | 14 help=('Use Network Simulation Cradle, given by the indicated
path,' |
19 ' to allow the use of real-world network stacks'), | 15 ' to allow the use of real-world network stacks'), |
20 default = '', dest = 'with_nsc') | 16 default='', dest='with_nsc') |
21 opt.add_option ('--disable-nsc', | 17 opt.add_option('--disable-nsc', |
22 help = ('Disable Network Simulation Cradle support'), | 18 help=('Disable Network Simulation Cradle support'), |
23 dest = 'disable_nsc', default = False, action = "store_tru
e") | 19 dest='disable_nsc', default=False, action="store_true") |
24 | 20 |
25 def configure (conf) | 21 def configure(conf): |
26 : conf.env['ENABLE_NSC'] = False | 22 conf.env['ENABLE_NSC'] = False |
27 | 23 |
28 if Options.options.disable_nsc | 24 if Options.options.disable_nsc: |
29 : conf.report_optional_feature ("nsc", "Network Simulation Cradle",
False, | 25 conf.report_optional_feature("nsc", "Network Simulation Cradle", False, |
30 "disabled by user request") | 26 "disabled by user request") |
31 return | 27 return |
32 | 28 |
33 # 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 |
34 # TODO : how to move these checks into the allinone scripts? | 30 # TODO: how to move these checks into the allinone scripts? |
35 #def check_nsc_buildutils(): | 31 #def check_nsc_buildutils(): |
36 # import flex | 32 # import flex |
37 # import bison | 33 # import bison |
38 # conf .check_tool('flex bison') | 34 # conf.check_tool('flex bison') |
39 # conf .check(lib='fl', mandatory=True) | 35 # conf.check(lib='fl', mandatory=True) |
40 | 36 |
41 # Check for the location of NSC | 37 # Check for the location of NSC |
42 lib_to_check = 'liblinux2.6.26.so' | 38 lib_to_check = 'liblinux2.6.26.so' |
43 if Options.options.with_nsc | 39 if Options.options.with_nsc: |
44 : if os.path.isdir (Options.options.with_nsc) | 40 if os.path.isdir(Options.options.with_nsc): |
45 : conf.msg ("Checking for NSC location", ("%s (given)" %
Options.options.with_nsc)) | 41 conf.msg("Checking for NSC location", ("%s (given)" % Options.option
s.with_nsc)) |
46 conf.env['WITH_NSC'] = os.path.abspath (Options.option
s.with_nsc) | 42 conf.env['WITH_NSC'] = os.path.abspath(Options.options.with_nsc) |
47 else | 43 else: |
48 : | 44 # bake.py uses ../../build, while ns-3-dev uses ../nsc, |
49 # bake .py uses ../../build, while ns-3-dev uses ../nsc, | |
50 # and ns-3 release uses ../NSC_RELEASE_NAME | 45 # and ns-3 release uses ../NSC_RELEASE_NAME |
51 nsc_bake_build_dir = os.path.join ('..', '..', 'bu
ild') | 46 nsc_bake_build_dir = os.path.join('..', '..', 'build') |
52 nsc_bake_lib_dir = os.path.join (nsc_bake_build_
dir, 'lib') | 47 nsc_bake_lib_dir = os.path.join(nsc_bake_build_dir, 'lib') |
53 nsc_dir = os.path.join ('..', "nsc") | 48 nsc_dir = os.path.join('..', "nsc") |
54 nsc_release_dir = os.path.join ('..', NSC_RE
LEASE_NAME) | 49 nsc_release_dir = os.path.join('..', NSC_RELEASE_NAME) |
55 if os.path.exists (os.path.join (nsc_bake_
lib_dir, lib_to_check)) | 50 if os.path.exists(os.path.join(nsc_bake_lib_dir, lib_to_check)): |
56 : conf.msg ("Checking for NSC location",
("%s (guessed)" % nsc_bake_build_dir)) | 51 conf.msg("Checking for NSC location",("%s (guessed)" % nsc_bake_buil
d_dir)) |
57 conf.env['WITH_NSC'] = os.path.abspath
(nsc_bake_build_dir) | 52 conf.env['WITH_NSC'] = os.path.abspath(nsc_bake_build_dir) |
58 elif os.path.isdir (nsc_dir) | 53 elif os.path.isdir(nsc_dir): |
59 : conf.msg ("Checking for NSC loca
tion",("%s (guessed)" % nsc_dir)) | 54 conf.msg("Checking for NSC location",("%s (guessed)" % nsc_dir)) |
60 conf.env['WITH_NSC'] = os.path.a
bspath (nsc_dir) | 55 conf.env['WITH_NSC'] = os.path.abspath(nsc_dir) |
61 elif os.path.isdir (nsc_releas
e_dir) | 56 elif os.path.isdir(nsc_release_dir): |
62 : conf.msg ("Checking for NS
C location", ("%s (guessed)" % nsc_release_dir)) | 57 conf.msg("Checking for NSC location", ("%s (guessed)" % nsc_release_
dir)) |
63 conf.env['WITH_NSC'] = os.
path.abspath (nsc_release_dir) | 58 conf.env['WITH_NSC'] = os.path.abspath(nsc_release_dir) |
64 del nsc_bake_build_dir | 59 del nsc_bake_build_dir |
65 del nsc_bake_lib_dir | 60 del nsc_bake_lib_dir |
66 del nsc_dir | 61 del nsc_dir |
67 del nsc_release_dir | 62 del nsc_release_dir |
68 | 63 |
69 if not conf.env['WITH_NS
C'] | 64 if not conf.env['WITH_NSC']: |
70 : conf.msg ("Checking
for NSC location", False) | 65 conf.msg("Checking for NSC location", False) |
71 conf.report_optional
_feature ("nsc", "Network Simulation Cradle", False, | 66 conf.report_optional_feature("nsc", "Network Simulation Cradle", False, |
72
"NSC not found (see option --with-nsc)") | 67 "NSC not found (see option --with-nsc)") |
73 return | 68 return |
74 | 69 ···· |
75 if Options.platfor
m in ['linux', 'freebsd'] | 70 if Options.platform in ['linux', 'freebsd']: |
76 : arch = os.unam
e ()[4] | 71 arch = os.uname()[4] |
77 else | 72 else: |
78 : | 73 arch = None |
79 arch = None | 74 ok = False |
80 ok = False | 75 if arch in ('amd64', 'x86_64', 'i686', 'i586', 'i486', 'i386'): |
81 if arch
in ('amd64', 'x86_64', 'i686', 'i586', 'i486', 'i386') | 76 conf.env['NSC_ENABLED'] = True |
82 : conf
.env['NSC_ENABLED'] = True | 77 conf.env.append_value('CXXDEFINES', 'NETWORK_SIMULATION_CRADLE') |
83 conf
.env.append_value ('CXXDEFINES', 'NETWORK_SIMULATION_CRADLE') | 78 conf.check_nonfatal(mandatory=True, lib='dl', define_name='HAVE_DL', use
lib_store='DL') |
84 conf
.check_nonfatal (mandatory = True, lib = 'dl', define_name = 'HAVE_DL', uselib_s
tore = 'DL') | 79 ok = True |
85 ok =
True | 80 conf.msg('Checking for NSC supported architecture ' + (arch or ''), ok) |
86 co
nf.msg ('Checking for NSC supported architecture ' + (arch or ''), ok) | 81 ···· |
87 | 82 if not ok: |
88 if
not ok | 83 conf.env['NSC_ENABLED'] = False |
89
: conf.env['NSC_ENABLED'] = False | 84 conf.report_optional_feature("nsc", "Network Simulation Cradle", False, |
90
conf.report_optional_feature ("nsc", "Network Simulation Cradle", False, | 85 "architecture %r not supported" % arch) |
91
"architecture %r not supported" % arch) | 86 return |
92
return | 87 |
93 | 88 found = False |
94
found = False | 89 for path in ['.', 'lib', 'lib64', 'linux-2.6.26']: |
95
for path in ['.', 'lib', 'lib64', 'linux-2.6.26'] | 90 if os.path.exists(os.path.join(conf.env['WITH_NSC'], path, lib_to_check)
): |
96
: if os.path.exists (os.path.join (conf.env['WITH_NSC'], path, lib_to_ch
eck)) : | |
97 # append the NSC kernel dir to the module path so that this dir | 91 # append the NSC kernel dir to the module path so that this dir |
98 # will end up in the LD_LIBRARY_PATH, thus allowing the NSC NS-3 | 92 # will end up in the LD_LIBRARY_PATH, thus allowing the NSC NS-3 |
99 # module to find the necessary NSC shared libraries. | 93 # module to find the necessary NSC shared libraries. |
100
found = True | 94 found = True |
101
conf.env.append_value ('NS3_MODULE_PATH', | 95 conf.env.append_value('NS3_MODULE_PATH', |
102
os.path.abspath (os.path.join (conf.env['WITH
_NSC'], path))) | 96 os.path.abspath(os.path.join(conf.env['WITH_NS
C'], path))) |
103
if not found | 97 if not found: |
104
: conf.env['NSC_ENABLED'] = False | 98 conf.env['NSC_ENABLED'] = False |
105
conf.report_optional_feature ("nsc", "Network Simulation Cradle"
, False, | 99 conf.report_optional_feature("nsc", "Network Simulation Cradle", False, |
106
"NSC library %s is missing: NSC ha
s not been built?" % lib_to_check) | 100 "NSC library %s is missing: NSC has not bee
n built?" % lib_to_check) |
107
else | 101 else: |
108
: | 102 conf.report_optional_feature("nsc", "Network Simulation Cradle", True, "
") |
109
conf.report_optional_feature ("nsc", "Network Simulation Cradl
e", True, "") | 103 |
110 | 104 |
111 | 105 def build(bld): |
112
def build (bld) : | |
113 # bridge and mpi dependencies are due to global routing | 106 # bridge and mpi dependencies are due to global routing |
114
obj = bld.create_ns3_module ('internet', ['bridge', 'mpi', '
network', 'core']) | 107 obj = bld.create_ns3_module('internet', ['bridge', 'mpi', 'network', 'core']
) |
115
obj.source = [ | 108 obj.source = [ |
116
'model/ip-l4-protocol.cc', | 109 'model/ip-l4-protocol.cc', |
117
'model/udp-header.cc', | 110 'model/udp-header.cc', |
118
'model/tcp-header.cc', | 111 'model/tcp-header.cc', |
119
'model/ipv4-interface.cc', | 112 'model/ipv4-interface.cc', |
120
'model/ipv4-l3-protocol.cc', | 113 'model/ipv4-l3-protocol.cc', |
121
'model/ipv4-end-point.cc', | 114 'model/ipv4-end-point.cc', |
122
'model/udp-l4-protocol.cc', | 115 'model/udp-l4-protocol.cc', |
123
'model/tcp-l4-protocol.cc', | 116 'model/tcp-l4-protocol.cc', |
124
'model/arp-header.cc', | 117 'model/arp-header.cc', |
125
'model/arp-cache.cc', | 118 'model/arp-cache.cc', |
126
'model/arp-l3-protocol.cc', | 119 'model/arp-l3-protocol.cc', |
127
'model/udp-socket-impl.cc', | 120 'model/udp-socket-impl.cc', |
128
'model/ipv4-end-point-demux.cc', | 121 'model/ipv4-end-point-demux.cc', |
129
'model/udp-socket-factory-impl.cc', | 122 'model/udp-socket-factory-impl.cc', |
130
'model/tcp-socket-factory-impl.cc', | 123 'model/tcp-socket-factory-impl.cc', |
131
'model/pending-data.cc', | 124 'model/pending-data.cc', |
132
'model/rtt-estimator.cc', | 125 'model/rtt-estimator.cc', |
133
'model/ipv4-raw-socket-factory-impl.cc', | 126 'model/ipv4-raw-socket-factory-impl.cc', |
134
'model/ipv4-raw-socket-impl.cc', | 127 'model/ipv4-raw-socket-impl.cc', |
135
'model/icmpv4.cc', | 128 'model/icmpv4.cc', |
136
'model/icmpv4-l4-protocol.cc', | 129 'model/icmpv4-l4-protocol.cc', |
137
'model/loopback-net-device.cc', | 130 'model/loopback-net-device.cc', |
138
'model/ndisc-cache.cc', | 131 'model/ndisc-cache.cc', |
139
'model/ipv6-interface.cc', | 132 'model/ipv6-interface.cc', |
140
'model/icmpv6-header.cc', | 133 'model/icmpv6-header.cc', |
141
'model/ipv6-l3-protocol.cc', | 134 'model/ipv6-l3-protocol.cc', |
142
'model/ipv6-end-point.cc', | 135 'model/ipv6-end-point.cc', |
143
'model/ipv6-end-point-demux.cc', | 136 'model/ipv6-end-point-demux.cc', |
144
'model/ipv6-raw-socket-factory-impl.cc', | 137 'model/ipv6-raw-socket-factory-impl.cc', |
145
'model/ipv6-raw-socket-impl.cc', | 138 'model/ipv6-raw-socket-impl.cc', |
146
'model/ipv6-autoconfigured-prefix.cc', | 139 'model/ipv6-autoconfigured-prefix.cc', |
147
'model/ipv6-extension.cc', | 140 'model/ipv6-extension.cc', |
148
'model/ipv6-extension-header.cc', | 141 'model/ipv6-extension-header.cc', |
149
'model/ipv6-extension-demux.cc', | 142 'model/ipv6-extension-demux.cc', |
150
'model/ipv6-option.cc', | 143 'model/ipv6-option.cc', |
151
'model/ipv6-option-header.cc', | 144 'model/ipv6-option-header.cc', |
152
'model/ipv6-option-demux.cc', | 145 'model/ipv6-option-demux.cc', |
153
'model/icmpv6-l4-protocol.cc', | 146 'model/icmpv6-l4-protocol.cc', |
154
'model/tcp-socket-base.cc', | 147 'model/tcp-socket-base.cc', |
155
'model/tcp-highspeed.cc', | 148 'model/tcp-highspeed.cc', |
156
'model/tcp-hybla.cc', | 149 'model/tcp-hybla.cc', |
157
'model/tcp-congestion-ops.cc', | 150 'model/tcp-congestion-ops.cc', |
158
'model/tcp-westwood.cc', | 151 'model/tcp-westwood.cc', |
159
'model/tcp-rx-buffer.cc', | 152 'model/tcp-rx-buffer.cc', |
160
'model/tcp-tx-buffer.cc', | 153 'model/tcp-tx-buffer.cc', |
161
'model/tcp-scoreboard.cc', | 154 'model/tcp-scoreboard.cc',· |
162
'model/tcp-option.cc', | 155 'model/tcp-option.cc', |
163
'model/tcp-option-rfc793.cc', | 156 'model/tcp-option-rfc793.cc', |
164
'model/tcp-option-winscale.cc', | 157 'model/tcp-option-winscale.cc', |
165
'model/tcp-option-sack-permitted.cc', | 158 'model/tcp-option-sack-permitted.cc', |
166
'model/tcp-option-sack.cc', | 159 'model/tcp-option-sack.cc',· |
167
'model/tcp-option-ts.cc', | 160 'model/tcp-option-ts.cc', |
168
'model/ipv4-packet-info-tag.cc', | 161 'model/ipv4-packet-info-tag.cc', |
169
'model/ipv6-packet-info-tag.cc', | 162 'model/ipv6-packet-info-tag.cc', |
170
'model/ipv4-interface-address.cc', | 163 'model/ipv4-interface-address.cc', |
171
'model/ipv4-address-generator.cc', | 164 'model/ipv4-address-generator.cc', |
172
'model/ipv4-header.cc', | 165 'model/ipv4-header.cc', |
173
'model/ipv4-route.cc', | 166 'model/ipv4-route.cc', |
174
'model/ipv4-routing-protocol.cc', | 167 'model/ipv4-routing-protocol.cc', |
175
'model/udp-socket.cc', | 168 'model/udp-socket.cc', |
176
'model/udp-socket-factory.cc', | 169 'model/udp-socket-factory.cc', |
177
'model/tcp-socket.cc', | 170 'model/tcp-socket.cc', |
178
'model/tcp-socket-factory.cc', | 171 'model/tcp-socket-factory.cc', |
179
'model/ipv4.cc', | 172 'model/ipv4.cc', |
180
'model/ipv4-raw-socket-factory.cc', | 173 'model/ipv4-raw-socket-factory.cc', |
181
'model/ipv6-header.cc', | 174 'model/ipv6-header.cc', |
182
'model/ipv6-interface-address.cc', | 175 'model/ipv6-interface-address.cc', |
183
'model/ipv6-route.cc', | 176 'model/ipv6-route.cc', |
184
'model/ipv6.cc', | 177 'model/ipv6.cc', |
185
'model/ipv6-raw-socket-factory.cc', | 178 'model/ipv6-raw-socket-factory.cc', |
186
'model/ipv6-routing-protocol.cc', | 179 'model/ipv6-routing-protocol.cc', |
187
'model/ipv4-list-routing.cc', | 180 'model/ipv4-list-routing.cc', |
188
'model/ipv6-list-routing.cc', | 181 'model/ipv6-list-routing.cc', |
189
'helper/ipv4-list-routing-helper.cc', | 182 'helper/ipv4-list-routing-helper.cc', |
190
'helper/ipv6-list-routing-helper.cc', | 183 'helper/ipv6-list-routing-helper.cc', |
191
'model/ipv4-static-routing.cc', | 184 'model/ipv4-static-routing.cc', |
192
'model/ipv4-routing-table-entry.cc', | 185 'model/ipv4-routing-table-entry.cc', |
193
'model/ipv6-static-routing.cc', | 186 'model/ipv6-static-routing.cc', |
194
'model/ipv6-routing-table-entry.cc', | 187 'model/ipv6-routing-table-entry.cc', |
195
'helper/ipv4-static-routing-helper.cc', | 188 'helper/ipv4-static-routing-helper.cc', |
196
'helper/ipv6-static-routing-helper.cc', | 189 'helper/ipv6-static-routing-helper.cc', |
197
'model/global-router-interface.cc', | 190 'model/global-router-interface.cc', |
198
'model/global-route-manager.cc', | 191 'model/global-route-manager.cc', |
199
'model/global-route-manager-impl.cc', | 192 'model/global-route-manager-impl.cc', |
200
'model/candidate-queue.cc', | 193 'model/candidate-queue.cc', |
201
'model/codel-queue.cc', | 194 'model/codel-queue.cc', |
202
'model/ipv4-global-routing.cc', | 195 'model/ipv4-global-routing.cc', |
203
'helper/ipv4-global-routing-helper.cc', | 196 'helper/ipv4-global-routing-helper.cc', |
204
'helper/internet-stack-helper.cc', | 197 'helper/internet-stack-helper.cc', |
205
'helper/internet-trace-helper.cc', | 198 'helper/internet-trace-helper.cc', |
206
'helper/ipv4-address-helper.cc', | 199 'helper/ipv4-address-helper.cc', |
207
'helper/ipv4-interface-container.cc', | 200 'helper/ipv4-interface-container.cc', |
208
'helper/ipv4-routing-helper.cc', | 201 'helper/ipv4-routing-helper.cc', |
209
'helper/ipv6-address-helper.cc', | 202 'helper/ipv6-address-helper.cc', |
210
'helper/ipv6-interface-container.cc', | 203 'helper/ipv6-interface-container.cc', |
211
'helper/ipv6-routing-helper.cc', | 204 'helper/ipv6-routing-helper.cc', |
212
'model/ipv6-address-generator.cc', | 205 'model/ipv6-address-generator.cc', |
213
'model/ipv4-packet-probe.cc', | 206 'model/ipv4-packet-probe.cc', |
214
'model/ipv6-packet-probe.cc', | 207 'model/ipv6-packet-probe.cc', |
215
'model/ipv6-pmtu-cache.cc', | 208 'model/ipv6-pmtu-cache.cc', |
216
'model/ripng.cc', | 209 'model/ripng.cc', |
217
'model/ripng-header.cc', | 210 'model/ripng-header.cc', |
218
'helper/ripng-helper.cc', | 211 'helper/ripng-helper.cc', |
219
] | 212 ] |
220 | 213 |
221
internet_test = bld.create_ns3_module_test_library ('interne
t') | 214 internet_test = bld.create_ns3_module_test_library('internet') |
222
internet_test.source = [ | 215 internet_test.source = [ |
223
'test/global-route-manager-impl-test-suite.cc', | 216 'test/global-route-manager-impl-test-suite.cc', |
224
'test/ipv4-address-generator-test-suite.cc', | 217 'test/ipv4-address-generator-test-suite.cc', |
225
'test/ipv4-address-helper-test-suite.cc', | 218 'test/ipv4-address-helper-test-suite.cc', |
226
'test/ipv4-list-routing-test-suite.cc', | 219 'test/ipv4-list-routing-test-suite.cc', |
227
'test/ipv4-packet-info-tag-test-suite.cc', | 220 'test/ipv4-packet-info-tag-test-suite.cc', |
228
'test/ipv4-raw-test.cc', | 221 'test/ipv4-raw-test.cc', |
229
'test/ipv4-header-test.cc', | 222 'test/ipv4-header-test.cc', |
230
'test/ipv4-fragmentation-test.cc', | 223 'test/ipv4-fragmentation-test.cc', |
231
'test/ipv4-forwarding-test.cc', | 224 'test/ipv4-forwarding-test.cc', |
232
'test/error-channel.cc', | 225 'test/error-channel.cc', |
233
'test/ipv4-test.cc', | 226 'test/ipv4-test.cc', |
234
'test/ipv4-static-routing-test-suite.cc', | 227 'test/ipv4-static-routing-test-suite.cc', |
235
'test/ipv4-global-routing-test-suite.cc', | 228 'test/ipv4-global-routing-test-suite.cc', |
236
'test/ipv6-extension-header-test-suite.cc', | 229 'test/ipv6-extension-header-test-suite.cc', |
237
'test/ipv6-list-routing-test-suite.cc', | 230 'test/ipv6-list-routing-test-suite.cc', |
238
'test/ipv6-packet-info-tag-test-suite.cc', | 231 'test/ipv6-packet-info-tag-test-suite.cc', |
239
'test/ipv6-test.cc', | 232 'test/ipv6-test.cc', |
240
'test/ipv6-raw-test.cc', | 233 'test/ipv6-raw-test.cc', |
241
'test/tcp-test.cc', | 234 'test/tcp-test.cc', |
242
'test/tcp-timestamp-test.cc', | 235 'test/tcp-timestamp-test.cc', |
243
'test/tcp-wscaling-test.cc', | 236 'test/tcp-wscaling-test.cc', |
244
'test/tcp-sack-test.cc', | 237 'test/tcp-sack-test.cc', |
245
'test/tcp-option-test.cc', | 238 'test/tcp-option-test.cc', |
246
'test/tcp-header-test.cc', | 239 'test/tcp-header-test.cc', |
247
'test/tcp-general-test.cc', | 240 'test/tcp-general-test.cc', |
248
'test/tcp-error-model.cc', | 241 'test/tcp-error-model.cc', |
249
'test/tcp-slow-start-test.cc', | 242 'test/tcp-slow-start-test.cc', |
250
'test/tcp-cong-avoid-test.cc', | 243 'test/tcp-cong-avoid-test.cc', |
251
'test/tcp-fast-retr-test.cc', | 244 'test/tcp-fast-retr-test.cc', |
252
'test/tcp-rto-test.cc', | 245 'test/tcp-rto-test.cc', |
253
'test/tcp-highspeed-test.cc', | 246 'test/tcp-highspeed-test.cc', |
254
'test/tcp-hybla-test.cc', | 247 'test/tcp-hybla-test.cc', |
255
'test/tcp-zero-window-test.cc', | 248 'test/tcp-zero-window-test.cc', |
256
'test/udp-test.cc', | 249 'test/udp-test.cc', |
257
'test/ipv6-address-generator-test-suite.cc', | 250 'test/ipv6-address-generator-test-suite.cc', |
258
'test/ipv6-dual-stack-test-suite.cc', | 251 'test/ipv6-dual-stack-test-suite.cc', |
259
'test/ipv6-fragmentation-test.cc', | 252 'test/ipv6-fragmentation-test.cc', |
260
'test/ipv6-forwarding-test.cc', | 253 'test/ipv6-forwarding-test.cc', |
261
'test/ipv6-ripng-test.cc', | 254 'test/ipv6-ripng-test.cc', |
262
'test/ipv6-address-helper-test-suite.cc', | 255 'test/ipv6-address-helper-test-suite.cc', |
263
'test/rtt-test.cc', | 256 'test/rtt-test.cc', |
264
'test/codel-queue-test-suite.cc', | 257 'test/codel-queue-test-suite.cc', |
265
'test/tcp-endpoint-bug2211.cc', | 258 'test/tcp-endpoint-bug2211.cc', |
266
] | 259 ] |
267
privateheaders = bld (features = 'ns3privateheader') | 260 privateheaders = bld(features='ns3privateheader') |
268
privateheaders.module = 'internet' | 261 privateheaders.module = 'internet' |
269
privateheaders.source = [ | 262 privateheaders.source = [ |
270
'model/tcp-option-winscale.h', | 263 'model/tcp-option-winscale.h', |
271
'model/tcp-option-ts.h', | 264 'model/tcp-option-ts.h', |
272
'model/tcp-option-rfc793.h', | 265 'model/tcp-option-rfc793.h', |
273
'model/tcp-option-sack.h', | 266 'model/tcp-option-sack.h', |
274
'model/tcp-option-sack-permitted.h', | 267 'model/tcp-option-sack-permitted.h', |
275
] | 268 ] |
276
headers = bld (features = 'ns3header') | 269 headers = bld(features='ns3header') |
277
headers.module = 'internet' | 270 headers.module = 'internet' |
278
headers.source = [ | 271 headers.source = [ |
279
'model/udp-header.h', | 272 'model/udp-header.h', |
280
'model/tcp-header.h', | 273 'model/tcp-header.h', |
281
'model/tcp-option.h', | 274 'model/tcp-option.h', |
282
'model/icmpv4.h', | 275 'model/icmpv4.h', |
283
'model/icmpv6-header.h', | 276 'model/icmpv6-header.h', |
284 # used by routing | 277 # used by routing |
285
'model/ipv4-interface.h', | 278 'model/ipv4-interface.h', |
286
'model/ipv4-l3-protocol.h', | 279 'model/ipv4-l3-protocol.h', |
287
'model/ipv6-l3-protocol.h', | 280 'model/ipv6-l3-protocol.h', |
288
'model/ipv6-extension.h', | 281 'model/ipv6-extension.h', |
289
'model/ipv6-extension-demux.h', | 282 'model/ipv6-extension-demux.h', |
290
'model/ipv6-extension-header.h', | 283 'model/ipv6-extension-header.h', |
291
'model/ipv6-option-header.h', | 284 'model/ipv6-option-header.h', |
292
'model/arp-l3-protocol.h', | 285 'model/arp-l3-protocol.h', |
293
'model/udp-l4-protocol.h', | 286 'model/udp-l4-protocol.h', |
294
'model/tcp-l4-protocol.h', | 287 'model/tcp-l4-protocol.h', |
295
'model/icmpv4-l4-protocol.h', | 288 'model/icmpv4-l4-protocol.h', |
296
'model/ip-l4-protocol.h', | 289 'model/ip-l4-protocol.h', |
297
'model/arp-header.h', | 290 'model/arp-header.h', |
298
'model/arp-cache.h', | 291 'model/arp-cache.h', |
299
'model/icmpv6-l4-protocol.h', | 292 'model/icmpv6-l4-protocol.h', |
300
'model/ipv6-interface.h', | 293 'model/ipv6-interface.h', |
301
'model/ndisc-cache.h', | 294 'model/ndisc-cache.h', |
302
'model/loopback-net-device.h', | 295 'model/loopback-net-device.h', |
303
'model/ipv4-packet-info-tag.h', | 296 'model/ipv4-packet-info-tag.h', |
304
'model/ipv6-packet-info-tag.h', | 297 'model/ipv6-packet-info-tag.h', |
305
'model/ipv4-interface-address.h', | 298 'model/ipv4-interface-address.h', |
306
'model/ipv4-address-generator.h', | 299 'model/ipv4-address-generator.h', |
307
'model/ipv4-header.h', | 300 'model/ipv4-header.h', |
308
'model/ipv4-route.h', | 301 'model/ipv4-route.h', |
309
'model/ipv4-routing-protocol.h', | 302 'model/ipv4-routing-protocol.h', |
310
'model/udp-socket.h', | 303 'model/udp-socket.h', |
311
'model/udp-socket-factory.h', | 304 'model/udp-socket-factory.h', |
312
'model/tcp-socket.h', | 305 'model/tcp-socket.h', |
313
'model/tcp-socket-factory.h', | 306 'model/tcp-socket-factory.h', |
314
'model/ipv4.h', | 307 'model/ipv4.h', |
315
'model/ipv4-raw-socket-factory.h', | 308 'model/ipv4-raw-socket-factory.h', |
316
'model/ipv4-raw-socket-impl.h', | 309 'model/ipv4-raw-socket-impl.h', |
317
'model/ipv6-header.h', | 310 'model/ipv6-header.h', |
318
'model/ipv6-interface-address.h', | 311 'model/ipv6-interface-address.h', |
319
'model/ipv6-route.h', | 312 'model/ipv6-route.h', |
320
'model/ipv6.h', | 313 'model/ipv6.h', |
321
'model/ipv6-raw-socket-factory.h', | 314 'model/ipv6-raw-socket-factory.h', |
322
'model/ipv6-routing-protocol.h', | 315 'model/ipv6-routing-protocol.h', |
323
'model/ipv4-list-routing.h', | 316 'model/ipv4-list-routing.h', |
324
'model/ipv6-list-routing.h', | 317 'model/ipv6-list-routing.h', |
325
'helper/ipv4-list-routing-helper.h', | 318 'helper/ipv4-list-routing-helper.h', |
326
'helper/ipv6-list-routing-helper.h', | 319 'helper/ipv6-list-routing-helper.h', |
327
'model/ipv4-static-routing.h', | 320 'model/ipv4-static-routing.h', |
328
'model/ipv4-routing-table-entry.h', | 321 'model/ipv4-routing-table-entry.h', |
329
'model/ipv6-static-routing.h', | 322 'model/ipv6-static-routing.h', |
330
'model/ipv6-routing-table-entry.h', | 323 'model/ipv6-routing-table-entry.h', |
331
'helper/ipv4-static-routing-helper.h', | 324 'helper/ipv4-static-routing-helper.h', |
332
'helper/ipv6-static-routing-helper.h', | 325 'helper/ipv6-static-routing-helper.h', |
333
'model/global-router-interface.h', | 326 'model/global-router-interface.h', |
334
'model/global-route-manager.h', | 327 'model/global-route-manager.h', |
335
'model/global-route-manager-impl.h', | 328 'model/global-route-manager-impl.h', |
336
'model/candidate-queue.h', | 329 'model/candidate-queue.h', |
337
'model/codel-queue.h', | 330 'model/codel-queue.h', |
338
'model/ipv4-global-routing.h', | 331 'model/ipv4-global-routing.h', |
339
'helper/ipv4-global-routing-helper.h', | 332 'helper/ipv4-global-routing-helper.h', |
340
'helper/internet-stack-helper.h', | 333 'helper/internet-stack-helper.h', |
341
'helper/internet-trace-helper.h', | 334 'helper/internet-trace-helper.h', |
342
'helper/ipv4-address-helper.h', | 335 'helper/ipv4-address-helper.h', |
343
'helper/ipv4-interface-container.h', | 336 'helper/ipv4-interface-container.h', |
344
'helper/ipv4-routing-helper.h', | 337 'helper/ipv4-routing-helper.h', |
345
'helper/ipv6-address-helper.h', | 338 'helper/ipv6-address-helper.h', |
346
'helper/ipv6-interface-container.h', | 339 'helper/ipv6-interface-container.h', |
347
'helper/ipv6-routing-helper.h', | 340 'helper/ipv6-routing-helper.h', |
348
'model/ipv6-address-generator.h', | 341 'model/ipv6-address-generator.h', |
349
'model/tcp-highspeed.h', | 342 'model/tcp-highspeed.h', |
350
'model/tcp-hybla.h', | 343 'model/tcp-hybla.h', |
351
'model/tcp-congestion-ops.h', | 344 'model/tcp-congestion-ops.h', |
352
'model/tcp-westwood.h', | 345 'model/tcp-westwood.h', |
353
'model/tcp-socket-base.h', | 346 'model/tcp-socket-base.h', |
354
'model/tcp-tx-buffer.h', | 347 'model/tcp-tx-buffer.h', |
355
'model/tcp-rx-buffer.h', | 348 'model/tcp-rx-buffer.h', |
356
'model/tcp-scoreboard.h', | 349 'model/tcp-scoreboard.h',· |
357
'model/rtt-estimator.h', | 350 'model/rtt-estimator.h', |
358
'model/ipv4-packet-probe.h', | 351 'model/ipv4-packet-probe.h', |
359
'model/ipv6-packet-probe.h', | 352 'model/ipv6-packet-probe.h', |
360
'model/ipv6-pmtu-cache.h', | 353 'model/ipv6-pmtu-cache.h', |
361
'model/ripng.h', | 354 'model/ripng.h', |
362
'model/ripng-header.h', | 355 'model/ripng-header.h', |
363
'helper/ripng-helper.h', | 356 'helper/ripng-helper.h', |
364
] | 357 ] |
365 | 358 |
366
if bld.env['NSC_ENABLED'] | 359 if bld.env['NSC_ENABLED']: |
367
: obj.source.append ('model/nsc-tcp-socket-impl.cc') | 360 obj.source.append ('model/nsc-tcp-socket-impl.cc') |
368
obj.source.append ('model/nsc-tcp-l4-protocol.cc') | 361 obj.source.append ('model/nsc-tcp-l4-protocol.cc') |
369
obj.source.append ('model/nsc-tcp-socket-factory-impl.cc
') | 362 obj.source.append ('model/nsc-tcp-socket-factory-impl.cc') |
370
obj.source.append ('model/nsc-sysctl.cc') | 363 obj.source.append ('model/nsc-sysctl.cc') |
371
headers.source.append ('model/nsc-tcp-l4-protocol.h') | 364 headers.source.append('model/nsc-tcp-l4-protocol.h') |
372
obj.use.append ('DL') | 365 obj.use.append('DL') |
373
internet_test.use.append ('DL') | 366 internet_test.use.append('DL') |
374 | 367 |
375
if (bld.env['ENABLE_EXAMPLES']) | 368 if (bld.env['ENABLE_EXAMPLES']): |
376
: | 369 bld.recurse('examples') |
377
bld.recurse ('examples') | 370 |
378 | 371 bld.ns3_python_bindings() |
379
bld.ns3_python_bindings () | 372 |
380 | |
LEFT | RIGHT |