Commit Graph

19314 Commits

Author SHA1 Message Date
Sébastien Deronne
a36937fbe3 wifi: Use Hz_u and MHz_u weak aliases for frequencies 2024-09-09 16:26:17 +00:00
Sébastien Deronne
e7494ccc27 wifi: Use Hz_u and MHz_u weak aliases for channel widths 2024-09-09 16:26:17 +00:00
Sébastien Deronne
292b81c3cc wifi: Add weak types for physical quantities
This commit introduces weak types for physical quantities commonly used in WiFi, and replaces POD types such as `double`, `int8_t` with them. This change offers immediate advantages in code clarity - readability, and debuggability. Once the physical units are encoded in the variable definitions, the following improvements become immediately possible:

* To remove line end comments along with variable definition. eg. " // Mhz"
* To add missed physical unit. eg. "dBm_t maxPower;" instead of "double maxPower;"
* To drop unit suffix in the variable name. eg. "apTxPowerDbm", "txPowerW"
* To overcome the confusion by CamelCase rule. eg. "distanceM"

See wifi-units.h for the full list of weak types.

Adopting a well-defined weak type also offers a chance to consolidate discrepant, potentially erring, data types.
* Mega Hertz used to be defined in 6 different data types: uint8_t, uint32_t, uint16_t, int64_t, int, ChannelWidthMhz. Now all are consolidated into `MHz_t`.
* Hertz used to be defined in 2 different data types: uint32_t, int64_t. Now all are consolidated into `Hz_t`.

Some variables used to be defined in a suboptimal choice of data type: Watt for RSSI, with potential floating-point precision trouble. This weak-type adoption offers to change it to dBm.
2024-09-09 16:26:17 +00:00
Sébastien Deronne
777bd2f480 wifi: Remove unnecessary assert hit when creating a non-HT duplicate PSD for 80+80MHz operating channel 2024-09-09 13:48:10 +00:00
Alberto Gallegos Ramonet
32a2883385 lr-wpan: CCA vulnerability window test and doc 2024-09-09 10:56:14 +09:00
Tommaso Pecorella
9d80dbbd27 ci: limit the ccache size to 3GB 2024-09-08 17:04:00 +00:00
Gabriel Ferreira
498a832e87 ci: Add code coverage job for GitLab 2024-09-07 21:08:06 +02:00
Gabriel Ferreira
59ae0231ed build: Add target to convert lcov coverage report to the cobertura format 2024-09-07 21:08:06 +02:00
Tommaso Pecorella
8dc668e599 ci: bump Doxygen to 1.11.0 2024-09-07 15:36:25 +02:00
Tommaso Pecorella
9b1a8030e9 visualizer: document python variable 2024-09-07 15:36:25 +02:00
André Apitzsch
bd4c735b15 doc: Add SPDX license guidelines 2024-09-06 19:32:31 +00:00
André Apitzsch
8bc94a1cc3 Use SPDX license identifiers 2024-09-06 19:32:31 +00:00
Ghostyhands
209c593a00 tcp: (merges !2083) Consider segmentSize send limit while checking for cwnd rate-limit 2024-09-06 15:27:54 +00:00
AlessioBugetti
583733a3bd uan: Fix uninitialized memory usage bug in the operator>> for UanModesList 2024-09-06 10:02:26 +00:00
AlessioBugetti
c4e291565f uan: Fix precision loss in Eb/N0 calculation in UanPhyPerCommonModes::CalcPer() (reported by donghuiyong) 2024-09-06 10:02:26 +00:00
Eduardo Almeida
84b0d9d907 core: (fixes #1135) Silence TypeTraits deprecation warnings in its test suite 2024-09-05 22:00:55 +01:00
Gabriel Ferreira
8e7eb707fc build: Prevent empty list from causing REMOVE_ITEM to fail 2024-09-05 11:38:40 +02:00
Gabriel Ferreira
042e5b0c67 ci: Update clang-10 jobs to clang-11 2024-09-05 11:37:50 +02:00
Gabriel Ferreira
2032727d03 lte: Avoid expensive multiplications and divisions 2024-09-04 11:54:58 +00:00
Gabriel Ferreira
26b3fd9c04 wifi: Avoid expensive divisions 2024-09-04 11:54:58 +00:00
Gabriel Ferreira
ba6be0dbd3 wifi: Replace mismatching type in std::max
Fixes build in Windows
2024-09-04 11:53:47 +00:00
Sébastien Deronne
a0b80af33d wifi: No need to call SwitchMaybeToCcaBusy upon reception from a non-active PHY interface 2024-09-04 07:47:42 +02:00
Tom Henderson
22af184c69 doc, wifi: Update class Doxygen 2024-09-04 01:15:27 +00:00
Tom Henderson
270f662a16 doc, wifi: Update Wi-Fi architecture diagram 2024-09-04 01:15:27 +00:00
Tom Henderson
40017b93d3 core: Use provided argument values 2024-09-04 01:11:20 +00:00
Tom Henderson
ae5830337b core: Improve random variable logging 2024-09-04 01:11:20 +00:00
AlessioBugetti
4d2a631def uan: (fixes #1125) Add UanModesListTest in uan-test.cc for the operator>> 2024-09-04 01:04:53 +00:00
AlessioBugetti
27b220f326 uan: (fixes #1125) Fix handling of EOF in operator>> for UanModesList 2024-09-04 01:04:53 +00:00
AlessioBugetti
c7f3306bc0 uan: (fixes #1128) Fix bug in Eb/N0 calculation in UanPhyPerCommonModes::CalcPer() (reported by donghuiyong) 2024-09-04 01:02:28 +00:00
Sébastien Deronne
578fecdcba wifi: Use time instead of uint16_t for guard interval duration 2024-09-03 20:19:29 +00:00
Sébastien Deronne
9cc2cb08ee wifi: Use double for frequencies 2024-09-03 20:19:29 +00:00
Sébastien Deronne
e287da982b wifi: Use double for ChannelWidthMhz 2024-09-03 20:19:29 +00:00
Sébastien Deronne
f5d48f4b57 wifi: Fix missing use of ChannelWidthMhz alias 2024-09-03 20:19:29 +00:00
Eduardo Almeida
0d69659882 core: (fixes #1122) Handle deserializing empty strings in ATTRIBUTE_VALUE_IMPLEMENT
Co-author: AlessioBugetti <alessiobugetti98@gmail.com>
2024-09-03 12:02:46 +00:00
Eduardo Almeida
59f5daff76 ci: Silence clang-tidy-diff exit code
The success of the CI/CD job is determined by the job logic, not the exit code.
2024-09-03 12:00:57 +00:00
Eduardo Almeida
a6f7a10445 ci: Trim empty lines in clang-tidy output file 2024-09-03 12:00:57 +00:00
André Apitzsch
2e589e6785 core: Deprecate struct TypeTraits 2024-09-03 01:48:37 +00:00
André Apitzsch
61e310c965 core, test: Use type trait functions from std header 2024-09-03 01:48:37 +00:00
AlessioBugetti
03f04681f5 core: Declare empty constructor as = default in attribute-helper.h 2024-09-02 21:25:06 +00:00
Federico Guerra
e266e0a2c8 uan: (fixes #1127) Fixed bug in energy update in UanPhyGen::RxEndEvent() (thanks to donghuiyong) 2024-09-02 14:27:41 +00:00
Sébastien Deronne
c288ebbbe7 wifi: Reduce amount of Watt/dBm conversion 2024-09-02 05:37:03 +00:00
Sébastien Deronne
7a8da34944 wifi: Prefer use of dBm instead of Watt 2024-09-02 05:37:03 +00:00
Sébastien Deronne
dc860e90fe wifi: Use std::optional instead of magic value 2024-09-02 05:37:03 +00:00
Sébastien Deronne
4aea7e751e wifi: Do not call WToDbm with value 0W 2024-09-02 05:37:03 +00:00
Sébastien Deronne
8aac077b8e wifi: Fix confusing noise floor calculation in wifi-manager-example 2024-09-02 05:37:03 +00:00
Sébastien Deronne
7903f6275f wifi: Fix secondary channel frequency calculation for 80+80MHz 2024-09-02 05:37:03 +00:00
Sébastien Deronne
9330795f83 wifi: Only print primary20 for first segment 2024-09-02 05:37:03 +00:00
Sébastien Deronne
a2b831cf3f wifi: Fix regressions when 802.11p is used 2024-09-02 05:37:03 +00:00
Sébastien Deronne
b15ef93938 wifi: Fix wifi-trans-example script 2024-09-02 05:37:03 +00:00
Sébastien Deronne
b611bb30ec wifi: Fix example left unadjusted when introducing WifiPhy::ChannelSettings attribute 2024-09-02 05:37:03 +00:00