Commit Graph

16124 Commits

Author SHA1 Message Date
Tommaso Pecorella
e47cb242d7 buildings: doxygen fixes 2022-01-30 12:06:53 -06:00
Tommaso Pecorella
f33366d1e1 tests: doxygen fixes 2022-01-30 12:06:53 -06:00
Tommaso Pecorella
0b3b639524 sixlowpan: doxygen fixes 2022-01-30 12:06:53 -06:00
Tommaso Pecorella
2182bb0ece mpi: doxygen fixes 2022-01-30 12:06:53 -06:00
Tommaso Pecorella
48e6ac5405 spectrum: doxygen fixes 2022-01-30 12:06:53 -06:00
Tommaso Pecorella
df97e13ffa antenna: doxygen fixes 2022-01-30 12:06:53 -06:00
Tommaso Pecorella
0a0222c299 propagation: doxygen fixes 2022-01-30 12:06:53 -06:00
Tommaso Pecorella
fb3b80f271 stats: doxygen fixes 2022-01-30 12:06:53 -06:00
Tommaso Pecorella
fcd6678a01 openflow: doxygen fixes 2022-01-30 12:06:53 -06:00
Tommaso Pecorella
d5dff3a6c5 energy: doxygen fixes 2022-01-30 12:06:53 -06:00
Tommaso Pecorella
5813be9cd5 brite: doxygen fixes 2022-01-30 12:06:53 -06:00
Tommaso Pecorella
8ac0116193 core: doxygen fixes 2022-01-30 12:06:53 -06:00
Gabriel Ferreira
7814ddf5b9 build: silence no-stringop-trunction warning for the openflow module 2022-01-29 16:03:08 -03:00
Gabriel Ferreira
da72879f4c build: better emulate find_package behavior and replace FindSQLite3
Includes:
- refactoring of find_external_library with argument parsing
2022-01-29 16:03:08 -03:00
Gabriel Ferreira
bbe67f5fc2 build: check if visualizer is in the enabled modules list 2022-01-28 15:37:27 -03:00
Gabriel Ferreira
6564afda68 build: move sqlite checking back to macros_and_definitions 2022-01-28 14:08:53 -03:00
Gabriel Ferreira
41aacec626 build: CMake refactoring
Includes:
- refactor build_lib and build_lib_example macros
    - unify src and contrib macros
    - replace macro with function not to leak definitions
    - parse list of arguments
- different cmake-format file for modules to list one item per line
2022-01-28 10:20:18 -03:00
Tommaso Pecorella
d470fb77d4 ci: fix fedora jobs 2022-01-27 17:36:45 -06:00
Gabriel Ferreira
0888aa9f4d CI: use ns3 for the doxygen job 2022-01-27 18:27:29 -03:00
Gabriel Ferreira
113c3744fc build: CMake and ns3 fixes and improvements
Includes:
- fix python warnings and wrap pkgconfig_interface_include_directories in quotes to treat it as a string
- prevent failure when Python is not found
- refactor python bindings checks and error messages
- export 3rd-party include directories and linked libraries
    - Adding a NS3_REEXPORT_THIRD_PARTY_LIBRARIES option to always export include directories and libraries used by a module, making it automatically available to 3rd-party modules
    - Making NS3_REEXPORT_THIRD_PARTY_LIBRARIES option enabled by default
- replace colliding shortcuts with list of non-ambiguous shortcuts
- remove unnecessary code blocks from click
- warn users that doxygen target requires examples and tests
    - These are used to generate introspected documentation and guarantee proper dependency checking and build order
2022-01-27 17:28:38 -03:00
Tommaso Pecorella
e1e07f2ffd core: skip results checking when introspecting the command line 2022-01-27 17:28:38 -03:00
Tommaso Pecorella
bf0708e61f Update AUTHORS list 2022-01-27 07:28:06 -06:00
Akash Mondal
bd7a35f821 internet: fix errors in IPv6 Path MTU discovery. 2022-01-26 23:42:10 +00:00
Gabriel Ferreira
9342082c53 bindings, build: fix bindings and visualizer build
Includes:
- scan python scripts
- run python scripts from ns3
- replace visualizer file copy with configure_file to prevent cmake refreshes
- replace ns__init__.py file copy with configure_file to prevent cmake refreshes
- fix bindings scanning with cmake
- pass include directories to modulegen for castxml consumption
- add missing parameters of Recv in python-unit-tests.py
- change apiscan targets from apiscan-module to libmodule-apiscan
- change bindings targets from module-bingings to libmodule-bindings
- scanning and bindings build tests
- scan scratch python scripts
- replace FindPython3 with FindPython to be compatible with CMake 3.10
- do not export private visual-simulator-impl.h
- do not export udp-socket-impl.h
- use .so suffix for bindings on Mac instead of .dylib
2022-01-26 01:53:28 -03:00
Tom Henderson
192019ce94 wifi: Rescan python bindings 2022-01-25 07:53:05 -08:00
Tom Henderson
d0d44d747a doc: Add contributing guide to build 2022-01-24 12:16:35 -08:00
Peter D. Barnes, Jr
0c40e7b4f7 doc: Update Doxygen configuration 2022-01-24 12:13:16 -08:00
Peter D. Barnes, Jr
3592c97e90 doc: put drop down menus always on top 2022-01-24 12:12:21 -08:00
Stefano Avallone
e3c9a887e0 wifi: Addr1 of Probe Requests does not have to be broadcast 2022-01-24 09:04:40 +00:00
Stefano Avallone
ca589eadbd wifi: Fill in Block Ack Parameter Set field as per specs 2022-01-24 09:04:40 +00:00
Stefano Avallone
c37f7fa784 wifi: Fix calculation of the duration of S-MPDUs 2022-01-24 05:52:32 +00:00
Stefano Avallone
e10d6c9467 wifi: Fix non-HT mode to MCS conversion in TableBasedErrorRateModel 2022-01-24 05:52:32 +00:00
Tommaso Pecorella
778a9fda8a CI: enable mpi on Fedora 2022-01-23 16:41:18 -06:00
Gabriel Ferreira
2d1efe3f76 CI: enable mpi tests and indicate ns3 is running on a CI environment 2022-01-23 17:34:58 -03:00
Gabriel Ferreira
046fa968de test: build required tests with ns3 2022-01-23 17:31:18 -03:00
Gabriel Ferreira
bbe2128abe build: more ns3 and CMake fixes
Includes:
- inform ns3 user cmake was not found, or an unsupported version was found
- replace open-mpi environment variables with command-line arguments
- mark more variables as advanced
- add -v and --verbose option to run and only output the programs output by default
- fix scratch subdir prefixes and add tests
- prevent cmake crash when scratch sources do not have a main function
- disable MPI module by default
- wrap cmakelists_content in quotes to prevent failure of filter_libraries
- install pkgconfig files and add tests
- pkg-config generation (still missing installation)
- forward PYTHONPATH to modulegen
- fix dependency search for brite, click and openflow
2022-01-23 17:30:08 -03:00
Tom Henderson
f78ca76519 Include additional missing headers 2022-01-22 09:26:17 -08:00
Biljana Bojovic
167aaada6e antenna, buildings, lr-wpan, lte, netanim, propagation, spectrum, wifi, wimax: Update Python bindings 2022-01-22 11:43:31 +01:00
Biljana Bojovic
33097e47d9 spectrum: GetAntenna supports antenna arrays (address Tommaso Zugno's comment on !686) 2022-01-22 11:43:31 +01:00
bbojovic
00e3374159 spectrum: ThreeGppChannelModel is adapted so it can be inherited and GetNewChannel virtual 2022-01-22 11:43:31 +01:00
bbojovic
a4b43d0132 spectrum: Move doppler term D and alpha and improve (Thanks to Sandra Lagen)
Co-authored-by: Sandra Lagen <sandra.lagen@cttc.es>

This commit also fixes an issue that was discovered during this implementation,
and that is that the stream was never assigned for the uniform random variable used for
the term D and alpha generation.

-Store term D and alpha into the channel params structure.
-Make sure to use correct angles and zenit of departure and arrival:
Save the direction of the generation of the channel params and channel matrix,
in order to know when regenerating channel matrix if the saved angles aoa, aod,
zoa and zod are of of s-to-u or u-to-s, so to properly use them.
- Simplify the type of the key of channel matrix map
- Remove unecessary if statements and abort replace by assert
- Add a more detailed description of the ThreeGppSpectrumPropagationLossModel changes
2022-01-22 11:43:28 +01:00
bbojovic
f53c28229d spectrum, propagation: Fix the way channel condition is saved and checked if equal
It seems that is not the best way to save in the structure the pointer
to the channel condition model because the underlying condition,
and later when we compare the new condition with the old one, we
are basically comparing the underlying object with itself, because
we saved the pointer to it in the structure.

Instead we should save the concrete values of LOS and O2I condition
in the 3gpp structure, and then once the ChannelCondition state changes,
we can compare these saved values against the new once.
This could not be done when the pointer was being changed because pointer
was pointing to the same object.

This fixes basically the condition in 3gpp whether th channel needs to be
updated when condition changes.
2022-01-22 11:42:20 +01:00
bbojovic
2f0a4c9957 spectrum: Split 3gpp channel matrix and channel parameters into two different structures
-Create separate base structures for matrix and params in MatrixBasedChannelModel
-Change the key of m_channelParamsMap to be based on the pair of nodeIds instead of pair of antenna arrays:
Since the parameters in the m_channelParamsMap are common for all the channels among the same pair of nodes,
these parameters should be saved per the pair of node ids, instead per the pair of panels.
On the other hand, the map m_channelMatrixMap saves the channel matrixes per the pair of antenna arrays.
- Implement the update of the channel params and channel matrix of ThreeGppChannelModel
- Fix doxygen and remove unused structures in ThreeGppChannelModel
- Save 3gpp channel matrix and long term per antenna pair instead of node pair
- Split GetNewChannel function in two parts: parameter generation and matrix generation
- Split 3gpp channel matrix and parameters into two different structures
2022-01-22 03:45:09 +01:00
bbojovic
4ca8b12ea0 spectrum: Support passing the TX and RX PhasedArrayModel objects to spectrum model
This possibility is needed for the types of spectrum propagation models that need to have a pointer
to the TX and RX antenna arrays to perform calculations, such as e.g.,
ThreeGppSpectrumPropagationLossModel, which currently has hard limitation of having a maximum of 1
antenna array instance per device. ThreeGppSpectrumPropagationLossModel now inherits a new class
PhasedArraySpectrumPropagationLossModel. Its DoCalcRxPowerSpectralDensity function has now two
additional parameters: TX and RX antenna arrays. Also, AddDevice function is removed from
ThreeGppSpectrumPropagationLossModel, because it is not anymore needed to specify for each
device its TX/RX antenna, since these are now passed as parameters. Hence, to use
ThreeGppSpectrumPropagationLossModel, when implementing Spectrum PHY features,
modules should implement the function of SpectrumPhy GetAntenna to return the instance of
PhasedArrayModel of that SpectrumPhy. These instances will be passed by MultiModelSpectrumChannel
(one of the core classes in the spectrum module) to propagation classes, children of
PhasedArraySpectrumPropagationLossModel, when it is necessary to DoCalcRxPowerSpectralDensity to
callculate the propagation loss.

Additionally: Fixed pair key generation for 3gpp channel model: Previous implementation was
using a cantor function of two integer of 32 bits and as a results was giving a unique
representatio of 32 bits. This is wrong, because such function needed even more than 64
bits to represent that value. Even if in ns-3 simulation we are not going to have such large
node numbers, we should fix this. Instead of just changing 64 bits from cantor function, I propose to
replace the cantor function with just simple concatenation of two 32 bits.

I also propose moving min and max inside of the function, to prevent some eventual future errors
in using GetKey, because with the previous implementation there was assumption that who calls GetKey
will previously sort its parameters, and first provide the min value, and then the max value,
and this was not even documented.
2022-01-22 03:42:49 +01:00
Gabriel Ferreira
33f2ee841b doc: update ns3 API 2022-01-19 16:25:03 -03:00
Gabriel Ferreira
330ffb75b6 CI: add flags required by recent openmpi to run on the CI 2022-01-19 16:25:03 -03:00
Gabriel Ferreira
70d11fe983 build: ns3 and CMake fixes
- fix scratch shortcut transformation to build target and binary
- scan scratch files for a main function to use them as the target name
- fix CMake generator parsing
- update the -- separator message
- use -- separator to forward CMake flags from ns3
- add --vis option to ns3
- embedded version fixes
    Fix NS3_VERSION_PATCH and NS3_VERSION_RELEASE_CANDIDATE default values.
    Add check-version target to CMake.
    Add --enable-build-version to ns3.
    Add --check-profile and --check-version options to ns3.
- process each scratch subdirectory as a single target
- forward ns3 arguments after -- separator to the program to run
- fix escape sequence in command-template help string
- handle modules with very long names
2022-01-19 16:25:03 -03:00
Tom Henderson
2db1e3ed8d traffic-control: Rescan APIs for Python bindings 2022-01-15 10:42:56 -08:00
Gabriel Ferreira
ab550a73dd traffic-control: Use transparent comparator
Prevents char* to string conversions, reducing allocs
2022-01-15 01:09:28 +00:00
Gabriel Ferreira
66ef21189e internet: Replace m_node->GetObject<Ipv4> with Ptr (this) 2022-01-15 01:09:28 +00:00