1## -*- Mode: python; py-indent-offset: 4; indent-tabs-mode: nil; coding: utf-8; -*- 2 3def build(bld): 4 obj = bld.create_ns3_module('wifi', ['network', 'propagation', 'energy', 'spectrum', 'antenna', 'mobility']) 5 obj.source = [ 6 'model/wifi-utils.cc', 7 'model/wifi-information-element.cc', 8 'model/wifi-information-element-vector.cc', 9 'model/wifi-mode.cc', 10 'model/ssid.cc', 11 'model/wifi-phy.cc', 12 'model/wifi-phy-operating-channel.cc', 13 'model/wifi-phy-state-helper.cc', 14 'model/error-rate-model.cc', 15 'model/yans-error-rate-model.cc', 16 'model/nist-error-rate-model.cc', 17 'model/non-ht/dsss-error-rate-model.cc', 18 'model/table-based-error-rate-model.cc', 19 'model/interference-helper.cc', 20 'model/wifi-phy-common.cc', 21 'model/yans-wifi-phy.cc', 22 'model/yans-wifi-channel.cc', 23 'model/spectrum-wifi-phy.cc', 24 'model/wifi-spectrum-phy-interface.cc', 25 'model/wifi-spectrum-signal-parameters.cc', 26 'model/wifi-mac-header.cc', 27 'model/wifi-mac-trailer.cc', 28 'model/wifi-tx-timer.cc', 29 'model/wifi-protection.cc', 30 'model/wifi-acknowledgment.cc', 31 'model/wifi-tx-parameters.cc', 32 'model/wifi-protection-manager.cc', 33 'model/wifi-default-protection-manager.cc', 34 'model/wifi-ack-manager.cc', 35 'model/wifi-default-ack-manager.cc', 36 'model/frame-exchange-manager.cc', 37 'model/qos-frame-exchange-manager.cc', 38 'model/ht/ht-frame-exchange-manager.cc', 39 'model/vht/vht-frame-exchange-manager.cc', 40 'model/he/he-frame-exchange-manager.cc', 41 'model/he/multi-user-scheduler.cc', 42 'model/he/rr-multi-user-scheduler.cc', 43 'model/wifi-mac-queue.cc', 44 'model/mac-tx-middle.cc', 45 'model/mac-rx-middle.cc', 46 'model/txop.cc', 47 'model/supported-rates.cc', 48 'model/capability-information.cc', 49 'model/status-code.cc', 50 'model/mgt-headers.cc', 51 'model/channel-access-manager.cc', 52 'model/wifi-mac.cc', 53 'model/regular-wifi-mac.cc', 54 'model/wifi-remote-station-info.cc', 55 'model/wifi-remote-station-manager.cc', 56 'model/ap-wifi-mac.cc', 57 'model/sta-wifi-mac.cc', 58 'model/adhoc-wifi-mac.cc', 59 'model/wifi-net-device.cc', 60 'model/rate-control/arf-wifi-manager.cc', 61 'model/rate-control/aarf-wifi-manager.cc', 62 'model/rate-control/ideal-wifi-manager.cc', 63 'model/rate-control/constant-rate-wifi-manager.cc', 64 'model/rate-control/amrr-wifi-manager.cc', 65 'model/rate-control/onoe-wifi-manager.cc', 66 'model/rate-control/rraa-wifi-manager.cc', 67 'model/rate-control/aarfcd-wifi-manager.cc', 68 'model/rate-control/cara-wifi-manager.cc', 69 'model/rate-control/minstrel-wifi-manager.cc', 70 'model/rate-control/minstrel-ht-wifi-manager.cc', 71 'model/qos-utils.cc', 72 'model/qos-txop.cc', 73 'model/msdu-aggregator.cc', 74 'model/amsdu-subframe-header.cc', 75 'model/originator-block-ack-agreement.cc', 76 'model/recipient-block-ack-agreement.cc', 77 'model/ctrl-headers.cc', 78 'model/qos-blocked-destinations.cc', 79 'model/block-ack-agreement.cc', 80 'model/block-ack-manager.cc', 81 'model/block-ack-window.cc', 82 'model/block-ack-type.cc', 83 'model/snr-tag.cc', 84 'model/he/mu-snr-tag.cc', 85 'model/ht/ht-capabilities.cc', 86 'model/wifi-tx-vector.cc', 87 'model/rate-control/parf-wifi-manager.cc', 88 'model/rate-control/aparf-wifi-manager.cc', 89 'model/rate-control/rrpaa-wifi-manager.cc', 90 'model/rate-control/thompson-sampling-wifi-manager.cc', 91 'model/ampdu-subframe-header.cc', 92 'model/mpdu-aggregator.cc', 93 'model/ampdu-tag.cc', 94 'model/wifi-radio-energy-model.cc', 95 'model/wifi-tx-current-model.cc', 96 'model/vht/vht-capabilities.cc', 97 'model/non-ht/erp-information.cc', 98 'model/ht/ht-operation.cc', 99 'model/vht/vht-operation.cc', 100 'model/non-ht/dsss-parameter-set.cc', 101 'model/edca-parameter-set.cc', 102 'model/he/mu-edca-parameter-set.cc', 103 'model/he/he-capabilities.cc', 104 'model/frame-capture-model.cc', 105 'model/simple-frame-capture-model.cc', 106 'model/preamble-detection-model.cc', 107 'model/threshold-preamble-detection-model.cc', 108 'model/he/he-operation.cc', 109 'model/he/he-configuration.cc', 110 'model/extended-capabilities.cc', 111 'model/wifi-mac-queue-item.cc', 112 'model/wifi-psdu.cc', 113 'model/wifi-ppdu.cc', 114 'model/non-ht/dsss-ppdu.cc', 115 'model/non-ht/ofdm-ppdu.cc', 116 'model/non-ht/erp-ofdm-ppdu.cc', 117 'model/ht/ht-ppdu.cc', 118 'model/vht/vht-ppdu.cc', 119 'model/he/he-ppdu.cc', 120 'model/ht/ht-configuration.cc', 121 'model/vht/vht-configuration.cc', 122 'model/he/obss-pd-algorithm.cc', 123 'model/he/constant-obss-pd-algorithm.cc', 124 'model/he/he-ru.cc', 125 'model/phy-entity.cc', 126 'model/non-ht/dsss-phy.cc', 127 'model/non-ht/ofdm-phy.cc', 128 'model/non-ht/erp-ofdm-phy.cc', 129 'model/ht/ht-phy.cc', 130 'model/vht/vht-phy.cc', 131 'model/he/he-phy.cc', 132 'helper/wifi-radio-energy-model-helper.cc', 133 'helper/athstats-helper.cc', 134 'helper/wifi-helper.cc', 135 'helper/yans-wifi-helper.cc', 136 'helper/spectrum-wifi-helper.cc', 137 'helper/wifi-mac-helper.cc', 138 ] 139 140 obj_test = bld.create_ns3_module_test_library('wifi') 141 obj_test.source = [ 142 'test/block-ack-test-suite.cc', 143 'test/channel-access-manager-test.cc', 144 'test/tx-duration-test.cc', 145 'test/power-rate-adaptation-test.cc', 146 'test/wifi-test.cc', 147 'test/wifi-txop-test.cc', 148 'test/spectrum-wifi-phy-test.cc', 149 'test/wifi-primary-channels-test.cc', 150 'test/wifi-aggregation-test.cc', 151 'test/wifi-error-rate-models-test.cc', 152 'test/wifi-transmit-mask-test.cc', 153 'test/wifi-phy-thresholds-test.cc', 154 'test/wifi-phy-reception-test.cc', 155 'test/inter-bss-test-suite.cc', 156 'test/wifi-mac-ofdma-test.cc', 157 'test/wifi-phy-ofdma-test.cc', 158 'test/wifi-mac-queue-test.cc', 159 ] 160 161 # Tests encapsulating example programs should be listed here 162 if (bld.env['ENABLE_EXAMPLES']): 163 obj_test.source.extend([ 164 # 'test/wifi-examples-test-suite.cc', 165 ]) 166 167 headers = bld(features='ns3header') 168 headers.module = 'wifi' 169 headers.source = [ 170 'model/wifi-utils.h', 171 'model/wifi-information-element.h', 172 'model/wifi-information-element-vector.h', 173 'model/wifi-net-device.h', 174 'model/wifi-mode.h', 175 'model/ssid.h', 176 'model/wifi-phy-common.h', 177 'model/wifi-phy-band.h', 178 'model/wifi-standards.h', 179 'model/yans-wifi-phy.h', 180 'model/spectrum-wifi-phy.h', 181 'model/yans-wifi-channel.h', 182 'model/wifi-phy.h', 183 'model/wifi-phy-operating-channel.h', 184 'model/wifi-spectrum-phy-interface.h', 185 'model/wifi-spectrum-signal-parameters.h', 186 'model/interference-helper.h', 187 'model/wifi-remote-station-info.h', 188 'model/wifi-remote-station-manager.h', 189 'model/ap-wifi-mac.h', 190 'model/sta-wifi-mac.h', 191 'model/adhoc-wifi-mac.h', 192 'model/rate-control/arf-wifi-manager.h', 193 'model/rate-control/aarf-wifi-manager.h', 194 'model/rate-control/ideal-wifi-manager.h', 195 'model/rate-control/constant-rate-wifi-manager.h', 196 'model/rate-control/amrr-wifi-manager.h', 197 'model/rate-control/onoe-wifi-manager.h', 198 'model/rate-control/rraa-wifi-manager.h', 199 'model/rate-control/aarfcd-wifi-manager.h', 200 'model/rate-control/cara-wifi-manager.h', 201 'model/rate-control/minstrel-wifi-manager.h', 202 'model/rate-control/minstrel-ht-wifi-manager.h', 203 'model/rate-control/thompson-sampling-wifi-manager.h', 204 'model/wifi-mac.h', 205 'model/regular-wifi-mac.h', 206 'model/supported-rates.h', 207 'model/error-rate-model.h', 208 'model/yans-error-rate-model.h', 209 'model/nist-error-rate-model.h', 210 'model/non-ht/dsss-error-rate-model.h', 211 'model/table-based-error-rate-model.h', 212 'model/wifi-mac-queue.h', 213 'model/txop.h', 214 'model/wifi-mac-header.h', 215 'model/wifi-mac-trailer.h', 216 'model/wifi-phy-state-helper.h', 217 'model/qos-utils.h', 218 'model/qos-txop.h', 219 'model/msdu-aggregator.h', 220 'model/amsdu-subframe-header.h', 221 'model/mgt-headers.h', 222 'model/status-code.h', 223 'model/capability-information.h', 224 'model/channel-access-manager.h', 225 'model/mac-tx-middle.h', 226 'model/mac-rx-middle.h', 227 'model/wifi-tx-timer.h', 228 'model/wifi-protection.h', 229 'model/wifi-acknowledgment.h', 230 'model/wifi-tx-parameters.h', 231 'model/wifi-protection-manager.h', 232 'model/wifi-default-protection-manager.h', 233 'model/wifi-ack-manager.h', 234 'model/wifi-default-ack-manager.h', 235 'model/frame-exchange-manager.h', 236 'model/qos-frame-exchange-manager.h', 237 'model/ht/ht-frame-exchange-manager.h', 238 'model/vht/vht-frame-exchange-manager.h', 239 'model/he/he-frame-exchange-manager.h', 240 'model/he/multi-user-scheduler.h', 241 'model/he/rr-multi-user-scheduler.h', 242 'model/originator-block-ack-agreement.h', 243 'model/recipient-block-ack-agreement.h', 244 'model/ctrl-headers.h', 245 'model/block-ack-agreement.h', 246 'model/block-ack-manager.h', 247 'model/block-ack-window.h', 248 'model/snr-tag.h', 249 'model/he/mu-snr-tag.h', 250 'model/ht/ht-capabilities.h', 251 'model/rate-control/parf-wifi-manager.h', 252 'model/rate-control/aparf-wifi-manager.h', 253 'model/rate-control/rrpaa-wifi-manager.h', 254 'model/wifi-tx-vector.h', 255 'model/ampdu-subframe-header.h', 256 'model/mpdu-aggregator.h', 257 'model/ampdu-tag.h', 258 'model/wifi-radio-energy-model.h', 259 'model/wifi-tx-current-model.h', 260 'model/vht/vht-capabilities.h', 261 'model/non-ht/erp-information.h', 262 'model/ht/ht-operation.h', 263 'model/vht/vht-operation.h', 264 'model/non-ht/dsss-parameter-set.h', 265 'model/edca-parameter-set.h', 266 'model/he/mu-edca-parameter-set.h', 267 'model/he/he-capabilities.h', 268 'model/frame-capture-model.h', 269 'model/simple-frame-capture-model.h', 270 'model/preamble-detection-model.h', 271 'model/threshold-preamble-detection-model.h', 272 'model/qos-blocked-destinations.h', 273 'model/he/he-operation.h', 274 'model/he/he-configuration.h', 275 'model/extended-capabilities.h', 276 'model/wifi-mac-queue-item.h', 277 'model/wifi-psdu.h', 278 'model/wifi-ppdu.h', 279 'model/non-ht/dsss-ppdu.h', 280 'model/non-ht/erp-ofdm-ppdu.h', 281 'model/non-ht/ofdm-ppdu.h', 282 'model/ht/ht-ppdu.h', 283 'model/vht/vht-ppdu.h', 284 'model/he/he-ppdu.h', 285 'model/wifi-phy-state.h', 286 'model/wifi-phy-listener.h', 287 'model/block-ack-type.h', 288 'model/wifi-mpdu-type.h', 289 'model/ht/ht-configuration.h', 290 'model/vht/vht-configuration.h', 291 'model/he/obss-pd-algorithm.h', 292 'model/he/constant-obss-pd-algorithm.h', 293 'model/he/he-ru.h', 294 'model/reference/error-rate-tables.h', 295 'model/phy-entity.h', 296 'model/non-ht/dsss-phy.h', 297 'model/non-ht/ofdm-phy.h', 298 'model/non-ht/erp-ofdm-phy.h', 299 'model/ht/ht-phy.h', 300 'model/vht/vht-phy.h', 301 'model/he/he-phy.h', 302 'helper/wifi-radio-energy-model-helper.h', 303 'helper/athstats-helper.h', 304 'helper/wifi-helper.h', 305 'helper/yans-wifi-helper.h', 306 'helper/spectrum-wifi-helper.h', 307 'helper/wifi-mac-helper.h', 308 ] 309 310 if bld.env['ENABLE_GSL']: 311 obj.use.extend(['GSL', 'GSLCBLAS', 'M']) 312 obj_test.use.extend(['GSL', 'GSLCBLAS', 'M']) 313 314 if (bld.env['ENABLE_EXAMPLES']): 315 bld.recurse('examples') 316 317 bld.ns3_python_bindings() 318 319