Commit Graph
108 Commits
Author SHA1 Message Date
Bartosz Podrygajlo 6bd3545a78 RFsimulator C++ conversion
Convert rfsimulator C source code to C++ to access to STL.
2025-12-17 22:24:12 +01:00
Laurent THOMAS a1b4220a91 Exclusively use OAI_RNGSEED env variable everywhere
Hide normal table initialization of Ziggurat generator from outside to
force the usage of randominit() for RNG initialization. In this step,
remove the randominit() seed parameter and only rely on OAI_RNGSEED for
a consistent RNG initialization, as this parameter was used differently
("0" as fixed number or to force a random seed).

Now, only use OAI_RNGSEED env variable to force the usage of a fixed
seed.
2025-12-01 12:10:31 +01:00
Thomas Schlichter d6585f3750 rfsimulator: enable and correct NTN LEO doppler simulation 2025-04-10 13:56:20 +00:00
Bartosz Podrygajlo 2fb541a68e Add option to use global noise power for all RX channels in RFSimulator
Added new command line option to channelmod: noise_power_dBFS. This options
allows the user to configure noise power in dBFS added instead of the per-channel
value.

This makes it so noise is not accumulated per channel reaching higher than expected
values.

The dBFS unit allows easy configuration. The gNB by default uses -36 dBFS setting.
To reach 3dB SNR one should set the noise_power_dBFS value to -39.

To configure using command line use --channelmod.noise_power_dBFS -50. Using this
setting the gNB and nrUE connect without issue.
2025-02-19 16:05:38 +01:00
Bartosz Podrygajlo 23cc049157 Remove unnecessary includes in rfsimulator 2024-09-26 14:59:14 +02:00
Thomas Schlichter 6a8edaf317 rfsimulator: add delay and Doppler simulation for circular orbit and add according channel models SAT_LEO_TRANS and SAT_LEO_REGEN
Delay and Doppler computation is done as in Matlab function dopplerShiftCircularOrbit:
https://de.mathworks.com/help/satcom/ref/dopplershiftcircularorbit.html
2024-08-20 16:46:25 +02:00
Thomas Schlichter 68b07d542c rfsimulator: correctly set center frequency 2024-08-20 16:46:25 +02:00
Thomas Schlichter 5ac881b7c1 rfsimulator: add support to simulate a long propagation delay
Add the option `--rfsimulator.prop_delay` to specify the simulated receive-path (gNB: UL, UE: DL) propagation delay in ms.
This option can be used e.g. to simulate a simple GEO satellite channel by specifying `--rfsimulator.prop_delay 238.74` to both, the gNB and the UE.

This is part of the work developed by Fraunhofer IIS within the ESA-funded project 5G-GOA (https://connectivity.esa.int/projects/5ggoa).
2024-05-07 20:46:37 +02:00
francescomani 8404da759f nullPointerRedundantCheck 2024-04-09 16:55:51 +02:00
Guido Casati 563109a88f Cleanup of unused and outdated legacy RFSIM code
- deleted:    ../../../executables/rfsim.c
- removed unused command line options to set SINR and SNR
- removed unused functions to get SINR and SNR
- removed unused RFSIM struct members
2024-02-20 15:06:59 +01:00
Robert Schmidt 5e5ab86d47 Merge remote-tracking branch 'origin/remove-cblas-oai-5g' into integration_2023_w44 2023-11-14 15:12:41 +01:00
Laurent THOMAS 18951bad4d remove-cblas-oai-5g 2023-11-14 11:47:38 +01:00
Laurent THOMAS f50d5f5a9b make multiple config instead of one implicit global 2023-11-10 10:23:11 +01:00
Raymond Knopp a7bc282302 First-level of support for new aarch64 machines
Testing on Neoverse N1 (Ampere 3GHz). Tested only on a subset of phy-simulators.

- Changes:
- use SIMDE consistently
- adaptations of LDPC decoder generator for ARMv8 performance
- SIMDe modifications of Intel CRC to allow for aarch64 build.
  optimizations for 128-bit to improve performance of LDPC encode/decode
  on aarch64 (Neoverse 1)
- added BG2 files for 128-bit ldpc encoder (aarch64)
- testing on Xeon
- testing on x86
- minor changes to build/run on x86
- change in crc.h after returning to aarch64
- removed some warning in ldpc decoder generator for x86_64
- char
- Delete irrelevant constants
- Correctly declare variables
- Define stdbool for all architectures
- Remove definition of _MM_SHUFFLE and use SIMDE_MM_SHUFFLE
- Remove commented code
- Fix CMakeLists.txt
- Include SIMDE avx2 functions in tools_defs.h
2023-09-13 17:19:20 +02:00
mir e04554dcb0 Warnings generated in gcc 13 and tackled in this PR (except const correctness)
49 /home/mir/workspace/oai_dev/common/utils/T/tracer/to_vcd.c: In function ‘main’:
    50 /home/mir/workspace/oai_dev/common/utils/T/tracer/to_vcd.c:349:30: warning: ‘%s’ directive writing up to 240 bytes into a region of size between 11 and 251 [-Wformat-overflow=]
    51   349 |     sprintf(format, "%c [%s] %s",
    52       |                              ^~
    53 In file included from /usr/include/stdio.h:894,
    54                  from /home/mir/workspace/oai_dev/common/utils/T/tracer/to_vcd.c:1:
    55 In function ‘sprintf’,
    56     inlined from ‘main’ at /home/mir/workspace/oai_dev/common/utils/T/tracer/to_vcd.c:349:5:
    57 /usr/include/x86_64-linux-gnu/bits/stdio2.h:38:10: note: ‘__builtin___sprintf_chk’ output between 6 and 486 bytes into a destination of size 256
    58    38 |   return __builtin___sprintf_chk (__s, __USE_FORTIFY_LEVEL - 1,
    59       |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    60    39 |                                   __glibc_objsize (__s), __fmt,
    61       |                                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    62    40 |                                   __va_arg_pack ());
    63       |                                   ~~~~~~~~~~~~~~~~~

    2005 /home/mir/workspace/oai_dev/openair1/SIMULATION/TOOLS/random_channel.c:1726:6: warning: conflicting types for ‘set_channeldesc_owner’ due to enum/integer mismatch; have ‘void(channel_desc_t *, uint32_t)’ {      aka ‘void(channel_desc_t *, unsigned int)’} [-Wenum-int-mismatch]
    2006  1726 | void set_channeldesc_owner(channel_desc_t *cdesc, uint32_t module_id) {
    2007       |      ^~~~~~~~~~~~~~~~~~~~~
    2008 In file included from /home/mir/workspace/oai_dev/openair1/SIMULATION/TOOLS/random_channel.c:31:
    2009 /home/mir/workspace/oai_dev/openair1/SIMULATION/TOOLS/sim.h:348:6: note: previous declaration of ‘set_channeldesc_owner’ with type ‘void(channel_desc_t *, channelmod_moduleid_t)’
    2010   348 | void set_channeldesc_owner(channel_desc_t *cdesc, channelmod_moduleid_t module_id);
    2011       |      ^~~~~~~~~~~~~~~~~~~~~

    24209 /home/mir/workspace/oai_dev/openair1/SCHED_UE/phy_procedures_lte_ue.c:954:17: warning: ‘n1_pucch_inter’ may be used uninitialized [-Wmaybe-uninitialized]
    24210   954 |           return(n1_pucch_inter);
    24211       |                 ^
    24212 /home/mir/workspace/oai_dev/openair1/SCHED_UE/phy_procedures_lte_ue.c:647:60: note: ‘n1_pucch_inter’ was declared here
    24213   647 |   uint16_t n1_pucch0=0,n1_pucch1=0,n1_pucch2=0,n1_pucch3=0,n1_pucch_inter;
    24214       |
2023-07-21 09:39:36 +02:00
Robert Schmidt 5aed7d30d6 Use calloc() in new_channel_desc_scm() 2023-07-03 14:07:38 +02:00
Robert Schmidt 4819b6b6ae Initialize TDL Model buffers with 0 2023-07-03 14:07:38 +02:00
laurent 1b09f683f9 Fix compilation errors due to -Werror 2023-06-08 19:15:24 +02:00
Vijay Chadachan 836469e849 CPPCHECK fixes for printf issues
Fix for following CPPCheck warnings
- invalidPrintfArgType
Rebased with latest develop branch w21.
Reverted modifications unrelated to printf issues.
2023-06-01 12:07:26 +02:00
francescomani 2385bc364a fixing most warning when compiling nr-softmodem 2023-03-09 19:01:46 +01:00
Robert Schmidt 9a0dd7c1b3 Update for webserver; cleanup in CMakeLists.txt
- Add oai header to typescript and html sources, add support to commands
  requiring two parameters, add more helpfiles
- Fix help bug (html comments not removed from tooltips)
- Fix backend build problem and 2 warnings
- Correctly initialize variables in nr_phy_scope.c
- Use add_subdirectory for websrv cmake build
- correctly link to asn1_lte_rrc and asn1_nr_rrc
- fix bug: correctly recognize npm packet
- only configure targets if explicitly asked for by users
- use add_subdirectory
- Use add_subdirectory for telnet cmake build
- Minor cleanup in build_oai
- Move softscope build in dedicated CMakeLists, and comment out
  DEBUG_MAC_INTERFACE option (not found in code)
- Make DEBUG_ASN1 a cmake only option ( no C macro) as it's not used as
  a C macro in the code, and develop align
2023-02-21 17:01:07 +01:00
Adeel Malik affa5e3086 bugfix in function channelmod_modify_cmd 2023-01-11 11:12:19 +01:00
Robert Schmidt 23c92ee0ed Merge remote-tracking branch 'origin/websrv2' into integration_2022_wk50 2022-12-15 16:30:33 +01:00
frtabu e65f13e175 review fixes 2022-12-08 15:27:33 +01:00
frtabu 21b3484e02 Initial web server implementation 2022-11-30 11:34:54 +01:00
Roberto Louro Magueta 2b40675b3a Apply Doppler Effect 2022-11-25 11:03:45 +00:00
Roberto Louro Magueta 9b04af1b52 Put the center_freq and maxDoppler as input of new_channel_desc_scm() function 2022-11-25 11:03:45 +00:00
Roberto Louro Magueta e44a99b3c1 Implementation of get_cexp_doppler() function to compute the Doppler Effect 2022-11-25 10:56:52 +00:00
laurent 6ceaf084bc remove usage of /dev/random in case openshit has a problem with this
remove usage of /dev/random in case openshit has a problem with this
2022-11-09 18:58:09 +00:00
Roberto Louro Magueta 255ad24410 Replace gaussdouble() by gaussZiggurat() in random_channel() and add_noise() 2022-11-09 18:58:09 +00:00
Roberto Louro Magueta 6b83d9e0f1 Compute normalization channel factor 2022-10-27 17:18:38 +01:00
Roberto Louro Magueta 9b594ff3b6 Fix AWGN channel 2022-10-27 17:18:38 +01:00
Roberto Louro Magueta 6f51b930c1 Put the correlation level (low, medium or high) as input of new_channel_desc_scm() 2022-10-27 17:07:25 +01:00
Roberto Louro Magueta 3d966b09e8 TDL channel model implementation for low, medium and high correlation scenarios 2022-10-27 17:07:25 +01:00
Roberto Louro Magueta c3a51d771c Implementation of tables G.2.1.1-2, G.2.1.1-3 and G.2.1.1-4 of TS 38.104, for TDLA30, TDLB100 and TDLC300 channel models 2022-10-27 16:54:59 +01:00
Arash Sahbafard 9c87b3fc01 Better print channel model parameters 2022-08-26 13:44:26 +02:00
laurent 65b399fcd7 fix bugs in config module and config usage
fix bug from this MR

fix bug from this MR

stupid-mistake
2022-08-16 09:22:15 +02:00
Robert Schmidt 81537701b2 Fix: channel chF large enough for 5G 2022-02-21 13:36:39 +01:00
Laurent THOMAS ef2fedfc5b fix existing bug in pucchsim.c and in random_channel.c 2022-02-07 23:50:01 +01:00
rmagueta 614c29ad1a Function cblas_zgemv replaced by cblas_zaxpy because it has an undefined output (for the same input) after a second call in RHEL8 (acorr = nan) 2021-10-12 18:56:35 +01:00
Eurecom eceb0d79bc Merge branch 'bandwidth-testing' of https://gitlab.eurecom.fr/oai/openairinterface5g into bandwidth-testing
Conflicts:
	executables/nr-uesoftmodem.c
	openair1/PHY/NR_ESTIMATION/nr_ul_channel_estimation.c
	openair1/SIMULATION/TOOLS/random_channel.c
	openair2/LAYER2/NR_MAC_UE/mac_proto.h
	openair2/LAYER2/NR_MAC_UE/nr_ue_dci_configuration.c
	openair2/LAYER2/NR_MAC_UE/nr_ue_scheduler.c
	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_RA.c
	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_ulsch.c
2021-09-06 11:22:30 +02:00
Eurecom 4624a94d48 Merge remote-tracking branch 'origin/develop' into bandwidth-testing
Conflicts:
	executables/nr-uesoftmodem.c
	executables/nr-uesoftmodem.h
	executables/softmodem-common.h
	openair1/PHY/MODULATION/slot_fep_nr.c
	openair1/PHY/NR_ESTIMATION/nr_ul_channel_estimation.c
	openair1/PHY/NR_TRANSPORT/pucch_rx.c
	openair1/SCHED_NR/fapi_nr_l1.c
	openair1/SCHED_NR_UE/phy_procedures_nr_ue.c
	openair1/SIMULATION/TOOLS/abstraction.c
	openair1/SIMULATION/TOOLS/random_channel.c
	openair2/LAYER2/NR_MAC_UE/mac_proto.h
	openair2/LAYER2/NR_MAC_UE/nr_ue_dci_configuration.c
	openair2/LAYER2/NR_MAC_UE/nr_ue_scheduler.c
	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_RA.c
	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_ulsch.c
2021-09-06 10:34:14 +02:00
Eurecom c834f40186 Merge remote-tracking branch 'origin/develop' into bandwidth-testing
Conflicts:
	executables/nr-uesoftmodem.c
	executables/nr-uesoftmodem.h
	executables/softmodem-common.h
	openair1/PHY/MODULATION/slot_fep_nr.c
	openair1/PHY/NR_ESTIMATION/nr_ul_channel_estimation.c
	openair1/PHY/NR_TRANSPORT/pucch_rx.c
	openair1/SCHED_NR/fapi_nr_l1.c
	openair1/SCHED_NR_UE/phy_procedures_nr_ue.c
	openair1/SIMULATION/TOOLS/abstraction.c
	openair1/SIMULATION/TOOLS/random_channel.c
	openair2/LAYER2/NR_MAC_UE/mac_proto.h
	openair2/LAYER2/NR_MAC_UE/nr_ue_dci_configuration.c
	openair2/LAYER2/NR_MAC_UE/nr_ue_scheduler.c
	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_RA.c
	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_ulsch.c
2021-09-05 15:37:11 +02:00
Raymond Knopp 98ef919502 Merge remote-tracking branch 'origin/bandwidth-testing' into bandwidth-testing-pucch
Conflicts:
	openair1/PHY/NR_TRANSPORT/pucch_rx.c
	openair1/PHY/NR_UE_TRANSPORT/pucch_nr.c
	openair1/SIMULATION/NR_PHY/dlsim.c
	openair1/SIMULATION/NR_PHY/pucchsim.c
2021-09-02 13:34:36 +02:00
Laurent THOMAS c310d246bb merge develop 2021-08-18 11:20:39 +02:00
Raymond Knopp 8a9194300f commit before merge 2021-08-09 10:55:55 +02:00
Rodolphe BERTOLINI 387223eea6 removed duplicate structure, changed 'x' to 'r' and 'y' to 'i' 2021-08-09 09:59:38 +02:00
Laurent OpenCells 78da843624 code-cleanup-20210716 2021-07-16 17:16:15 +02:00
Raymond Knopp d88ce5b9bf Merge remote-tracking branch 'origin/develop' into oairu 2021-04-27 11:58:31 +02:00
Raymond Knopp 0b59ce4faf Merge remote-tracking branch 'origin/develop' into oairu 2021-04-07 15:50:46 +02:00