Compare commits

..

410 Commits

Author SHA1 Message Date
Cedric Roux
54027d27d9 fix tutorial: use "docker-compose", not "docker compose" 2023-04-30 16:34:41 +02:00
Robert Schmidt
6022fe5acd Merge branch 'integration_2023_w16b' into 'develop'
integration_2023_w16b

See merge request oai/openairinterface5g!2069

* !1952 Fix problems detected by UBsan
* !1924 NR UL 256 QAM
* !1988 PUCCH2 for N = 64
* !2053 separating MAC and PHY procedures for TA
* !2058 fix interoperability with accelleran CU
* !2060 avoid duplicated function in nr_common for supported bandwidth
* !2064 CI AW2S config file fix
* !2065 bugfix for msg3 retransmission scheduling frame
* !2067 Modification of tagging develop images on OC
2023-04-24 06:05:11 +00:00
Robert Schmidt
224ef7921a Merge remote-tracking branch 'origin/ci-OC-image-tagging' into integration_2023_w16b 2023-04-22 07:51:37 +02:00
Robert Schmidt
4fdbcb0472 Merge remote-tracking branch 'origin/NR_msg3_rtx_frame_fix' into integration_2023_w16b 2023-04-22 07:51:29 +02:00
Robert Schmidt
bbc9442fc8 Merge remote-tracking branch 'origin/NR_CI_AW2S_config_file' into integration_2023_w16b 2023-04-22 07:51:22 +02:00
Robert Schmidt
418c6e23f0 Merge remote-tracking branch 'origin/NR_common_duplicated_function' into integration_2023_w16b 2023-04-22 07:51:14 +02:00
Robert Schmidt
94185df93e Merge remote-tracking branch 'origin/bugfix-interop-accelleran' into integration_2023_w16b 2023-04-22 07:49:06 +02:00
Robert Schmidt
302f016650 Merge remote-tracking branch 'origin/NR_UE_TA_procedures_at_MAC' into integration_2023_w16b 2023-04-22 07:48:58 +02:00
Robert Schmidt
e31eacb386 Merge remote-tracking branch 'origin/develop-PUCCH2' into integration_2023_w16b 2023-04-21 16:33:44 +02:00
Robert Schmidt
361dfc3c9f Merge remote-tracking branch 'origin/NR_UL_256QAM_new' into integration_2023_w16b 2023-04-21 16:32:36 +02:00
Robert Schmidt
8482cb62c4 Merge remote-tracking branch 'origin/fix-ubsan-ldpc' into integration_2023_w16b 2023-04-21 16:30:52 +02:00
Jaroslava Fiedlerova
64b4fbe7f2 Removal of unnecessary line 2023-04-21 13:46:50 +02:00
Jaroslava Fiedlerova
99c620b8cc Minor modification of tagging develop images on OC 2023-04-21 10:19:31 +02:00
francescomani
87d9517738 avoid duplicated function in nr_common for supported bandwidth 2023-04-20 18:16:37 +02:00
Roberto Louro Magueta
e140ac4bf7 Add CI test for PUCCH2 and polarParams->N = 64 2023-04-20 12:56:28 +01:00
Roberto Louro Magueta
b307044345 Decode PUCCH2 for polarParams->N = 64 2023-04-20 12:56:28 +01:00
Robert Schmidt
62a5c4996c Add clang build on OpenShift Cluster
Add Dockerfile, OpenShift build config, and OpenShift image stream, to
compile OAI using clang, notably to get compiler warnings and keep it
OAI compilable using clang.
2023-04-20 13:44:11 +02:00
laurent
d12e67b0bc Enable undefined behavior sanitizer in physim image 2023-04-20 13:44:11 +02:00
Robert Schmidt
8f85851a95 Remove clang from physim Dockerfile
clang (at least version 14.0.6 used on the cluster) is very slow when
compiling both ASan and UBSan into the binary. We therefore move clang
out, into a separate file in a later commit
2023-04-20 13:44:11 +02:00
Robert Schmidt
3b429c5399 Fix uninitialized variable warning 2023-04-20 13:44:05 +02:00
Roberto Louro Magueta
7879afc010 Improve code readability and fix the nr_polar_params() function 2023-04-20 11:51:47 +01:00
francescomani
053ef8fc44 bug fix for msg3 retrasmission scheduling frame 2023-04-20 11:47:37 +02:00
francescomani
24e4629eff never use ulsch_max_frame_inactivity = 0 in a multi-ue scenario 2023-04-20 10:20:16 +02:00
Robert Schmidt
aac2a062b3 Merge branch 'integration_2023_w16' into 'develop'
integration_2023_w16

See merge request oai/openairinterface5g!2063

* !2040 CI: AW2S-ASUE pipeline creation
* !2042 fix iqplayer doc and copy in central directory
* !2051 Documentation update for USRPs
2023-04-20 06:41:22 +00:00
laurent
b735f8bec6 ubsan fixes 2023-04-19 22:12:08 +02:00
laurent
8a10d1b222 add phy layer variable and persited arrays 2023-04-19 22:12:08 +02:00
laurent
9509bdfdc1 ubsan detected issue 2023-04-19 22:12:08 +02:00
laurent
3eabc2fe01 remove ubsan from ziggurat random generator for speed and because it detects abs(MIN_INT32) cant be computed 2023-04-19 22:12:08 +02:00
Robert Schmidt
01af5a1e2d Fix too large shift in ulsim 2023-04-19 22:12:08 +02:00
Robert Schmidt
2faca0fdba Fix too large shift in nr_pucchsim 2023-04-19 22:12:08 +02:00
laurent
7f4e8f9220 fix-ubsan 2023-04-19 22:12:08 +02:00
laurent
63fc39dc3f fix bugs detected by ubsan 2023-04-19 22:12:08 +02:00
Robert Schmidt
3f1a52eb3e Merge remote-tracking branch 'origin/multiusrps' into integration_2023_w16 2023-04-19 17:01:15 +02:00
Robert Schmidt
759d9df9bd Merge remote-tracking branch 'origin/iqplayer_doc' into integration_2023_w16 2023-04-19 17:01:09 +02:00
Robert Schmidt
6927eb12a6 Merge remote-tracking branch 'origin/ci-aw2s-asue-test' into integration_2023_w16 2023-04-19 17:01:00 +02:00
Jaroslava Fiedlerova
cf67fcea6c CI: Jenkinsfile log collection 2023-04-19 16:58:05 +02:00
Jaroslava Fiedlerova
62efab7262 CI EPC module: fix of CN log collection 2023-04-19 16:58:02 +02:00
Jaroslava Fiedlerova
8a9346dd27 Add pipeline to Jenkins RAN-container-parent 2023-04-19 16:57:59 +02:00
Jaroslava Fiedlerova
9987ebf8aa Add AW2S+Amarisoft test
- New amariue config for AW2S test
- XML files
- docker-compose file for deployment
- documentation
2023-04-19 16:57:56 +02:00
Jaroslava Fiedlerova
6836582ca1 Harmonize Jenkinsfile log collection
- use same zip file in Jenkins artifacts for multiple pipelines
2023-04-19 16:57:53 +02:00
Jaroslava Fiedlerova
8b339bb659 Retag porcepix and cluster registry images to use same prefix
Allows to reuse DeployObject, CleanTestImages, etc, to be reused
regardless of image registry origin.
2023-04-19 16:57:50 +02:00
Jaroslava Fiedlerova
b6feedc883 Ping for OC OAI 5GC 2023-04-19 16:57:46 +02:00
Jaroslava Fiedlerova
bfbb3a69ba CI EPC module: Deploy OpenShift Cluster OAI 5GC 2023-04-19 16:57:44 +02:00
Jaroslava Fiedlerova
b34e4d0a19 CI Cluster module: refactor login&logout, pull cluster images 2023-04-19 16:57:41 +02:00
Jaroslava Fiedlerova
98f06c5907 Minor fixes in cls_containerize.py 2023-04-19 16:57:37 +02:00
Jaroslava Fiedlerova
5c426db6eb Update Amarisoft to new version 2023-04-19 16:57:34 +02:00
Jaroslava Fiedlerova
f798541e84 Remove old and unused Amarisoft UE configuration files 2023-04-19 16:57:29 +02:00
Jaroslava Fiedlerova
d510827e16 Fix for AW2S dockerfile 2023-04-19 16:57:23 +02:00
Arash Sahbafard
c63edad48b Update radio/USRP/README.md 2023-04-19 16:02:45 +02:00
Robert Schmidt
46db3534b7 Add link to second document 2023-04-18 10:08:39 +02:00
Bruno Mongazon-Cazavet
2f82aea100 fix iqplayer doc and copy in central directory 2023-04-18 10:07:05 +02:00
Robert Schmidt
db2aa3c8bd Honor force_256qam_off when configuring UL MCS tables 2023-04-17 15:09:17 +02:00
francescomani
9eb1af6dc2 addressing review 2023-04-17 15:06:04 +02:00
Roberto Louro Magueta
6a90266aff Add implementation related to 256QAM for 2-layers UL 2023-04-17 13:59:55 +02:00
francescomani
8c051201d6 fix for RA NSA 2023-04-17 12:41:47 +02:00
francescomani
26e469cbac adding 256QAM in feature set, adding 256QAM test in ulsim and limit mcs according to table 2023-04-17 12:41:47 +02:00
Raymond Knopp
7455bae459 added 256QAM LLR computation for ULSCH 2023-04-17 12:41:47 +02:00
francescomani
a0b207fe6b adding options for 256QAM in UL simulators 2023-04-17 12:41:47 +02:00
francescomani
fc17f3fdc7 fix for transform precoding condition 2023-04-17 12:32:29 +02:00
francescomani
abba6a6d8a UL 256 QAM 2023-04-17 12:32:29 +02:00
laurent
1fefd730d6 fix ldpc ubsan 2023-04-17 09:30:47 +02:00
Robert Schmidt
56367dd07c Merge branch 'integration_2023_w15' into 'develop'
integration_2023_w15

See merge request oai/openairinterface5g!2057

* !1977 UL-MMSE
* !2021 Remove globals demodulator
* !2025 NR UE implementation of PUCCH multiplexing procedures
* !2049 reworking UE function to get max transmitted power
* !2034 Compiling CLANG warning free
* !2043 Refactor radio-related RRC parameters and further cleanup
2023-04-16 21:35:54 +00:00
Cedric Roux
6e5511b220 bugfix: use an array of size NGAP_MAX_DRBS_PER_UE for drb_priority
It may happen that the drb to configure is not 1, so we may need
this array in rrc_gNB_generate_dedicatedRRCReconfiguration().

Not tested, this commit is mostly to harmonize with other places in
openair2/RRC/NR/rrc_gNB.c
2023-04-15 21:26:24 +02:00
Cedric Roux
bf10230185 bugfix: use correct index in array
Accelleran CU configures DRB ID 4, not 1, so we need to take index 3
in the array 'priority', not 0.

So let's use i-1 as it was before.
2023-04-15 20:20:10 +02:00
Robert Schmidt
be5c3d7aa0 Merge remote-tracking branch 'origin/refactor-nr-rrc-du' into integration_2023_w15 2023-04-14 15:26:30 +02:00
Robert Schmidt
04451c7078 Merge remote-tracking branch 'origin/clang_warnings_new' into integration_2023_w15 2023-04-14 13:54:46 +02:00
Robert Schmidt
224c5538e4 Merge remote-tracking branch 'origin/NR_UE_get_Pmax' into integration_2023_w15 2023-04-14 13:54:40 +02:00
francescomani
ffe0630d93 addressing a couple of review comments 2023-04-14 13:52:16 +02:00
francescomani
5a153c502f adding static const in Gen_shift_value.h to avoid asan odr-violation 2023-04-14 13:52:16 +02:00
francescomani
1470d7637f fix new warnings 2023-04-14 13:52:16 +02:00
Robert Schmidt
69da6a5f5e Remove futile AssertFatal
NGAP_MAX_PDU_SESSION is 256, and ue->nb_of_pdusessions is uint8_t,
so comparison is always true and we can simply drop it.
2023-04-14 13:52:16 +02:00
Robert Schmidt
1ae561b9cc Remove write-only variable and commented code 2023-04-14 13:52:16 +02:00
Robert Schmidt
41aadcc54f Comment write-only variable 2023-04-14 13:52:16 +02:00
Robert Schmidt
beef5461e5 Write-only variable: return ret_mask 2023-04-14 13:52:16 +02:00
Robert Schmidt
51c4933258 MAC: count transported SDU bytes 2023-04-14 13:52:16 +02:00
Robert Schmidt
8d07275496 Write-only variable: suppress warning, as we decode NAS message 2023-04-14 13:52:16 +02:00
Robert Schmidt
852a6c4f28 Remove write-only variables 2023-04-14 13:52:12 +02:00
francescomani
ca4b438dd4 clang warning fixes to compile lte softmodems 2023-04-14 13:52:12 +02:00
francescomani
971bacb76f clang warning fixes to compile rfsimulator 2023-04-14 13:52:12 +02:00
Robert Schmidt
5d38a99955 Physim images: build using clang and -Werror 2023-04-14 13:52:12 +02:00
Robert Schmidt
e6488d1b62 Remove compile options unknown to clang 2023-04-14 13:52:03 +02:00
Robert Schmidt
c6a04db9a1 Merge remote-tracking branch 'origin/NR_UE_PUCCH_fixes' into integration_2023_w15 2023-04-13 18:45:29 +02:00
Robert Schmidt
8292c4523e Merge remote-tracking branch 'origin/remove-globals-demodulator' into integration_2023_w15 2023-04-13 18:45:19 +02:00
francescomani
eb09a63001 separating MAC and PHY procedures for TA 2023-04-12 10:32:35 +02:00
Robert Schmidt
8aa0aa4d40 Make functions in (gNB MAC) main.c static 2023-04-11 10:33:27 +02:00
Robert Schmidt
296d930fba Make most functions in nr_rrc_config.c static 2023-04-11 10:33:27 +02:00
Robert Schmidt
b62474bd83 Move fill_default_secondaryCellGroup() and change signature
fill_default_secondaryCellGroup() is moved to nr_rrc_config.c.
Furthermore, the signature is changes to return the NR_CellGroupConfig
from the functions, instead of filling a pre-allocated structure (which
is, in all cases, allocated just before calling
fill_default_secondaryCellGroup().

There is a problem with this function: the function also fills the
ServingCellConfig (a parameter to this function). This behavior has not
been changed.
2023-04-11 10:33:27 +02:00
Robert Schmidt
c1a2b65697 Delete nr_DRB_preconfiguration() and replace with existing functions
nr_DRB_preconfiguration() does a "pre-configuration" for the default DRB
for "noS1" mode, i.e., when there is no connection to core network. In
this case, there is no PDU session to be set up, and hence we need to
preconfigure the DRBs.

We replace this function with partially existing functions and a new
function fill_nr_noS1_bearer_config() which returns a bearer
configuration for the noS1 case, also better reflected in the function
name. It has also been moved to asn1_msg.c, away from the actual PDCP
layer.
2023-04-11 10:33:27 +02:00
Robert Schmidt
d021fbd0b6 Reuse get_DRB_RLC_BearerConfig() to get RLC-BearerConfig
For nr_DRB_preconfiguration() and fill_default_secondaryCellGroup(),
there is duplicated code to generate and RLC-BearerConfig, when calling
the existing get_DRB_RLC_BearerConfig() (with the right parameters)
yields a similar configuration (see exceptions below).

Differences:
- We do not support reestablishmentRLC, so we don't set it
- Set prioritisedBitrate to 8kbps instead of infinity (we don't
  prioritize anything, anyway)
- bucketSizeDuration is 50ms instead of 100ms
2023-04-11 10:17:07 +02:00
Robert Schmidt
395ca4b4b0 Refactor update_cellGroupConfig() 2023-04-11 10:17:07 +02:00
Robert Schmidt
44d5b37890 Refactor get_initial_cellGroupConfig() 2023-04-11 10:17:07 +02:00
Robert Schmidt
88e6d9df09 Refactor SIB1 handling 2023-04-11 10:17:07 +02:00
Robert Schmidt
7cb50288ef Refactor MIB handling 2023-04-11 10:17:07 +02:00
Robert Schmidt
1e30c0adba Demote PRS no config message to information level 2023-04-11 10:07:07 +02:00
Robert Schmidt
b9293754b8 Change rrc_coreset_config() to return new coreset config 2023-04-11 10:07:07 +02:00
Robert Schmidt
2d1aa8425b Remove write-only or unused variables 2023-04-11 10:07:07 +02:00
Robert Schmidt
d907cbd442 Remove unused servingcellconfig parameter in RRC config 2023-04-11 10:07:07 +02:00
Robert Schmidt
c744b01566 Remove ServingCellConfig from RRC Setup-related functions: is not needed 2023-04-11 10:07:07 +02:00
Robert Schmidt
5761b60c60 Create functions to access MAC from RRC
- for updating cellGroup
- for removing UE
- not done for SI information and RRC timers
2023-04-11 10:07:07 +02:00
Robert Schmidt
f7181caf65 Remove commented code 2023-04-11 10:07:07 +02:00
Roberto Louro Magueta
a611d58d3b Add CI tests: PUSCH Type B, 40 MHz BW, 30 kHz SCS, 2 and 4 RX Antennas Requirements Test, 2 layers 2023-04-10 10:18:41 +01:00
Roberto Louro Magueta
6c590b900a Compute noise variance to be used in MMSE 2023-04-10 10:18:41 +01:00
Roberto Louro Magueta
4b263c3fa5 MMSE working for 2-layers UL with a hardcoded noise variance 2023-04-10 10:18:41 +01:00
francescomani
a85fee5dca fixes for UE pucch scheduling 2023-04-07 16:56:26 +02:00
francescomani
e49c6db2bf final round of warning fixes to compile nr softmodems 2023-04-07 15:52:16 +02:00
laurent
f4ed558cc5 fix a bug in UE_CAPABILITY_DUMMY message, fix is correct, but the surround code is not fully consistent 2023-04-07 15:52:16 +02:00
francescomani
3ca0f39088 new round of clang warning fixes 2023-04-07 15:52:16 +02:00
Robert Schmidt
98f4d038d4 Merge branch 'integration_2023_w14' into 'develop'
integration_2023_w14

See merge request oai/openairinterface5g!2048

* !1861 NR UE RX Multi-threading
* !2017 scheduling aperiodic SRS at UE
* !2046 Correctly allocate GUTI in NAS UE structures
* !2033 PBCH radio link failure detection at MAC
* !1959 bugfix: change memory management of interface between PHY and MAC scheduler
* !2041 hack: see "Bye." message when quitting gnb running with aw2s
* !2047 NR RRC - RRCReestablishment - Fix MultiplePDU Regression
2023-04-07 12:53:01 +00:00
Florian Kaltenberger
daa1a911ac Update radio/USRP/README.md 2023-04-07 10:04:13 +00:00
francescomani
41d9e775c9 reworking the function to get Pmax 2023-04-07 11:33:14 +02:00
luis_pereira87
486ae6e7bd Merge remote-tracking branch 'origin/nr-rrcreestablishment-fix-multipdu-proper-commits' into integration_2023_w14 2023-04-06 10:48:38 +01:00
Angelo Athanassopoulos
1679cf38ba NR RRC - RRCReestablishment - Reviewer comments
Changes
1. Passing function argument  by reference.
2. Use a pointer for ue->established_drbs[drb_id - 1] in generateDRB.
2023-04-05 22:40:55 +02:00
Robert Schmidt
bdfec26d82 Merge remote-tracking branch 'origin/hack-bye-message-aw2s' into integration_2023_w14 2023-04-05 19:30:33 +02:00
Robert Schmidt
19d3014150 Merge remote-tracking branch 'origin/bugfix-phy-mac-interface' into integration_2023_w14 2023-04-05 19:30:30 +02:00
Cedric Roux
733c7e5e89 bugfix: change memory management of interface between PHY and MAC scheduler
This commit fixes a bug caused by global variables in the gNB_MAC_INST
structure used to transfer MAC scheduler's results to the PHY layer.

When using several threads in the PHY layer, it may happen that the
MAC scheduler is called a second time by the second PHY thread for the
next slot before the content of the global variables in the gNB_MAC_INST
structure used to store the result of the MAC scheduler for the current
slot have been consumed by the first thread, leading to unpredictable
results (all of them certainly wrong).

The solution is to introduce a small memory management module for the
interface between the PHY threads and the MAC scheduler. The MAC
scheduler now fills the data structures passed to it, and not a
global variable anymore. The PHY layer manages the structures and
ensures that no data is overwritten before being fully consumed by
the various threads of the PHY layer.

Some care has to be taken because several PHY threads will access the
same structures at the same time for a given slot (in read mode, so
it's okay). A mechanism of reference counting has thus been introduced.

Only one CC is supported. This restriction should not be too hard
to remove if/when needed. (The code before this commit does not seem
to work for more than one CC anyway.)
2023-04-05 16:39:12 +02:00
Angelo Athanassopoulos
5b35523c2c NR RRC - RRCReestablishment - Apply clang format 2023-04-05 11:22:59 +02:00
francescomani
ebd70a3915 Merge remote-tracking branch 'origin/NR_pbch_errors_at_MAC' into integration_2023_w14 2023-04-04 19:35:23 +02:00
luis_pereira87
3cf3a42b44 Flag integrityProtection work in inverse logic state, '0' means enabled which is the default the value, we need to set it to '1' to disable it 2023-04-04 18:25:08 +01:00
luis_pereira87
6fb10cd5fa Fix SRB_configList2 and DRB_configList2 array position (new_xid) while creating RRCReconfiguration message after RRCReestablishmentComplete 2023-04-04 18:13:11 +01:00
Robert Schmidt
a6862df7aa Merge remote-tracking branch 'origin/guti-hotfix' into integration_2023_w14 2023-04-04 18:54:39 +02:00
Robert Schmidt
a0a92f4581 Merge remote-tracking branch 'origin/NR_UE_aperiodic_SRS' into integration_2023_w14 2023-04-04 18:50:41 +02:00
Angelo Athanassopoulos
f4dc362247 NR RRC - RRCReestablishment - Fix MultiplePDU Regression
Fixed a bug where the integrity protection was included in the ASN1 and caused significant throughput bottleneck.
2023-04-04 14:05:06 +02:00
Angelo Athanassopoulos
778c88d8a9 NR RRC - RRCReestablishment - Fix MultiplePDU Regression
Cosmetic changes, also changed the LOG message for updating the UEid, and moved the drb_id_to_setup_start and nb_drb_to_setup right before the function that they are used
2023-04-04 14:05:06 +02:00
Angelo Athanassopoulos
ad598a2d5d NR RRC - RRCReestablishment - Fix MultiplePDU Regression
Removed the unused variables, and changed the tenary operator conditions of drb_id_to_setup_start & nb_drb_to_setup, to the correct ones
2023-04-04 14:05:05 +02:00
Angelo Athanassopoulos
ca010654bf NR RRC - RRCReestablishment - Fix MultiplePDU Regression
Changed the SRB2 and DRB at the do_RRCReconfiguration arguments, to pass the correct structures that are generated
2023-04-04 14:05:05 +02:00
Angelo Athanassopoulos
1923bed4a3 NR RRC - RRCReestablishment - Fix MultiplePDU Regression
Simplify RRCReestablishmentComplete procedure with respective function,
removed the block that creates the SRB2  and created a function, with doxygen
2023-04-04 14:05:05 +02:00
Angelo Athanassopoulos
9142357069 NR RRC - RRCReestablishment - Fix MultiplePDU Regression
Simplify RRCReestablishmentComplete procedure with respective function,
removed the block that creates the ASN1 DRBs  and created a function, with doxygen
2023-04-04 14:05:04 +02:00
Angelo Athanassopoulos
a3c13fdc71 NR RRC - RRCReestablishment - Fix MultiplePDU Regression
Simplify RRCReestablishmentComplete procedure with respective function,
removed the block that updates NGU Tunnels and created a function, with doxygen
2023-04-04 14:05:04 +02:00
Angelo Athanassopoulos
bf844247bf NR RRC - RRCReestablishment - Fix MultiplePDU Regression
Simplify RRCReestablishmentComplete procedure with respective function,
removed the block that updates NAS PDUSession and created a function, with doxygen
2023-04-04 14:05:04 +02:00
Angelo Athanassopoulos
7eb2e99dcd NR RRC - RRCReestablishment - Fix MultiplePDU Regression
Simplify RRCReestablishmentComplete procedure with respective function,
removed the block that frees all the NAS PDUs and created a function for this.
2023-04-04 14:05:03 +02:00
Angelo Athanassopoulos
26909e7c32 NR RRC - RRCReestablishment - Fix MultiplePDU Regression
Cosmetic changes, added doxygen configuration, and changed the rrc_gNB_process_RRCReestablishmentComplete function arguments' alignment, so in the future if an argument is removed or added to be better visible in the commits
2023-04-04 14:05:03 +02:00
laurent
ded8a3779d remove globals 2023-04-04 11:41:32 +02:00
Robert Schmidt
0a4e28688b Update phytest-timing test timing thresholds 2023-04-04 09:39:28 +02:00
Robert Schmidt
22db2d613f Correctly allocate GUTI in NAS UE structures 2023-04-04 08:40:48 +02:00
Angelo Athanassopoulos
33c09b7776 NR RRC - RRCReestablishment - Fix MultiplePDU Regression
The generateDRB function now creates a DRB and puts it in the struct member of gNB_RRC_UE_t, from this struct we can generate ASN1 messages by calling the generateDRB_ASN1
2023-04-04 00:44:43 +02:00
Angelo Athanassopoulos
af8b3b0486 NR RRC - RRCReestablishment - Fix MultiplePDU Regression
Added function to create ASN1 DRB-ToAddMod structs from, gNB_RRC_UE_t established_drbs
2023-04-04 00:44:38 +02:00
Angelo Athanassopoulos
5403198996 NR RRC - RRCReestablishment - Fix MultiplePDU Regression
Added struct member to gNB_RRC_UE_t to store the established DRBs for a UE, this can be used to generate ASN1 structs, during RRCReconfiguration
2023-04-04 00:18:44 +02:00
Sakthivel Velumani
1f6d111f6a Num wait idication as Tpool message field 2023-04-03 10:25:13 -04:00
Sakthivel Velumani
2bfe9ba229 Remove dead code 2023-04-03 10:25:13 -04:00
Sakthivel Velumani
c8a61331ea Update UE design doc 2023-04-03 10:25:13 -04:00
Sakthivel Velumani
0004626ac7 Fix bug in QT scope
The UE copies scope data not in a single buffer to avoid overwiring in case of multiple slots processing in parallel. But the scope upates data from single buffer thats assigned during selection. A getPlotValue() method is created to update the data pointer on every timerEvent.
2023-04-03 10:25:13 -04:00
Sakthivel Velumani
9e4d522937 Make kpi variables atomic
Mutex for phy scope: Repeating this change again. My earlier change in commit 06ef311975 was erased by someone during merge of QT scope.
2023-04-03 10:25:13 -04:00
Sakthivel Velumani
e45a051c80 Perform CRC check for whole TB 2023-04-03 10:25:11 -04:00
Sakthivel Velumani
5c6778be0c Fixed Harq stats print 2023-04-03 10:24:26 -04:00
Sakthivel Velumani
7d23ec27b5 Changed NR_UE_CAPABILITY_SLOT_RX_TO_TX to 3
Tested with X300 and there was no real-time problems.
Could get the same throughput as when NR_UE_CAPABILITY_SLOT_RX_TO_TX is 4.
2023-04-03 10:24:26 -04:00
Sakthivel Velumani
f1841639f5 Updated documentation 2023-04-03 10:24:26 -04:00
Sakthivel Velumani
a03864ee8c Fix printing help message 2023-04-03 10:24:26 -04:00
Sakthivel Velumani
f3be849904 Delete job data when no response FIFO 2023-04-03 10:24:26 -04:00
Sakthivel Velumani
1d9a4a42e7 Corrected thread pool help message 2023-04-03 10:24:26 -04:00
Sakthivel Velumani
15c12caa37 Contains MAC changes to run || DLSCH
DL config as array in MAC
Run RX slot processing in Tpool thread
Fixed race in phy config
Changed mac_IF_mutex
Proc Tx: Lets wait for Proc Rx to get ACK/NACK
-(only on slots that carry ACK/NACK)
Fix problem with rfsim
Separated PDCCH and PDSCH decoding functions. Run PDCCH decoding in main UE_thread.
Fixed race in MAC dci config struct
needed for parallel processing of slots
Moved DLSCH transport block buffer to stack
rx_ind as static allocation
L2sim: Fixed calling of MAC sched in wrong slot
Fix DCI extract bug for RA procedure
2023-04-03 10:24:24 -04:00
francescomani
5c333cca65 move radio link failure detection on pbch at MAC 2023-04-02 09:48:09 +02:00
Robert Schmidt
1f97969675 Merge branch 'integration_2023_w13' into 'develop'
integration_2023_w13

See merge request oai/openairinterface5g!2037

* !1945 Free RNTI related structures at PHY after UE disconnection
* !2011 Creation of new pipeline LTE-TDD-2x2-container
* !1854 Handle reconfigurationWithSync
* !2019 bugfix: LDPC decoding in the gNB: clear d properly
* !2038 Fix DL 2x2 errors
* !2039 Adding test-case in XML to reset USRP in LTE-TDD pipeline
* !2008 Implement NR-UE Deregistration procedure
* !2023 Rework PDCP OAI API to allow custom SRB data forwarding (e.g., in F1)
* !2015 Update documentation: CI, general README.md, overview of doc README, various improvements
2023-04-01 13:28:17 +00:00
Robert Schmidt
06c0979b90 Merge remote-tracking branch 'origin/doc-ci' into integration_2023_w13 2023-03-31 18:06:19 +02:00
Robert Schmidt
51fe9b84dd Merge remote-tracking branch 'origin/pdcp-callbacks-simplify' into integration_2023_w13 2023-03-31 18:03:40 +02:00
Robert Schmidt
5268dbf3f8 Merge remote-tracking branch 'origin/deregistration' into integration_2023_w13 2023-03-31 18:01:00 +02:00
Robert Schmidt
ca6ae2c486 Merge remote-tracking branch 'origin/ci-ltetdd-reset-usrp' into integration_2023_w13 2023-03-31 18:00:03 +02:00
Robert Schmidt
8c1aeb4ab9 Merge remote-tracking branch 'origin/develop-fix-DL-2x2-errors' into integration_2023_w13 2023-03-31 17:59:54 +02:00
Robert Schmidt
7a52279078 Merge remote-tracking branch 'origin/bugfix-clear-llr-properly' into integration_2023_w13 2023-03-31 17:58:23 +02:00
Robert Schmidt
c4a9f0ea03 gNB RRC: Shorten time till UE is removed for RRCRelease 2023-03-31 17:23:03 +02:00
Robert Schmidt
a6149386dc NR UE MAC: Decode TBS and print warning if unknown LCID 2023-03-31 17:23:03 +02:00
Robert Schmidt
25b3aaf230 NR UE RRC: DCCH messages can be on SRB1 or SRB2 2023-03-31 17:23:03 +02:00
Robert Schmidt
06436655ff Bugfix: Forward F1 DL RRC Message transfer on correct SRB 2023-03-31 17:22:59 +02:00
Robert Schmidt
0631c04fba Revert 5G RFsim timeout changes for tests with CN: deregistration triggers UE disconnect 2023-03-31 17:22:59 +02:00
Robert Schmidt
8e6554bdf3 Print log on receiving deregistration accept, on CONN Release stop nr-uesoftmodem 2023-03-31 17:22:59 +02:00
Robert Schmidt
7fb242d33e Send NAS_CONN_RELEASE_IND to correct NAS UE task from RRC NR UE 2023-03-31 17:22:59 +02:00
Robert Schmidt
03862de437 Update TESTBenches.md to reflect current stetup 2023-03-31 17:07:28 +02:00
Robert Schmidt
ca3a7c612b Remove outdated CI section 2023-03-31 17:07:28 +02:00
Robert Schmidt
8ca640337a Reorganize RUNMODEM.md 2023-03-31 17:07:28 +02:00
Robert Schmidt
a29e59b602 Update GET_SOURCES.md and BUILD.md 2023-03-31 17:07:28 +02:00
Robert Schmidt
e4143ded39 Update main README and overview of documentation 2023-03-31 17:07:28 +02:00
Roberto Louro Magueta
b69fb5bd74 Do not send TA command when rrc_processing_timer is active 2023-03-31 14:38:56 +01:00
Robert Schmidt
d1fc95a8a1 GTP: when creating a tunnel, tell which functions to use
The GTP module is common for 4G and 5G. It hardcodes the functions to
call when creating S1U and NGU tunnels. The S1U case is both applicable
for LTE and NR (NSA), which until now was not a problem as the PDCP data
forwarding functions where called pdcp_data_req. The issue is that in this
branch, the NR PDCP functions have changed to nr_pdcp_data_req_drb().

When setting up a GTP tunnel, we now pass the PDCP data forwarding
functions into GTP, since the caller knows whether it is in 4G or 5G,
but GTP itself does not.
2023-03-31 11:53:52 +02:00
Robert Schmidt
ed1d009381 fix warning 2023-03-30 19:59:48 +02:00
Robert Schmidt
99d5e50b6a fix merge 2023-03-30 19:58:55 +02:00
Robert Schmidt
1ac428a323 Merge remote-tracking branch 'origin/develop-handle-reconfigurationWithSync' into integration_2023_w13 2023-03-30 19:19:37 +02:00
Cedric Roux
50bf571347 hack: see "Bye." message when quitting gnb running with aw2s
For some (unclear) reason, nr-softmodem with aw2s device does not print
"Bye." when stopping it with control+c, which is problematic in the CI.

This little hack solves the problem.

(Maybe not the right solution, to be changed if needed.)
2023-03-30 12:57:10 +02:00
Dhanuja Elizabeth Thomas
15adb12b71 Adding test-case in XML to reset USRP in LTE-TDD pipeline 2023-03-30 10:25:36 +02:00
Robert Schmidt
bd42a4259f Merge remote-tracking branch 'origin/lte-2x2-container-pipeline' into integration_2023_w13 2023-03-28 20:07:43 +02:00
Roberto Louro Magueta
cf8dff2093 Implementation to update the RRC timers at UE 2023-03-28 18:52:48 +01:00
Roberto Louro Magueta
670fcc0459 Fix handle_nr_ul_harq() for CFRA in SA 2023-03-28 18:52:48 +01:00
Roberto Louro Magueta
81d44c6422 Stop timer T304 when RA is succeeded 2023-03-28 18:52:48 +01:00
Roberto Louro Magueta
889a50072f Implementation of resynchronization procedures for a gNB with a given Nid_cell 2023-03-28 18:52:48 +01:00
Robert Schmidt
1880ede547 Check for GUTI 2023-03-28 14:12:05 +02:00
Robert Schmidt
40c06fa8d5 Custom handler in NRUE to first send deregistration before stopping 2023-03-28 14:12:05 +02:00
Robert Schmidt
a6486909ca Reimplement itti_wait_tasks_end() to allow custom wait handlers
In the UE, we wish to handle ^C in the UE to send a message before
terminating, so we allow custom wait handlers to implement such
functionality. Use itti_wait_tasks_unblock() to unblock
itti_wait_tasks_end().

Also, implement itti_wait_tasks_end() using semaphores, as signals are
not async-signal-safe (and therefore should not be used in a signal
handler).
2023-03-28 14:12:05 +02:00
Robert Schmidt
4700dde2ae Trigger deregistration 2023-03-28 14:12:05 +02:00
Robert Schmidt
a0318fb413 Implement NAS Deregistration Type message 2023-03-28 14:12:05 +02:00
Robert Schmidt
09ea970b34 Stop UE with ^C 2023-03-28 14:12:05 +02:00
Robert Schmidt
77e61425e0 UE NAS: Add counter for NAS messages 2023-03-28 14:12:05 +02:00
Robert Schmidt
4642a7c0f5 Correctly fill GUTI in NAS if available 2023-03-28 14:12:05 +02:00
Robert Schmidt
6e01a62838 Decode Registration Accept to receive GUTI 2023-03-28 14:12:05 +02:00
Robert Schmidt
e35401efde NAS refactor: no moduleID, group UICC and security in one context 2023-03-28 14:12:05 +02:00
Robert Schmidt
223fd28bb2 Refactor NAS: separate code into functions 2023-03-28 14:12:05 +02:00
Robert Schmidt
528025e9a6 Fix decoding of Mobile identity 2023-03-28 14:12:05 +02:00
Robert Schmidt
d4da44f1d3 CI: Remove unused routes 2023-03-28 14:03:03 +02:00
francescomani
0de51bcd93 scheduling aperiodic SRS at UE 2023-03-28 11:11:31 +02:00
Robert Schmidt
6529d875d8 nr_pdcp_data_req_srb(): take callback to forward data 2023-03-27 16:47:46 +02:00
Robert Schmidt
ffebe2498d Simplify callback for deliver_pdu 2023-03-27 16:47:46 +02:00
Robert Schmidt
0f43c2c713 PDCP DL handling: unlock PDCP before forwarding PDU
nr_pdcp_entity_recv_sdu() processes PDCP SDUs, and forwards the PDU at the
end of the function, while having the PDCP lock. This can lead to
deadlocks, e.g., when another thread goes through RLC and tries to
access the PDCP while the PDCP tries to lock the RLC.

This commit changes the logic: instead of having recv_sdu() forward the
PDU directly, it fills a buffer with the PDU (thus the name change to
process_sdu()), and returns. We then unlock the PDCP, before forwarding
the PDU, thus eliminating potential deadlocks.
2023-03-27 16:47:46 +02:00
Robert Schmidt
c405ad16a8 Remove nr_rrc_data_req()/rrc_data_req_nr_ue() 2023-03-27 16:47:46 +02:00
Robert Schmidt
2ac2a7f074 Make separate header for nr_pdcp instead of using 4G pdcp
Creates function that have nr_pdcp_ prepended to their name, and change
the signature of some functions for the 5G PDCP:

- nr_pdcp_layer_init()
- nr_pdcp_data_req()
- nr_pdcp_remove_UE()
- nr_pdcp_config_set_security()
- nr_pdcp_remove_UE()
- Make separate functions for nr_pdcp_data_req_srb/drb()
2023-03-27 16:39:24 +02:00
Robert Schmidt
a458a251a0 PDCP: harmonize DL RRC Message transfer 2023-03-27 16:39:24 +02:00
Robert Schmidt
47ea8d79a2 Free memory correctly 2023-03-27 15:39:49 +02:00
francescomani
d664190f9d scope compilation fixes 2023-03-27 15:39:49 +02:00
francescomani
0d66410317 another round of review 2023-03-27 15:39:49 +02:00
francescomani
12ccca72b6 further improvements 2023-03-27 15:26:52 +02:00
Robert Schmidt
6e93619896 review comments 2023-03-27 15:26:52 +02:00
francescomani
779748579c fixes for physical simulators 2023-03-27 15:26:52 +02:00
francescomani
f3126586f3 removing constant max number of xlsch 2023-03-27 15:26:52 +02:00
francescomani
48d19391e2 fix for PHY structure disactivation 2023-03-27 15:26:52 +02:00
francescomani
7c9b501310 removing call from MAC to PHY to clear structures (now automatic clearing) 2023-03-27 15:26:52 +02:00
Dhanuja Elizabeth Thomas
b58ad4baf0 Introducing new pipeline for LTE TDD 2x2 in container
Following changes are made:

1. Removed XMLs used in old pipeline lte-OAIEPC
2. Added TM1 and TM2 config, XML and YAML
3. Added pipeline details in TestBenches.md
4. Modification in Jenkins file for the pipeline
5. Added ping/iperf test cases in XML
6. Minor modification in cls_containerize.py and cls_oaicitest.py
2023-03-27 14:01:30 +02:00
Roberto Louro Magueta
dcdf057dc8 Enable T304 after receiving the reconfigurationWithSync 2023-03-27 10:50:00 +01:00
Robert Schmidt
342ea0882d Merge branch 'integration_2023_w12' into 'develop'
integration_2023_w12

See merge request oai/openairinterface5g!2030

* !1957 UL improvements for 2-layers
* !2016 int32_t to c16_t conversion
* !2028 Fix ue capability config files
* !2022 NR dlsim pmi input
* !2027 limiting SR periodicity according to scs
* !1985 Correct F1 RRC Message Transfer
* !2024 harmonize mac_CellGroupConfig RRC configuration
* !2026 Fix build by installing nrscope dependencies
2023-03-26 10:52:14 +00:00
Robert Schmidt
60d7fe6347 Merge remote-tracking branch 'origin/NR_SA_Tutorials_fix_build' into integration_2023_w12 2023-03-24 11:56:49 +01:00
Robert Schmidt
8fd0ad58b2 Merge remote-tracking branch 'origin/NR_harmonize_mac_cellgroup' into integration_2023_w12 2023-03-24 11:56:41 +01:00
Robert Schmidt
9eac725441 Merge remote-tracking branch 'origin/simplify-f1-rrc-msg-transfer' into integration_2023_w12 2023-03-24 11:56:30 +01:00
luis_pereira87
8e9f9b5629 Fix build by installing nrscope dependencies 2023-03-24 05:57:26 +00:00
Robert Schmidt
e5954f2dbf Merge remote-tracking branch 'origin/NR_SR_periodicity_limits_per_scs' into integration_2023_w12 2023-03-23 19:08:00 +01:00
Robert Schmidt
96f21a1ccb Merge remote-tracking branch 'origin/NR_dlsim_pmi_input' into integration_2023_w12 2023-03-23 19:07:52 +01:00
Robert Schmidt
7e29f16d53 Merge remote-tracking branch 'origin/develop-uecap' into integration_2023_w12 2023-03-23 18:57:46 +01:00
Robert Schmidt
9074566869 Merge remote-tracking branch 'origin/episys-merge-int-to-c16t' into integration_2023_w12 2023-03-23 18:57:37 +01:00
Robert Schmidt
b44bb41235 Merge remote-tracking branch 'origin/develop-UL-Rx' into integration_2023_w12 2023-03-23 18:57:29 +01:00
Cedric Roux
a4718d4a16 bugfix: LDPC decoding in the gNB: clear d properly
The d array has to be cleared at the first usage, which may not necessarily
be when new_rx is true. For example, in case of DTX detected for a first
transmission, the next transmission won't have new_rx true, so d won't be
cleared, containing data from a previous transmission. Or when a LDPC
decoding is cancelled for a segment when new_rx is true, a decoding for
a retransmission will not clear d because then new_rx will not be true.
(Yes, the logic of cancellation will be changed in the future, but the
changes will be orthogonal to the ones of this commit.)

new_rx is removed.
2023-03-23 17:18:50 +01:00
Raphael Defosseux
6475cf21a5 fix(ci): removing the mysql-collection from pipeline; not used anymore
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2023-03-23 11:44:57 +01:00
Robert Schmidt
5b8674cc57 Remove any reference to NR_SRB_INFO in gNB RRC 2023-03-23 10:30:49 +01:00
Roberto Louro Magueta
9ab2fde392 Fix ue capability config files 2023-03-22 18:35:38 +00:00
Robert Schmidt
b5acd48e5b Remove unused rrc_rlc_register_rrc() 2023-03-22 19:21:06 +01:00
Robert Schmidt
acf73ac23f Delete misleading comment 2023-03-22 19:03:51 +01:00
Robert Schmidt
b3791364fd Review: correct indentation 2023-03-22 19:03:42 +01:00
Robert Schmidt
7c0cb06e59 Review: correct indentation 2023-03-22 19:03:31 +01:00
Melissa Elkadi
9c9ce64809 Fixing warning during build (wasnt casting properly) 2023-03-21 10:11:50 -07:00
francescomani
508b67e5e5 limiting SR periodicity according to scs 2023-03-21 13:52:03 +01:00
Roberto Louro Magueta
9e6fe8cf80 Add CI test: 3GPP G-FR1-A4-27, PUSCH Type B, 40 MHz BW, 30 kHz SCS, 2 RX Antennas Requirements Test, 2 layers 2023-03-20 17:13:30 +00:00
Roberto Louro Magueta
a4d43c249e Update the ad_shift, considering the previous improvement 2023-03-20 17:13:30 +00:00
Roberto Louro Magueta
451449e148 Avoid multiple shifts in UL channel compensation 2023-03-20 17:13:30 +00:00
Roberto Louro Magueta
508d7d284b Fix magnitude computation for 2-layers UL in nr_ulsch_zero_forcing_rx_2layers() 2023-03-20 17:13:30 +00:00
Roberto Louro Magueta
b2e1631f7d Simplification of function nr_ulsch_channel_compensation() 2023-03-20 17:13:30 +00:00
francescomani
29ee6b17fa adding check on allowed pm index in dlsim 2023-03-20 17:33:15 +01:00
francescomani
90bfdfcaf3 harmonize mac_CellGroupConfig 2023-03-20 17:18:02 +01:00
Robert Schmidt
7b40520a2d Do not handle NR_RRC_DL_INDICATION message at NR RRC
The message is never sent to the RRC. And this message is to be
forwarded by the DU to the UE, hence it should not even be handled by
the RRC (as the RRC in the CU sends it).
2023-03-20 16:57:58 +01:00
Robert Schmidt
b3ff033e29 Do not decode RRC Container in DL RRC message
The RRC container is transparent for the DU. Hence, we should not decode
it.
2023-03-20 16:57:58 +01:00
Robert Schmidt
27566f49dd Create CellGroup, SRB0, and SRB1, before sending Initial UL RRC message
During the Initial UL RRC Message, the CellGroup is created. Since the
CellGroup specifies the SRB1, the SRB1 should also be created (because
the DL RRC Messages is sent via SRB1). However, before this commit, the
CellGroup is created while having the RLC lock, so we cannot create
SRB1, as it results in a deadlock.

Therefore, we now first create CellGroup, SRB0, and SRB1, before giving
the UE message to the RLC.
2023-03-20 16:57:58 +01:00
Robert Schmidt
c4c41d3b69 Simplify nr_rlc: provide functions to add SRB/DRB 2023-03-20 16:57:58 +01:00
Robert Schmidt
0ed9201169 Remove useless node_type switches in RRC 2023-03-20 16:57:55 +01:00
Robert Schmidt
da193d1bd1 Merge branch 'integration_2023_w11b' into 'develop'
integration_2023_w11b

See merge request oai/openairinterface5g!2020

* !1833 NR ULSCH transform precoding improvements
* !1929 Implementing bands greater than 64 in the code, feature #603
* !1982 Rework ngap
* !1998 Update NR RRC to version 17.3.0
* !2003 improve NR UE state machine
* !2007 possibility to set identity precoding matrix from config file
* !2009 Use same configurable port number for local and remote N3
* !2012 fix unaligned IDFT
* !2013 doc(tutorial): switching to jinja-rendering configuration on the OAI-CN5 containers
* !2018 demote two UL scheduler warnings to debug level
2023-03-20 15:47:59 +00:00
francescomani
65ce834863 add pmi input option in dlsim 2023-03-20 16:29:38 +01:00
Robert Schmidt
de7f072e85 fix physim container image build 2023-03-20 15:35:14 +01:00
Robert Schmidt
ca25160c4c Some cleanup after introducing new CI machine 2023-03-20 15:20:28 +01:00
luis_pereira87
3514cb43ba Minor fixes to get NR_RRCReestablishment working again after merging on the integration branch 2023-03-20 09:23:05 +00:00
luis_pereira87
40b5e99197 Fix segmentation fault when calling get_transformPrecoding function for BWP_id > 0 and rach_ConfigCommon = NULL 2023-03-18 15:28:52 +00:00
Robert Schmidt
ef9104d264 Merge remote-tracking branch 'origin/doc-update-cn5g-docker-compose-for-tutorial' into integration_2023_w11b 2023-03-18 12:07:49 +01:00
Robert Schmidt
7773311e0e Merge remote-tracking branch 'origin/NR_UL_scheduler_warnings' into integration_2023_w11b 2023-03-18 12:05:13 +01:00
Robert Schmidt
10a10e9910 Merge remote-tracking branch 'origin/fix_unaligned_idft' into integration_2023_w11b 2023-03-18 12:05:05 +01:00
Robert Schmidt
15055c26b8 Merge remote-tracking branch 'origin/616-gnb-remote-n3-port-can-no-more-be-modified' into integration_2023_w11b 2023-03-18 12:04:58 +01:00
Robert Schmidt
d77c1c3ebf Merge remote-tracking branch 'origin/NR_identity_precoding_from_config' into integration_2023_w11b 2023-03-18 12:04:52 +01:00
Robert Schmidt
93f42683d1 Merge remote-tracking branch 'origin/NR_improve_UE_state_machine' into integration_2023_w11b 2023-03-18 11:53:24 +01:00
Robert Schmidt
6fdb44953b Merge remote-tracking branch 'origin/nr_rrc_asn1_1730' into integration_2023_w11b 2023-03-18 11:53:18 +01:00
Robert Schmidt
9dc3f4f61f Merge remote-tracking branch 'origin/rework-ngap' into integration_2023_w11b 2023-03-18 11:43:53 +01:00
Robert Schmidt
f97d002ca6 Merge remote-tracking branch 'origin/feat-603-bands-greater-64' into integration_2023_w11b 2023-03-18 11:43:45 +01:00
Robert Schmidt
d5bdeb0699 Merge remote-tracking branch 'origin/NR_ULSCH_transform_precoding_softmodem' into integration_2023_w11b 2023-03-18 11:42:32 +01:00
Robert Schmidt
0b7da43638 Call correct RRC functions in CI telnet module 2023-03-18 11:33:31 +01:00
luis_pereira87
e3f0482d09 Change IMS network to 12.1.9.0/24 to have all the UE DNNs under the same network 12.1.0.0/16 2023-03-17 17:05:42 +00:00
Robert Schmidt
faffc9b136 Fix: cut less output of docker-compose, it changed in U22 2023-03-17 15:32:50 +01:00
francescomani
df110d457a demote UL scheduler warnings to debug level 2023-03-17 11:22:56 +01:00
Raphael Defosseux
e88ca34423 doc(tutorial): switching to jinja-rendering configuration on the OAI-CN5G containers
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2023-03-17 09:56:10 +01:00
francescomani
3a1102d9bf possibility to set identity precoding matrix from config file 2023-03-17 09:29:25 +01:00
Weskley Vinicius Fernandes Mauricio
fefa0bfea7 Implementing bands greater than 64 in the code, feature #603 2023-03-16 09:57:52 -03:00
Melissa Elkadi
4dd579e042 int32_t to c16_t conversion
This commit includes changes to the function
footprints for vaiours NR UE and gNB functions.
It does not updated the LTE code. For functions
shared by both LTE and 5G, we maintained the original
LTE footprint and argument structure.

Several of the simulators that use these functions
have been updated as well. The specific usage of these
functions which index into the int32_t buffers and
treat the first int16_t and the real and the second
as the complex should be modified in the near future.
2023-03-15 12:45:39 -07:00
Robert Schmidt
79d351fbbb Upgrade IP addresses and routes for new faraday cage deployment 2023-03-15 19:12:10 +01:00
Thomas Schlichter
b3b53506a1 improve memory alignment of some arrays in nr_pusch_channel_estimation() 2023-03-15 14:03:21 +01:00
Thomas Schlichter
96c1cadf2b fix typo in idft() function
In case of unaligned input array, a DFT of wrong size was executed instead of a correct IDFT.
2023-03-15 14:00:12 +01:00
laurent
563421b4dc merge develop 2023-03-15 11:33:46 +01:00
Thomas Schlichter
6cee30ba79 review comments and further transform precoding cleanup 2023-03-15 11:01:47 +01:00
francescomani
b64185e85e more fixes 2023-03-15 10:57:51 +01:00
francescomani
8131f63504 setting transform precoding in pusch-config 2023-03-15 10:57:51 +01:00
francescomani
29ec271586 fixes at UE for transform precoding 2023-03-15 10:54:03 +01:00
francescomani
f82bba5535 fix transform precoding scheduling for ulsch 2023-03-15 10:54:03 +01:00
francescomani
7db8dce51c fixes for allowing softmodem to schedule PUSCH with transform precoding 2023-03-15 10:54:03 +01:00
Robert Schmidt
bf03abae6a Merge branch 'integration_2022_wk11' into 'develop'
integration_2022_wk11

See merge request oai/openairinterface5g!2010

* !1849 Set t-Reordering to 100ms to prevent packet loss
* !1997 Warnings in Ubuntu20 build make CI fail
* !2000 bugfix: bad usage of T() in the log module
* !2005 Fix RNTI after RRCReestablishment
* !2006 avoid segfault in additional BWP configuration
* !2001 Add reestablishment test to SA Quectel test
* !1974 Tutorials: split tutorials in three files, OAI_CN5G, COTS_UE and OAI_nrUE
* !1993 Remove unused dependencies, modules
2023-03-15 09:23:44 +00:00
Robert Schmidt
36f374be2a Merge remote-tracking branch 'origin/remove-unused-stuff' into integration_2022_wk11 2023-03-14 17:46:45 +01:00
Robert Schmidt
cdac404c47 Merge remote-tracking branch 'origin/NR_SA_Tutorials_vX' into integration_2022_wk11 2023-03-14 17:46:32 +01:00
luis_pereira87
27546f60da Tutorials: split tutorials in three files, OAI_CN5G, COTS_UE and OAI_nrUE 2023-03-14 14:31:24 +00:00
Robert Schmidt
32f9d95bba Merge remote-tracking branch 'origin/telnet-ci' into integration_2022_wk11 2023-03-14 15:24:33 +01:00
laurent
03d3e1a5db code review comments 2023-03-14 14:48:09 +01:00
francescomani
bc73e73c26 improve UE state machine 2023-03-14 11:06:32 +01:00
Robert Schmidt
9288930a3b Merge remote-tracking branch 'origin/Fix_RRCReestablishment_regression' into telnet-ci 2023-03-13 19:46:22 +01:00
Robert Schmidt
2560ba84e8 telnet documentation 2023-03-13 19:45:55 +01:00
Robert Schmidt
8352f71a71 Show output of CustomCommand if it would make the pipeline fail 2023-03-13 19:31:41 +01:00
Robert Schmidt
1a79b7ca74 Merge remote-tracking branch 'origin/NR_configuration_fix_additional_BWPs' into integration_2022_wk11 2023-03-13 19:25:25 +01:00
Robert Schmidt
3efb55ad17 Merge remote-tracking branch 'origin/Fix_RRCReestablishment_regression' into integration_2022_wk11 2023-03-13 19:25:17 +01:00
Robert Schmidt
ce96cb193b Merge remote-tracking branch 'origin/bugfix-t-tracer' into integration_2022_wk11 2023-03-13 19:25:09 +01:00
Robert Schmidt
2328ee259b Merge remote-tracking branch 'origin/no-warnings-develop' into integration_2022_wk11 2023-03-13 19:25:01 +01:00
Robert Schmidt
4352c8314c Merge remote-tracking branch 'origin/t-reordering-gt-0' into integration_2022_wk11 2023-03-13 19:24:51 +01:00
frtabu
d550fb220e Use same configurable port number for local and remote N3 2023-03-13 19:14:03 +01:00
laurent
082ba963d3 error free 2023-03-13 15:48:19 +01:00
laurent
474f662337 merge develop 2023-03-13 12:45:32 +01:00
laurent
a853a0873e free memory to reduce the memory leaks 2023-03-13 11:59:31 +01:00
laurent
36783a3a79 Merge branch 'develop' of https://gitlab.eurecom.fr/oai/openairinterface5g into rework-ngap 2023-03-13 11:58:56 +01:00
luis_pereira87
459eb193e0 Fix RNTI after RRCReestablishment, ue_context_pP->ue_context.rnti is only updated after RRCReconfigurationComplete, at this point we need to use UEid instead 2023-03-13 10:34:26 +00:00
Robert Schmidt
6791974004 Remove unused OCG (OpenAir Config Generator) 2023-03-11 15:50:50 +01:00
Robert Schmidt
c9db9b4c22 Drop backup file of gtkwave 2023-03-11 15:50:50 +01:00
Robert Schmidt
258ad6e4c1 Move gtkwave files to new directory targets/gtkwave 2023-03-11 15:50:50 +01:00
Robert Schmidt
352eaa2c57 Remove old/unused doxygen files 2023-03-11 15:50:50 +01:00
Robert Schmidt
ceef0fdb7b Remove old/outdated README 2023-03-11 15:50:50 +01:00
Robert Schmidt
d0357cc998 Remove old/unused cmake find files 2023-03-11 15:50:49 +01:00
Robert Schmidt
cc6b473d17 Remove old s6a leftovers 2023-03-11 15:50:49 +01:00
Robert Schmidt
c1394b7097 Remove old EPC documentation 2023-03-11 15:50:49 +01:00
Robert Schmidt
4d16f1f883 Remove libxml2: we don't use it 2023-03-11 15:50:49 +01:00
Robert Schmidt
0968576649 Remove libtasn1: we don't need it 2023-03-11 15:50:49 +01:00
Robert Schmidt
9dc3b26c1b Remove libxslt: we don't use it 2023-03-11 15:50:49 +01:00
Robert Schmidt
6577a9a379 Remove guile: we don't use it 2023-03-11 15:50:49 +01:00
Robert Schmidt
b35451222c Build pipeline in U20: fail if there are warnings 2023-03-11 15:49:40 +01:00
Robert Schmidt
29c984a1ec Merge branch 'integration_2023_w10b' into 'develop'
integration_2023_w10b

See merge request oai/openairinterface5g!2002

* !1954 Fix for warnings and errors from CLANG compiling
* !1978 Change default of "nokrnmod" option to "On"
* !1981 F1AP: minor fixes and preparation for F1 work
* !1983 Improve clang-format
* !1992 fix nrqtscope build warnings
* !1994 reworking response to MSG3 with DCCH/DTCH
* !1996 dead-code-f1-removal
* !1968 small changes for multi usrp support
* !1991 rfsimulator: configurable wait timeout, use in CI to avoid retransmissions
* !1999 Remove Dedicated Serving Cell Configuration from CI config file for 2x2 rfsim test
2023-03-11 14:45:14 +00:00
Robert Schmidt
8e87374b47 Merge remote-tracking branch 'origin/develop-CI-2x2' into integration_2023_w10b 2023-03-11 12:01:29 +01:00
Robert Schmidt
232700e417 Merge remote-tracking branch 'origin/rfsim-timeout' into integration_2023_w10b 2023-03-11 12:01:21 +01:00
Robert Schmidt
52d7d2881a Merge remote-tracking branch 'origin/multi_usrp' into integration_2023_w10b 2023-03-11 11:57:38 +01:00
Florian Kaltenberger
7631381a98 adding documentation for USRP 2023-03-10 22:03:28 +01:00
Robert Schmidt
8263ac09ec Merge remote-tracking branch 'origin/dead-code-f1-removal' into integration_2023_w10b 2023-03-10 15:13:08 +01:00
Robert Schmidt
1436470943 Merge remote-tracking branch 'origin/NR_Msg3_dcch_dtch_reworking' into integration_2023_w10b 2023-03-10 15:11:57 +01:00
Robert Schmidt
3e3dd40cf8 Merge remote-tracking branch 'origin/fix_nrqtscope_build_warnings' into integration_2023_w10b 2023-03-10 15:05:02 +01:00
Robert Schmidt
52154ddeb9 Merge remote-tracking branch 'origin/clang-format-improvements' into integration_2023_w10b 2023-03-10 14:49:18 +01:00
Robert Schmidt
8b0ad24dcd Merge remote-tracking branch 'origin/f1ap-minor-fixes' into integration_2023_w10b 2023-03-10 14:47:29 +01:00
Robert Schmidt
a6bd14c2cd Merge remote-tracking branch 'origin/Remove_nokrnmod' into integration_2023_w10b 2023-03-10 14:47:19 +01:00
Robert Schmidt
31e6b5814f fixup 2023-03-10 14:32:26 +01:00
Robert Schmidt
1b29701368 Threshold for NSA traffic lowered 2023-03-10 14:05:29 +01:00
Robert Schmidt
59feb72fca SA Quectel test: add reestablishment test 2023-03-10 12:38:17 +01:00
Robert Schmidt
4ae28aba10 Custom_Command: add option to fail if returncode is non-zero 2023-03-10 12:38:17 +01:00
Robert Schmidt
e3520f952e DOC to finish 2023-03-10 12:38:17 +01:00
Robert Schmidt
7fc9550f7b Load telnet CI in docker-compose 2023-03-10 12:38:17 +01:00
Robert Schmidt
76caa943b5 Add telnetsrv_ci to docker images 2023-03-10 12:38:17 +01:00
Robert Schmidt
97d989a865 Add telnet module with CI-specific functions
- adds function to retrieve the only UE's RNTI
- adds function to trigger reestablishment for the only UE present, or a
  specific via its RNTI
- adds function to verify the reestablishment counters
2023-03-10 12:37:02 +01:00
Robert Schmidt
e1dc1d9d03 Correctly implement option to load additional SOs for telnet 2023-03-10 12:37:02 +01:00
Luis Pereira
6c6ce912b1 Introduce counters for reestablishment 2023-03-10 12:37:02 +01:00
Robert Schmidt
e76e6f1266 20MHz MCS9: max UL throughput is 3.5Mpbs 2023-03-10 12:37:02 +01:00
Robert Schmidt
6a89d4568e fix 20MHz SA tab name 2023-03-10 12:37:02 +01:00
Cedric Roux
39c42bca41 bugfix: bad usage of T() in the log module
The LOG_x() and T() logic was wrong.

LOG_x() goes to the terminal when T_stdout == 1 or T_stdout == 2.
It goes to T() when T_stdout == 0 or T_stdout == 2.

The call T() does the check for T_stdout == 0 or T_stdout == 2.
So we have to call it out of the check "if (T_stdout)".

So, well, let's fix that.

Some spacing was fixed as well. clang-format may complain.
2023-03-10 12:10:08 +01:00
Roberto Louro Magueta
7e52caa588 Remove Dedicated Serving Cell Configuration from CI config file for 2x2 rfsim test 2023-03-10 11:05:13 +00:00
francescomani
40a0072d5b avoid segfault in additional BWP configuration 2023-03-10 11:07:01 +01:00
Thomas Schlichter
0d9268ec10 Update NR RRC to version 17.3.0 2023-03-10 10:54:43 +01:00
Robert Schmidt
8198272571 Review remarks 2023-03-09 19:10:59 +01:00
francescomani
931cf0a868 more review fixes 2023-03-09 19:10:39 +01:00
Robert Schmidt
742800b858 Split rrc_mac_config_req_gNB() in multiple functions 2023-03-09 19:09:04 +01:00
Robert Schmidt
7668a8917e Use pointer to MAC instead of module ID 2023-03-09 19:06:07 +01:00
Robert Schmidt
64c59ef5ec Count Msg.4 DLSCH HARQ stats 2023-03-09 19:06:07 +01:00
Robert Schmidt
665fdd3d8d Set F1AP log level to info 2023-03-09 19:06:07 +01:00
Robert Schmidt
9826c81808 Make F1AP-related log messages less verbose 2023-03-09 19:06:07 +01:00
Robert Schmidt
c9b043eb09 Fix: Correct check thread pool initialized
traceFd of thread pool can be:
* -1: no tracing
* valid file descriptor/>0: tracing
2023-03-09 19:01:47 +01:00
Robert Schmidt
f8d0c3de03 Minor fixes 2023-03-09 19:01:47 +01:00
Robert Schmidt
ff4c48f952 Align all configuration structs, and guard them to not be formatted with clang-format 2023-03-09 19:01:47 +01:00
francescomani
6d13f28bc0 physical simulators compilation warnings 2023-03-09 19:01:47 +01:00
francescomani
4065e7b4b7 adding thread pool patch 2023-03-09 19:01:47 +01:00
francescomani
87f603687a fixing most warning when compiling nr-uesoftmodem 2023-03-09 19:01:47 +01:00
francescomani
2385bc364a fixing most warning when compiling nr-softmodem 2023-03-09 19:01:46 +01:00
Robert Schmidt
7975b90d7c Merge branch 'integration_2023_w10' into 'develop'
integration_2023_w10

See merge request oai/openairinterface5g!1989

* !1928 Delay compensation for UL
* !1958 Fix IQ recorder/player for nrUE
* !1979 Cleanup of headers, do not include headers in RAN context, CMakeLists.txt link to header only library 1 of 1 checklist item completed
* !1984 bugfix: set max priority to trx_usrp_write_thread
* !1986 Changed buffer alloc and symb rotaion logs to debug
* !1987 fixing UE DL MIMO reception
2023-03-09 17:45:01 +00:00
laurent
61f49be3eb dead-code-f1-removal 2023-03-09 17:03:41 +01:00
laurent
585eb1d357 verified rfsim with splits, and quectel 2 sessions (no split) 2023-03-09 14:52:26 +01:00
francescomani
799d0b3ab5 reworking response to MSG3 with DCCH/DTCH 2023-03-09 14:01:33 +01:00
Thomas Schlichter
670cc4de09 fix build warnings 2023-03-09 10:50:26 +01:00
Robert Schmidt
87b7a980e1 5G RFsim tests: set high rfsim wait timeout to avoid retransmissions when UE stopped 2023-03-09 10:06:19 +01:00
Robert Schmidt
b925dd3e2b rfsimulator: introduce configurable wait timeout if no UE connected
Use --rfsimulator.wait_timeout 20
2023-03-09 10:02:56 +01:00
laurent
14caab46dd fix multi-UEs, and partially confusion rnti versus 5GC UE id 2023-03-08 22:08:53 +01:00
Robert Schmidt
253aa011f9 Merge remote-tracking branch 'origin/NR_UE_DL_MIMO_fixes' into integration_2023_w10 2023-03-08 19:04:55 +01:00
Robert Schmidt
51c0a5457f Merge remote-tracking branch 'origin/NR_gNB_suppress_init_logs' into integration_2023_w10 2023-03-08 19:04:46 +01:00
Robert Schmidt
6d97394f28 Merge remote-tracking branch 'origin/bugfix-tx-usrp-thread-priority' into integration_2023_w10 2023-03-08 19:04:36 +01:00
Robert Schmidt
3f0833b140 Merge remote-tracking branch 'origin/no-platform-const-asn-dep' into integration_2023_w10 2023-03-08 19:04:22 +01:00
Robert Schmidt
b4ef9fe69a Merge remote-tracking branch 'origin/iqfixes_nrue' into integration_2023_w10 2023-03-08 18:40:19 +01:00
francescomani
b3061bc48c fixing DL MIMO reception vector sizes 2023-03-08 11:13:49 +01:00
Sakthivel Velumani
44906a236c Changed buffer alloc and symb rotaion logs to debug 2023-03-07 16:54:25 -05:00
laurent
c1aec06360 test with commercial UE and 2 pdusessions 2023-03-07 16:02:54 +01:00
Rúben Soares da Silva
94faf0b46c Set default behaviour regarding nokrnmod as enabled, updating references and usages 2023-03-07 13:27:37 +00:00
Robert Schmidt
9a90e85da8 Compile most targets in one go 2023-03-06 20:05:38 +01:00
Robert Schmidt
c39861d9a3 Remove useless freediameter references 2023-03-06 20:05:38 +01:00
Robert Schmidt
29b6011be4 Remove build_oai option for core simulators: they don't compile 2023-03-06 20:05:38 +01:00
Robert Schmidt
3b7d6377a0 Link targets that need RRC ASN.1 headers to header-only library
Most targets don't need the symbols from the compiled RRC ASN.1
libraries, but only the headers. In particular when compiling individual
libraries (e.g., for tests), linking the full library makes the RRC
ASN.1 libraries compile and link, when they are not needed (only headers
are needed).

For libraries that can do without these headers, don't link them.
2023-03-06 20:05:38 +01:00
Robert Schmidt
6cd72e4e7d Create INTERFACE libraries to link to RRC ASN.1 target with headers only 2023-03-06 20:05:38 +01:00
Robert Schmidt
c67a612192 SIMU_ETH: use target, compile netlink_init.c only once 2023-03-06 20:05:38 +01:00
Robert Schmidt
e90ef3bc68 Split phy_init.h into two files (for LTE/NR) 2023-03-06 20:05:38 +01:00
Robert Schmidt
8a15fb7c63 RC: forward declarations and link physims better
The simulators have been changed: due to linker errors that would arise
otherwise, a lot of functions are defined in them to avoid such errors.
Some functions are also defined in header files; in this commit, we
define most functoins in nr_dummy_functions.c, which is compiled in, not
by including the C file, but by adding it to the target in
CMakeLists.txt

- nr_dlsim+nr_ulsim need NR_IF_Module_init(), so it cannot be in
  nr_dummy_functions, but the others need it
- Link correcr NR_IF_Module_init() into these simulators, and reduce
  overall link list
- Correctly link remaining simulators
2023-03-06 20:04:38 +01:00
Robert Schmidt
f30185bc0e Add license header to file without license 2023-03-06 19:47:08 +01:00
Robert Schmidt
035b5bb665 Remove definition of null 2023-03-06 19:47:08 +01:00
Robert Schmidt
cd8df70e5c Do not spill LTE/NR ASN.1 RRC all over: clean up platform_constants.h 2023-03-06 19:47:08 +01:00
Robert Schmidt
6d90aaaae2 (Almost) Remove all PHY/phy_vars* and PHY/phy_extern 2023-03-06 19:47:08 +01:00
Robert Schmidt
4e144dba6a Remove useless MBMS_NFAPI_SCHEDULER definition 2023-03-06 19:47:08 +01:00
Bruno Mongazon-Cazavet
bd42f37ad4 Merge branch 'develop' into iqfixes_nrue 2023-03-06 18:40:49 +01:00
Bruno Mongazon-Cazavet
15852ca054 proper adaptation of seed depending on iq replay/record or not 2023-03-06 18:39:20 +01:00
laurent
1ba3b13aef remove ngap enum generated by ans1c 2023-03-06 14:10:30 +01:00
Roberto Louro Magueta
db1928573f Delay compensation for pusch_dmrs_type2 2023-03-06 10:16:01 +00:00
Roberto Louro Magueta
a96732e347 Add CI test with MCS 28, 106 PRBs, Time shift 8 2023-03-06 10:16:01 +00:00
Roberto Louro Magueta
e223f4ee1d Apply delay compensation for UL in nr_pusch_channel_estimation() 2023-03-06 10:16:01 +00:00
Roberto Louro Magueta
0b05fce71b Time shift estimation based on DMRS-PUSCH 2023-03-06 10:16:01 +00:00
laurent
c4538995db continue code and take review comments 2023-03-06 00:37:23 +01:00
laurent
a59753121a tmp 2023-03-06 00:35:03 +01:00
Cedric Roux
3084ae89dd bugfix: set max priority to trx_usrp_write_thread 2023-03-04 16:42:01 +01:00
Robert Schmidt
bccf8379c3 Improve clang-format: total line length 132, harmonize long function calls with existing OAI style 2023-03-04 15:34:52 +01:00
Bruno Mongazon-Cazavet
490e230b75 merge last develop 2023-02-27 10:32:36 +01:00
Bruno Mongazon-Cazavet
8a2caa66d5 merge develop 2023-02-24 16:06:41 +01:00
Bruno Mongazon-Cazavet
4e0f7419dc merge with develop 2023-02-24 13:52:37 +01:00
Sagar Parsawar
738ccce421 Bug fix for subdev selection in OAI gNB 2023-02-23 13:39:23 +01:00
Florian Kaltenberger
30f0942dbc fix for the case multiple USRP devices are specified in the config string 2023-02-23 13:35:57 +01:00
Bruno Mongazon-Cazavet
b5b0e59c35 fix errors in ldpctest and warning in rrc_eNB.c 2023-02-23 10:41:49 +01:00
Bruno Mongazon-Cazavet
86f31972f1 Merge branch 'develop' into iqfixes_nrue 2023-02-23 09:57:06 +01:00
Bruno Mongazon-Cazavet
9db78ab4d6 fix warnings introduced by changes in _Assert_Exit_ macro 2023-02-23 09:56:24 +01:00
Bruno Mongazon-Cazavet
fcc41355ea merge with latest develop 2023-02-20 10:36:36 +01:00
Bruno Mongazon-Cazavet
ca41bc0731 fix exit_function() prototype 2023-02-20 09:09:11 +01:00
Bruno Mongazon-Cazavet
f7b4d18146 Merge branch 'develop' into iqfixes_nrue 2023-02-17 17:24:04 +01:00
Bruno Mongazon-Cazavet
8601b8c990 Fix IQ recorder/player for nrUE 2023-02-17 12:00:46 +01:00
Robert Schmidt
1f458c7107 Adapt retx thresholds to CI env 2023-01-12 17:32:05 +01:00
Robert Schmidt
9c165e3992 Reduce 180Mbps in CI test for 162 PRB
Due to t-Reordering, if requesting more than 100% of resources allow,
leads to dropped packets at RLC that PDCP waits for in reordering
2023-01-12 17:31:13 +01:00
Robert Schmidt
4412a2d318 Set t-Reordering to 100ms to prevent packet loss 2022-12-06 10:22:02 +01:00
707 changed files with 47741 additions and 34582 deletions

View File

@@ -9,9 +9,10 @@ AlignEscapedNewlines: Left
AlignOperands: true
AlignTrailingComments: false
AllowAllParametersOfDeclarationOnNextLine: false
AllowAllArgumentsOnNextLine: false
AllowShortBlocksOnASingleLine: false
AllowShortCaseLabelsOnASingleLine: false
AllowShortFunctionsOnASingleLine: None
AllowShortFunctionsOnASingleLine: false
AllowShortIfStatementsOnASingleLine: false
AllowShortLoopsOnASingleLine: false
AlwaysBreakAfterDefinitionReturnType: None
@@ -44,7 +45,7 @@ BreakBeforeTernaryOperators: true
BreakConstructorInitializersBeforeComma: false
BreakConstructorInitializers: BeforeColon
BreakStringLiterals: true
ColumnLimit: 200
ColumnLimit: 132
CommentPragmas: '^ IWYU pragma:'
CompactNamespaces: false
ConstructorInitializerAllOnOneLineOrOnePerLine: true

View File

@@ -37,12 +37,6 @@ include("cmake_targets/macros.cmake")
###################################
include(FindPkgConfig)
pkg_search_module(LIBXML2 libxml-2.0 REQUIRED)
include_directories(${LIBXML2_INCLUDE_DIRS})
pkg_search_module(LIBXSLT libxslt REQUIRED)
include_directories(${LIBXSLT_INCLUDE_DIRS})
pkg_search_module(OPENSSL openssl REQUIRED)
include_directories(${OPENSSL_INCLUDE_DIRS})
@@ -195,12 +189,17 @@ elseif(${CPUARCH} NOT STREQUAL "x86_64")
message(FATAL_ERROR "Cannot compile for CPU architecture ${CPUARCH}")
endif()
set(C_FLAGS_PROCESSOR "${C_FLAGS_PROCESSOR} -fno-var-tracking-assignments -march=native")
set(C_FLAGS_PROCESSOR "${C_FLAGS_PROCESSOR} -march=native")
# add autotools definitions that were maybe used!
add_definitions("-DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_FCNTL_H=1 -DHAVE_ARPA_INET_H=1 -DHAVE_SYS_TIME_H=1 -DHAVE_SYS_SOCKET_H=1 -DHAVE_STRERROR=1 -DHAVE_SOCKET=1 -DHAVE_MEMSET=1 -DHAVE_GETTIMEOFDAY=1 -DHAVE_STDLIB_H=1 -DHAVE_MALLOC=1 -DHAVE_LIBSCTP")
set(commonOpts "-pipe -Wno-packed-bitfield-compat -fPIC -Wall -fno-strict-aliasing -rdynamic")
set(commonOpts "-pipe -fPIC -Wall -fno-strict-aliasing")
# GNU C/C++ Compiler might throw many warnings without packed-bitfield-compat, see man page
# also, we need -rdynamic to incorporate all symbols in shared objects, again, see man page
if(CMAKE_C_COMPILER_ID STREQUAL "GNU" OR CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
set(commonOpts "${commonOpts} -Wno-packed-bitfield-compat -rdynamic")
endif()
set(CMAKE_C_FLAGS
"${CMAKE_C_FLAGS} ${C_FLAGS_PROCESSOR} ${commonOpts} -std=gnu11 -funroll-loops")
@@ -289,7 +288,6 @@ add_definitions("-DFIRMWARE_VERSION=\"${FIRMWARE_VERSION}\"")
add_definitions("-DPACKAGE_VERSION=\"Branch: ${GIT_BRANCH} Abrev. Hash: ${GIT_COMMIT_HASH} Date: ${GIT_COMMIT_DATE}\"")
add_definitions("-DPACKAGE_BUGREPORT=\"openair4g-devel@lists.eurecom.fr\"")
# Debug related options
#########################################
add_boolean_option(DEBUG_ASN1 False "ASN1 coder/decoder Debug" OFF)
@@ -301,7 +299,7 @@ add_boolean_option(UE_TIMING_TRACE False "Activate UE timing trace" ON)
set (OCP_ITTI ${OPENAIR_DIR}/common/utils/ocp_itti)
add_library(ITTI ${OCP_ITTI}/intertask_interface.cpp)
target_link_libraries(ITTI PRIVATE asn1_nr_rrc asn1_lte_rrc)
target_link_libraries(ITTI PRIVATE asn1_lte_rrc_hdrs asn1_nr_rrc_hdrs)
# asn1c skeletons have hardcoded this flag to make customized debug logs
# OAI uses this feature to re-use OAI LOG_I(ASN, ...)
@@ -348,7 +346,7 @@ add_library(s1ap
${S1AP_DIR}/s1ap_eNB_ue_context.c
)
target_link_libraries(s1ap PUBLIC asn1_s1ap)
target_link_libraries(s1ap PRIVATE nr_rrc asn1_nr_rrc lte_rrc)
target_link_libraries(s1ap PRIVATE nr_rrc asn1_nr_rrc_hdrs lte_rrc)
# NGAP
##############
@@ -368,8 +366,8 @@ add_library(ngap
${NGAP_DIR}/ngap_gNB_trace.c
${NGAP_DIR}/ngap_gNB_ue_context.c
)
target_link_libraries(ngap PUBLIC asn1_ngap lte_rrc)
target_link_libraries(ngap PRIVATE asn1_nr_rrc asn1_lte_rrc)
target_link_libraries(ngap PUBLIC asn1_ngap)
target_link_libraries(ngap PRIVATE asn1_lte_rrc_hdrs asn1_nr_rrc_hdrs)
#M2AP
##############
@@ -417,7 +415,7 @@ add_library(m3ap
)
target_link_libraries(m3ap PUBLIC asn1_m3ap)
target_link_libraries(m3ap PRIVATE m2ap)
target_link_libraries(m3ap PRIVATE asn1_nr_rrc asn1_lte_rrc)
target_link_libraries(m3ap PRIVATE asn1_lte_rrc_hdrs asn1_nr_rrc_hdrs)
target_include_directories(m3ap PUBLIC "${M3AP_DIR}")
#X2AP
@@ -437,7 +435,7 @@ add_library(x2ap
${X2AP_DIR}/x2ap_timers.c
)
target_link_libraries(x2ap PUBLIC asn1_x2ap)
target_link_libraries(x2ap PRIVATE nr_rrc lte_rrc)
target_link_libraries(x2ap PRIVATE asn1_lte_rrc_hdrs asn1_nr_rrc_hdrs)
# F1AP
@@ -448,7 +446,6 @@ add_library(f1ap
${F1AP_DIR}/f1ap_cu_interface_management.c
${F1AP_DIR}/f1ap_cu_paging.c
${F1AP_DIR}/f1ap_cu_rrc_message_transfer.c
${F1AP_DIR}/f1ap_cu_system_information.c
${F1AP_DIR}/f1ap_cu_task.c
${F1AP_DIR}/f1ap_cu_ue_context_management.c
${F1AP_DIR}/f1ap_cu_warning_message_transmission.c
@@ -566,7 +563,6 @@ set_target_properties(benetel_4g PROPERTIES COMPILE_FLAGS "-fvisibility=hidden -
SET(DPDK_LIBS "-Wl,-rpath,$ENV{RTE_SDK}/$ENV{RTE_TARGET}/lib -Wl,--whole-archive -L$ENV{RTE_SDK}/$ENV{RTE_TARGET}/lib -ldpdk -Wl,--no-whole-archive")
target_link_libraries(benetel_4g PRIVATE ${DPDK_LIBS})
target_link_libraries(benetel_4g PRIVATE pthread dl rt m numa)
target_link_libraries(benetel_4g PRIVATE asn1_nr_rrc asn1_lte_rrc)
# Benetel 5G library
######################################################################
@@ -585,7 +581,6 @@ set_target_properties(benetel_5g PROPERTIES COMPILE_FLAGS "-fvisibility=hidden -
SET(DPDK_LIBS "-Wl,-rpath,$ENV{RTE_SDK}/$ENV{RTE_TARGET}/lib -Wl,--whole-archive -L$ENV{RTE_SDK}/$ENV{RTE_TARGET}/lib -ldpdk -Wl,--no-whole-archive")
target_link_libraries(benetel_5g PRIVATE ${DPDK_LIBS})
target_link_libraries(benetel_5g PRIVATE pthread dl rt m numa)
target_link_libraries(benetel_5g PRIVATE asn1_nr_rrc asn1_lte_rrc)
##########################################################
@@ -655,11 +650,6 @@ add_boolean_option(NAS_BUILT_IN_UE True "UE NAS layer present in this e
add_boolean_option(NAS_UE True "NAS UE INSTANCE (<> NAS_MME)" ON)
##########################
# ACCESS STRATUM LAYER2 OPTIONS
##########################
add_boolean_option(JUMBO_FRAME True "ENABLE LARGE SDU in ACCESS STRATUM (larger than common MTU)" ON)
##########################
# PDCP LAYER OPTIONS
##########################
@@ -752,7 +742,6 @@ include_directories("${OPENAIR2_DIR}/UTIL/OSA")
include_directories("${OPENAIR2_DIR}/UTIL/MEM")
include_directories("${OPENAIR2_DIR}/UTIL/LISTS")
include_directories("${OPENAIR2_DIR}/UTIL/FIFO")
include_directories("${OPENAIR2_DIR}/UTIL/OCG")
include_directories("${OPENAIR2_DIR}/UTIL/MATH")
include_directories("${OPENAIR2_DIR}/UTIL/TIMER")
include_directories("${OPENAIR2_DIR}/UTIL/OMG")
@@ -783,7 +772,6 @@ add_library(UTIL
${OPENAIR_DIR}/common/utils/time_meas.c
${OPENAIR_DIR}/common/utils/time_stat.c
)
target_link_libraries(UTIL PRIVATE asn1_nr_rrc asn1_lte_rrc)
set(SECU_OSA_SRC
${OPENAIR2_DIR}/UTIL/OSA/osa_key_deriver.c
@@ -822,7 +810,7 @@ set(SCHED_SRC
${OPENAIR1_DIR}/SCHED/phy_procedures_lte_common.c
)
add_library(SCHED_LIB ${SCHED_SRC})
target_link_libraries(SCHED_LIB PRIVATE asn1_nr_rrc asn1_lte_rrc)
target_link_libraries(SCHED_LIB PRIVATE asn1_lte_rrc_hdrs)
set(SCHED_NR_SRC
${OPENAIR1_DIR}/SCHED_NR/fapi_nr_l1.c
@@ -831,7 +819,7 @@ set(SCHED_NR_SRC
${OPENAIR1_DIR}/SCHED_NR/phy_frame_config_nr.c
)
add_library(SCHED_NR_LIB ${SCHED_NR_SRC})
target_link_libraries(SCHED_NR_LIB PRIVATE asn1_nr_rrc asn1_lte_rrc)
target_link_libraries(SCHED_NR_LIB PRIVATE asn1_nr_rrc_hdrs)
set(SCHED_SRC_RU
${OPENAIR1_DIR}/SCHED/ru_procedures.c
@@ -839,7 +827,7 @@ set(SCHED_SRC_RU
${OPENAIR1_DIR}/SCHED/prach_procedures.c
)
add_library(SCHED_RU_LIB ${SCHED_SRC_RU})
target_link_libraries(SCHED_RU_LIB PRIVATE asn1_nr_rrc asn1_lte_rrc)
target_link_libraries(SCHED_RU_LIB PRIVATE asn1_lte_rrc_hdrs)
set(SCHED_SRC_UE
${OPENAIR1_DIR}/SCHED_UE/phy_procedures_lte_ue.c
@@ -849,7 +837,7 @@ set(SCHED_SRC_UE
${OPENAIR1_DIR}/SCHED_UE/srs_pc.c
)
add_library(SCHED_UE_LIB ${SCHED_SRC_UE})
target_link_libraries(SCHED_UE_LIB PRIVATE asn1_nr_rrc asn1_lte_rrc)
target_link_libraries(SCHED_UE_LIB PRIVATE asn1_lte_rrc_hdrs asn1_nr_rrc_hdrs)
set(SCHED_SRC_NR_UE
${OPENAIR1_DIR}/SCHED_NR_UE/phy_procedures_nr_ue.c
@@ -859,7 +847,7 @@ set(SCHED_SRC_NR_UE
${OPENAIR1_DIR}/SCHED_NR_UE/pucch_uci_ue_nr.c
)
add_library(SCHED_NR_UE_LIB ${SCHED_SRC_NR_UE})
target_link_libraries(SCHED_NR_UE_LIB PRIVATE asn1_nr_rrc asn1_lte_rrc)
target_link_libraries(SCHED_NR_UE_LIB PRIVATE asn1_lte_rrc_hdrs asn1_nr_rrc_hdrs)
# nFAPI
@@ -889,7 +877,7 @@ set(NFAPI_PNF_SRC
${NFAPI_DIR}/pnf/src/pnf_p7_interface.c
)
add_library(NFAPI_PNF_LIB ${NFAPI_PNF_SRC})
target_link_libraries(NFAPI_PNF_LIB PRIVATE asn1_nr_rrc asn1_lte_rrc)
target_link_libraries(NFAPI_PNF_LIB PRIVATE asn1_lte_rrc_hdrs asn1_nr_rrc_hdrs)
include_directories(${NFAPI_DIR}/pnf/public_inc)
include_directories(${NFAPI_DIR}/pnf/inc)
@@ -901,7 +889,7 @@ set(NFAPI_VNF_SRC
${NFAPI_DIR}/vnf/src/vnf_p7_interface.c
)
add_library(NFAPI_VNF_LIB ${NFAPI_VNF_SRC})
target_link_libraries(NFAPI_VNF_LIB PRIVATE asn1_nr_rrc asn1_lte_rrc)
target_link_libraries(NFAPI_VNF_LIB PRIVATE asn1_lte_rrc_hdrs asn1_nr_rrc_hdrs)
include_directories(${NFAPI_DIR}/vnf/public_inc)
include_directories(${NFAPI_DIR}/vnf/inc)
@@ -915,7 +903,7 @@ set(NFAPI_USER_SRC
${NFAPI_USER_DIR}/gnb_ind_vars.c
)
add_library(NFAPI_USER_LIB ${NFAPI_USER_SRC})
target_link_libraries(NFAPI_USER_LIB PRIVATE asn1_nr_rrc asn1_lte_rrc)
target_link_libraries(NFAPI_USER_LIB PRIVATE asn1_lte_rrc_hdrs asn1_nr_rrc_hdrs)
include_directories(${NFAPI_USER_DIR})
# Layer 1
@@ -1017,7 +1005,6 @@ add_library(ldpc MODULE ${PHY_LDPC_OPTIM8SEGMULTI_SRC} )
target_link_libraries(ldpc PRIVATE ldpc_gen_HEADERS)
add_library(coding MODULE ${PHY_TURBOSRC} )
target_link_libraries(coding PRIVATE asn1_nr_rrc asn1_lte_rrc)
add_library(dfts MODULE ${OPENAIR1_DIR}/PHY/TOOLS/oai_dfts.c )
@@ -1274,27 +1261,23 @@ set(PHY_SRC_UE ${PHY_SRC_UE} ${OPENAIR1_DIR}/PHY/LTE_UE_TRANSPORT/dlsch_llr_comp
set(PHY_NR_UE_SRC ${PHY_NR_UE_SRC} ${OPENAIR1_DIR}/PHY/LTE_UE_TRANSPORT/dlsch_llr_computation_avx2.c)
add_library(PHY_COMMON ${PHY_SRC_COMMON})
target_link_libraries(PHY_COMMON PRIVATE lte_rrc)
add_dependencies(PHY_COMMON dfts)
target_link_libraries(PHY_COMMON PRIVATE asn1_nr_rrc asn1_lte_rrc)
target_link_libraries(PHY_COMMON PRIVATE asn1_lte_rrc_hdrs)
add_library(PHY ${PHY_SRC})
target_link_libraries(PHY PRIVATE asn1_nr_rrc asn1_lte_rrc)
target_link_libraries(PHY PRIVATE asn1_lte_rrc_hdrs asn1_nr_rrc_hdrs)
add_library(PHY_UE ${PHY_SRC_UE})
target_link_libraries(PHY_UE PRIVATE asn1_nr_rrc asn1_lte_rrc)
target_link_libraries(PHY_UE PRIVATE asn1_lte_rrc_hdrs asn1_nr_rrc_hdrs)
add_library(PHY_NR_COMMON ${PHY_NR_SRC_COMMON})
target_link_libraries(PHY_NR_COMMON PRIVATE asn1_nr_rrc asn1_lte_rrc)
add_library(PHY_NR ${PHY_NR_SRC})
target_link_libraries(PHY_NR PRIVATE asn1_nr_rrc asn1_lte_rrc)
add_library(PHY_NR_UE ${PHY_NR_UE_SRC})
target_link_libraries(PHY_NR_UE PRIVATE asn1_nr_rrc asn1_lte_rrc)
add_library(PHY_RU ${PHY_SRC_RU})
target_link_libraries(PHY_RU PRIVATE asn1_nr_rrc asn1_lte_rrc)
target_link_libraries(PHY_RU PRIVATE asn1_lte_rrc_hdrs)
#Library for mex functions
#########################3
@@ -1318,7 +1301,7 @@ set(PHY_MEX_UE
${OPENAIR_DIR}/common/utils/T/local_tracer.c
)
add_library(PHY_MEX ${PHY_MEX_UE} ${CONFIG_LIB})
target_link_libraries(PHY_MEX PRIVATE asn1_lte_rrc)
target_link_libraries(PHY_MEX PRIVATE asn1_lte_rrc_hdrs)
#Layer 2 library
#####################
@@ -1496,6 +1479,7 @@ set (MAC_SRC
set (MAC_NR_SRC
${NR_PHY_INTERFACE_DIR}/NR_IF_Module.c
${NR_PHY_INTERFACE_DIR}/nr_sched_response.c
${NR_GNB_MAC_DIR}/main.c
${NR_GNB_MAC_DIR}/config.c
${NR_GNB_MAC_DIR}/gNB_scheduler.c
@@ -1534,6 +1518,7 @@ set (MAC_NR_SRC_UE
${NR_UE_MAC_DIR}/nr_ue_scheduler.c
${NR_UE_MAC_DIR}/nr_ue_dci_configuration.c
${NR_UE_MAC_DIR}/nr_ra_procedures.c
${NR_UE_MAC_DIR}/nr_ue_power_procedures.c
)
set (ENB_APP_SRC
@@ -1559,14 +1544,12 @@ set (MISC_NFAPI_LTE
)
add_library(MISC_NFAPI_LTE_LIB ${MISC_NFAPI_LTE})
target_link_libraries(MISC_NFAPI_LTE_LIB PRIVATE asn1_nr_rrc asn1_lte_rrc)
set (MISC_NFAPI_NR
${OPENAIR1_DIR}/SCHED/nfapi_nr_dummy.c
)
add_library(MISC_NFAPI_NR_LIB ${MISC_NFAPI_NR})
target_link_libraries(MISC_NFAPI_NR_LIB PRIVATE asn1_nr_rrc asn1_lte_rrc)
add_library(L2
${L2_SRC}
@@ -1575,16 +1558,16 @@ add_library(L2
${MCE_APP_SRC}
)
target_link_libraries(L2 PRIVATE x2ap s1ap lte_rrc m2ap)
target_link_libraries(L2 PRIVATE asn1_nr_rrc asn1_lte_rrc)
target_link_libraries(L2 PRIVATE asn1_lte_rrc_hdrs asn1_nr_rrc_hdrs)
add_library(MAC_NR ${MAC_NR_SRC})
target_link_libraries(MAC_NR PRIVATE asn1_nr_rrc asn1_lte_rrc)
target_link_libraries(MAC_NR PRIVATE asn1_lte_rrc_hdrs asn1_nr_rrc_hdrs)
add_library(MAC_UE_NR ${MAC_NR_SRC_UE})
target_link_libraries(MAC_UE_NR PRIVATE asn1_nr_rrc asn1_lte_rrc)
target_link_libraries(MAC_UE_NR PRIVATE asn1_lte_rrc_hdrs asn1_nr_rrc_hdrs)
add_library(L2_LTE ${L2_LTE_SRC})
target_link_libraries(L2_LTE PRIVATE asn1_nr_rrc asn1_lte_rrc)
target_link_libraries(L2_LTE PRIVATE asn1_lte_rrc_hdrs asn1_nr_rrc_hdrs)
add_library(L2_NR
${L2_NR_SRC}
@@ -1597,13 +1580,13 @@ add_library(e1_if
${NR_RRC_DIR}/cucp_cuup_e1ap.c
)
target_link_libraries(e1_if PRIVATE asn1_nr_rrc asn1_lte_rrc asn1_f1ap e1ap GTPV1U)
target_link_libraries(e1_if PRIVATE asn1_nr_rrc_hdrs asn1_lte_rrc_hdrs asn1_f1ap e1ap GTPV1U)
add_library(e1_pdcp_if
${OPENAIR2_DIR}/LAYER2/nr_pdcp/nr_pdcp_e1_api.c
)
target_link_libraries(e1_pdcp_if PRIVATE asn1_nr_rrc asn1_lte_rrc)
target_link_libraries(e1_pdcp_if PRIVATE asn1_nr_rrc_hdrs asn1_lte_rrc_hdrs)
target_link_libraries(L2_NR PRIVATE f1ap x2ap s1ap ngap nr_rrc e1ap)
@@ -1620,29 +1603,29 @@ add_library(L2_UE
${L2_SRC_UE}
${MAC_SRC_UE}
)
target_link_libraries(L2_UE PRIVATE asn1_nr_rrc asn1_lte_rrc)
target_link_libraries(L2_UE PRIVATE asn1_nr_rrc_hdrs asn1_lte_rrc_hdrs)
add_library(L2_UE_LTE_NR
${L2_RRC_SRC_UE}
${MAC_SRC_UE}
)
target_link_libraries(L2_UE_LTE_NR PRIVATE asn1_nr_rrc asn1_lte_rrc)
target_link_libraries(L2_UE_LTE_NR PRIVATE asn1_nr_rrc_hdrs asn1_lte_rrc_hdrs)
if (NOT ${NOS1})
target_compile_definitions(L2_UE PUBLIC -DPDCP_USE_NETLINK)
endif()
target_link_libraries(L2_UE PRIVATE lte_rrc)
target_link_libraries(L2_UE PRIVATE asn1_lte_rrc_hdrs)
add_library( NR_L2_UE ${NR_L2_SRC_UE} ${MAC_NR_SRC_UE} )
target_link_libraries(NR_L2_UE PRIVATE f1ap)
target_link_libraries(NR_L2_UE PRIVATE asn1_nr_rrc asn1_lte_rrc)
target_link_libraries(NR_L2_UE PRIVATE asn1_nr_rrc_hdrs asn1_lte_rrc_hdrs)
add_library(MAC_NR_COMMON
${OPENAIR2_DIR}/LAYER2/NR_MAC_COMMON/nr_mac_common.c
${OPENAIR2_DIR}/LAYER2/NR_MAC_COMMON/nr_compute_tbs_common.c
)
target_link_libraries(MAC_NR_COMMON PRIVATE asn1_nr_rrc asn1_lte_rrc)
target_link_libraries(MAC_NR_COMMON PRIVATE asn1_nr_rrc_hdrs asn1_lte_rrc_hdrs)
include_directories("${OPENAIR2_DIR}/NR_UE_PHY_INTERFACE")
include_directories("${OPENAIR2_DIR}/LAYER2")
@@ -1660,7 +1643,7 @@ add_library (GTPV1U
${RRC_DIR}/rrc_eNB_GTPV1U.c
${OPENAIR3_DIR}/ocp-gtpu/gtp_itf.cpp
)
target_link_libraries(GTPV1U PRIVATE asn1_nr_rrc asn1_lte_rrc)
target_link_libraries(GTPV1U PRIVATE asn1_nr_rrc_hdrs asn1_lte_rrc_hdrs)
target_link_libraries(GTPV1U PRIVATE SIMU)
include_directories(${OPENAIR3_DIR}/ocp-gtp)
@@ -1670,7 +1653,7 @@ set (MME_APP_SRC
)
add_library(MME_APP ${MME_APP_SRC})
target_link_libraries(MME_APP PRIVATE m2ap m3ap)
target_link_libraries(MME_APP PRIVATE asn1_nr_rrc asn1_lte_rrc)
target_link_libraries(MME_APP PRIVATE asn1_nr_rrc_hdrs asn1_lte_rrc_hdrs)
set(SCTP_SRC
${OPENAIR3_DIR}/SCTP/sctp_common.c
@@ -1678,7 +1661,7 @@ set(SCTP_SRC
${OPENAIR3_DIR}/SCTP/sctp_eNB_itti_messaging.c
)
add_library(SCTP_CLIENT ${SCTP_SRC})
target_link_libraries(SCTP_CLIENT PRIVATE asn1_nr_rrc asn1_lte_rrc)
target_link_libraries(SCTP_CLIENT PRIVATE asn1_nr_rrc_hdrs asn1_lte_rrc_hdrs)
set(NAS_SRC ${OPENAIR3_DIR}/NAS/)
set(libnas_api_OBJS
@@ -1919,6 +1902,7 @@ set(libnrnas_emm_msg_OBJS
${NAS_SRC}COMMON/EMM/MSG/FGSUplinkNasTransport.c
${NAS_SRC}COMMON/ESM/MSG/PduSessionEstablishRequest.c
${NAS_SRC}COMMON/ESM/MSG/PduSessionEstablishmentAccept.c
${NAS_SRC}COMMON/EMM/MSG/FGSDeregistrationRequestUEOriginating.c
)
set(libnrnas_ies_OBJS
@@ -1960,7 +1944,7 @@ target_link_libraries(LIB_NAS_SIMUE PRIVATE lte_rrc)
set(NAS_SIM_LIB LIB_NAS_SIMUE)
target_link_libraries(LIB_NAS_SIMUE PRIVATE asn1_nr_rrc asn1_lte_rrc)
target_link_libraries(LIB_NAS_SIMUE PRIVATE asn1_nr_rrc_hdrs asn1_lte_rrc_hdrs)
add_library(LIB_NAS_UE
${NAS_SRC}UE/nas_itti_messaging.c
@@ -1981,9 +1965,8 @@ add_library(LIB_NAS_UE
$<TARGET_OBJECTS:ds>
)
target_include_directories(LIB_NAS_UE PRIVATE ${OPENAIR_DIR}/common/utils/ds/)
target_link_libraries(LIB_NAS_UE PRIVATE lte_rrc)
set(NAS_UE_LIB LIB_NAS_UE)
target_link_libraries(LIB_NAS_UE PRIVATE asn1_nr_rrc asn1_lte_rrc)
target_link_libraries(LIB_NAS_UE PRIVATE asn1_nr_rrc_hdrs asn1_lte_rrc_hdrs)
include_directories(${NAS_SRC}NR_UE)
include_directories(${NAS_SRC}UE)
@@ -2015,7 +1998,7 @@ add_library(LIB_5GNAS_GNB
target_include_directories(LIB_5GNAS_GNB PRIVATE ${OPENAIR_DIR}/common/utils/ds/)
target_link_libraries(LIB_5GNAS_GNB PRIVATE SECU_CN ${CRYPTO_LIBRARIES})
target_link_libraries(LIB_5GNAS_GNB PRIVATE asn1_nr_rrc asn1_lte_rrc)
target_link_libraries(LIB_5GNAS_GNB PRIVATE asn1_nr_rrc_hdrs asn1_lte_rrc_hdrs)
# Simulation library
##########################
@@ -2034,28 +2017,28 @@ set (SIMUSRC
)
add_library(SIMU STATIC ${SIMUSRC} )
target_include_directories(SIMU PUBLIC ${OPENAIR1_DIR}/SIMULATION/TOOLS ${OPENAIR1_DIR}/SIMULATION/RF)
target_link_libraries(SIMU PRIVATE asn1_nr_rrc asn1_lte_rrc)
# Qt-based scope
add_boolean_option(ENABLE_NRQTSCOPE OFF "Build the Qt-Scope" OFF)
if (ENABLE_NRQTSCOPE)
find_package(Qt5 REQUIRED COMPONENTS Widgets Charts)
message ("Qt5 Widgets and Charts found for nrqtscope")
set(QTSCOPE_SOURCE_NR ${OPENAIR1_DIR}/PHY/TOOLS/nr_phy_qt_scope.cpp)
set(QTSCOPE_SOURCE_NR
${OPENAIR1_DIR}/PHY/TOOLS/nr_phy_qt_scope.cpp
${OPENAIR1_DIR}/PHY/TOOLS/phy_scope_interface.c)
# Creates rules for calling the Meta-Object Compiler (moc) on the given source files
qt5_wrap_cpp(QTSCOPE_SOURCE_NR ${OPENAIR1_DIR}/PHY/TOOLS/nr_phy_qt_scope.h)
add_library(nrqtscope MODULE ${QTSCOPE_SOURCE_NR})
target_link_libraries(nrqtscope PRIVATE Qt5::Widgets Qt5::Charts)
target_link_libraries(nrqtscope PRIVATE asn1_nr_rrc asn1_lte_rrc)
target_link_libraries(nrqtscope PRIVATE asn1_nr_rrc_hdrs asn1_lte_rrc_hdrs)
endif()
add_library(SIMU_ETH
${OPENAIR1_DIR}/SIMULATION/ETH_TRANSPORT/netlink_init.c
${OPENAIR1_DIR}/SIMULATION/ETH_TRANSPORT/multicast_link.c
${OPENAIR1_DIR}/SIMULATION/ETH_TRANSPORT/socket.c
${OPENAIR1_DIR}/SIMULATION/ETH_TRANSPORT/bypass_session_layer.c
#${OPENAIR1_DIR}/SIMULATION/ETH_TRANSPORT/emu_transport.c
add_library(SIMU_ETH STATIC
${OPENAIR1_DIR}/SIMULATION/ETH_TRANSPORT/netlink_init.c
${OPENAIR1_DIR}/SIMULATION/ETH_TRANSPORT/multicast_link.c
${OPENAIR1_DIR}/SIMULATION/ETH_TRANSPORT/socket.c
)
target_link_libraries(SIMU_ETH PRIVATE asn1_nr_rrc_hdrs asn1_lte_rrc_hdrs)
include_directories("${NFAPI_DIR}/nfapi/public_inc")
include_directories("${NFAPI_DIR}/common/public_inc")
@@ -2073,7 +2056,6 @@ add_library(rfsimulator MODULE
${OPENAIR1_DIR}/PHY/TOOLS/signal_energy.c
)
target_link_libraries(rfsimulator PRIVATE SIMU ${ATLAS_LIBRARIES})
target_link_libraries(rfsimulator PRIVATE asn1_nr_rrc asn1_lte_rrc)
add_library(oai_iqplayer MODULE
${OPENAIR_DIR}/radio/iqplayer/iqplayer_lib.c
@@ -2166,9 +2148,6 @@ add_executable(lte-softmodem
${OPENAIR_DIR}/radio/COMMON/record_player.c
${OPENAIR2_DIR}/RRC/NAS/nas_config.c
${OPENAIR2_DIR}/RRC/NAS/rb_config.c
${OPENAIR1_DIR}/SIMULATION/ETH_TRANSPORT/netlink_init.c
${OPENAIR1_DIR}/SIMULATION/ETH_TRANSPORT/multicast_link.c
${OPENAIR1_DIR}/SIMULATION/ETH_TRANSPORT/socket.c
${OPENAIR3_DIR}/NAS/UE/nas_ue_task.c
${PHY_INTERFACE_DIR}/queue_t.c
${OPENAIR_DIR}/common/utils/lte/ue_power.c
@@ -2183,13 +2162,12 @@ target_link_libraries(lte-softmodem PRIVATE
-Wl,--start-group
lte_rrc nr_rrc s1ap m2ap x2ap m3ap GTPV1U SECU_CN SECU_OSA UTIL HASHTABLE SCTP_CLIENT MME_APP SCHED_LIB SCHED_RU_LIB
PHY_COMMON PHY PHY_RU L2 L2_LTE NFAPI_COMMON_LIB NFAPI_LIB NFAPI_VNF_LIB NFAPI_PNF_LIB NFAPI_USER_LIB MISC_NFAPI_LTE_LIB
${NAS_UE_LIB} ITTI SIMU
${NAS_UE_LIB} ITTI SIMU SIMU_ETH
-Wl,--end-group z dl)
target_link_libraries(lte-softmodem PRIVATE ${LIBXML2_LIBRARIES})
target_link_libraries(lte-softmodem PRIVATE pthread m CONFIG_LIB rt crypt ${CRYPTO_LIBRARIES} ${OPENSSL_LIBRARIES} sctp)
target_link_libraries(lte-softmodem PRIVATE ${T_LIB})
target_link_libraries(lte-softmodem PRIVATE asn1_nr_rrc asn1_lte_rrc)
target_link_libraries(lte-softmodem PRIVATE asn1_nr_rrc_hdrs asn1_lte_rrc_hdrs)
add_executable(oairu
@@ -2211,7 +2189,7 @@ target_link_libraries(oairu PRIVATE
-Wl,--end-group z dl)
target_link_libraries(oairu PRIVATE pthread m CONFIG_LIB rt ${T_LIB})
target_link_libraries(oairu PRIVATE asn1_nr_rrc asn1_lte_rrc)
target_link_libraries(oairu PRIVATE asn1_nr_rrc_hdrs asn1_lte_rrc_hdrs)
# force the generation of ASN.1 so that we don't need to wait during the build
target_link_libraries(lte-softmodem PRIVATE
@@ -2230,9 +2208,6 @@ add_executable(lte-uesoftmodem
${OPENAIR_DIR}/radio/COMMON/record_player.c
${OPENAIR2_DIR}/RRC/NAS/nas_config.c
${OPENAIR2_DIR}/RRC/NAS/rb_config.c
${OPENAIR1_DIR}/SIMULATION/ETH_TRANSPORT/netlink_init.c
${OPENAIR1_DIR}/SIMULATION/ETH_TRANSPORT/multicast_link.c
${OPENAIR1_DIR}/SIMULATION/ETH_TRANSPORT/socket.c
${OPENAIR3_DIR}/NAS/UE/nas_ue_task.c
${OPENAIR_DIR}/common/utils/lte/ue_power.c
${OPENAIR_DIR}/common/utils/lte/prach_utils.c
@@ -2248,14 +2223,13 @@ target_link_libraries(lte-uesoftmodem PRIVATE
-Wl,--start-group
lte_rrc nr_rrc s1ap x2ap m2ap m3ap
SECU_CN SECU_OSA UTIL HASHTABLE SCTP_CLIENT MME_APP SCHED_RU_LIB SCHED_UE_LIB PHY_COMMON
PHY_UE PHY_RU L2_UE L2_LTE SIMU NFAPI_COMMON_LIB NFAPI_LIB NFAPI_PNF_LIB NFAPI_USER_LIB MISC_NFAPI_LTE_LIB
PHY_UE PHY_RU L2_UE L2_LTE SIMU SIMU_ETH NFAPI_COMMON_LIB NFAPI_LIB NFAPI_PNF_LIB NFAPI_USER_LIB MISC_NFAPI_LTE_LIB
${NAS_UE_LIB} ITTI ${ATLAS_LIBRARIES}
-Wl,--end-group z dl)
target_link_libraries(lte-uesoftmodem PRIVATE ${LIBXML2_LIBRARIES})
target_link_libraries(lte-uesoftmodem PRIVATE pthread m CONFIG_LIB rt crypt ${CRYPTO_LIBRARIES} ${OPENSSL_LIBRARIES} sctp ${ATLAS_LIBRARIES})
target_link_libraries(lte-uesoftmodem PRIVATE ${T_LIB})
target_link_libraries(lte-uesoftmodem PRIVATE asn1_nr_rrc asn1_lte_rrc)
target_link_libraries(lte-uesoftmodem PRIVATE asn1_nr_rrc_hdrs asn1_lte_rrc_hdrs)
# force the generation of ASN.1 so that we don't need to wait during the build
target_link_libraries(lte-uesoftmodem PRIVATE
@@ -2277,7 +2251,6 @@ add_executable(nr-softmodem
${OPENAIR_DIR}/radio/COMMON/record_player.c
${OPENAIR2_DIR}/RRC/NAS/nas_config.c
${OPENAIR2_DIR}/RRC/NAS/rb_config.c
${OPENAIR1_DIR}/SIMULATION/ETH_TRANSPORT/netlink_init.c
${OPENAIR_DIR}/common/utils/lte/ue_power.c
${OPENAIR_DIR}/common/utils/lte/prach_utils.c
${OPENAIR_DIR}/common/utils/nr/nr_common.c
@@ -2291,14 +2264,13 @@ target_link_libraries(nr-softmodem PRIVATE
-Wl,--start-group
UTIL HASHTABLE SCTP_CLIENT SCHED_LIB SCHED_RU_LIB SCHED_NR_LIB PHY_NR PHY PHY_COMMON PHY_NR_COMMON PHY_RU GTPV1U SECU_CN SECU_OSA
ITTI ${NAS_UE_LIB} lte_rrc nr_rrc
ngap s1ap L2_LTE_NR L2_NR MAC_NR_COMMON NFAPI_COMMON_LIB NFAPI_LIB NFAPI_VNF_LIB NFAPI_PNF_LIB NFAPI_USER_LIB SIMU
ngap s1ap L2_LTE_NR L2_NR MAC_NR_COMMON NFAPI_COMMON_LIB NFAPI_LIB NFAPI_VNF_LIB NFAPI_PNF_LIB NFAPI_USER_LIB SIMU SIMU_ETH
x2ap f1ap m2ap m3ap e1ap
-Wl,--end-group z dl)
target_link_libraries(nr-softmodem PRIVATE ${LIBXML2_LIBRARIES})
target_link_libraries(nr-softmodem PRIVATE pthread m CONFIG_LIB rt crypt ${CRYPTO_LIBRARIES} ${OPENSSL_LIBRARIES} sctp ${ATLAS_LIBRARIES})
target_link_libraries(nr-softmodem PRIVATE ${T_LIB})
target_link_libraries(nr-softmodem PRIVATE asn1_nr_rrc asn1_lte_rrc)
target_link_libraries(nr-softmodem PRIVATE asn1_nr_rrc_hdrs asn1_lte_rrc_hdrs)
add_dependencies(nr-softmodem ldpc_orig ldpc_optim ldpc_optim8seg ldpc)
@@ -2313,7 +2285,6 @@ target_link_libraries(nr-softmodem PRIVATE
add_executable(nr-cuup
executables/nr-cuup.c
executables/softmodem-common.c
${OPENAIR1_DIR}/SIMULATION/ETH_TRANSPORT/netlink_init.c
${OPENAIR2_DIR}/RRC/NAS/nas_config.c
${NR_RRC_DIR}/rrc_gNB_UE_context.c
${OPENAIR2_DIR}/E1AP/e1ap_setup.c
@@ -2325,9 +2296,9 @@ add_executable(nr-cuup
target_link_libraries(nr-cuup PRIVATE
CONFIG_LIB ITTI SCTP_CLIENT
GTPV1U e1ap e1_pdcp_if f1ap
GTPV1U e1ap e1_pdcp_if f1ap SIMU_ETH
SECU_OSA SECU_CN ${OPENSSL_LIBRARIES} crypt z sctp dl pthread)
target_link_libraries(nr-cuup PRIVATE asn1_lte_rrc asn1_nr_rrc)
target_link_libraries(nr-cuup PRIVATE asn1_lte_rrc_hdrs asn1_nr_rrc_hdrs)
# nr-uesoftmodem is UE implementation
#######################################
@@ -2344,7 +2315,6 @@ add_executable(nr-uesoftmodem
${OPENAIR2_DIR}/RRC/NAS/nas_config.c
${OPENAIR2_DIR}/LAYER2/NR_MAC_COMMON/nr_mac_common.c
${OPENAIR2_DIR}/RRC/NAS/rb_config.c
${OPENAIR1_DIR}/SIMULATION/ETH_TRANSPORT/netlink_init.c
${OPENAIR3_DIR}/NAS/UE/nas_ue_task.c
${OPENAIR_DIR}/common/utils/nr/nr_common.c
${OPENAIR1_DIR}/PHY/TOOLS/phy_scope_interface.c
@@ -2357,13 +2327,12 @@ target_link_libraries(nr-uesoftmodem PRIVATE
nr_rrc SECU_CN SECU_OSA UTIL HASHTABLE SCHED_RU_LIB SCHED_NR_UE_LIB
PHY_COMMON PHY_NR_COMMON PHY_NR_UE NR_L2_UE L2_UE_LTE_NR MAC_NR_COMMON NFAPI_COMMON_LIB NFAPI_LIB NFAPI_PNF_LIB
NFAPI_USER_LIB MISC_NFAPI_NR_LIB
ITTI ${ATLAS_LIBRARIES} LIB_5GNAS_GNB LIB_NAS_SIMUE ${NAS_SIM_LIB} SIMU
ITTI ${ATLAS_LIBRARIES} LIB_5GNAS_GNB LIB_NAS_SIMUE ${NAS_SIM_LIB} SIMU SIMU_ETH
-Wl,--end-group z dl)
target_link_libraries(nr-uesoftmodem PRIVATE ${LIBXML2_LIBRARIES})
target_link_libraries(nr-uesoftmodem PRIVATE pthread m CONFIG_LIB rt crypt ${CRYPTO_LIBRARIES} ${OPENSSL_LIBRARIES} ${ATLAS_LIBRARIES})
target_link_libraries(nr-uesoftmodem PRIVATE ${T_LIB})
target_link_libraries(nr-uesoftmodem PRIVATE asn1_nr_rrc asn1_lte_rrc)
target_link_libraries(nr-uesoftmodem PRIVATE asn1_nr_rrc_hdrs asn1_lte_rrc_hdrs)
add_dependencies( nr-uesoftmodem ldpc_orig ldpc_optim ldpc_optim8seg ldpc )
if (ENABLE_LDPC_CUDA)
@@ -2402,7 +2371,7 @@ add_executable(rftest
${SHLIB_LOADER_SOURCES}
)
target_link_libraries(rftest PRIVATE minimal_lib CONFIG_LIB PHY_NR_COMMON UTIL pthread dl m ${T_LIB} )
target_link_libraries(rftest PRIVATE asn1_lte_rrc asn1_nr_rrc)
target_link_libraries(rftest PRIVATE asn1_lte_rrc_hdrs asn1_nr_rrc_hdrs)
add_executable(polartest
${OPENAIR1_DIR}/PHY/CODING/TESTBENCH/polartest.c
@@ -2414,7 +2383,6 @@ target_link_libraries(polartest PRIVATE
-Wl,--start-group UTIL SIMU PHY_COMMON PHY_NR PHY_NR_COMMON PHY_NR_UE CONFIG_LIB -Wl,--end-group
m pthread ${ATLAS_LIBRARIES} dl
)
target_link_libraries(polartest PRIVATE asn1_nr_rrc asn1_lte_rrc)
add_executable(smallblocktest
${OPENAIR1_DIR}/PHY/CODING/TESTBENCH/smallblocktest.c
@@ -2427,7 +2395,6 @@ target_link_libraries(smallblocktest PRIVATE
-Wl,--start-group UTIL SIMU PHY_NR PHY_COMMON PHY_NR_COMMON CONFIG_LIB -Wl,--end-group
m pthread ${ATLAS_LIBRARIES} dl
)
target_link_libraries(smallblocktest PRIVATE asn1_nr_rrc asn1_lte_rrc)
add_executable(ldpctest
@@ -2445,12 +2412,11 @@ target_link_libraries(ldpctest PRIVATE
-Wl,--start-group UTIL SIMU PHY_NR PHY_COMMON PHY_NR_COMMON CONFIG_LIB -Wl,--end-group
m pthread ${ATLAS_LIBRARIES} dl
)
target_link_libraries(ldpctest PRIVATE asn1_nr_rrc asn1_lte_rrc)
add_executable(nr_dlschsim
${OPENAIR1_DIR}/SIMULATION/NR_PHY/dlschsim.c
${OPENAIR1_DIR}/SIMULATION/NR_PHY/nr_dummy_functions.c
${OPENAIR_DIR}/common/utils/nr/nr_common.c
${OPENAIR_DIR}/executables/softmodem-common.c
${T_SOURCE}
${SHLIB_LOADER_SOURCES}
)
@@ -2458,10 +2424,11 @@ target_link_libraries(nr_dlschsim PRIVATE
-Wl,--start-group UTIL SIMU PHY_COMMON PHY_NR_COMMON PHY_NR PHY_NR_UE SCHED_NR_LIB CONFIG_LIB MAC_NR_COMMON -Wl,--end-group
m pthread ${ATLAS_LIBRARIES} ${T_LIB} ITTI dl
)
target_link_libraries(nr_dlschsim PRIVATE asn1_nr_rrc asn1_lte_rrc)
target_link_libraries(nr_dlschsim PRIVATE asn1_nr_rrc_hdrs)
add_executable(nr_pbchsim
${OPENAIR1_DIR}/SIMULATION/NR_PHY/pbchsim.c
${OPENAIR1_DIR}/SIMULATION/NR_PHY/nr_dummy_functions.c
${OPENAIR_DIR}/common/utils/nr/nr_common.c
${T_SOURCE}
${SHLIB_LOADER_SOURCES}
@@ -2470,14 +2437,14 @@ target_link_libraries(nr_pbchsim PRIVATE
-Wl,--start-group UTIL SIMU PHY_COMMON PHY_NR_COMMON PHY_NR PHY_NR_UE SCHED_NR_LIB CONFIG_LIB MAC_NR_COMMON -Wl,--end-group
m pthread ${ATLAS_LIBRARIES} ${T_LIB} ITTI dl
)
target_link_libraries(nr_pbchsim PRIVATE asn1_nr_rrc asn1_lte_rrc)
target_link_libraries(nr_pbchsim PRIVATE asn1_nr_rrc_hdrs asn1_lte_rrc_hdrs)
#PUCCH ---> Prashanth
add_executable(nr_pucchsim
${OPENAIR1_DIR}/SIMULATION/NR_PHY/pucchsim.c
${OPENAIR1_DIR}/SIMULATION/NR_PHY/nr_dummy_functions.c
${OPENAIR_DIR}/common/utils/nr/nr_common.c
${OPENAIR_DIR}/executables/softmodem-common.c
${T_SOURCE}
${SHLIB_LOADER_SOURCES}
)
@@ -2485,45 +2452,42 @@ target_link_libraries(nr_pucchsim PRIVATE
-Wl,--start-group UTIL SIMU PHY_COMMON PHY_NR_COMMON PHY_NR PHY_NR_UE SCHED_NR_LIB CONFIG_LIB MAC_NR_COMMON -Wl,--end-group
m pthread ${ATLAS_LIBRARIES} ${T_LIB} ITTI dl
)
target_link_libraries(nr_pucchsim PRIVATE asn1_nr_rrc asn1_lte_rrc)
target_link_libraries(nr_pucchsim PRIVATE asn1_nr_rrc_hdrs asn1_lte_rrc_hdrs)
add_executable(nr_dlsim
${OPENAIR1_DIR}/SIMULATION/NR_PHY/dlsim.c
${OPENAIR1_DIR}/SIMULATION/NR_PHY/nr_dummy_functions.c
${OPENAIR_DIR}/common/utils/nr/nr_common.c
${OPENAIR_DIR}/executables/softmodem-common.c
${OPENAIR2_DIR}/RRC/NAS/nas_config.c
${OPENAIR1_DIR}/SIMULATION/ETH_TRANSPORT/netlink_init.c
${NR_UE_RRC_DIR}/rrc_nsa.c
${NFAPI_USER_DIR}/nfapi.c
${NFAPI_USER_DIR}/gnb_ind_vars.c
${PHY_INTERFACE_DIR}/queue_t.c
${T_SOURCE}
${SHLIB_LOADER_SOURCES}
)
target_link_libraries(nr_dlsim PRIVATE
-Wl,--start-group UTIL SIMU PHY_COMMON PHY_NR_COMMON PHY_NR PHY_NR_UE SCHED_NR_LIB SCHED_NR_UE_LIB MAC_NR MAC_UE_NR MAC_NR_COMMON lte_rrc nr_rrc CONFIG_LIB L2_LTE_NR L2_NR HASHTABLE x2ap SECU_CN ngap NFAPI_COMMON_LIB NFAPI_LIB NFAPI_PNF_LIB NFAPI_USER_LIB -lz -Wl,--end-group
-Wl,--start-group UTIL SIMU SIMU_ETH PHY_COMMON PHY_NR_COMMON PHY_NR PHY_NR_UE SCHED_NR_LIB SCHED_NR_UE_LIB MAC_NR MAC_UE_NR MAC_NR_COMMON nr_rrc CONFIG_LIB L2_NR HASHTABLE x2ap SECU_CN ngap -lz -Wl,--end-group
m pthread ${ATLAS_LIBRARIES} ${T_LIB} ITTI ${OPENSSL_LIBRARIES} dl
)
target_link_libraries(nr_dlsim PRIVATE asn1_nr_rrc asn1_lte_rrc)
target_link_libraries(nr_dlsim PRIVATE asn1_nr_rrc_hdrs asn1_lte_rrc_hdrs)
add_executable(nr_prachsim
${OPENAIR1_DIR}/SIMULATION/NR_PHY/prachsim.c
${OPENAIR1_DIR}/SIMULATION/NR_PHY/nr_dummy_functions.c
${OPENAIR_DIR}/common/utils/nr/nr_common.c
${OPENAIR2_DIR}/RRC/NAS/nas_config.c
${OPENAIR1_DIR}/SIMULATION/ETH_TRANSPORT/netlink_init.c
${NR_UE_RRC_DIR}/rrc_nsa.c
${NFAPI_USER_DIR}/nfapi.c
${PHY_INTERFACE_DIR}/queue_t.c
${T_SOURCE}
${SHLIB_LOADER_SOURCES})
target_link_libraries(nr_prachsim PRIVATE
-Wl,--start-group UTIL SIMU PHY_COMMON PHY_NR_COMMON PHY_NR PHY_RU PHY_NR_UE MAC_NR_COMMON SCHED_NR_LIB SCHED_NR_UE_LIB MAC_NR MAC_UE_NR MAC_NR_COMMON lte_rrc nr_rrc CONFIG_LIB L2_LTE_NR L2_NR HASHTABLE x2ap SECU_CN ngap NFAPI_COMMON_LIB NFAPI_LIB NFAPI_PNF_LIB NFAPI_USER_LIB -lz -Wl,--end-group
-Wl,--start-group UTIL SIMU PHY_COMMON PHY_NR_COMMON PHY_NR PHY_RU PHY_NR_UE MAC_NR_COMMON SCHED_NR_LIB CONFIG_LIB -lz -Wl,--end-group
m pthread ${ATLAS_LIBRARIES} ${T_LIB} ITTI ${OPENSSL_LIBRARIES} dl)
target_link_libraries(nr_prachsim PRIVATE asn1_nr_rrc asn1_lte_rrc)
target_link_libraries(nr_prachsim PRIVATE asn1_nr_rrc_hdrs asn1_lte_rrc_hdrs)
add_executable(nr_ulschsim
${OPENAIR1_DIR}/SIMULATION/NR_PHY/ulschsim.c
${OPENAIR1_DIR}/SIMULATION/NR_PHY/nr_dummy_functions.c
${OPENAIR_DIR}/common/utils/nr/nr_common.c
${OPENAIR_DIR}/executables/softmodem-common.c
${PHY_INTERFACE_DIR}/queue_t.c
${T_SOURCE}
${SHLIB_LOADER_SOURCES}
@@ -2532,16 +2496,17 @@ target_link_libraries(nr_ulschsim PRIVATE
-Wl,--start-group UTIL SIMU PHY_COMMON PHY_NR_COMMON PHY_NR PHY_NR_UE SCHED_NR_LIB CONFIG_LIB MAC_NR_COMMON -Wl,--end-group
m pthread ${ATLAS_LIBRARIES} ${T_LIB} ITTI dl
)
target_link_libraries(nr_ulschsim PRIVATE asn1_nr_rrc asn1_lte_rrc)
target_link_libraries(nr_ulschsim PRIVATE asn1_nr_rrc_hdrs asn1_lte_rrc_hdrs)
add_executable(nr_ulsim
${OPENAIR1_DIR}/SIMULATION/NR_PHY/ulsim.c
${OPENAIR1_DIR}/SIMULATION/NR_PHY/nr_dummy_functions.c
${OPENAIR_DIR}/common/utils/nr/nr_common.c
${OPENAIR_DIR}/executables/softmodem-common.c
${OPENAIR2_DIR}/RRC/NAS/nas_config.c
${OPENAIR1_DIR}/SIMULATION/ETH_TRANSPORT/netlink_init.c
${NR_UE_RRC_DIR}/rrc_nsa.c
${NFAPI_USER_DIR}/nfapi.c
${NFAPI_USER_DIR}/gnb_ind_vars.c
${PHY_INTERFACE_DIR}/queue_t.c
${T_SOURCE}
${SHLIB_LOADER_SOURCES}
@@ -2552,10 +2517,10 @@ if (ENABLE_LDPC_T1)
endif()
target_link_libraries(nr_ulsim PRIVATE
-Wl,--start-group UTIL SIMU PHY_COMMON PHY_NR_COMMON PHY_NR PHY_NR_UE SCHED_NR_LIB SCHED_NR_UE_LIB MAC_NR MAC_UE_NR MAC_NR_COMMON lte_rrc nr_rrc CONFIG_LIB L2_LTE_NR L2_NR HASHTABLE x2ap SECU_CN ngap NFAPI_COMMON_LIB NFAPI_LIB NFAPI_PNF_LIB NFAPI_USER_LIB -lz -Wl,--end-group
-Wl,--start-group UTIL SIMU SIMU_ETH PHY_COMMON PHY_NR_COMMON PHY_NR PHY_NR_UE SCHED_NR_LIB SCHED_NR_UE_LIB MAC_NR MAC_UE_NR MAC_NR_COMMON nr_rrc CONFIG_LIB L2_NR HASHTABLE x2ap SECU_CN ngap -lz -Wl,--end-group
m pthread ${ATLAS_LIBRARIES} ${T_LIB} ITTI ${OPENSSL_LIBRARIES} dl
)
target_link_libraries(nr_ulsim PRIVATE asn1_nr_rrc asn1_lte_rrc)
target_link_libraries(nr_ulsim PRIVATE asn1_nr_rrc_hdrs asn1_lte_rrc_hdrs)
foreach(myExe dlsim dlsim_tm7 ulsim pbchsim scansim mbmssim pdcchsim pucchsim prachsim syncsim)
@@ -2572,7 +2537,7 @@ foreach(myExe dlsim dlsim_tm7 ulsim pbchsim scansim mbmssim pdcchsim pucchsim pr
-Wl,--start-group SIMU UTIL SCHED_LIB SCHED_RU_LIB SCHED_UE_LIB PHY_COMMON PHY_NR_COMMON PHY PHY_UE PHY_RU ITTI -Wl,--end-group
pthread m rt CONFIG_LIB ${ATLAS_LIBRARIES} ${T_LIB} dl
)
target_link_libraries(${myExe} PRIVATE asn1_nr_rrc asn1_lte_rrc)
target_link_libraries(${myExe} PRIVATE asn1_lte_rrc_hdrs)
endforeach(myExe)

View File

@@ -4,8 +4,12 @@
<p align="center">
<a href="https://gitlab.eurecom.fr/oai/openairinterface5g/-/blob/master/LICENSE"><img src="https://img.shields.io/badge/license-OAI--Public--V1.1-blue" alt="License"></a>
<a href="https://releases.ubuntu.com/18.04/"><img src="https://img.shields.io/badge/OS-Ubuntu18-Green" alt="Supported OS"></a>
<a href="https://www.redhat.com/en/enterprise-linux-8"><img src="https://img.shields.io/badge/OS-RHEL8-Green" alt="Supported OS"></a>
<a href="https://releases.ubuntu.com/18.04/"><img src="https://img.shields.io/badge/OS-Ubuntu18-Green" alt="Supported OS Ubuntu 18"></a>
<a href="https://releases.ubuntu.com/20.04/"><img src="https://img.shields.io/badge/OS-Ubuntu20-Green" alt="Supported OS Ubuntu 20"></a>
<a href="https://releases.ubuntu.com/22.04/"><img src="https://img.shields.io/badge/OS-Ubuntu22-Green" alt="Supported OS Ubuntu 22"></a>
<a href="https://www.redhat.com/en/technologies/linux-platforms/enterprise-linux"><img src="https://img.shields.io/badge/OS-RHEL8-Green" alt="Supported OS RHEL8"></a>
<a href="https://www.redhat.com/en/technologies/linux-platforms/enterprise-linux"><img src="https://img.shields.io/badge/OS-RHEL9-Green" alt="Supported OS RELH9"></a>
<a href="https://getfedora.org/en/workstation/"><img src="https://img.shields.io/badge/OS-Fedore37-Green" alt="Supported OS Fedora 37"></a>
</p>
<p align="center">
@@ -13,10 +17,10 @@
</p>
<p align="center">
<a href="https://hub.docker.com/r/rdefosseoai/oai-enb"><img alt="Docker Pulls" src="https://img.shields.io/docker/pulls/rdefosseoai/oai-enb?label=eNB%20docker%20pulls"></a>
<a href="https://hub.docker.com/r/rdefosseoai/oai-lte-ue"><img alt="Docker Pulls" src="https://img.shields.io/docker/pulls/rdefosseoai/oai-lte-ue?label=LTE-UE%20docker%20pulls"></a>
<a href="https://hub.docker.com/r/rdefosseoai/oai-gnb"><img alt="Docker Pulls" src="https://img.shields.io/docker/pulls/rdefosseoai/oai-gnb?label=gNB%20docker%20pulls"></a>
<a href="https://hub.docker.com/r/rdefosseoai/oai-nr-ue"><img alt="Docker Pulls" src="https://img.shields.io/docker/pulls/rdefosseoai/oai-nr-ue?label=NR-UE%20docker%20pulls"></a>
<a href="https://hub.docker.com/r/oaisoftwarealliance/oai-gnb"><img alt="Docker Pulls" src="https://img.shields.io/docker/pulls/oaisoftwarealliance/oai-gnb?label=gNB%20docker%20pulls"></a>
<a href="https://hub.docker.com/r/oaisoftwarealliance/oai-nr-ue"><img alt="Docker Pulls" src="https://img.shields.io/docker/pulls/oaisoftwarealliance/oai-nr-ue?label=NR-UE%20docker%20pulls"></a>
<a href="https://hub.docker.com/r/oaisoftwarealliance/oai-enb"><img alt="Docker Pulls" src="https://img.shields.io/docker/pulls/oaisoftwarealliance/oai-enb?label=eNB%20docker%20pulls"></a>
<a href="https://hub.docker.com/r/oaisoftwarealliance/oai-lte-ue"><img alt="Docker Pulls" src="https://img.shields.io/docker/pulls/oaisoftwarealliance/oai-lte-ue?label=LTE-UE%20docker%20pulls"></a>
</p>
# OpenAirInterface License #
@@ -32,12 +36,12 @@ Please see [NOTICE](NOTICE.md) file for third party software that is included in
# Where to Start #
* [General overview of documentation](./doc/README.md)
* [The implemented features](./doc/FEATURE_SET.md)
* [How to build](./doc/BUILD.md)
* [How to run the modems](./doc/RUNMODEM.md)
More information and documentation can be found in the [doc folder](./doc).
Unfortunately, not all information is available there, and information for
Not all information is available in a central place, and information for
specific sub-systems might be available in the corresponding sub-directories.
To find all READMEs, this command might be handy:
@@ -51,52 +55,20 @@ The OpenAirInterface (OAI) software is composed of the following parts:
```
openairinterface5g
├── charts
├── ci-scripts : Meta-scripts used by the OSA CI process. Contains also configuration files used day-to-day by CI.
├── CMakeLists.txt : Top-level CMakeLists.txt for building
├── cmake_targets : Build utilities to compile (simulation, emulation and real-time platforms), and generated build files.
├── common : Some common OAI utilities, other tools can be found at openair2/UTILS.
├── doc : Contains an up-to-date feature set list and starting tutorials.
├── executables : Top-level executable source files.
├── LICENSE : License file.
├── common : Some common OAI utilities, some other tools can be found at openair2/UTILS.
├── doc : Documentation
├── docker : Dockerfiles to build for Ubuntu and RHEL
├── executables : Top-level executable source files (gNB, eNB, ...)
├── maketags : Script to generate emacs tags.
├── nfapi : Contains the NFAPI code. A local Readme file provides more details.
├── nfapi : (n)FAPI code for MAC-PHY interface
├── openair1 : 3GPP LTE Rel-10/12 PHY layer / 3GPP NR Rel-15 layer. A local Readme file provides more details.
│   ├── PHY
│   ├── SCHED
│   ├── SCHED_NBIOT
│   ├── SCHED_NR
│   ├── SCHED_NR_UE
│   ├── SCHED_UE
│   └── SIMULATION : PHY RF simulation.
├── openair2 : 3GPP LTE Rel-10 RLC/MAC/PDCP/RRC/X2AP + LTE Rel-14 M2AP implementation. Also 3GPP NR Rel-15 RLC/MAC/PDCP/RRC/X2AP.
│   ├── COMMON
│   ├── DOCS
│   ├── ENB_APP
│   ├── F1AP
│   ├── GNB_APP
│   ├── LAYER2/RLC/ : with the following subdirectories: UM_v9.3.0, TM_v9.3.0, and AM_v9.3.0.
│   ├── LAYER2/PDCP/PDCP_v10.1.0
│   ├── M2AP
│   ├── MCE_APP
│   ├── NETWORK_DRIVER
│   ├── NR_PHY_INTERFACE
│   ├── NR_UE_PHY_INTERFACE
│   ├── PHY_INTERFACE
│   ├── RRC
│   ├── UTIL
│   └── X2AP
├── openair3 : 3GPP LTE Rel10 for S1AP, NAS GTPV1-U for both ENB and UE.
│   ├── COMMON
│   ├── DOCS
│   ├── GTPV1-U
│   ├── M3AP
│   ├── MME_APP
│   ├── NAS
│   ├── S1AP
│   ├── SCTP
│   ├── SECU
│   ├── TEST
│   ├── UDP
│   └── UTILS
├── radio : drivers for various radios such as USRP, AW2S, RFsim, ...
└── targets : Top-level wrappers for unitary simulation for PHY channels, system-level emulation (eNB-UE with and without S1), and realtime eNB and UE and RRH GW.
├── openshift : OpenShift helm charts for some deployment options of OAI
├── radio : Drivers for various radios such as USRP, AW2S, RFsim, ...
└── targets : Some configuration files; only historical relevance, and might be deleted in the future
```

View File

@@ -385,6 +385,47 @@ pipeline {
}
}
}
stage ("LTE-TDD-2x2-Container") {
when { expression {do4Gtest} }
steps {
script {
triggerSlaveJob ('RAN-LTE-TDD-2x2-Container', 'LTE-TDD-2x2-Container')
}
}
post {
always {
script {
finalizeSlaveJob('RAN-LTE-TDD-2x2-Container')
}
}
failure {
script {
currentBuild.result = 'FAILURE'
}
}
}
}
stage ("SA-AW2S-CN5G") {
when { expression {do5Gtest} }
steps {
script {
triggerSlaveJob ('RAN-SA-AW2S-CN5G', 'SA-AW2S-CN5G')
}
}
post {
always {
script {
finalizeSlaveJob('RAN-SA-AW2S-CN5G')
}
}
failure {
script {
currentBuild.result = 'FAILURE'
}
}
}
}
//avra is offline, re-enable once it is available
//stage ("T1-Offload-Test") {
// when { expression {do5Gtest} }

View File

@@ -211,10 +211,16 @@ pipeline {
script {
dir ('ci-scripts') {
// Zipping all archived log files
sh "zip -r -qq physim_deploytest_logs_${env.BUILD_ID}.zip physim_test_logs_*/*"
sh "rm -rf physim_test_logs_*/"
if (fileExists("physim_deploytest_logs_${env.BUILD_ID}.zip")) {
archiveArtifacts artifacts: "physim_deploytest_logs_${env.BUILD_ID}.zip"
sh "mkdir test_logs"
sh "mv *.log* test_logs || true"
sh "zip -r -qq test_logs_${env.BUILD_ID}.zip *test_log*/"
sh "rm -rf *test_log*/"
if (fileExists("test_logs_${env.BUILD_ID}.zip")) {
archiveArtifacts artifacts: "test_logs_${env.BUILD_ID}.zip"
}
if (fileExists("test_logs_CN.zip")){
sh "mv test_logs_CN.zip test_logs_CN_${env.BUILD_ID}.zip"
archiveArtifacts artifacts: "test_logs_CN_${env.BUILD_ID}.zip"
}
if (fileExists("test_results.html")) {
sh "mv test_results.html test_results-${env.JOB_NAME}.html"

View File

@@ -24,7 +24,6 @@
// Location of the python executor node shall be in the same subnet as the others servers
def pythonExecutor = params.pythonExecutor
def DataBaseHost = params.DataBaseHost
// Location of the test XML file to be run
def testXMLFile = params.pythonTestXmlFile
@@ -169,10 +168,6 @@ pipeline {
allParametersPresent = false
}
if (params.DataBaseHost == "none") {
DataBaseHost = pythonExecutor
}
if (allParametersPresent) {
echo "All parameters are present"
if (eNB_AllowMergeRequestProcess) {
@@ -357,18 +352,6 @@ pipeline {
}
}
}
stage ("SQL Collect"){
when {
expression { params.DataBaseHost != "none" }
}
agent {label DataBaseHost}
steps {
script {
if (currentBuild.result=='FAILURE') {StatusForDb = 'FAIL'} else {StatusForDb = 'PASS'}
sh "python3 /home/oaicicd/mysql/sql_connect.py ${JOB_NAME} ${params.eNB_MR} ${params.eNB_Branch} ${env.BUILD_ID} ${env.BUILD_URL} ${StatusForDb} ''"
}
}
}
}
}
}

View File

@@ -197,6 +197,7 @@ def ArgsParse(argvs,CiTestObj,RAN,HTML,EPC,ldpc,CONTAINERS,HELP,SCA,PHYSIM,CLUST
SCA.eNBSourceCodePath=matchReg.group(1)
PHYSIM.eNBSourceCodePath=matchReg.group(1)
CLUSTER.eNBSourceCodePath=matchReg.group(1)
EPC.eNBSourceCodePath=matchReg.group(1)
elif re.match('^\-\-eNB1SourceCodePath=(.+)$', myArgv, re.IGNORECASE):
matchReg = re.match('^\-\-eNB1SourceCodePath=(.+)$', myArgv, re.IGNORECASE)
RAN.eNB1SourceCodePath=matchReg.group(1)
@@ -219,10 +220,10 @@ def ArgsParse(argvs,CiTestObj,RAN,HTML,EPC,ldpc,CONTAINERS,HELP,SCA,PHYSIM,CLUST
EPC.SourceCodePath=matchReg.group(1)
elif re.match('^\-\-EPCType=(.+)$', myArgv, re.IGNORECASE):
matchReg = re.match('^\-\-EPCType=(.+)$', myArgv, re.IGNORECASE)
if re.match('OAI', matchReg.group(1), re.IGNORECASE) or re.match('ltebox', matchReg.group(1), re.IGNORECASE) or re.match('OAI-Rel14-CUPS', matchReg.group(1), re.IGNORECASE) or re.match('OAI-Rel14-Docker', matchReg.group(1), re.IGNORECASE):
if re.match('OAI', matchReg.group(1), re.IGNORECASE) or re.match('ltebox', matchReg.group(1), re.IGNORECASE) or re.match('OAI-Rel14-CUPS', matchReg.group(1), re.IGNORECASE) or re.match('OAI-Rel14-Docker', matchReg.group(1), re.IGNORECASE) or re.match('OC-OAI-CN5G', matchReg.group(1), re.IGNORECASE):
EPC.Type=matchReg.group(1)
else:
sys.exit('Invalid EPC Type: ' + matchReg.group(1) + ' -- (should be OAI or ltebox or OAI-Rel14-CUPS or OAI-Rel14-Docker)')
sys.exit('Invalid EPC Type: ' + matchReg.group(1) + ' -- (should be OAI or ltebox or OAI-Rel14-CUPS or OAI-Rel14-Docker or OC-OAI-CN5G)')
elif re.match('^\-\-EPCContainerPrefix=(.+)$', myArgv, re.IGNORECASE):
matchReg = re.match('^\-\-EPCContainerPrefix=(.+)$', myArgv, re.IGNORECASE)
EPC.ContainerPrefix=matchReg.group(1)
@@ -260,14 +261,17 @@ def ArgsParse(argvs,CiTestObj,RAN,HTML,EPC,ldpc,CONTAINERS,HELP,SCA,PHYSIM,CLUST
matchReg = re.match('^\-\-OCUserName=(.+)$', myArgv, re.IGNORECASE)
PHYSIM.OCUserName = matchReg.group(1)
CLUSTER.OCUserName = matchReg.group(1)
EPC.OCUserName = matchReg.group(1)
elif re.match('^\-\-OCPassword=(.+)$', myArgv, re.IGNORECASE):
matchReg = re.match('^\-\-OCPassword=(.+)$', myArgv, re.IGNORECASE)
PHYSIM.OCPassword = matchReg.group(1)
CLUSTER.OCPassword = matchReg.group(1)
EPC.OCPassword = matchReg.group(1)
elif re.match('^\-\-OCProjectName=(.+)$', myArgv, re.IGNORECASE):
matchReg = re.match('^\-\-OCProjectName=(.+)$', myArgv, re.IGNORECASE)
PHYSIM.OCProjectName = matchReg.group(1)
CLUSTER.OCProjectName = matchReg.group(1)
EPC.OCProjectName = matchReg.group(1)
elif re.match('^\-\-OCUrl=(.+)$', myArgv, re.IGNORECASE):
matchReg = re.match('^\-\-OCUrl=(.+)$', myArgv, re.IGNORECASE)
CLUSTER.OCUrl = matchReg.group(1)

View File

@@ -0,0 +1,183 @@
/* UE simulator configuration file version 2021-06-17
* LTE / 5G Non StandAlone
* Copyright (C) 2019-2021 Amarisoft
*/
{
#define N_ANTENNA_DL 1
#define TDD 1
log_options: "all.level=warn,all.max_size=0,nas.level=debug,nas.max_size=1,rrc.level=debug,rrc.max_size=1",
log_filename: "/tmp/ue1.log",
/* Enable remote API and Web interface */
com_addr: "0.0.0.0:9002",
include "rf_driver/1chan.cfg",
/* If true, allow the simulation of several UEs at the same time and
allow dynamic UE creation from remote API */
cell_groups: [{
group_type: "nr",
multi_ue: true,
cells: [{
rf_port: 0,
bandwidth: 20,
#if TDD == 1
band: 78,
dl_nr_arfcn:627360,
ssb_nr_arfcn:627360,
#else
band: 7,
dl_nr_arfcn: 536020,
ssb_nr_arfcn: 535930,
ssb_subcarrier_spacing: 15,
#endif
subcarrier_spacing: 30,
n_antenna_dl: N_ANTENNA_DL,
n_antenna_ul: 1,
rx_to_tx_latency:2,
}],
}],
ue_list: [
{
/* UE capabilities */
/* USIM data */
"ue_id" : 1,
"imsi": "001010000000100",
"K": "fec86ba6eb707ed08905757b1bb44b8f",
"sim_algo":"milenage",
"op": "1006020f0a478bf6b699f15c062e42b3",
as_release: 15,
ue_category: "nr",
apn:"oai",
attach_pdn_type:"ipv4",
default_nssai: [ { sst: 1, }, ],
default_pdu_session_snssai: { sst: 1, },
/* Enable it to create a TUN interface for each UE PDN */
tun_setup_script: "ue-ifup",
},
{
/* UE capabilities */
/* USIM data */
"ue_id" : 2,
"imsi": "001010000000101",
"K": "fec86ba6eb707ed08905757b1bb44b8f",
"sim_algo":"milenage",
"op": "1006020f0a478bf6b699f15c062e42b3",
as_release: 15,
ue_category: "nr",
apn:"oai",
attach_pdn_type:"ipv4",
default_nssai: [ { sst: 1, }, ],
default_pdu_session_snssai: { sst: 1, },
/* Enable it to create a TUN interface for each UE PDN */
tun_setup_script: "ue-ifup",
},
{
/* UE capabilities */
/* USIM data */
"ue_id" : 3,
"imsi": "001010000000102",
"K": "fec86ba6eb707ed08905757b1bb44b8f",
"sim_algo":"milenage",
"op": "1006020f0a478bf6b699f15c062e42b3",
as_release: 15,
ue_category: "nr",
apn:"oai",
attach_pdn_type:"ipv4",
default_nssai: [ { sst: 1, sd: 66051, }, ],
default_pdu_session_snssai: { sst: 1, sd: 66051, },
/* Enable it to create a TUN interface for each UE PDN */
tun_setup_script: "ue-ifup",
},
{
/* UE capabilities */
/* USIM data */
"ue_id" : 4,
"imsi": "001010000000103",
"K": "fec86ba6eb707ed08905757b1bb44b8f",
"sim_algo":"milenage",
"op": "1006020f0a478bf6b699f15c062e42b3",
as_release: 15,
ue_category: "nr",
apn:"oai",
attach_pdn_type:"ipv4",
default_nssai: [ { sst: 1, sd: 66051, }, ],
default_pdu_session_snssai: { sst: 1, sd: 66051, },
/* Enable it to create a TUN interface for each UE PDN */
tun_setup_script: "ue-ifup",
},
{
/* UE capabilities */
/* USIM data */
"ue_id" : 5,
"imsi": "001010000000104",
"K": "fec86ba6eb707ed08905757b1bb44b8f",
"sim_algo":"milenage",
"op": "1006020f0a478bf6b699f15c062e42b3",
as_release: 15,
ue_category: "nr",
apn:"oai",
attach_pdn_type:"ipv4",
default_nssai: [ { sst: 1, sd: 66051, }, ],
default_pdu_session_snssai: { sst: 1, sd: 66051, },
/* Enable it to create a TUN interface for each UE PDN */
tun_setup_script: "ue-ifup",
},
{
/* UE capabilities */
/* USIM data */
"ue_id" : 6,
"imsi": "001010000000105",
"K": "fec86ba6eb707ed08905757b1bb44b8f",
"sim_algo":"milenage",
"op": "1006020f0a478bf6b699f15c062e42b3",
as_release: 15,
ue_category: "nr",
apn:"oai",
attach_pdn_type:"ipv4",
default_nssai: [ { sst: 1, sd: 66051, }, ],
default_pdu_session_snssai: { sst: 1, sd: 66051, },
/* Enable it to create a TUN interface for each UE PDN */
tun_setup_script: "ue-ifup",
},
{
/* UE capabilities */
/* USIM data */
"ue_id" : 7,
"imsi": "001010000000106",
"K": "fec86ba6eb707ed08905757b1bb44b8f",
"sim_algo":"milenage",
"op": "1006020f0a478bf6b699f15c062e42b3",
as_release: 15,
ue_category: "nr",
apn:"oai",
attach_pdn_type:"ipv4",
default_nssai: [ { sst: 1, sd: 66051, }, ],
default_pdu_session_snssai: { sst: 1, sd: 66051, },
/* Enable it to allow sim_events to be handled remotely */
//rue_addr: "127.1.0.0",
/* Enable it to create a TUN interface for each UE PDN */
tun_setup_script: "ue-ifup",
},
],
}

View File

@@ -1,172 +0,0 @@
/* UE simulator configuration */
/* UE simulator configuration file version 2021-06-17
* LTE / 5G Non StandAlone
* Copyright (C) 2019-2021 Amarisoft
*/
{
#define N_ANTENNA_DL 1
#define TDD 1
#define CELL_BANDWIDTH 40
#define UE_COUNT 3 // number of simulated UEs 208970100001127, 208970100001128, 208970100001129
log_options: "all.level=error,all.max_size=0,nas.level=debug,nas.max_size=1,rrc.level=debug,rrc.max_size=1",
log_filename: "/tmp/ue0.log",
/* Enable remote API and Web interface */
com_addr: "0.0.0.0:9002",
include "rf_driver/1chan.cfg",
/* If true, allow the simulation of several UEs at the same time and allow dynamic UE creation from remote API */
cell_groups: [{
group_type: "nr",
multi_ue: true,
cells: [{
rf_port: 0,
bandwidth: CELL_BANDWIDTH,
#if TDD == 1
band: 78,
dl_nr_arfcn:621312,
ssb_nr_arfcn:621312,
//band: 41,
//dl_nr_arfcn:517020,
//ssb_nr_arfcn:516990,
#else
band: 7,
dl_nr_arfcn: 536020,
ssb_nr_arfcn: 535930,
ssb_subcarrier_spacing: 15,
#endif
subcarrier_spacing: 30,
n_antenna_dl: N_ANTENNA_DL,
n_antenna_ul: 1,
rx_to_tx_latency:2,
}],
}],
/* Enable it to allow sim_events to be handled remotely */
//rue_bind_addr: "127.0.10.11",
ue_list: [
{
/* UE capabilities */
/* USIM data */
"ue_id" : 0,
"imsi": "208970100001127",
"K": "fec86ba6eb707ed08905757b1bb44b8f",
"sim_algo":"milenage",
"op": "1006020f0a478bf6b699f15c062e42b3",
as_release: 15,
ue_category: "nr",
apn:"oai",
attach_pdn_type:"ipv4",
default_nssai: [
{
sst: 1,
sd: 66051,
},
],
default_pdu_session_snssai: {
sst: 1,
sd: 66051,
},
/* Enable it to allow sim_events to be handled remotely */
//rue_addr: "127.1.0.0",
/* Enable it to create a TUN interface for each UE PDN */
tun_setup_script: "ue-ifup",
sim_events: [
{
event: "power_on",
start_time: 5,
},
{
event: "power_off",
start_time: 30,
}
] /*end sim events */
}, /*end UE object 0*/
{
/* UE capabilities */
/* USIM data */
"ue_id" : 1,
"imsi": "208970100001128",
"K": "fec86ba6eb707ed08905757b1bb44b8f",
"sim_algo":"milenage",
"op": "1006020f0a478bf6b699f15c062e42b3",
as_release: 15,
ue_category: "nr",
apn:"oai",
attach_pdn_type:"ipv4",
default_nssai: [
{
sst: 1,
sd: 66051,
},
],
default_pdu_session_snssai: {
sst: 1,
sd: 66051,
},
/* Enable it to allow sim_events to be handled remotely */
//rue_addr: "127.1.0.0",
/* Enable it to create a TUN interface for each UE PDN */
tun_setup_script: "ue-ifup",
sim_events: [
{
event: "power_on",
start_time: 5,
},
{
event: "power_off",
start_time: 30,
}
] /*end sim events */
}, /*end UE object 1*/
{
/* UE capabilities */
/* USIM data */
"ue_id" : 2,
"imsi": "208970100001129",
"K": "fec86ba6eb707ed08905757b1bb44b8f",
"sim_algo":"milenage",
"op": "1006020f0a478bf6b699f15c062e42b3",
as_release: 15,
ue_category: "nr",
apn:"oai",
attach_pdn_type:"ipv4",
default_nssai: [
{
sst: 1,
sd: 66051,
},
],
default_pdu_session_snssai: {
sst: 1,
sd: 66051,
},
/* Enable it to allow sim_events to be handled remotely */
//rue_addr: "127.1.0.0",
/* Enable it to create a TUN interface for each UE PDN */
tun_setup_script: "ue-ifup",
sim_events: [
{
event: "power_on",
start_time: 5,
},
{
event: "power_off",
start_time: 30,
}
] /*end sim events */
} /*end UE object 2*/
],/*end UE list*/
}/*end json*/

View File

@@ -1,142 +0,0 @@
/* UE simulator configuration */
/* UE simulator configuration file version 2021-06-17
* LTE / 5G Non StandAlone
* Copyright (C) 2019-2021 Amarisoft
*/
{
#define N_ANTENNA_DL 1
#define TDD 1
#define CELL_BANDWIDTH 40
#define UE_COUNT 2 // number of simulated UEs 208970100001127, 208970100001128, 208970100001129
log_options: "all.level=error,all.max_size=0,nas.level=debug,nas.max_size=1,rrc.level=debug,rrc.max_size=1",
log_filename: "/tmp/ue0.log",
/* Enable remote API and Web interface */
com_addr: "0.0.0.0:9002",
include "rf_driver/1chan.cfg",
/* If true, allow the simulation of several UEs at the same time and allow dynamic UE creation from remote API */
cell_groups: [{
group_type: "nr",
multi_ue: true,
cells: [{
rf_port: 0,
bandwidth: CELL_BANDWIDTH,
#if TDD == 1
band: 78,
dl_nr_arfcn:621312,
ssb_nr_arfcn:621312,
//band: 41,
//dl_nr_arfcn:517020,
//ssb_nr_arfcn:516990,
#else
band: 7,
dl_nr_arfcn: 536020,
ssb_nr_arfcn: 535930,
ssb_subcarrier_spacing: 15,
#endif
subcarrier_spacing: 30,
n_antenna_dl: N_ANTENNA_DL,
n_antenna_ul: 1,
rx_to_tx_latency:2,
}],
}],
/* Enable it to allow sim_events to be handled remotely */
//rue_bind_addr: "127.0.10.11",
ue_list: [
{
/* UE capabilities */
/* USIM data */
"ue_id" : 1,
"imsi": "208970100001127",
"K": "fec86ba6eb707ed08905757b1bb44b8f",
"sim_algo":"milenage",
"op": "1006020f0a478bf6b699f15c062e42b3",
as_release: 15,
ue_category: "nr",
apn:"oai",
attach_pdn_type:"ipv4",
default_nssai: [
{
sst: 1,
sd: 66051,
},
],
default_pdu_session_snssai: {
sst: 1,
sd: 66051,
},
/* Enable it to allow sim_events to be handled remotely */
//rue_addr: "127.1.0.0",
/* Enable it to create a TUN interface for each UE PDN */
tun_setup_script: "ue-ifup",
sim_events: [
{
event: "power_on",
start_time: 5,
},
{
event: "power_off",
start_time: 30,
}
] /*end sim events */
}, /*end UE object 0*/
{
/* UE capabilities */
/* USIM data */
"ue_id" : 2,
"imsi": "208970100001128",
"K": "fec86ba6eb707ed08905757b1bb44b8f",
"sim_algo":"milenage",
"op": "1006020f0a478bf6b699f15c062e42b3",
as_release: 15,
ue_category: "nr",
apn:"oai",
attach_pdn_type:"ipv4",
default_nssai: [
{
sst: 1,
sd: 66051,
},
],
default_pdu_session_snssai: {
sst: 1,
sd: 66051,
},
/* Enable it to allow sim_events to be handled remotely */
//rue_addr: "127.1.0.0",
/* Enable it to create a TUN interface for each UE PDN */
tun_setup_script: "ue-ifup",
sim_events: [
{
event: "power_on",
start_time: 5,
},
{
"tag": "ping",
"prog":"oai_ext_app.sh",
start_time: 15,
end_time: 25,
"args":["ping 192.168.70.136"],
"event":"ext_app"
},
{
event: "power_off",
start_time: 30,
}
] /*end sim events */
} /*end UE object 1*/
],/*end UE list*/
}/*end json*/

View File

@@ -1,150 +0,0 @@
/* UE simulator configuration */
/* UE simulator configuration file version 2021-06-17
* LTE / 5G Non StandAlone
* Copyright (C) 2019-2021 Amarisoft
*/
{
#define N_ANTENNA_DL 1
#define TDD 1
#define CELL_BANDWIDTH 40
#define UE_COUNT 2 // number of simulated UEs 208970100001127, 208970100001128, 208970100001129
log_options: "all.level=error,all.max_size=0,nas.level=debug,nas.max_size=1,rrc.level=debug,rrc.max_size=1",
log_filename: "/tmp/ue0.log",
/* Enable remote API and Web interface */
com_addr: "0.0.0.0:9002",
include "rf_driver/1chan.cfg",
/* If true, allow the simulation of several UEs at the same time and allow dynamic UE creation from remote API */
cell_groups: [{
group_type: "nr",
multi_ue: true,
cells: [{
rf_port: 0,
bandwidth: CELL_BANDWIDTH,
#if TDD == 1
band: 78,
dl_nr_arfcn:621312,
ssb_nr_arfcn:621312,
//band: 41,
//dl_nr_arfcn:517020,
//ssb_nr_arfcn:516990,
#else
band: 7,
dl_nr_arfcn: 536020,
ssb_nr_arfcn: 535930,
ssb_subcarrier_spacing: 15,
#endif
subcarrier_spacing: 30,
n_antenna_dl: N_ANTENNA_DL,
n_antenna_ul: 1,
rx_to_tx_latency:2,
}],
}],
/* Enable it to allow sim_events to be handled remotely */
//rue_bind_addr: "127.0.10.11",
ue_list: [
{
/* UE capabilities */
/* USIM data */
"ue_id" : 1,
"imsi": "208970100001127",
"K": "fec86ba6eb707ed08905757b1bb44b8f",
"sim_algo":"milenage",
"op": "1006020f0a478bf6b699f15c062e42b3",
as_release: 15,
ue_category: "nr",
apn:"oai",
attach_pdn_type:"ipv4",
default_nssai: [
{
sst: 1,
sd: 66051,
},
],
default_pdu_session_snssai: {
sst: 1,
sd: 66051,
},
/* Enable it to allow sim_events to be handled remotely */
//rue_addr: "127.1.0.0",
/* Enable it to create a TUN interface for each UE PDN */
tun_setup_script: "ue-ifup",
sim_events: [
{
event: "power_on",
start_time: 5,
},
{
"tag": "ping",
"prog":"oai_ext_app.sh",
start_time: 15,
end_time: 25,
"args":["ping 192.168.70.136"],
"event":"ext_app"
},
{
event: "power_off",
start_time: 30,
}
] /*end sim events */
}, /*end UE object 0*/
{
/* UE capabilities */
/* USIM data */
"ue_id" : 2,
"imsi": "208970100001128",
"K": "fec86ba6eb707ed08905757b1bb44b8f",
"sim_algo":"milenage",
"op": "1006020f0a478bf6b699f15c062e42b3",
as_release: 15,
ue_category: "nr",
apn:"oai",
attach_pdn_type:"ipv4",
default_nssai: [
{
sst: 1,
sd: 66051,
},
],
default_pdu_session_snssai: {
sst: 1,
sd: 66051,
},
/* Enable it to allow sim_events to be handled remotely */
//rue_addr: "127.1.0.0",
/* Enable it to create a TUN interface for each UE PDN */
tun_setup_script: "ue-ifup",
sim_events: [
{
event: "power_on",
start_time: 5,
},
{
"tag": "ping",
"prog":"oai_ext_app.sh",
start_time: 15,
end_time: 25,
"args":["ping 192.168.70.136"],
"event":"ext_app"
},
{
event: "power_off",
start_time: 30,
}
] /*end sim events */
} /*end UE object 1*/
],/*end UE list*/
}/*end json*/

View File

@@ -1,150 +0,0 @@
/* UE simulator configuration */
/* UE simulator configuration file version 2021-06-17
* LTE / 5G Non StandAlone
* Copyright (C) 2019-2021 Amarisoft
*/
{
#define N_ANTENNA_DL 1
#define TDD 1
#define CELL_BANDWIDTH 40
#define UE_COUNT 2 // number of simulated UEs 208970100001127, 208970100001128, 208970100001129
log_options: "all.level=error,all.max_size=0,nas.level=debug,nas.max_size=1,rrc.level=debug,rrc.max_size=1",
log_filename: "/tmp/ue0.log",
/* Enable remote API and Web interface */
com_addr: "0.0.0.0:9002",
include "rf_driver/1chan.cfg",
/* If true, allow the simulation of several UEs at the same time and allow dynamic UE creation from remote API */
cell_groups: [{
group_type: "nr",
multi_ue: true,
cells: [{
rf_port: 0,
bandwidth: CELL_BANDWIDTH,
#if TDD == 1
band: 78,
dl_nr_arfcn:621312,
ssb_nr_arfcn:621312,
//band: 41,
//dl_nr_arfcn:517020,
//ssb_nr_arfcn:516990,
#else
band: 7,
dl_nr_arfcn: 536020,
ssb_nr_arfcn: 535930,
ssb_subcarrier_spacing: 15,
#endif
subcarrier_spacing: 30,
n_antenna_dl: N_ANTENNA_DL,
n_antenna_ul: 1,
rx_to_tx_latency:2,
}],
}],
/* Enable it to allow sim_events to be handled remotely */
//rue_bind_addr: "127.0.10.11",
ue_list: [
{
/* UE capabilities */
/* USIM data */
"ue_id" : 1,
"imsi": "208970100001127",
"K": "fec86ba6eb707ed08905757b1bb44b8f",
"sim_algo":"milenage",
"op": "1006020f0a478bf6b699f15c062e42b3",
as_release: 15,
ue_category: "nr",
apn:"oai",
attach_pdn_type:"ipv4",
default_nssai: [
{
sst: 1,
sd: 66051,
},
],
default_pdu_session_snssai: {
sst: 1,
sd: 66051,
},
/* Enable it to allow sim_events to be handled remotely */
//rue_addr: "127.1.0.0",
/* Enable it to create a TUN interface for each UE PDN */
tun_setup_script: "ue-ifup",
sim_events: [
{
event: "power_on",
start_time: 5,
},
{
"tag": "ping",
"prog":"oai_ext_app.sh",
start_time: 20,
end_time: 30,
"args":["ping 192.168.70.136"],
"event":"ext_app"
},
{
event: "power_off",
start_time: 60,
}
] /*end sim events */
}, /*end UE object 0*/
{
/* UE capabilities */
/* USIM data */
"ue_id" : 2,
"imsi": "208970100001128",
"K": "fec86ba6eb707ed08905757b1bb44b8f",
"sim_algo":"milenage",
"op": "1006020f0a478bf6b699f15c062e42b3",
as_release: 15,
ue_category: "nr",
apn:"oai",
attach_pdn_type:"ipv4",
default_nssai: [
{
sst: 1,
sd: 66051,
},
],
default_pdu_session_snssai: {
sst: 1,
sd: 66051,
},
/* Enable it to allow sim_events to be handled remotely */
//rue_addr: "127.1.0.0",
/* Enable it to create a TUN interface for each UE PDN */
tun_setup_script: "ue-ifup",
sim_events: [
{
event: "power_on",
start_time: 5,
},
{
"tag": "ping",
"prog":"oai_ext_app.sh",
start_time: 40,
end_time: 50,
"args":["ping 192.168.70.136"],
"event":"ext_app"
},
{
event: "power_off",
start_time: 60,
}
] /*end sim events */
} /*end UE object 1*/
],/*end UE list*/
}/*end json*/

View File

@@ -1,113 +0,0 @@
/* UE simulator configuration */
/* UE simulator configuration file version 2021-06-17
* LTE / 5G Non StandAlone
* Copyright (C) 2019-2021 Amarisoft
*/
{
#define N_ANTENNA_DL 1
#define TDD 1
#define CELL_BANDWIDTH 40
log_options: "all.level=error,all.max_size=0,nas.level=debug,nas.max_size=1,rrc.level=debug,rrc.max_size=1",
log_filename: "/tmp/ue1.log",
/* Enable remote API and Web interface */
com_addr: "0.0.0.0:9002",
include "rf_driver/1chan.cfg",
/* If true, allow the simulation of several UEs at the same time and
allow dynamic UE creation from remote API */
cell_groups: [{
group_type: "nr",
multi_ue: false,
cells: [{
rf_port: 0,
bandwidth: CELL_BANDWIDTH,
#if TDD == 1
band: 78,
dl_nr_arfcn:621312,
ssb_nr_arfcn:621312,
//band: 41,
//dl_nr_arfcn:517020,
//ssb_nr_arfcn:516990,
#else
band: 7,
dl_nr_arfcn: 536020,
ssb_nr_arfcn: 535930,
ssb_subcarrier_spacing: 15,
#endif
subcarrier_spacing: 30,
n_antenna_dl: N_ANTENNA_DL,
n_antenna_ul: 1,
rx_to_tx_latency:2,
}],
}],
/* Enable it to allow sim_events to be handled remotely */
//rue_bind_addr: "127.0.10.11",
ue_list: [
{
/* UE capabilities */
/* USIM data */
"imsi": "208970100001127",
"K": "fec86ba6eb707ed08905757b1bb44b8f",
"sim_algo":"milenage",
"op": "1006020f0a478bf6b699f15c062e42b3",
as_release: 15,
ue_category: "nr",
apn:"oai",
attach_pdn_type:"ipv4",
default_nssai: [
{
sst: 1,
sd: 66051,
},
],
default_pdu_session_snssai: {
sst: 1,
sd: 66051,
},
/* Enable it to allow sim_events to be handled remotely */
//rue_addr: "127.1.0.0",
/* Enable it to create a TUN interface for each UE PDN */
tun_setup_script: "ue-ifup",
sim_events: [{
event: "power_on",
start_time: 5,
}, {
"tag": "ping",
"prog":"oai_ext_app.sh",
start_time: 15,
end_time: 25,
"args":["ping 192.168.70.136"],
"event":"ext_app"
},
{
event: "power_off",
start_time: 30,
}]
}
],
}

View File

@@ -1,109 +0,0 @@
/* UE simulator configuration */
/* UE simulator configuration file version 2021-06-17
* LTE / 5G Non StandAlone
* Copyright (C) 2019-2021 Amarisoft
*/
{
#define N_ANTENNA_DL 1
#define TDD 1
#define CELL_BANDWIDTH 20
log_options: "all.level=error,all.max_size=0,nas.level=debug,nas.max_size=1,rrc.level=debug,rrc.max_size=1",
log_filename: "/tmp/ue0.log",
/* Enable remote API and Web interface */
com_addr: "0.0.0.0:9002",
include "rf_driver/1chan.cfg",
/* If true, allow the simulation of several UEs at the same time and
allow dynamic UE creation from remote API */
cell_groups: [{
group_type: "nr",
multi_ue: false,
cells: [{
rf_port: 0,
bandwidth: CELL_BANDWIDTH,
#if TDD == 1
// band: 78,
// dl_nr_arfcn:621312,
// ssb_nr_arfcn:621312,*/
band: 41,
dl_nr_arfcn:517020,
ssb_nr_arfcn:516990,
#else
band: 7,
dl_nr_arfcn: 536020,
ssb_nr_arfcn: 535930,
ssb_subcarrier_spacing: 15,
#endif
subcarrier_spacing: 30,
n_antenna_dl: N_ANTENNA_DL,
n_antenna_ul: 1,
rx_to_tx_latency:2,
}],
}],
/* Enable it to allow sim_events to be handled remotely */
//rue_bind_addr: "127.0.10.11",
ue_list: [
{
/* UE capabilities */
/* USIM data */
"imsi": "208970100001127",
"K": "fec86ba6eb707ed08905757b1bb44b8f",
"sim_algo":"milenage",
"op": "1006020f0a478bf6b699f15c062e42b3",
as_release: 15,
ue_category: "nr",
apn:"oai",
attach_pdn_type:"ipv4",
default_nssai: [
{
sst: 1,
sd: 1,
},
],
default_pdu_session_snssai: {
sst: 1,
sd: 1,
},
/* Enable it to allow sim_events to be handled remotely */
//rue_addr: "127.1.0.0",
/* Enable it to create a TUN interface for each UE PDN */
tun_setup_script: "ue-ifup",
sim_events: [{
event: "power_on",
start_time: 5,
}, {
event: "ext_app",
start_time: 15,
end_time: 25,
prog: "ext_app.sh",
args: ["iperf", " -c 172.21.10.5", " -u"," -b 1M"," -i 1"," -t 10"]
}, {
event: "power_off",
start_time: 30,
}]
}
],
}

View File

@@ -49,75 +49,75 @@ adb_ue_2:
amarisoft_ue:
Host: amariue
InitScript: nohup /root/NV18-06-2022/ue/lteue /root/NV18-06-2022/ue/config/oaicicd-ue-ci-test.cfg &
TermScript: /root/NV18-06-2022/lteue-linux-2022-06-18/doc/ws.js 127.0.0.1:9002 '{"message":"quit"}'
InitScript: /root/NV18-06-2022/lteue-linux-2023-03-17/lteue /root/oaicicd/ran_sa_aw2s_asue/aw2s-asue.cfg &
TermScript: /root/NV18-06-2022/lteue-linux-2023-03-17/doc/ws.js 127.0.0.1:9002 '{"message":"quit"}'
amarisoft_ue_1:
Host: amariue
AttachScript: /root/NV18-06-2022/lteue-linux-2022-06-18/doc/ws.js 127.0.0.1:9002 '{"message":"power_on","ue_id":1}'
DetachScript: /root/NV18-06-2022/lteue-linux-2022-06-18/doc/ws.js 127.0.0.1:9002 '{"message":"power_off","ue_id":1}'
AttachScript: /root/NV18-06-2022/lteue-linux-2023-03-17/doc/ws.js 127.0.0.1:9002 '{"message":"power_on","ue_id":1}'
DetachScript: /root/NV18-06-2022/lteue-linux-2023-03-17/doc/ws.js 127.0.0.1:9002 '{"message":"power_off","ue_id":1}'
UENetworkScript: ip netns exec ue1 ip a show dev pdn0
CmdPrefix: ip netns exec ue1
MTU: 1500
amarisoft_ue_2:
Host: amariue
AttachScript: /root/NV18-06-2022/lteue-linux-2022-06-18/doc/ws.js 127.0.0.1:9002 '{"message":"power_on","ue_id":2}'
DetachScript: /root/NV18-06-2022/lteue-linux-2022-06-18/doc/ws.js 127.0.0.1:9002 '{"message":"power_off","ue_id":2}'
AttachScript: /root/NV18-06-2022/lteue-linux-2023-03-17/doc/ws.js 127.0.0.1:9002 '{"message":"power_on","ue_id":2}'
DetachScript: /root/NV18-06-2022/lteue-linux-2023-03-17/doc/ws.js 127.0.0.1:9002 '{"message":"power_off","ue_id":2}'
UENetworkScript: ip netns exec ue2 ip a show dev pdn0
CmdPrefix: ip netns exec ue2
MTU: 1500
amarisoft_ue_3:
Host: amariue
AttachScript: /root/NV18-06-2022/lteue-linux-2022-06-18/doc/ws.js 127.0.0.1:9002 '{"message":"power_on","ue_id":3}'
DetachScript: /root/NV18-06-2022/lteue-linux-2022-06-18/doc/ws.js 127.0.0.1:9002 '{"message":"power_off","ue_id":3}'
AttachScript: /root/NV18-06-2022/lteue-linux-2023-03-17/doc/ws.js 127.0.0.1:9002 '{"message":"power_on","ue_id":3}'
DetachScript: /root/NV18-06-2022/lteue-linux-2023-03-17/doc/ws.js 127.0.0.1:9002 '{"message":"power_off","ue_id":3}'
UENetworkScript: ip netns exec ue3 ip a show dev pdn0
CmdPrefix: ip netns exec ue3
MTU: 1500
amarisoft_ue_4:
Host: amariue
AttachScript: /root/NV18-06-2022/lteue-linux-2022-06-18/doc/ws.js 127.0.0.1:9002 '{"message":"power_on","ue_id":4}'
DetachScript: /root/NV18-06-2022/lteue-linux-2022-06-18/doc/ws.js 127.0.0.1:9002 '{"message":"power_off","ue_id":4}'
AttachScript: /root/NV18-06-2022/lteue-linux-2023-03-17/doc/ws.js 127.0.0.1:9002 '{"message":"power_on","ue_id":4}'
DetachScript: /root/NV18-06-2022/lteue-linux-2023-03-17/doc/ws.js 127.0.0.1:9002 '{"message":"power_off","ue_id":4}'
UENetworkScript: ip netns exec ue4 ip a show dev pdn0
CmdPrefix: ip netns exec ue4
MTU: 1500
amarisoft_ue_5:
Host: amariue
AttachScript: /root/NV18-06-2022/lteue-linux-2022-06-18/doc/ws.js 127.0.0.1:9002 '{"message":"power_on","ue_id":5}'
DetachScript: /root/NV18-06-2022/lteue-linux-2022-06-18/doc/ws.js 127.0.0.1:9002 '{"message":"power_off","ue_id":5}'
AttachScript: /root/NV18-06-2022/lteue-linux-2023-03-17/doc/ws.js 127.0.0.1:9002 '{"message":"power_on","ue_id":5}'
DetachScript: /root/NV18-06-2022/lteue-linux-2023-03-17/doc/ws.js 127.0.0.1:9002 '{"message":"power_off","ue_id":5}'
UENetworkScript: ip netns exec ue5 ip a show dev pdn0
CmdPrefix: ip netns exec ue5
MTU: 1500
amarisoft_ue_6:
Host: amariue
AttachScript: /root/NV18-06-2022/lteue-linux-2022-06-18/doc/ws.js 127.0.0.1:9002 '{"message":"power_on","ue_id":6}'
DetachScript: /root/NV18-06-2022/lteue-linux-2022-06-18/doc/ws.js 127.0.0.1:9002 '{"message":"power_off","ue_id":6}'
AttachScript: /root/NV18-06-2022/lteue-linux-2023-03-17/doc/ws.js 127.0.0.1:9002 '{"message":"power_on","ue_id":6}'
DetachScript: /root/NV18-06-2022/lteue-linux-2023-03-17/doc/ws.js 127.0.0.1:9002 '{"message":"power_off","ue_id":6}'
UENetworkScript: ip netns exec ue6 ip a show dev pdn0
CmdPrefix: ip netns exec ue6
MTU: 1500
amarisoft_ue_7:
Host: amariue
AttachScript: /root/NV18-06-2022/lteue-linux-2022-06-18/doc/ws.js 127.0.0.1:9002 '{"message":"power_on","ue_id":7}'
DetachScript: /root/NV18-06-2022/lteue-linux-2022-06-18/doc/ws.js 127.0.0.1:9002 '{"message":"power_off","ue_id":7}'
AttachScript: /root/NV18-06-2022/lteue-linux-2023-03-17/doc/ws.js 127.0.0.1:9002 '{"message":"power_on","ue_id":7}'
DetachScript: /root/NV18-06-2022/lteue-linux-2023-03-17/doc/ws.js 127.0.0.1:9002 '{"message":"power_off","ue_id":7}'
UENetworkScript: ip netns exec ue7 ip a show dev pdn0
CmdPrefix: ip netns exec ue7
MTU: 1500
amarisoft_ue_8:
Host: amariue
AttachScript: /root/NV18-06-2022/lteue-linux-2022-06-18/doc/ws.js 127.0.0.1:9002 '{"message":"power_on","ue_id":8}'
DetachScript: /root/NV18-06-2022/lteue-linux-2022-06-18/doc/ws.js 127.0.0.1:9002 '{"message":"power_off","ue_id":8}'
AttachScript: /root/NV18-06-2022/lteue-linux-2023-03-17/doc/ws.js 127.0.0.1:9002 '{"message":"power_on","ue_id":8}'
DetachScript: /root/NV18-06-2022/lteue-linux-2023-03-17/doc/ws.js 127.0.0.1:9002 '{"message":"power_off","ue_id":8}'
UENetworkScript: ip netns exec ue8 ip a show dev pdn0
CmdPrefix: ip netns exec ue8
MTU: 1500
amarisoft_ue_9:
Host: amariue
AttachScript: /root/NV18-06-2022/lteue-linux-2022-06-18/doc/ws.js 127.0.0.1:9002 '{"message":"power_on","ue_id":9}'
DetachScript: /root/NV18-06-2022/lteue-linux-2022-06-18/doc/ws.js 127.0.0.1:9002 '{"message":"power_off","ue_id":9}'
AttachScript: /root/NV18-06-2022/lteue-linux-2023-03-17/doc/ws.js 127.0.0.1:9002 '{"message":"power_on","ue_id":9}'
DetachScript: /root/NV18-06-2022/lteue-linux-2023-03-17/doc/ws.js 127.0.0.1:9002 '{"message":"power_off","ue_id":9}'
UENetworkScript: ip netns exec ue9 ip a show dev pdn0
CmdPrefix: ip netns exec ue9
MTU: 1500
amarisoft_ue_10:
Host: amariue
AttachScript: /root/NV18-06-2022/lteue-linux-2022-06-18/doc/ws.js 127.0.0.1:9002 '{"message":"power_on","ue_id":10}'
DetachScript: /root/NV18-06-2022/lteue-linux-2022-06-18/doc/ws.js 127.0.0.1:9002 '{"message":"power_off","ue_id":10}'
AttachScript: /root/NV18-06-2022/lteue-linux-2023-03-17/doc/ws.js 127.0.0.1:9002 '{"message":"power_on","ue_id":10}'
DetachScript: /root/NV18-06-2022/lteue-linux-2023-03-17/doc/ws.js 127.0.0.1:9002 '{"message":"power_off","ue_id":10}'
UENetworkScript: ip netns exec ue10 ip a show dev pdn0
CmdPrefix: ip netns exec ue10
MTU: 1500

View File

@@ -40,6 +40,29 @@ import cls_cmd
IMAGE_REGISTRY_SERVICE_NAME = "image-registry.openshift-image-registry.svc"
NAMESPACE = "oaicicd-ran"
OCUrl = "https://api.oai.cs.eurecom.fr:6443"
OCRegistry = "default-route-openshift-image-registry.apps.oai.cs.eurecom.fr/"
def OC_login(cmd, ocUserName, ocPassword, ocProjectName):
if ocUserName == '' or ocPassword == '' or ocProjectName == '':
HELP.GenericHelp(CONST.Version)
sys.exit('Insufficient Parameter: no OC Credentials')
if OCRegistry.startswith("http") and not self.OCRegistry.endswith("/"):
sys.exit(f'ocRegistry {OCRegistry} should not start with http:// or https:// and end on a slash /')
ret = cmd.run(f'oc login -u {ocUserName} -p {ocPassword} --server {OCUrl}')
if ret.returncode != 0:
logging.error('\u001B[1m OC Cluster Login Failed\u001B[0m')
return False
ret = cmd.run(f'oc project {ocProjectName}')
if ret.returncode != 0:
logging.error(f'\u001B[1mUnable to access OC project {ocProjectName}\u001B[0m')
OC_logout(cmd)
return False
return True
def OC_logout(cmd):
cmd.run(f'oc logout')
class Cluster:
def __init__(self):
@@ -57,7 +80,7 @@ class Cluster:
self.ranAllowMerge = False
self.ranTargetBranch = ""
self.cmd = None
self.imageToPull = ''
def _recreate_entitlements(self):
# recreating entitlements, don't care if deletion fails
@@ -170,11 +193,47 @@ class Cluster:
def _undeploy_pod(self, filename):
self.cmd.run(f'oc delete -f {filename}')
def PullClusterImage(self, HTML, RAN):
if self.imageToPull == '':
HELP.GenericHelp(CONST.Version)
HELP.EPCSrvHelp(self.imageToPull)
sys.exit('Insufficient eNB Parameters')
lIpAddr = self.eNBIPAddress
self.testCase_id = HTML.testCase_id
cmd = cls_cmd.getConnection(lIpAddr)
succeeded = OC_login(cmd, self.OCUserName, self.OCPassword, self.OCProjectName)
if not succeeded:
logging.error('\u001B[1m OC Cluster Login Failed\u001B[0m')
HTML.CreateHtmlTestRow('N/A', 'KO', CONST.OC_LOGIN_FAIL)
return False
ret = cmd.run(f'oc whoami -t | docker login -u oaicicd --password-stdin {self.OCRegistry}')
if ret.returncode != 0:
logging.error(f'\u001B[1m Unable to access OC project {ocProjectName}\u001B[0m')
OC_logout(cmd)
cmd.close()
HTML.CreateHtmlTestRow('N/A', 'KO', CONST.OC_LOGIN_FAIL)
return False
for image in self.imageToPull:
imagePrefix = f'{self.OCRegistry}{self.OCProjectName}'
imageTag = cls_containerize.ImageTagToUse(image, self.ranCommitID, self.ranBranch, self.ranAllowMerge)
ret = cmd.run(f'docker pull {imagePrefix}/{imageTag}')
if ret.returncode != 0:
logging.error(f'Could not pull {image} from local registry : {self.OCRegistry}')
OC_logout(cmd)
cmd.close()
HTML.CreateHtmlTestRow('msg', 'KO', CONST.ALL_PROCESSES_OK)
return False
cmd.run(f'docker tag {imagePrefix}/{imageTag} oai-ci/{imageTag}')
cmd.run(f'docker rmi {imagePrefix}/{imageTag}')
OC_logout(cmd)
cmd.close()
HTML.CreateHtmlTestRow('N/A', 'OK', CONST.ALL_PROCESSES_OK)
return True
def BuildClusterImage(self, HTML):
if self.ranRepository == '' or self.ranBranch == '' or self.ranCommitID == '':
HELP.GenericHelp(CONST.Version)
sys.exit(f'Insufficient Parameter: ranRepository {self.ranRepository} ranBranch {ranBranch} ranCommitID {self.ranCommitID}')
lIpAddr = self.eNBIPAddress
lSourcePath = self.eNBSourceCodePath
if lIpAddr == '' or lSourcePath == '':
@@ -204,7 +263,6 @@ class Cluster:
baseTag = 'develop'
forceBaseImageBuild = False
imageTag = 'develop'
if self.ranAllowMerge: # merging MR branch into develop -> temporary image
imageTag = f'{self.ranBranch}-{self.ranCommitID[0:8]}'
if self.ranTargetBranch == 'develop':
@@ -214,6 +272,7 @@ class Cluster:
forceBaseImageBuild = True
baseTag = 'ci-temp'
else:
imageTag = f'develop-{self.ranCommitID[0:8]}'
forceBaseImageBuild = True
# logging to OC Cluster and then switch to corresponding project
@@ -273,11 +332,18 @@ class Cluster:
ranbuild_job = self._start_build('ran-build')
attemptedImages += ['ran-build']
wait = ranbuild_job is not None and physim_job is not None and self._wait_build_end([ranbuild_job, physim_job], 1200)
if not wait: logging.error('error during build of ranbuild_job or physim_job')
self._recreate_is_tag('oai-clang', imageTag, 'openshift/oai-clang-is.yaml')
self._recreate_bc('oai-clang', imageTag, 'openshift/oai-clang-bc.yaml')
self._retag_image_statement('ran-base', 'image-registry.openshift-image-registry.svc:5000/oaicicd-ran/ran-base', baseTag, 'docker/Dockerfile.clang.rhel8.2')
clang_job = self._start_build('oai-clang')
attemptedImages += ['oai-clang']
wait = ranbuild_job is not None and physim_job is not None and clang_job is not None and self._wait_build_end([ranbuild_job, physim_job, clang_job], 1200)
if not wait: logging.error('error during build of ranbuild_job or physim_job or clang_job')
status = status and wait
self.cmd.run(f'oc logs {ranbuild_job} &> cmake_targets/log/ran-build.log')
self.cmd.run(f'oc logs {physim_job} &> cmake_targets/log/oai-physim.log')
self.cmd.run(f'oc logs {clang_job} &> cmake_targets/log/oai-clang.log')
self.cmd.run(f'oc get pods.metrics.k8s.io &>> cmake_targets/log/build-metrics.log', '\$', 10)
if status:

View File

@@ -31,8 +31,8 @@
#-----------------------------------------------------------
# Import
#-----------------------------------------------------------
import sys # arg
import re # reg
import sys # arg
import re # reg
import logging
import os
import shutil
@@ -47,6 +47,7 @@ from zipfile import ZipFile
#-----------------------------------------------------------
# OAI Testing modules
#-----------------------------------------------------------
import cls_cluster as OC
import cls_cmd
import sshconnection as SSH
import helpreadme as HELP
@@ -90,6 +91,15 @@ def CreateWorkspace(sshSession, sourcePath, ranRepository, ranCommitID, ranTarge
logging.debug(f'Merging with the target branch: {ranTargetBranch}')
sshSession.command(f'git merge --ff origin/{ranTargetBranch} -m "Temporary merge for CI"', '\$', 30)
def ImageTagToUse(imageName, ranCommitID, ranBranch, ranAllowMerge):
shortCommit = ranCommitID[0:8]
if ranAllowMerge:
tagToUse = f'{ranBranch}-{shortCommit}'
else:
tagToUse = f'develop-{shortCommit}'
fullTag = f'{imageName}:{tagToUse}'
return fullTag
def CopyLogsToExecutor(cmd, sourcePath, log_name):
cmd.cd(f'{sourcePath}/cmake_targets')
cmd.run(f'rm -f {log_name}.zip')
@@ -306,7 +316,6 @@ class Containerize():
self.registrySvrId = ''
self.testSvrId = ''
self.imageToPull = []
#checkers from xml
self.ran_checkers={}
@@ -383,7 +392,7 @@ class Containerize():
CreateWorkspace(cmd, lSourcePath, self.ranRepository, self.ranCommitID, self.ranTargetBranch, self.ranAllowMerge)
# if asterix, copy the entitlement and subscription manager configurations
# if asterix, copy the entitlement and subscription manager configurations
if self.host == 'Red Hat':
cmd.run('mkdir -p ./etc-pki-entitlement ./rhsm-conf ./rhsm-ca')
cmd.run('cp /etc/rhsm/rhsm.conf ./rhsm-conf/')
@@ -649,15 +658,6 @@ class Containerize():
HTML.CreateHtmlTestRow('commit ' + tag, 'OK', CONST.ALL_PROCESSES_OK)
HTML.CreateHtmlNextTabHeaderTestRow(collectInfo, allImagesSize)
def ImageTagToUse(self, imageName):
shortCommit = self.ranCommitID[0:8]
if self.ranAllowMerge:
tagToUse = f'{self.ranBranch}-{shortCommit}'
else:
tagToUse = f'develop-{shortCommit}'
fullTag = f'porcepix.sboai.cs.eurecom.fr/{imageName}:{tagToUse}'
return fullTag
def Push_Image_to_Local_Registry(self, HTML):
if self.registrySvrId == '0':
lIpAddr = self.eNBIPAddress
@@ -680,8 +680,8 @@ class Containerize():
logging.debug('Pushing images from server: ' + lIpAddr)
mySSH = SSH.SSHConnection()
mySSH.open(lIpAddr, lUserName, lPassWord)
mySSH.command('docker login -u oaicicd -p oaicicd porcepix.sboai.cs.eurecom.fr', '\$', 5)
imagePrefix = 'porcepix.sboai.cs.eurecom.fr'
mySSH.command(f'docker login -u oaicicd -p oaicicd {imagePrefix}', '\$', 5)
if re.search('Login Succeeded', mySSH.getBefore()) is None:
msg = 'Could not log into local registry'
logging.error(msg)
@@ -694,9 +694,9 @@ class Containerize():
orgTag = 'ci-temp'
imageNames = ['oai-enb', 'oai-gnb', 'oai-lte-ue', 'oai-nr-ue', 'oai-lte-ru', 'oai-nr-cuup']
for image in imageNames:
tagToUse = self.ImageTagToUse(image)
mySSH.command(f'docker image tag {image}:{orgTag} {tagToUse}', '\$', 5)
mySSH.command(f'docker push {tagToUse}', '\$', 120)
tagToUse = ImageTagToUse(image, self.ranCommitID, self.ranBranch, self.ranAllowMerge)
mySSH.command(f'docker image tag {image}:{orgTag} {imagePrefix}/{tagToUse}', '\$', 5)
mySSH.command(f'docker push {imagePrefix}/{tagToUse}', '\$', 120)
if re.search(': digest:', mySSH.getBefore()) is None:
logging.debug(mySSH.getBefore())
msg = f'Could not push {image} to local registry : {tagToUse}'
@@ -704,9 +704,9 @@ class Containerize():
mySSH.close()
HTML.CreateHtmlTestRow(msg, 'KO', CONST.ALL_PROCESSES_OK)
return False
mySSH.command(f'docker rmi {tagToUse} {image}:{orgTag}', '\$', 30)
mySSH.command(f'docker rmi {imagePrefix}/{tagToUse} {image}:{orgTag}', '\$', 30)
mySSH.command('docker logout porcepix.sboai.cs.eurecom.fr', '\$', 5)
mySSH.command(f'docker logout {imagePrefix}', '\$', 5)
if re.search('Removing login credentials', mySSH.getBefore()) is None:
msg = 'Could not log off from local registry'
logging.error(msg)
@@ -739,25 +739,18 @@ class Containerize():
if lIpAddr == '' or lUserName == '' or lPassWord == '' or lSourcePath == '':
HELP.GenericHelp(CONST.Version)
sys.exit('Insufficient Parameter')
if lIpAddr != 'none':
logging.debug('Pulling images onto server: ' + lIpAddr)
myCmd = cls_cmd.RemoteCmd(lIpAddr)
else:
logging.debug('Pulling images locally')
myCmd = cls_cmd.LocalCmd()
cmd = 'docker login -u oaicicd -p oaicicd porcepix.sboai.cs.eurecom.fr'
response = myCmd.run(cmd)
myCmd = cls_cmd.getConnection(lIpAddr)
imagePrefix = 'porcepix.sboai.cs.eurecom.fr'
response = myCmd.run(f'docker login -u oaicicd -p oaicicd {imagePrefix}')
if response.returncode != 0:
msg = 'Could not log into local registry'
logging.error(msg)
myCmd.close()
HTML.CreateHtmlTestRow(msg, 'KO', CONST.ALL_PROCESSES_OK)
return False
for image in self.imageToPull:
tagToUse = self.ImageTagToUse(image)
cmd = f'docker pull {tagToUse}'
tagToUse = ImageTagToUse(image, self.ranCommitID, self.ranBranch, self.ranAllowMerge)
cmd = f'docker pull {imagePrefix}/{tagToUse}'
response = myCmd.run(cmd, timeout=120)
if response.returncode != 0:
logging.debug(response)
@@ -766,16 +759,15 @@ class Containerize():
myCmd.close()
HTML.CreateHtmlTestRow('msg', 'KO', CONST.ALL_PROCESSES_OK)
return False
cmd = 'docker logout porcepix.sboai.cs.eurecom.fr'
response = myCmd.run(cmd)
myCmd.run(f'docker tag {imagePrefix}/{tagToUse} oai-ci/{tagToUse}')
myCmd.run(f'docker rmi {imagePrefix}/{tagToUse}')
response = myCmd.run(f'docker logout {imagePrefix}')
if response.returncode != 0:
msg = 'Could not log off from local registry'
logging.error(msg)
myCmd.close()
HTML.CreateHtmlTestRow(msg, 'KO', CONST.ALL_PROCESSES_OK)
return False
myCmd.close()
HTML.CreateHtmlTestRow('N/A', 'OK', CONST.ALL_PROCESSES_OK)
return True
@@ -810,7 +802,8 @@ class Containerize():
imageNames = ['oai-enb', 'oai-gnb', 'oai-lte-ue', 'oai-nr-ue', 'oai-lte-ru', 'oai-nr-cuup']
for image in imageNames:
cmd = f'docker rmi {self.ImageTagToUse(image)}'
imageTag = ImageTagToUse(image, self.ranCommitID, self.ranBranch, self.ranAllowMerge)
cmd = f'docker rmi oai-ci/{imageTag}'
myCmd.run(cmd, reportNonZero=False)
myCmd.close()
@@ -844,11 +837,11 @@ class Containerize():
CreateWorkspace(mySSH, lSourcePath, self.ranRepository, self.ranCommitID, self.ranTargetBranch, self.ranAllowMerge)
mySSH.command('cd ' + lSourcePath + '/' + self.yamlPath[self.eNB_instance], '\$', 5)
mySSH.command('cp docker-compose.yml ci-docker-compose.yml', '\$', 5)
imagesList = ['oai-enb', 'oai-gnb', 'oai-nr-cuup']
mySSH.command('cp docker-compose.y*ml ci-docker-compose.yml', '\$', 5)
imagesList = ['oai-enb', 'oai-gnb', 'oai-nr-cuup', 'oai-gnb-aw2s']
for image in imagesList:
imageToUse = self.ImageTagToUse(image)
mySSH.command(f'sed -i -e "s#image: {image}:latest#image: {imageToUse}#" ci-docker-compose.yml', '\$', 2)
imageTag = ImageTagToUse(image, self.ranCommitID, self.ranBranch, self.ranAllowMerge)
mySSH.command(f'sed -i -e "s#image: {image}:latest#image: oai-ci/{imageTag}#" ci-docker-compose.yml', '\$', 2)
localMmeIpAddr = EPC.MmeIPAddress
mySSH.command('sed -i -e "s/CI_MME_IP_ADDR/' + localMmeIpAddr + '/" ci-docker-compose.yml', '\$', 2)
@@ -966,6 +959,7 @@ class Containerize():
logging.debug('\u001B[1m Undeploying OAI Object from server: ' + lIpAddr + '\u001B[0m')
mySSH = SSH.SSHConnection()
mySSH.open(lIpAddr, lUserName, lPassWord)
mySSH.command('cd ' + lSourcePath + '/' + self.yamlPath[self.eNB_instance], '\$', 5)
svcName = self.services[self.eNB_instance]
@@ -980,8 +974,8 @@ class Containerize():
services = []
for s in allServices:
mySSH.command(f'docker-compose -f ci-docker-compose.yml ps --all -- {s}', '\$', 5, silent=False)
running = mySSH.getBefore().split('\r\n')[3:-1]
#logging.debug(f'running services: {running}')
running = mySSH.getBefore().split('\r\n')[2:-1]
logging.debug(f'running services: {running}')
if len(running) > 0: # something is running for that service
services.append(s)
logging.info(f'stopping services {services}')
@@ -1050,13 +1044,12 @@ class Containerize():
myCmd.close()
HTML.CreateHtmlTestRow('SVC not Found', 'KO', CONST.ALL_PROCESSES_OK)
return
cmd = 'cp docker-compose.y*ml docker-compose-ci.yml'
myCmd.run(cmd, silent=self.displayedNewTags)
imageNames = ['oai-enb', 'oai-gnb', 'oai-lte-ue', 'oai-nr-ue', 'oai-lte-ru', 'oai-nr-cuup']
for image in imageNames:
tagToUse = self.ImageTagToUse(image)
cmd = f'sed -i -e "s@oaisoftwarealliance/{image}:develop@{tagToUse}@" docker-compose-ci.yml'
tagToUse = ImageTagToUse(image, self.ranCommitID, self.ranBranch, self.ranAllowMerge)
cmd = f'sed -i -e "s@oaisoftwarealliance/{image}:develop@oai-ci/{tagToUse}@" docker-compose-ci.yml'
myCmd.run(cmd, silent=self.displayedNewTags)
self.displayedNewTags = True
@@ -1193,13 +1186,12 @@ class Containerize():
ymlPath = self.yamlPath[0].split('/')
logPath = '../cmake_targets/log/' + ymlPath[1]
myCmd = cls_cmd.LocalCmd(d = self.yamlPath[0])
cmd = 'cp docker-compose.y*ml docker-compose-ci.yml'
myCmd.run(cmd, silent=self.displayedNewTags)
imageNames = ['oai-enb', 'oai-gnb', 'oai-lte-ue', 'oai-nr-ue', 'oai-lte-ru', 'oai-nr-cuup']
for image in imageNames:
tagToUse = self.ImageTagToUse(image)
cmd = f'sed -i -e "s@oaisoftwarealliance/{image}:develop@{tagToUse}@" docker-compose-ci.yml'
tagToUse = ImageTagToUse(image, self.ranCommitID, self.ranBranch, self.ranAllowMerge)
cmd = f'sed -i -e "s@oaisoftwarealliance/{image}:develop@oai-ci/{tagToUse}@" docker-compose-ci.yml'
myCmd.run(cmd, silent=self.displayedNewTags)
self.displayedNewTags = True
@@ -1490,11 +1482,6 @@ class Containerize():
result = re.search('172.21.16.128', mySSH.getBefore())
if result is None:
mySSH.command('echo ' + password + ' | sudo -S ip route add 192.168.68.128/26 via 172.21.16.128 dev eno1', '\$', 10)
# Check if route to nepes gnb exists
mySSH.command('ip route | grep --colour=never "192.168.68.192/26"', '\$', 10)
result = re.search('172.21.16.137', mySSH.getBefore())
if result is None:
mySSH.command('echo ' + password + ' | sudo -S ip route add 192.168.68.192/26 via 172.21.16.137 dev eno1', '\$', 10)
# Check if forwarding is enabled
mySSH.command('sysctl net.ipv4.conf.all.forwarding', '\$', 10)
result = re.search('net.ipv4.conf.all.forwarding = 1', mySSH.getBefore())
@@ -1564,16 +1551,28 @@ class Containerize():
mySSH.close()
if svrName == 'nepes':
mySSH.open(ipAddr, userName, password)
# Check if route to porcepix epc exists
mySSH.command('ip route | grep --colour=never "192.168.61.192/26"', '\$', 10)
result = re.search('172.21.16.136', mySSH.getBefore())
# Check if route to ofqot gnb exists
mySSH.command('ip route | grep --colour=never "192.168.68.192/26"', '\$', 10)
result = re.search('172.21.16.109', mySSH.getBefore())
if result is None:
mySSH.command('echo ' + password + ' | sudo -S ip route add 192.168.61.192/26 via 172.21.16.136 dev enp0s31f6', '\$', 10)
# Check if X2 route to obelix enb exists
mySSH.command('echo ' + password + ' | sudo -S ip route add 192.168.68.192/26 via 172.21.16.109 dev enp0s31f6', '\$', 10)
mySSH.command('sysctl net.ipv4.conf.all.forwarding', '\$', 10)
result = re.search('net.ipv4.conf.all.forwarding = 1', mySSH.getBefore())
if result is None:
mySSH.command('echo ' + password + ' | sudo -S sysctl net.ipv4.conf.all.forwarding=1', '\$', 10)
# Check if iptables forwarding is accepted
mySSH.command('echo ' + password + ' | sudo -S iptables -L FORWARD', '\$', 10)
result = re.search('Chain FORWARD .*policy ACCEPT', mySSH.getBefore())
if result is None:
mySSH.command('echo ' + password + ' | sudo -S iptables -P FORWARD ACCEPT', '\$', 10)
mySSH.close()
if svrName == 'ofqot':
mySSH.open(ipAddr, userName, password)
# Check if X2 route to nepes enb/epc exists
mySSH.command('ip route | grep --colour=never "192.168.68.128/26"', '\$', 10)
result = re.search('172.21.16.128', mySSH.getBefore())
result = re.search('172.21.16.137', mySSH.getBefore())
if result is None:
mySSH.command('echo ' + password + ' | sudo -S ip route add 192.168.68.128/26 via 172.21.16.128 dev enp0s31f6', '\$', 10)
mySSH.command('echo ' + password + ' | sudo -S ip route add 192.168.68.128/26 via 172.21.16.137 dev enp2s0', '\$', 10)
# Check if forwarding is enabled
mySSH.command('sysctl net.ipv4.conf.all.forwarding', '\$', 10)
result = re.search('net.ipv4.conf.all.forwarding = 1', mySSH.getBefore())

View File

@@ -461,7 +461,7 @@ class OaiCiTest():
doInterfaceCheck = True
# For the moment, only in explicit noS1 without kernel module (ie w/ tunnel interface)
if self.air_interface == 'nr-uesoftmodem':
result = re.search('--noS1 --nokrnmod 1', str(self.Initialize_OAI_UE_args))
result = re.search('--noS1', str(self.Initialize_OAI_UE_args))
if result is not None:
doInterfaceCheck = True
if doInterfaceCheck:
@@ -605,6 +605,8 @@ class OaiCiTest():
Target = EPC.MmeIPAddress
elif re.match('OAICN5G', EPC.Type, re.IGNORECASE):
Target = EPC.MmeIPAddress
elif re.match('OC-OAI-CN5G', EPC.Type, re.IGNORECASE):
Target = "172.21.6.100"
else:
Target = EPC.IPAddress
#ping from module NIC rather than IP address to make sure round trip is over the air
@@ -1227,7 +1229,7 @@ class OaiCiTest():
raise Exception("could not corver prod-trf-gen IP address")
cn_target_ip = result.group('trf_ip_addr')
SSH.close()
cn_iperf_prefix = "docker exec -it prod-trf-gen" # -w /iperf-2.0.13 necessary?
cn_iperf_prefix = "docker exec prod-trf-gen" # -w /iperf-2.0.13 necessary?
else: # ltebox, sabox
cn_target_ip = "192.172.0.1"
cn_iperf_prefix = ""

View File

@@ -114,7 +114,7 @@ class PhySim:
logging.debug('Merging with the target branch: ' + self.ranTargetBranch)
mySSH.command('git merge --ff origin/' + self.ranTargetBranch + ' -m "Temporary merge for CI"', '\$', 30)
else:
imageTag = "develop"
imageTag = f'develop-{self.ranCommitID[0:8]}'
# logging to OC Cluster and then switch to corresponding project
mySSH.command(f'oc login -u {ocUserName} -p {ocPassword} --server https://api.oai.cs.eurecom.fr:6443', '\$', 30)

View File

@@ -172,7 +172,7 @@ eNBs =
////////// MME parameters:
mme_ip_address = ( { ipv4 = "CI_MME_IP_ADDR";
mme_ip_address = ( { ipv4 = "192.168.61.195";
ipv6 = "192:168:30::17";
active = "yes";
preference = "ipv4";
@@ -191,11 +191,11 @@ eNBs =
NETWORK_INTERFACES :
{
ENB_INTERFACE_NAME_FOR_S1_MME = "eno1";
ENB_IPV4_ADDRESS_FOR_S1_MME = "CI_ENB_IP_ADDR";
ENB_IPV4_ADDRESS_FOR_S1_MME = "172.21.16.128";
ENB_INTERFACE_NAME_FOR_S1U = "eno1";
ENB_IPV4_ADDRESS_FOR_S1U = "CI_ENB_IP_ADDR";
ENB_IPV4_ADDRESS_FOR_S1U = "172.21.16.128";
ENB_PORT_FOR_S1U = 2152; # Spec 2152
ENB_IPV4_ADDRESS_FOR_X2C = "CI_ENB_IP_ADDR";
ENB_IPV4_ADDRESS_FOR_X2C = "172.21.16.128";
ENB_PORT_FOR_X2C = 36422; # Spec 36422
};
}

View File

@@ -172,7 +172,7 @@ eNBs =
////////// MME parameters:
mme_ip_address = ( { ipv4 = "CI_MME_IP_ADDR";
mme_ip_address = ( { ipv4 = "192.168.61.195";
ipv6 = "192:168:30::17";
active = "yes";
preference = "ipv4";
@@ -191,11 +191,11 @@ eNBs =
NETWORK_INTERFACES :
{
ENB_INTERFACE_NAME_FOR_S1_MME = "eno1";
ENB_IPV4_ADDRESS_FOR_S1_MME = "CI_ENB_IP_ADDR";
ENB_IPV4_ADDRESS_FOR_S1_MME = "172.21.16.128";
ENB_INTERFACE_NAME_FOR_S1U = "eno1";
ENB_IPV4_ADDRESS_FOR_S1U = "CI_ENB_IP_ADDR";
ENB_IPV4_ADDRESS_FOR_S1U = "172.21.16.128";
ENB_PORT_FOR_S1U = 2152; # Spec 2152
ENB_IPV4_ADDRESS_FOR_X2C = "CI_ENB_IP_ADDR";
ENB_IPV4_ADDRESS_FOR_X2C = "172.21.16.128";
ENB_PORT_FOR_X2C = 36422; # Spec 36422
};
}

View File

@@ -169,7 +169,7 @@ gNBs =
////////// AMF parameters:
amf_ip_address = ( { ipv4 = "192.168.5.233";
amf_ip_address = ( { ipv4 = "192.168.70.132";
ipv6 = "192:168:30::17";
active = "yes";
preference = "ipv4";
@@ -178,11 +178,10 @@ gNBs =
NETWORK_INTERFACES :
{
GNB_INTERFACE_NAME_FOR_NG_AMF = "eth0";
GNB_IPV4_ADDRESS_FOR_NG_AMF = "CI_GNB_IP_ADDR";
GNB_INTERFACE_NAME_FOR_NGU = "eth0";
GNB_IPV4_ADDRESS_FOR_NGU = "CI_GNB_IP_ADDR";
GNB_INTERFACE_NAME_FOR_NG_AMF = "demo-oai";
GNB_IPV4_ADDRESS_FOR_NG_AMF = "192.168.70.129/24";
GNB_INTERFACE_NAME_FOR_NGU = "demo-oai";
GNB_IPV4_ADDRESS_FOR_NGU = "192.168.70.129/24";
GNB_PORT_FOR_S1U = 2152; # Spec 2152
};
}
@@ -213,7 +212,7 @@ security = {
rlc_log_level ="debug";
pdcp_log_level ="info";
rrc_log_level ="info";
f1ap_log_level ="debug";
f1ap_log_level ="info";
ngap_log_level ="debug";
};

View File

@@ -233,7 +233,7 @@ serveraddr = "server";
rlc_log_level ="info";
pdcp_log_level ="info";
rrc_log_level ="info";
f1ap_log_level ="debug";
f1ap_log_level ="info";
ngap_log_level ="debug";
};

View File

@@ -274,5 +274,5 @@ security = {
rlc_log_level ="info";
pdcp_log_level ="info";
rrc_log_level ="info";
f1ap_log_level ="debug";
f1ap_log_level ="info";
};

View File

@@ -270,5 +270,5 @@ security = {
rlc_log_level ="info";
pdcp_log_level ="info";
rrc_log_level ="info";
f1ap_log_level ="debug";
f1ap_log_level ="info";
};

View File

@@ -222,7 +222,7 @@ security = {
rlc_log_level ="debug";
pdcp_log_level ="info";
rrc_log_level ="info";
f1ap_log_level ="debug";
f1ap_log_level ="info";
ngap_log_level ="debug";
};

View File

@@ -81,7 +81,7 @@ security = {
rlc_log_level ="debug";
pdcp_log_level ="info";
rrc_log_level ="info";
f1ap_log_level ="debug";
f1ap_log_level ="info";
ngap_log_level ="debug";
};

View File

@@ -233,6 +233,6 @@ log_config :
rlc_log_level = "info";
pdcp_log_level = "info";
rrc_log_level = "info";
f1ap_log_level = "debug";
f1ap_log_level = "info";
ngap_log_level = "debug";
};

View File

@@ -278,5 +278,5 @@ security = {
rlc_log_level ="info";
pdcp_log_level ="info";
rrc_log_level ="info";
f1ap_log_level ="debug";
f1ap_log_level ="info";
};

View File

@@ -276,5 +276,5 @@ security = {
rlc_log_level ="info";
pdcp_log_level ="info";
rrc_log_level ="info";
f1ap_log_level ="debug";
f1ap_log_level ="info";
};

View File

@@ -277,5 +277,5 @@ security = {
rlc_log_level ="info";
pdcp_log_level ="info";
rrc_log_level ="info";
f1ap_log_level ="debug";
f1ap_log_level ="info";
};

View File

@@ -280,5 +280,5 @@ security = {
rlc_log_level ="info";
pdcp_log_level ="info";
rrc_log_level ="info";
f1ap_log_level ="debug";
f1ap_log_level ="info";
};

View File

@@ -279,5 +279,5 @@ security = {
rlc_log_level ="info";
pdcp_log_level ="info";
rrc_log_level ="info";
f1ap_log_level ="debug";
f1ap_log_level ="info";
};

View File

@@ -280,5 +280,5 @@ log_config :
pdcp_log_level ="info";
rrc_log_level ="info";
ngap_log_level ="debug";
f1ap_log_level ="debug";
f1ap_log_level ="info";
};

View File

@@ -158,65 +158,6 @@ gNBs =
);
# Dedicated Serving Cell Configuration
servingCellConfigDedicated = ({
# BWP-Downlink
# BWP 1 Configuration
dl_bwp-Id_1 = 1;
dl_bwp1_locationAndBandwidth = 28875; // RBstart=0, L=106 (40 MHz BW)
# subcarrierSpacing
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
dl_bwp1_subcarrierSpacing = 1;
# BWP 2 Configuration
dl_bwp-Id_2 = 2;
dl_bwp2_locationAndBandwidth = 13750; // RBstart=0, L=51 (20 MHz BW)
# subcarrierSpacing
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
dl_bwp2_subcarrierSpacing = 1;
# BWP 3 Configuration
dl_bwp-Id_3 = 3;
dl_bwp3_locationAndBandwidth = 6325; // RBstart=0, L=24 (10 MHz BW)
# subcarrierSpacing
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
dl_bwp3_subcarrierSpacing = 1;
firstActiveDownlinkBWP-Id = 1; #BWP-Id
defaultDownlinkBWP-Id = 1; #BWP-Id
# bwp-InactivityTimer ENUMERATED {ms2, ms3, ms4, ms5, ms6, ms8, ms10, ms20, ms30,
# ms40,ms50, ms60, ms80,ms100, ms200,ms300, ms500,
# ms750, ms1280, ms1920, ms2560, spare10, spare9, spare8,
# spare7, spare6, spare5, spare4, spare3, spare2, spare1 }
# UplinkConfig
# BWP-Uplink
# BWP 1 Configuration
ul_bwp-Id_1 = 1;
ul_bwp1_locationAndBandwidth = 28875; // RBstart=0, L=106 (40 MHz BW)
# subcarrierSpacing
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
ul_bwp1_subcarrierSpacing = 1;
# BWP 2 Configuration
ul_bwp-Id_2 = 2;
ul_bwp2_locationAndBandwidth = 13750; // RBstart=0, L=51 (20 MHz BW)
# subcarrierSpacing
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
ul_bwp2_subcarrierSpacing = 1;
# BWP 3 Configuration
ul_bwp-Id_3 = 3;
ul_bwp3_locationAndBandwidth = 6325; // RBstart=0, L=24 (10 MHz BW)
# subcarrierSpacing
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
ul_bwp3_subcarrierSpacing = 1;
firstActiveUplinkBWP-Id = 1; #BWP-Id
}
);
# ------- SCTP definitions
SCTP :
{
@@ -331,5 +272,5 @@ log_config :
pdcp_log_level ="info";
rrc_log_level ="info";
ngap_log_level ="debug";
f1ap_log_level ="debug";
f1ap_log_level ="info";
};

View File

@@ -0,0 +1,281 @@
Active_gNBs = ( "gNB-Eurecom-n78_20");
# Asn1_verbosity, choice in: none, info, annoying
Asn1_verbosity = "none";
#device :{
# name = "aw2sori_transpro";
#}
gNBs =
(
{
////////// Identification parameters:
gNB_CU_ID = 0xe00;
gNB_name = "gNB-Eurecom-n78_20";
// Tracking area code, 0x0000 and 0xfffe are reserved values
tracking_area_code = 0x1;
plmn_list = ({ mcc = 001; mnc = 01; mnc_length = 2; snssaiList = ({ sst =0x1; }) });
nr_cellid = 12345678L
////////// Physical parameters:
pdsch_AntennaPorts_XP = 2;
pusch_AntennaPorts = 2;
do_CSIRS = 1;
do_SRS = 0;
pdcch_ConfigSIB1 = (
{
controlResourceSetZero = 11;
searchSpaceZero = 0;
}
);
servingCellConfigCommon = (
{
#spCellConfigCommon
physCellId = 0;
# downlinkConfigCommon
#frequencyInfoDL
# this is 3410.4 MHz => 301 REs from PointA 25 PRBs + 1 RE
absoluteFrequencySSB = 627360;
dl_frequencyBand = 78;
# this is 3410.4 - (51*12*30e-3/2) = 3401.22 MHz
dl_absoluteFrequencyPointA = 626748;
#scs-SpecificCarrierList
dl_offstToCarrier = 0;
# subcarrierSpacing
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
dl_subcarrierSpacing = 1;
dl_carrierBandwidth = 51;
#initialDownlinkBWP
#genericParameters
# this is RBstart=0,L=50 (275*(L-1))+RBstart
initialDLBWPlocationAndBandwidth = 13750;
# subcarrierSpacing
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
initialDLBWPsubcarrierSpacing = 1;
#pdcch-ConfigCommon
initialDLBWPcontrolResourceSetZero = 11; # this means shift of 14, so Coreset is in PRBs 1..48, SSB starts at PRB 15
initialDLBWPsearchSpaceZero = 0;
#pdsch-ConfigCommon
#uplinkConfigCommon
#frequencyInfoUL
ul_frequencyBand = 78;
#scs-SpecificCarrierList
ul_offstToCarrier = 0;
# subcarrierSpacing
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
ul_subcarrierSpacing = 1;
ul_carrierBandwidth = 51;
pMax = 20;
#initialUplinkBWP
#genericParameters
initialULBWPlocationAndBandwidth = 13750;
# subcarrierSpacing
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
initialULBWPsubcarrierSpacing = 1;
#rach-ConfigCommon
#rach-ConfigGeneric
prach_ConfigurationIndex = 98;
#prach_msg1_FDM
#0 = one, 1=two, 2=four, 3=eight
prach_msg1_FDM = 0;
prach_msg1_FrequencyStart = 0;
zeroCorrelationZoneConfig = 15;
preambleReceivedTargetPower = -104;
#preamblTransMax (0...10) = (3,4,5,6,7,8,10,20,50,100,200)
preambleTransMax = 6;
#powerRampingStep
# 0=dB0,1=dB2,2=dB4,3=dB6
powerRampingStep = 1;
#ra_ReponseWindow
#1,2,4,8,10,20,40,80
ra_ResponseWindow = 4;
#ssb_perRACH_OccasionAndCB_PreamblesPerSSB_PR
#1=oneeighth,2=onefourth,3=half,4=one,5=two,6=four,7=eight,8=sixteen
ssb_perRACH_OccasionAndCB_PreamblesPerSSB_PR = 3;
#oneHalf (0..15) 4,8,12,16,...60,64
ssb_perRACH_OccasionAndCB_PreamblesPerSSB = 15;
#ra_ContentionResolutionTimer
#(0..7) 8,16,24,32,40,48,56,64
ra_ContentionResolutionTimer = 7;
rsrp_ThresholdSSB = 19;
#prach-RootSequenceIndex_PR
#1 = 839, 2 = 139
prach_RootSequenceIndex_PR = 2;
prach_RootSequenceIndex = 1;
# SCS for msg1, can only be 15 for 30 kHz < 6 GHz, takes precendence over the one derived from prach-ConfigIndex
#
msg1_SubcarrierSpacing = 1,
# restrictedSetConfig
# 0=unrestricted, 1=restricted type A, 2=restricted type B
restrictedSetConfig = 0,
msg3_DeltaPreamble = 1;
p0_NominalWithGrant =-96;
# pucch-ConfigCommon setup :
# pucchGroupHopping
# 0 = neither, 1= group hopping, 2=sequence hopping
pucchGroupHopping = 0;
hoppingId = 40;
p0_nominal = -96;
# ssb_PositionsInBurs_BitmapPR
# 1=short, 2=medium, 3=long
ssb_PositionsInBurst_PR = 2;
ssb_PositionsInBurst_Bitmap = 1;
# ssb_periodicityServingCell
# 0 = ms5, 1=ms10, 2=ms20, 3=ms40, 4=ms80, 5=ms160, 6=spare2, 7=spare1
ssb_periodicityServingCell = 2;
# dmrs_TypeA_position
# 0 = pos2, 1 = pos3
dmrs_TypeA_Position = 0;
# subcarrierSpacing
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
subcarrierSpacing = 1;
#tdd-UL-DL-ConfigurationCommon
# subcarrierSpacing
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
referenceSubcarrierSpacing = 1;
# pattern1
# dl_UL_TransmissionPeriodicity
# 0=ms0p5, 1=ms0p625, 2=ms1, 3=ms1p25, 4=ms2, 5=ms2p5, 6=ms5, 7=ms10
dl_UL_TransmissionPeriodicity = 5;
nrofDownlinkSlots = 2;
nrofDownlinkSymbols = 6;
nrofUplinkSlots = 2;
nrofUplinkSymbols = 4;
ssPBCH_BlockPower = -10;
}
);
# ------- SCTP definitions
SCTP :
{
# Number of streams to use in input/output
SCTP_INSTREAMS = 2;
SCTP_OUTSTREAMS = 2;
};
////////// AMF parameters:
amf_ip_address = ( { ipv4 = "172.21.6.100";
ipv6 = "192:168:30::17";
active = "yes";
preference = "ipv4";
}
);
NETWORK_INTERFACES :
{
GNB_INTERFACE_NAME_FOR_NG_AMF = "eno33np0";
GNB_IPV4_ADDRESS_FOR_NG_AMF = "172.21.16.124/20";
GNB_INTERFACE_NAME_FOR_NGU = "eno33np0";
GNB_IPV4_ADDRESS_FOR_NGU = "172.21.16.124/20";
GNB_PORT_FOR_S1U = 2152; # Spec 2152
};
}
);
MACRLCs = (
{
num_cc = 1;
tr_s_preference = "local_L1";
tr_n_preference = "local_RRC";
pusch_TargetSNRx10 = 200;
pucch_TargetSNRx10 = 200;
ulsch_max_frame_inactivity = 10;
ul_max_mcs = 15;
}
);
L1s = (
{
num_cc = 1;
tr_n_preference = "local_mac";
prach_dtx_threshold = 120;
pucch0_dtx_threshold = 50;
pusch_dtx_threshold = 10;
}
);
RUs = (
{
local_if_name = "ens7f3";
remote_address = "192.168.80.239";
local_address = "192.168.80.24";
local_portc = 50000;
remote_portc = 55444;
local_portd = 52001;
remote_portd = 52183;
local_rf = "no"
tr_preference = "udp_ecpri_if5"
nb_tx = 2
nb_rx = 2
att_tx = 16
att_rx = 0;
num_tp_cores = 4;
rxfh_core_id = 9;
txfh_core_id = 10;
tp_cores = [11,12,13,14];
nr_flag = 1;
eNB_instances = [0];
bands = [78];
sl_ahead = 5;
##beamforming 1x2 matrix: 1 layer x 2 antennas
bf_weights = [0x00007fff, 0x0000];
##beamforming 1x4 matrix: 1 layer x 4 antennas
#bf_weights = [0x00007fff, 0x0000,0x0000, 0x0000];
## beamforming 2x2 matrix:
# bf_weights = [0x00007fff, 0x00000000, 0x00000000, 0x00007fff];
## beamforming 4x4 matrix:
#bf_weights = [0x00007fff, 0x0000, 0x0000, 0x0000, 0x00000000, 0x00007fff, 0x0000, 0x0000, 0x0000, 0x0000, 0x00007fff, 0x0000, 0x0000, 0x0000, 0x0000, 0x00007fff];
}
);
THREAD_STRUCT = (
{
#three config for level of parallelism "PARALLEL_SINGLE_THREAD", "PARALLEL_RU_L1_SPLIT", or "PARALLEL_RU_L1_TRX_SPLIT"
parallel_config = "PARALLEL_SINGLE_THREAD";
#two option for worker "WORKER_DISABLE" or "WORKER_ENABLE"
worker_config = "WORKER_ENABLE";
}
);
log_config :
{
global_log_level ="info";
global_log_verbosity ="medium";
hw_log_level ="info";
hw_log_verbosity ="medium";
phy_log_level ="info";
phy_log_verbosity ="medium";
mac_log_level ="info";
mac_log_verbosity ="high";
rlc_log_level ="info";
rlc_log_verbosity ="medium";
pdcp_log_level ="info";
pdcp_log_verbosity ="medium";
rrc_log_level ="info";
rrc_log_verbosity ="medium";
f1ap_log_level ="debug";
f1ap_log_verbosity ="medium";
ngap_log_level ="debug";
ngap_log_verbosity ="medium";
};

View File

@@ -262,6 +262,6 @@ log_config :
pdcp_log_level ="info";
rrc_log_level ="info";
ngap_log_level ="debug";
f1ap_log_level ="debug";
f1ap_log_level ="info";
};

View File

@@ -14,8 +14,8 @@ Ref :
L1 Tx processing : 210.0
DLSCH encoding : 137.0
L1 Rx processing : 345.0
PUSCH inner-receiver : 184.0
PUSCH decoding : 276.0
PUSCH inner-receiver : 210.0
PUSCH decoding : 210.0
Schedule Response : 48.0
DL & UL scheduling timing : 13.0
UL Indication : 60.0

View File

@@ -14,10 +14,10 @@ Ref :
L1 Tx processing : 400.0
DLSCH encoding : 177.0
L1 Rx processing : 345.0
PUSCH inner-receiver : 184.0
PUSCH decoding : 276.0
PUSCH inner-receiver : 210.0
PUSCH decoding : 210.0
Schedule Response : 111.0
DL & UL scheduling timing : 37.0
DL & UL scheduling timing : 20.0
UL Indication : 127.0
Threshold :
feprx : 1.25

View File

@@ -14,11 +14,11 @@ Ref :
L1 Tx processing : 170.0
DLSCH encoding : 118.0
L1 Rx processing : 305.0
PUSCH inner-receiver : 117.0
PUSCH decoding : 303.0
Schedule Response : 25.0
PUSCH inner-receiver : 150.0
PUSCH decoding : 210.0
Schedule Response : 20.0
DL & UL scheduling timing : 10.0
UL Indication : 34.0
UL Indication : 30.0
Threshold :
feprx : 1.25
feptx_prec : 1.25

View File

@@ -31,8 +31,8 @@
#-----------------------------------------------------------
# Import
#-----------------------------------------------------------
import sys # arg
import re # reg
import sys # arg
import re # reg
import logging
import os
import time
@@ -46,10 +46,13 @@ from multiprocessing import Process, Lock, SimpleQueue
import sshconnection as SSH
import helpreadme as HELP
import constants as CONST
import cls_cluster as OC
import cls_cmd
#-----------------------------------------------------------
# Class Declaration
#-----------------------------------------------------------
class EPCManagement():
def __init__(self):
@@ -68,7 +71,13 @@ class EPCManagement():
self.isMagmaUsed = False
self.cfgDeploy = '--type start-mini --scenario 1 --capture /tmp/oai-cn5g-v1.5.pcap' #from xml, 'mini' is default normal for docker-network.py
self.cfgUnDeploy = '--type stop-mini --scenario 1' #from xml, 'mini' is default normal for docker-network.py
self.OCUrl = "https://api.oai.cs.eurecom.fr:6443"
self.OCRegistry = "default-route-openshift-image-registry.apps.oai.cs.eurecom.fr/"
self.OCUserName = ''
self.OCPassword = ''
self.OCProjectName = ''
self.imageToPull = ''
self.eNBSourceCodePath = ''
#-----------------------------------------------------------
# EPC management functions
@@ -235,8 +244,7 @@ class EPCManagement():
HELP.GenericHelp(CONST.Version)
HELP.EPCSrvHelp(self.IPAddress, self.UserName, self.Password, self.SourceCodePath, self.Type)
sys.exit('Insufficient EPC Parameters')
mySSH = SSH.SSHConnection()
mySSH.open(self.IPAddress, self.UserName, self.Password)
mySSH = cls_cmd.getConnection(self.IPAddress)
html_cell = ''
if re.match('ltebox', self.Type, re.IGNORECASE):
logging.debug('Using the SABOX simulated HSS')
@@ -286,6 +294,40 @@ class EPCManagement():
if res4 is not None:
html_cell += '(' + res4.group('date') + ')'
html_cell += '\n'
elif re.match('OC-OAI-CN5G', self.Type, re.IGNORECASE):
self.testCase_id = HTML.testCase_id
imageNames = ["oai-nrf", "oai-amf", "oai-smf", "oai-spgwu-tiny", "oai-ausf", "oai-udm", "oai-udr", "mysql","oai-traffic-server"]
logging.debug('Deploying OAI CN5G on Openshift Cluster')
lIpAddr = self.IPAddress
lSourcePath = self.SourceCodePath
succeeded = OC.OC_login(mySSH, self.OCUserName, self.OCPassword, self.OCProjectName)
if not succeeded:
logging.error('\u001B[1m OC Cluster Login Failed\u001B[0m')
HTML.CreateHtmlTestRow('N/A', 'KO', CONST.OC_LOGIN_FAIL)
return False
for ii in imageNames:
mySSH.run(f'helm uninstall {ii}', reportNonZero=False)
mySSH.run(f'helm spray {lSourcePath}/ci-scripts/charts/oai-5g-basic/.')
ret = mySSH.run(f'oc get pods', silent=True)
if ret.stdout.count('Running') != 9:
logging.error('\u001B[1m Deploying 5GCN Failed using helm chart on OC Cluster\u001B[0m')
for ii in imageNames:
mySSH.run('helm uninstall '+ ii)
ret = mySSH.run(f'oc get pods')
if re.search('No resources found', ret.stdout):
logging.debug('All pods uninstalled')
OC.OC_logout(mySSH)
mySSH.close()
HTML.CreateHtmlTestRow('N/A', 'KO', CONST.OC_PROJECT_FAIL)
return False
ret = mySSH.run(f'oc get pods', silent=True)
for line in ret.stdout.split('\n')[1:]:
columns = line.strip().split()
name = columns[0]
status = columns[2]
html_cell += status + ' ' + name
html_cell += '\n'
OC.OC_logout(mySSH)
else:
logging.error('This option should not occur!')
mySSH.close()
@@ -311,6 +353,10 @@ class EPCManagement():
else:
logging.error('no container with name oai-amf found, could not retrieve AMF IP address')
mySSH.close()
elif re.match('OC-OAI-CN5G', self.Type, re.IGNORECASE):
mySSH = SSH.SSHConnection()
mySSH.open(self.IPAddress, self.UserName, self.Password)
response=mySSH.command3('oc pods ls -f name=oai-amf', 10)
def CheckHSSProcess(self, status_queue):
try:
@@ -513,8 +559,9 @@ class EPCManagement():
HTML.CreateHtmlTestRow('N/A', 'OK', CONST.ALL_PROCESSES_OK)
def Terminate5GCN(self, HTML):
mySSH = SSH.SSHConnection()
mySSH.open(self.IPAddress, self.UserName, self.Password)
imageNames = ["mysql", "oai-nrf", "oai-amf", "oai-smf", "oai-spgwu-tiny", "oai-ausf", "oai-udm", "oai-udr", "oai-traffic-server"]
containerInPods = ["", "-c nrf", "-c amf", "-c smf", "-c spgwu", "-c ausf", "-c udm", "-c udr", ""]
mySSH = cls_cmd.getConnection(self.IPAddress)
message = ''
if re.match('ltebox', self.Type, re.IGNORECASE):
logging.debug('Terminating SA BOX')
@@ -545,6 +592,37 @@ class EPCManagement():
else:
message = 'No Tracking area update request'
logging.debug(message)
elif re.match('OC-OAI-CN5G', self.Type, re.IGNORECASE):
logging.debug('Terminating OAI CN5G on Openshift Cluster')
lIpAddr = self.IPAddress
lSourcePath = self.SourceCodePath
mySSH.run(f'rm -Rf {lSourcePath}/logs')
mySSH.run(f'mkdir -p {lSourcePath}/logs')
logging.debug('OC OAI CN5G - Collecting Log files to workspace')
succeeded = OC.OC_login(mySSH, self.OCUserName, self.OCPassword, self.OCProjectName)
if not succeeded:
logging.error('\u001B[1m OC Cluster Login Failed\u001B[0m')
HTML.CreateHtmlTestRow('N/A', 'KO', CONST.OC_LOGIN_FAIL)
return False
mySSH.run(f'oc describe pod &> {lSourcePath}/logs/describe-pods-post-test.log')
mySSH.run(f'oc get pods.metrics.k8s &> {lSourcePath}/logs/nf-resource-consumption.log')
for ii, ci in zip(imageNames, containerInPods):
podName = mySSH.run(f"oc get pods | grep {ii} | awk \'{{print $1}}\'").stdout.strip()
if not podName:
logging.debug(f'{ii} pod not found!')
HTML.CreateHtmlTestRow(self.Type, 'KO', CONST.INVALID_PARAMETER)
HTML.CreateHtmlTabFooter(False)
mySSH.run(f'oc logs -f {podName} {ci} &> {lSourcePath}/logs/{ii}.log &')
mySSH.run(f'helm uninstall {ii}')
podName = ''
mySSH.run(f'cd {lSourcePath}/logs && zip -r -qq test_logs_CN.zip *.log')
mySSH.copyin(f'{lSourcePath}/logs/test_logs_CN.zip','test_logs_CN.zip')
ret = mySSH.run(f'oc get pods', silent=True)
res = re.search('No resources found in oaicicd-ran namespace.', ret.stdout)
if res is not None:
logging.debug('OC OAI CN5G components uninstalled')
message = 'OC OAI CN5G components uninstalled'
OC.OC_logout(mySSH)
else:
logging.error('This should not happen!')
mySSH.close()
@@ -784,6 +862,8 @@ class EPCManagement():
mySSH.command('zip hss.log.zip hss_check_run.*', '\$', 60)
elif re.match('OAICN5G', self.Type, re.IGNORECASE):
logging.debug('LogCollect is bypassed for that variant')
elif re.match('OC-OAI-CN5G', self.Type, re.IGNORECASE):
logging.debug('LogCollect is bypassed for that variant')
elif re.match('OAI', self.Type, re.IGNORECASE) or re.match('OAI-Rel14-CUPS', self.Type, re.IGNORECASE):
mySSH.command('zip hss.log.zip hss*.log', '\$', 60)
mySSH.command('echo ' + self.Password + ' | sudo -S rm hss*.log', '\$', 5)
@@ -798,10 +878,13 @@ class EPCManagement():
mySSH.close()
def LogCollectMME(self):
mySSH = SSH.SSHConnection()
mySSH.open(self.IPAddress, self.UserName, self.Password)
mySSH.command('cd ' + self.SourceCodePath + '/scripts', '\$', 5)
mySSH.command('rm -f mme.log.zip', '\$', 5)
if self.Type != 'OC-OAI-CN5G':
mySSH = SSH.SSHConnection()
mySSH.open(self.IPAddress, self.UserName, self.Password)
mySSH.command('cd ' + self.SourceCodePath + '/scripts', '\$', 5)
mySSH.command('rm -f mme.log.zip', '\$', 5)
else:
mySSH = cls_cmd.getConnection(self.IPAddress)
if re.match('OAI-Rel14-Docker', self.Type, re.IGNORECASE):
mySSH.command('docker inspect prod-oai-mme', '\$', 10)
result = re.search('No such object', mySSH.getBefore())
@@ -819,6 +902,10 @@ class EPCManagement():
mySSH.command('cp -f /tmp/oai-cn5g-v1.5.pcap .','\$', 30)
mySSH.command('zip mme.log.zip oai-amf.log oai-nrf.log oai-cn5g*.pcap','\$', 30)
mySSH.command('mv mme.log.zip ' + self.SourceCodePath + '/scripts','\$', 30)
elif re.match('OC-OAI-CN5G', self.Type, re.IGNORECASE):
mySSH.run('cd ' + self.SourceCodePath + '/logs')
mySSH.run('zip mme.log.zip oai-amf.log oai-nrf.log oai-cn5g*.pcap')
mySSH.run('mv mme.log.zip ' + self.SourceCodePath + '/scripts')
elif re.match('OAI', self.Type, re.IGNORECASE) or re.match('OAI-Rel14-CUPS', self.Type, re.IGNORECASE):
mySSH.command('zip mme.log.zip mme*.log', '\$', 60)
mySSH.command('echo ' + self.Password + ' | sudo -S rm mme*.log', '\$', 5)
@@ -852,6 +939,10 @@ class EPCManagement():
mySSH.command('cd ' + self.SourceCodePath + '/logs','\$', 5)
mySSH.command('zip spgw.log.zip oai-smf.log oai-spgwu.log','\$', 30)
mySSH.command('mv spgw.log.zip ' + self.SourceCodePath + '/scripts','\$', 30)
elif re.match('OC-OAI-CN5G', self.Type, re.IGNORECASE):
mySSH.command('cd ' + self.SourceCodePath + '/logs','\$', 5)
mySSH.command('zip spgw.log.zip oai-smf.log oai-spgwu.log','\$', 30)
mySSH.command('mv spgw.log.zip ' + self.SourceCodePath + '/scripts','\$', 30)
elif re.match('OAI', self.Type, re.IGNORECASE) or re.match('OAI-Rel14-CUPS', self.Type, re.IGNORECASE):
mySSH.command('zip spgw.log.zip spgw*.log', '\$', 60)
mySSH.command('echo ' + self.Password + ' | sudo -S rm spgw*.log', '\$', 5)

View File

@@ -38,12 +38,12 @@ import helpreadme as HELP
import constants as CONST
import cls_oaicitest #main class for OAI CI test framework
import cls_physim #class PhySim for physical simulators build and test
import cls_containerize #class Containerize for all container-based operations on RAN/UE objects
import cls_static_code_analysis #class for static code analysis
import cls_physim1 #class PhySim for physical simulators deploy and run
import cls_cluster # class for building/deploying on cluster
import cls_oaicitest #main class for OAI CI test framework
import cls_physim #class PhySim for physical simulators build and test
import cls_containerize #class Containerize for all container-based operations on RAN/UE objects
import cls_static_code_analysis #class for static code analysis
import cls_physim1 #class PhySim for physical simulators deploy and run
import cls_cluster # class for building/deploying on cluster
import sshconnection
import epc
@@ -429,7 +429,12 @@ def GetParametersFromXML(action):
elif action == 'Custom_Command':
RAN.node = test.findtext('node')
RAN.command = test.findtext('command')
RAN.command_fail = test.findtext('command_fail') in ['True', 'true', 'Yes', 'yes']
elif action == 'Pull_Cluster_Image':
# CLUSTER.imageToPull.clear()
string_field = test.findtext('images_to_pull')
if (string_field is not None):
CLUSTER.imageToPull = string_field.split()
else:
logging.warning(f"unknown action {action} from option-parsing point-of-view")
@@ -705,6 +710,8 @@ elif re.match('^TesteNB$', mode, re.IGNORECASE) or re.match('^TestUE$', mode, re
# On CI bench w/ containers, we need to validate if IP routes are set
if EPC.IPAddress == '172.21.16.136':
CONTAINERS.CheckAndAddRoute('porcepix', EPC.IPAddress, EPC.UserName, EPC.Password)
if EPC.IPAddress == '172.21.16.137':
CONTAINERS.CheckAndAddRoute('nepes', EPC.IPAddress, EPC.UserName, EPC.Password)
if CONTAINERS.eNBIPAddress == '172.21.16.127':
CONTAINERS.CheckAndAddRoute('asterix', CONTAINERS.eNBIPAddress, CONTAINERS.eNBUserName, CONTAINERS.eNBPassword)
if CONTAINERS.eNB1IPAddress == '172.21.16.127':
@@ -713,6 +720,8 @@ elif re.match('^TesteNB$', mode, re.IGNORECASE) or re.match('^TestUE$', mode, re
CONTAINERS.CheckAndAddRoute('obelix', CONTAINERS.eNBIPAddress, CONTAINERS.eNBUserName, CONTAINERS.eNBPassword)
if CONTAINERS.eNB1IPAddress == '172.21.16.128':
CONTAINERS.CheckAndAddRoute('obelix', CONTAINERS.eNB1IPAddress, CONTAINERS.eNB1UserName, CONTAINERS.eNB1Password)
if CONTAINERS.eNBIPAddress == '172.21.16.109' or CONTAINERS.eNBIPAddress == 'ofqot':
CONTAINERS.CheckAndAddRoute('ofqot', CONTAINERS.eNBIPAddress, CONTAINERS.eNBUserName, CONTAINERS.eNBPassword)
if CONTAINERS.eNBIPAddress == '172.21.16.137':
CONTAINERS.CheckAndAddRoute('nepes', CONTAINERS.eNBIPAddress, CONTAINERS.eNBUserName, CONTAINERS.eNBPassword)
if CONTAINERS.eNB1IPAddress == '172.21.16.137':
@@ -752,6 +761,8 @@ elif re.match('^TesteNB$', mode, re.IGNORECASE) or re.match('^TestUE$', mode, re
elif action == 'Custom_Command':
logging.info(f"Executing custom command")
RAN.CustomCommand(HTML)
if RAN.prematureExit:
CiTestObj.AutoTerminateeNB(HTML,RAN,EPC,CONTAINERS)
elif action == 'Initialize_eNB':
RAN.InitializeeNB(HTML, EPC)
if RAN.prematureExit:
@@ -822,6 +833,9 @@ elif re.match('^TesteNB$', mode, re.IGNORECASE) or re.match('^TestUE$', mode, re
HTML=ldpc.Run_NRulsimTest(HTML,CONST,id)
if ldpc.exitStatus==1:
RAN.prematureExit = True
elif action == 'Pull_Cluster_Image':
if not CLUSTER.PullClusterImage(HTML,RAN):
RAN.prematureExit = True
elif action == 'Build_Cluster_Image':
if not CLUSTER.BuildClusterImage(HTML):
RAN.prematureExit = True

View File

@@ -99,6 +99,7 @@ class RANManagement():
self.cmd_prefix = '' # prefix before {lte,nr}-softmodem
self.node = ''
self.command = ''
self.command_fail = False
#-----------------------------------------------------------
@@ -259,19 +260,24 @@ class RANManagement():
self.checkBuildeNB(lIpAddr, lUserName, lPassWord, lSourcePath, self.backgroundBuildTestId[int(self.eNB_instance)], HTML)
def CustomCommand(self, HTML):
if self.node == '' or self.node == "localhost":
cmd = cls_cmd.LocalCmd()
else:
cmd = cls_cmd.RemoteCmd(self.node)
cmd = cls_cmd.getConnection(self.node)
ret = cmd.run(self.command)
cmd.close()
logging.debug(f'CustomCommand: {self.command} returnCode: {ret.returncode} output: {ret.stdout}')
html_queue = SimpleQueue()
logging.debug(f'CustomCommand: {self.command} returnCode: {ret.returncode}')
status = 'OK'
if ret.returncode != 0:
html_queue.put(ret.stdout)
message = []
if ret.returncode != 0 and not self.command_fail:
message = [ret.stdout]
logging.warning(f'CustomCommand output: {message}')
status = 'Warning'
HTML.CreateHtmlTestRow(self.command, status, 1, html_queue)
if self.command_fail: # important command since it would make the pipeline fail, so show output in HTML
message = [ret.stdout]
if ret.returncode != 0 and self.command_fail:
message = [ret.stdout]
logging.error(f'CustomCommand failed: output: {message}')
status = 'KO'
self.prematureExit = True
HTML.CreateHtmlTestRowQueue(self.command, status, message)
def checkBuildeNB(self, lIpAddr, lUserName, lPassWord, lSourcePath, testcaseId, HTML):
HTML.testCase_id=testcaseId

View File

@@ -1,5 +1,6 @@
- Build_Proxy
- Build_Cluster_Image
- Pull_Cluster_Image
- Build_PhySim
- Run_LDPCTest
- Run_LDPCt1Test

View File

@@ -36,7 +36,7 @@
<eNB_instance>1</eNB_instance>
<eNB_serverId>1</eNB_serverId>
<forced_workspace_cleanup>True</forced_workspace_cleanup>
<proxy_commit>a6169d8</proxy_commit>
<proxy_commit>a2fa216</proxy_commit>
</testCase>
</testCaseList>

View File

@@ -36,7 +36,7 @@
<eNB_instance>1</eNB_instance>
<eNB_serverId>1</eNB_serverId>
<forced_workspace_cleanup>True</forced_workspace_cleanup>
<proxy_commit>a6169d8</proxy_commit>
<proxy_commit>a2fa216</proxy_commit>
</testCase>
</testCaseList>

View File

@@ -27,6 +27,7 @@ Replaces xml_files/enb_usrp210_band40_test_05mhz_tm1.xml
<htmlTabName>Test-TDD-05MHz-TM1</htmlTabName>
<htmlTabIcon>tasks</htmlTabIcon>
<TestCaseRequestedList>
300000
100000
111110
040101
@@ -57,6 +58,13 @@ Replaces xml_files/enb_usrp210_band40_test_05mhz_tm1.xml
<command>sudo cpupower idle-set -E</command>
</testCase>
<testCase id="300000">
<class>Custom_Command</class>
<desc>Reset USRP</desc>
<node>starsky</node>
<command>sudo -S b2xx_fx3_utils --reset-device</command>
</testCase>
<testCase id="030104">
<class>Deploy_Object</class>
<desc>Deploy eNB (TDD/Band40/5MHz/B200) in a container</desc>

View File

@@ -0,0 +1,160 @@
<!--
Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The OpenAirInterface Software Alliance licenses this file to You under
the OAI Public License, Version 1.1 (the "License"); you may not use this file
except in compliance with the License.
You may obtain a copy of the License at
http://www.openairinterface.org/?page_id=698
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
For more information about the OpenAirInterface (OAI) Software Alliance:
contact@openairinterface.org
-->
<testCaseList>
<htmlTabRef>TEST-LTE-2x2-N3XX-TM1</htmlTabRef>
<htmlTabName>2.6 Ghz TDD LTE 2x2 TM1</htmlTabName>
<htmlTabIcon>tasks</htmlTabIcon>
<repeatCount>1</repeatCount>
<TestCaseRequestedList>
111111
100000
010000
030101
010001
000001
050000
050001
070000
070001
010010
010002
030201
</TestCaseRequestedList>
<TestCaseExclusionList></TestCaseExclusionList>
<testCase id="111111">
<class>Pull_Local_Registry</class>
<desc>Pull Images from Local Registry</desc>
<test_svr_id>0</test_svr_id>
<images_to_pull>oai-enb</images_to_pull>
</testCase>
<testCase id="100000">
<class>Custom_Command</class>
<desc>Disable Sleep States</desc>
<node>obelix</node>
<command>sudo cpupower idle-set -D 0</command>
</testCase>
<testCase id="200000">
<class>Custom_Command</class>
<desc>Enable Sleep States</desc>
<node>obelix</node>
<command>sudo cpupower idle-set -E</command>
</testCase>
<testCase id="030101">
<class>Deploy_Object</class>
<desc>Deploy eNB (TDD/Band38/2.6Ghz/N3XX) in a container</desc>
<yaml_path>ci-scripts/yaml_files/lte_n3xx_tdd_2x2_tm1</yaml_path>
<eNB_instance>0</eNB_instance>
<eNB_serverId>0</eNB_serverId>
</testCase>
<testCase id="000001">
<class>IdleSleep</class>
<desc>Sleep</desc>
<idle_sleep_time_in_sec>5</idle_sleep_time_in_sec>
</testCase>
<testCase id="010000">
<class>Initialize_UE</class>
<desc>Initialize Quectel</desc>
<id>nrmodule2_quectel</id>
</testCase>
<testCase id="010002">
<class>Terminate_UE</class>
<desc>Terminate Quectel</desc>
<id>nrmodule2_quectel</id>
</testCase>
<testCase id="010001">
<class>Attach_UE</class>
<desc>Attach UE</desc>
<id>nrmodule2_quectel</id>
</testCase>
<testCase id="050000">
<class>Ping</class>
<desc>Ping: 20 pings</desc>
<id>nrmodule2_quectel</id>
<ping_args>-c 20</ping_args>
<ping_packetloss_threshold>1</ping_packetloss_threshold>
<ping_rttavg_threshold>60</ping_rttavg_threshold>
</testCase>
<testCase id="050001">
<class>Ping</class>
<desc>Ping: 100 pings, size 1024</desc>
<id>nrmodule2_quectel</id>
<ping_args>-c 100 -s 1024 -i 0,2</ping_args>
<ping_packetloss_threshold>1</ping_packetloss_threshold>
<ping_rttavg_threshold>60</ping_rttavg_threshold>
</testCase>
<testCase id="070000">
<class>Iperf</class>
<desc>iperf (DL/26Mbps/UDP)(60 sec)(single-ue profile)</desc>
<iperf_args>-u -b 26M -t 60</iperf_args>
<direction>DL</direction>
<id>nrmodule2_quectel</id>
<iperf_packetloss_threshold>5</iperf_packetloss_threshold>
<iperf_bitrate_threshold>95</iperf_bitrate_threshold>
<iperf_profile>single-ue</iperf_profile>
</testCase>
<testCase id="070001">
<class>Iperf</class>
<desc>iperf (UL/7Mbps/UDP)(60 sec)(single-ue profile)</desc>
<iperf_args>-u -b 7M -t 60</iperf_args>
<direction>UL</direction>
<id>nrmodule2_quectel</id>
<iperf_packetloss_threshold>5</iperf_packetloss_threshold>
<iperf_bitrate_threshold>95</iperf_bitrate_threshold>
<iperf_profile>single-ue</iperf_profile>
</testCase>
<testCase id="010010">
<class>Detach_UE</class>
<desc>Detach UE</desc>
<id>nrmodule2_quectel</id>
</testCase>
<testCase id="030201">
<class>Undeploy_Object</class>
<desc>Undeploy gNB</desc>
<yaml_path>ci-scripts/yaml_files/lte_n3xx_tdd_2x2_tm1</yaml_path>
<eNB_instance>0</eNB_instance>
<eNB_serverId>0</eNB_serverId>
<!-- <d_retx_th>1,100,100,100</d_retx_th>
<u_retx_th>1,100,100,100</u_retx_th>
?
-->
</testCase>
</testCaseList>

View File

@@ -0,0 +1,160 @@
<!--
Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The OpenAirInterface Software Alliance licenses this file to You under
the OAI Public License, Version 1.1 (the "License"); you may not use this file
except in compliance with the License.
You may obtain a copy of the License at
http://www.openairinterface.org/?page_id=698
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
For more information about the OpenAirInterface (OAI) Software Alliance:
contact@openairinterface.org
-->
<testCaseList>
<htmlTabRef>TEST-LTE-2x2-N3XXi-TM2</htmlTabRef>
<htmlTabName>2.6 Ghz TDD LTE 2x2 TM2</htmlTabName>
<htmlTabIcon>tasks</htmlTabIcon>
<repeatCount>1</repeatCount>
<TestCaseRequestedList>
111111
100000
010000
030101
010001
000001
050000
050001
070000
070001
010010
010002
030201
</TestCaseRequestedList>
<TestCaseExclusionList></TestCaseExclusionList>
<testCase id="111111">
<class>Pull_Local_Registry</class>
<desc>Pull Images from Local Registry</desc>
<test_svr_id>0</test_svr_id>
<images_to_pull>oai-enb</images_to_pull>
</testCase>
<testCase id="100000">
<class>Custom_Command</class>
<desc>Disable Sleep States</desc>
<node>obelix</node>
<command>sudo cpupower idle-set -D 0</command>
</testCase>
<testCase id="200000">
<class>Custom_Command</class>
<desc>Enable Sleep States</desc>
<node>obelix</node>
<command>sudo cpupower idle-set -E</command>
</testCase>
<testCase id="030101">
<class>Deploy_Object</class>
<desc>Deploy eNB (TDD/Band38/2.6Ghz/N3XX) in a container</desc>
<yaml_path>ci-scripts/yaml_files/lte_n3xx_tdd_2x2_tm2</yaml_path>
<eNB_instance>0</eNB_instance>
<eNB_serverId>0</eNB_serverId>
</testCase>
<testCase id="000001">
<class>IdleSleep</class>
<desc>Sleep</desc>
<idle_sleep_time_in_sec>5</idle_sleep_time_in_sec>
</testCase>
<testCase id="010000">
<class>Initialize_UE</class>
<desc>Initialize Quectel</desc>
<id>nrmodule2_quectel</id>
</testCase>
<testCase id="010002">
<class>Terminate_UE</class>
<desc>Terminate Quectel</desc>
<id>nrmodule2_quectel</id>
</testCase>
<testCase id="010001">
<class>Attach_UE</class>
<desc>Attach UE</desc>
<id>nrmodule2_quectel</id>
</testCase>
<testCase id="050000">
<class>Ping</class>
<desc>Ping: 20 pings</desc>
<id>nrmodule2_quectel</id>
<ping_args>-c 20</ping_args>
<ping_packetloss_threshold>1</ping_packetloss_threshold>
<ping_rttavg_threshold>60</ping_rttavg_threshold>
</testCase>
<testCase id="050001">
<class>Ping</class>
<desc>Ping: 100 pings, size 1024</desc>
<id>nrmodule2_quectel</id>
<ping_args>-c 100 -s 1024 -i 0,2</ping_args>
<ping_packetloss_threshold>1</ping_packetloss_threshold>
<ping_rttavg_threshold>60</ping_rttavg_threshold>
</testCase>
<testCase id="070000">
<class>Iperf</class>
<desc>iperf (DL/26Mbps/UDP)(60 sec)(single-ue profile)</desc>
<iperf_args>-u -b 1M -t 60</iperf_args>
<direction>DL</direction>
<id>nrmodule2_quectel</id>
<iperf_packetloss_threshold>5</iperf_packetloss_threshold>
<iperf_bitrate_threshold>95</iperf_bitrate_threshold>
<iperf_profile>single-ue</iperf_profile>
</testCase>
<testCase id="070001">
<class>Iperf</class>
<desc>iperf (UL/7Mbps/UDP)(60 sec)(single-ue profile)</desc>
<iperf_args>-u -b 7M -t 60</iperf_args>
<direction>UL</direction>
<id>nrmodule2_quectel</id>
<iperf_packetloss_threshold>5</iperf_packetloss_threshold>
<iperf_bitrate_threshold>95</iperf_bitrate_threshold>
<iperf_profile>single-ue</iperf_profile>
</testCase>
<testCase id="010010">
<class>Detach_UE</class>
<desc>Detach UE</desc>
<id>nrmodule2_quectel</id>
</testCase>
<testCase id="030201">
<class>Undeploy_Object</class>
<desc>Undeploy gNB</desc>
<yaml_path>ci-scripts/yaml_files/lte_n3xx_tdd_2x2_tm2</yaml_path>
<eNB_instance>0</eNB_instance>
<eNB_serverId>0</eNB_serverId>
<!-- <d_retx_th>1,100,100,100</d_retx_th>
<u_retx_th>1,100,100,100</u_retx_th>
?
-->
</testCase>
</testCaseList>

View File

@@ -86,14 +86,14 @@
</testCase>
<testCase id="500000">
<class>Custom_Command</class>
<desc>Disable Sleep States (obelix)</desc>
<node>obelix</node>
<desc>Disable Sleep States (ofqot)</desc>
<node>ofqot</node>
<command>sudo cpupower idle-set -D 0</command>
</testCase>
<testCase id="600000">
<class>Custom_Command</class>
<desc>Enable Sleep States (obelix)</desc>
<node>obelix</node>
<desc>Enable Sleep States (ofqot)</desc>
<node>ofqot</node>
<command>sudo cpupower idle-set -E</command>
</testCase>
@@ -185,8 +185,8 @@
<testCase id="070000">
<class>Iperf</class>
<desc>iperf (DL/125Mbps/UDP)(60 sec)(single-ue profile)</desc>
<iperf_args>-u -b 125M -t 60 -i 1 -fm</iperf_args>
<desc>iperf (DL/90Mbps/UDP)(60 sec)(single-ue profile)</desc>
<iperf_args>-u -b 90M -t 60 -i 1 -fm</iperf_args>
<direction>DL</direction>
<id>idefix</id>
<iperf_packetloss_threshold>25</iperf_packetloss_threshold>

View File

@@ -0,0 +1,122 @@
<!--
Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The OpenAirInterface Software Alliance licenses this file to You under
the OAI Public License, Version 1.1 (the "License"); you may not use this file
except in compliance with the License.
You may obtain a copy of the License at
http://www.openairinterface.org/?page_id=698
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
For more information about the OpenAirInterface (OAI) Software Alliance:
contact@openairinterface.org
-->
<testCaseList>
<htmlTabRef>TEST-5G-AW2S</htmlTabRef>
<htmlTabName>20 MHz TDD SA</htmlTabName>
<htmlTabIcon>tasks</htmlTabIcon>
<repeatCount>1</repeatCount>
<TestCaseRequestedList>
010000
001000
020000
002000
002002
000100
000200
003000
004000
000002
030000
</TestCaseRequestedList>
<TestCaseExclusionList></TestCaseExclusionList>
<testCase id="010000">
<class>Pull_Cluster_Image</class>
<desc>Pull Images from Cluster</desc>
<images_to_pull>oai-gnb-aw2s</images_to_pull>
</testCase>
<testCase id="020000">
<class>Deploy_Object</class>
<desc>Deploy gNB (TDD/Band78/20MHz/aw2s) in a container</desc>
<yaml_path>ci-scripts/yaml_files/sa_aw2s_gnb</yaml_path>
<eNB_instance>0</eNB_instance>
<eNB_serverId>0</eNB_serverId>
</testCase>
<testCase id="001000">
<class>Initialize_UE</class>
<desc>Initialize Amarisoft UE</desc>
<id>amarisoft_ue</id>
</testCase>
<testCase id="002000">
<class>Attach_UE</class>
<desc>Attach UE</desc>
<id>amarisoft_ue_1</id>
</testCase>
<testCase id="002002">
<class>Attach_UE</class>
<desc>Attach UE</desc>
<id>amarisoft_ue_2</id>
</testCase>
<testCase id="000100">
<class>Ping</class>
<desc>Ping: 20pings in 20sec</desc>
<id>amarisoft_ue_1 amarisoft_ue_2</id>
<ping_args>-c 20</ping_args>
<ping_packetloss_threshold>1</ping_packetloss_threshold>
<ping_rttavg_threshold>15</ping_rttavg_threshold>
</testCase>
<testCase id="000200">
<class>Ping</class>
<desc>Ping: 100pings in 20sec</desc>
<id>amarisoft_ue_1 amarisoft_ue_2</id>
<ping_args>-c 100 -i 0.2</ping_args>
<ping_packetloss_threshold>1</ping_packetloss_threshold>
<ping_rttavg_threshold>15</ping_rttavg_threshold>
</testCase>
<testCase id="003000">
<class>Detach_UE</class>
<desc>Detach UE</desc>
<id>amarisoft_ue_1 amarisoft_ue_2</id>
</testCase>
<testCase id="004000">
<class>Terminate_UE</class>
<desc>Terminate UE</desc>
<id>amarisoft_ue</id>
</testCase>
<testCase id="000002">
<class>IdleSleep</class>
<desc>Sleep</desc>
<idle_sleep_time_in_sec>5</idle_sleep_time_in_sec>
</testCase>
<testCase id="030000">
<class>Undeploy_Object</class>
<desc>Undeploy gNB</desc>
<yaml_path>ci-scripts/yaml_files/sa_aw2s_gnb</yaml_path>
<eNB_instance>0</eNB_instance>
<eNB_serverId>0</eNB_serverId>
<d_retx_th>20,100,100,100</d_retx_th>
<u_retx_th>20,100,100,100</u_retx_th>
</testCase>
</testCaseList>

View File

@@ -22,7 +22,7 @@
-->
<testCaseList>
<htmlTabRef>TEST-SA-FR1-B200</htmlTabRef>
<htmlTabName>40 MHz TDD SA</htmlTabName>
<htmlTabName>20 MHz TDD SA</htmlTabName>
<htmlTabIcon>tasks</htmlTabIcon>
<repeatCount>1</repeatCount>
<TestCaseRequestedList>
@@ -36,6 +36,10 @@
070000
070001
070002
060001
000002
060002
050000
010010
010002
030201
@@ -53,13 +57,13 @@
<testCase id="100000">
<class>Custom_Command</class>
<desc>Disable Sleep States</desc>
<node>nepes</node>
<node>ofqot</node>
<command>sudo cpupower idle-set -D 0</command>
</testCase>
<testCase id="200000">
<class>Custom_Command</class>
<desc>Enable Sleep States</desc>
<node>nepes</node>
<node>ofqot</node>
<command>sudo cpupower idle-set -E</command>
</testCase>
@@ -136,8 +140,8 @@
<testCase id="070001">
<class>Iperf</class>
<desc>iperf (UL/8Mbps/UDP)(30 sec)(single-ue profile)</desc>
<iperf_args>-u -b 8M -t 30 -i 1 -fm</iperf_args>
<desc>iperf (UL/3.5Mbps/UDP)(30 sec)(single-ue profile)</desc>
<iperf_args>-u -b 3.5M -t 30 -i 1 -fm</iperf_args>
<direction>UL</direction>
<id>idefix</id>
<iperf_packetloss_threshold>1</iperf_packetloss_threshold>
@@ -154,6 +158,21 @@
<iperf_profile>single-ue</iperf_profile>
</testCase>
<testCase id="060001">
<class>Custom_Command</class>
<desc>Trigger Reestablishment</desc>
<node>ofqot</node>
<command>echo ci force_reestab | nc -N 192.168.68.194 9090 | grep -E 'force-remove UE RNTI [0-9a-f]{4} from RLC to trigger reestablishment'</command>
<command_fail>yes</command_fail>
</testCase>
<testCase id="060002">
<class>Custom_Command</class>
<desc>Verify Reestablishment</desc>
<node>ofqot</node>
<command>echo ci get_reestab_count | nc -N 192.168.68.194 9090 | grep -E 'UE RNTI [0-9a-f]{4} reestab 1 reconf_after_reestab 1'</command>
<command_fail>yes</command_fail>
</testCase>
<testCase id="030201">
<class>Undeploy_Object</class>
<desc>Undeploy gNB</desc>

View File

@@ -93,13 +93,13 @@
<testCase id="100000">
<class>Custom_Command</class>
<desc>Disable Sleep States</desc>
<node>nepes</node>
<node>ofqot</node>
<command>sudo cpupower idle-set -D 0</command>
</testCase>
<testCase id="200000">
<class>Custom_Command</class>
<desc>Enable Sleep States</desc>
<node>nepes</node>
<node>ofqot</node>
<command>sudo cpupower idle-set -E</command>
</testCase>

View File

@@ -42,7 +42,7 @@
<class>Initialize_OAI_UE</class>
<desc>Initialize OAI UE</desc>
<air_interface>nr</air_interface>
<Initialize_OAI_UE_args>--sa -O ../../../ci-scripts/conf_files/ue.sa.conf --usrp-args "serial=30C51D1" --numerology 1 -r 106 --band 78 -C 3319680000 --nokrnmod 1 --ue-txgain 0 -E --log_config.global_log_options level,nocolor,time</Initialize_OAI_UE_args>
<Initialize_OAI_UE_args>--sa -O ../../../ci-scripts/conf_files/ue.sa.conf --usrp-args "serial=30C51D1" --numerology 1 -r 106 --band 78 -C 3319680000 --ue-txgain 0 -E --log_config.global_log_options level,nocolor,time</Initialize_OAI_UE_args>
</testCase>
<testCase id="010002">

View File

@@ -44,7 +44,7 @@
<class>Initialize_OAI_UE</class>
<desc>Initialize OAI UE (N310)</desc>
<air_interface>nr</air_interface>
<Initialize_OAI_UE_args>--sa -O ../../../ci-scripts/conf_files/ue.sa.conf --usrp-args "mgmt_addr=172.21.19.13,addr=192.168.10.2" --numerology 1 -r 106 --band 78 -C 3319680000 --nokrnmod 1 --ue-txgain 0 --ue-rxgain 70 --ue-fo-compensation --log_config.global_log_options level,nocolor,time</Initialize_OAI_UE_args>
<Initialize_OAI_UE_args>--sa -O ../../../ci-scripts/conf_files/ue.sa.conf --usrp-args "mgmt_addr=172.21.19.13,addr=192.168.10.2" --numerology 1 -r 106 --band 78 -C 3319680000 --ue-txgain 0 --ue-rxgain 70 --ue-fo-compensation --log_config.global_log_options level,nocolor,time</Initialize_OAI_UE_args>
</testCase>
<testCase id="010002">

View File

@@ -42,7 +42,7 @@
<class>Initialize_OAI_UE</class>
<desc>Initialize OAI UE (X300)</desc>
<air_interface>nr</air_interface>
<Initialize_OAI_UE_args>--sa -O ../../../ci-scripts/conf_files/ue.sa.conf --usrp-args "addr=192.168.60.2" --numerology 1 -r 106 --band 78 -C 3319680000 --nokrnmod 1 --ue-txgain 0 --ue-rxgain 70 --ue-fo-compensation --log_config.global_log_options level,nocolor,time</Initialize_OAI_UE_args>
<Initialize_OAI_UE_args>--sa -O ../../../ci-scripts/conf_files/ue.sa.conf --usrp-args "addr=192.168.60.2" --numerology 1 -r 106 --band 78 -C 3319680000 --ue-txgain 0 --ue-rxgain 70 --ue-fo-compensation --log_config.global_log_options level,nocolor,time</Initialize_OAI_UE_args>
</testCase>
<testCase id="010002">

View File

@@ -166,8 +166,8 @@
<eNB_instance>0</eNB_instance>
<eNB_serverId>0</eNB_serverId>
<air_interface>nr</air_interface>
<d_retx_th>5,50,100,100</d_retx_th>
<u_retx_th>5,50,100,100</u_retx_th>
<d_retx_th>5,80,100,100</d_retx_th>
<u_retx_th>5,80,100,100</u_retx_th>
</testCase>
</testCaseList>

View File

@@ -119,8 +119,8 @@
<testCase id="072000">
<class>Iperf</class>
<desc>iperf (DL/200Mbps/UDP)(60 sec)(single-ue profile)</desc>
<iperf_args>-u -b 200M -t 60</iperf_args>
<desc>iperf (DL/180Mbps/UDP)(60 sec)(single-ue profile)</desc>
<iperf_args>-u -b 180M -t 60</iperf_args>
<direction>DL</direction>
<id>nrmodule2_quectel</id>
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
@@ -155,8 +155,8 @@
<eNB_instance>0</eNB_instance>
<eNB_serverId>0</eNB_serverId>
<air_interface>nr</air_interface>
<d_retx_th>5,50,100,100</d_retx_th>
<u_retx_th>5,50,100,100</u_retx_th>
<d_retx_th>5,80,100,100</d_retx_th>
<u_retx_th>5,80,100,100</u_retx_th>
</testCase>
</testCaseList>

View File

@@ -193,8 +193,8 @@
<eNB_instance>0</eNB_instance>
<eNB_serverId>0</eNB_serverId>
<air_interface>nr</air_interface>
<d_retx_th>5,50,100,100</d_retx_th>
<u_retx_th>5,50,100,100</u_retx_th>
<d_retx_th>5,80,100,100</d_retx_th>
<u_retx_th>5,80,100,100</u_retx_th>
</testCase>
</testCaseList>

View File

@@ -1,164 +0,0 @@
<!--
Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The OpenAirInterface Software Alliance licenses this file to You under
the OAI Public License, Version 1.1 (the "License"); you may not use this file
except in compliance with the License.
You may obtain a copy of the License at
http://www.openairinterface.org/?page_id=698
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
For more information about the OpenAirInterface (OAI) Software Alliance:
contact@openairinterface.org
-->
<testCaseList>
<htmlTabRef>TEST-LTE-TM1-Tab1</htmlTabRef>
<htmlTabName>LTE 2x2 TM1 Ping DL UL with QUECTEL</htmlTabName>
<htmlTabIcon>tasks</htmlTabIcon>
<repeatCount>1</repeatCount>
<TestCaseRequestedList>
100000
010000
030000
010001
050000
050001
070000
070001
010011
010002
080000
200000
</TestCaseRequestedList>
<TestCaseExclusionList></TestCaseExclusionList>
<testCase id="100000">
<class>Custom_Command</class>
<desc>Disable Sleep States</desc>
<node>obelix</node>
<command>sudo cpupower idle-set -D 0</command>
</testCase>
<testCase id="200000">
<class>Custom_Command</class>
<desc>Enable Sleep States</desc>
<node>obelix</node>
<command>sudo cpupower idle-set -E</command>
</testCase>
<testCase id="010000">
<class>Initialize_UE</class>
<desc>Initialize Quectel</desc>
<id>nrmodule2_quectel</id>
</testCase>
<testCase id="010002">
<class>Terminate_UE</class>
<desc>Terminate Quectel</desc>
<id>nrmodule2_quectel</id>
</testCase>
<testCase id="010001">
<class>Attach_UE</class>
<desc>Attach Quectel</desc>
<id>nrmodule2_quectel</id>
</testCase>
<testCase id="010011">
<class>Detach_UE</class>
<desc>Detach Quectel</desc>
<id>nrmodule2_quectel</id>
</testCase>
<testCase id="030000">
<class>Initialize_eNB</class>
<desc>Initialize eNB</desc>
<Initialize_eNB_args>-O ci-scripts/conf_files/enb.band38.lte_2x2.100PRB.usrpn310.conf --usrp-tx-thread-config 1 --thread-pool 0,2,4,6 --log_config.global_log_options level,nocolor,time</Initialize_eNB_args>
<eNB_instance>0</eNB_instance>
<eNB_serverId>0</eNB_serverId>
<air_interface>lte</air_interface>
<eNB_Trace>yes</eNB_Trace>
<eNB_Stats>yes</eNB_Stats>
<USRP_IPAddress>172.21.19.13</USRP_IPAddress>
</testCase>
<testCase id="000001">
<class>IdleSleep</class>
<desc>Sleep</desc>
<idle_sleep_time_in_sec>5</idle_sleep_time_in_sec>
</testCase>
<testCase id="000002">
<class>IdleSleep</class>
<desc>Sleep</desc>
<idle_sleep_time_in_sec>20</idle_sleep_time_in_sec>
</testCase>
<testCase id="050000">
<class>Ping</class>
<desc>Ping: 20 pings</desc>
<id>nrmodule2_quectel</id>
<ping_args>-c 20</ping_args>
<ping_packetloss_threshold>1</ping_packetloss_threshold>
<ping_rttavg_threshold>60</ping_rttavg_threshold>
</testCase>
<testCase id="050001">
<class>Ping</class>
<desc>Ping: 100 pings, size 1024</desc>
<id>nrmodule2_quectel</id>
<ping_args>-c 100 -s 1024 -i 0,2</ping_args>
<ping_packetloss_threshold>1</ping_packetloss_threshold>
<ping_rttavg_threshold>60</ping_rttavg_threshold>
</testCase>
<testCase id="070000">
<class>Iperf</class>
<desc>iperf (DL/26Mbps/UDP)(60 sec)(single-ue profile)</desc>
<iperf_args>-u -b 26M -t 60</iperf_args>
<direction>DL</direction>
<id>nrmodule2_quectel</id>
<iperf_packetloss_threshold>5</iperf_packetloss_threshold>
<iperf_bitrate_threshold>95</iperf_bitrate_threshold>
<iperf_profile>single-ue</iperf_profile>
</testCase>
<testCase id="070001">
<class>Iperf</class>
<desc>iperf (UL/7Mbps/UDP)(60 sec)(single-ue profile)</desc>
<iperf_args>-u -b 7M -t 60</iperf_args>
<direction>UL</direction>
<id>nrmodule2_quectel</id>
<iperf_packetloss_threshold>5</iperf_packetloss_threshold>
<iperf_bitrate_threshold>95</iperf_bitrate_threshold>
<iperf_profile>single-ue</iperf_profile>
</testCase>
<testCase id="080000">
<class>Terminate_eNB</class>
<desc>Terminate eNB</desc>
<eNB_instance>0</eNB_instance>
<eNB_serverId>0</eNB_serverId>
<air_interface>lte</air_interface>
</testCase>
<testCase id="080001">
<class>Terminate_eNB</class>
<desc>Terminate gNB</desc>
<eNB_instance>1</eNB_instance>
<eNB_serverId>1</eNB_serverId>
<air_interface>nr</air_interface>
</testCase>
</testCaseList>

View File

@@ -1,164 +0,0 @@
<!--
Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The OpenAirInterface Software Alliance licenses this file to You under
the OAI Public License, Version 1.1 (the "License"); you may not use this file
except in compliance with the License.
You may obtain a copy of the License at
http://www.openairinterface.org/?page_id=698
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
For more information about the OpenAirInterface (OAI) Software Alliance:
contact@openairinterface.org
-->
<testCaseList>
<htmlTabRef>TEST-LTE-TM2-Tab2</htmlTabRef>
<htmlTabName>LTE 2x2 TM2 Ping DL UL with QUECTEL</htmlTabName>
<htmlTabIcon>tasks</htmlTabIcon>
<repeatCount>1</repeatCount>
<TestCaseRequestedList>
100000
010000
030001
010001
050002
050003
070002
070003
010011
010002
080000
200000
</TestCaseRequestedList>
<TestCaseExclusionList></TestCaseExclusionList>
<testCase id="100000">
<class>Custom_Command</class>
<desc>Disable Sleep States</desc>
<node>obelix</node>
<command>sudo cpupower idle-set -D 0</command>
</testCase>
<testCase id="200000">
<class>Custom_Command</class>
<desc>Enable Sleep States</desc>
<node>obelix</node>
<command>sudo cpupower idle-set -E</command>
</testCase>
<testCase id="010000">
<class>Initialize_UE</class>
<desc>Initialize Quectel</desc>
<id>nrmodule2_quectel</id>
</testCase>
<testCase id="010002">
<class>Terminate_UE</class>
<desc>Terminate Quectel</desc>
<id>nrmodule2_quectel</id>
</testCase>
<testCase id="010001">
<class>Attach_UE</class>
<desc>Attach Quectel</desc>
<id>nrmodule2_quectel</id>
</testCase>
<testCase id="010011">
<class>Detach_UE</class>
<desc>Detach Quectel</desc>
<id>nrmodule2_quectel</id>
</testCase>
<testCase id="030001">
<class>Initialize_eNB</class>
<desc>Initialize eNB</desc>
<Initialize_eNB_args>-O ci-scripts/conf_files/enb.band38.lte_2x2_tm2.100PRB.usrpn310.conf --usrp-tx-thread-config 1 --thread-pool 0,2,4,6 --log_config.global_log_options level,nocolor,time</Initialize_eNB_args>
<eNB_instance>0</eNB_instance>
<eNB_serverId>0</eNB_serverId>
<air_interface>lte</air_interface>
<eNB_Trace>yes</eNB_Trace>
<eNB_Stats>yes</eNB_Stats>
<USRP_IPAddress>172.21.19.13</USRP_IPAddress>
</testCase>
<testCase id="000001">
<class>IdleSleep</class>
<desc>Sleep</desc>
<idle_sleep_time_in_sec>5</idle_sleep_time_in_sec>
</testCase>
<testCase id="000002">
<class>IdleSleep</class>
<desc>Sleep</desc>
<idle_sleep_time_in_sec>20</idle_sleep_time_in_sec>
</testCase>
<testCase id="050002">
<class>Ping</class>
<desc>Ping: 20 pings</desc>
<id>nrmodule2_quectel</id>
<ping_args>-c 20</ping_args>
<ping_packetloss_threshold>1</ping_packetloss_threshold>
<ping_rttavg_threshold>60</ping_rttavg_threshold>
</testCase>
<testCase id="050003">
<class>Ping</class>
<desc>Ping: 100 pings, size 1024</desc>
<id>nrmodule2_quectel</id>
<ping_args>-c 100 -s 1024 -i 0,2</ping_args>
<ping_packetloss_threshold>1</ping_packetloss_threshold>
<ping_rttavg_threshold>60</ping_rttavg_threshold>
</testCase>
<testCase id="070002">
<class>Iperf</class>
<desc>iperf (DL/1Mbps/UDP)(60 sec)(single-ue profile)</desc>
<iperf_args>-u -b 1M -t 60</iperf_args>
<direction>DL</direction>
<id>nrmodule2_quectel</id>
<iperf_packetloss_threshold>5</iperf_packetloss_threshold>
<iperf_bitrate_threshold>95</iperf_bitrate_threshold>
<iperf_profile>single-ue</iperf_profile>
</testCase>
<testCase id="070003">
<class>Iperf</class>
<desc>iperf (UL/7Mbps/UDP)(60 sec)(single-ue profile)</desc>
<iperf_args>-u -b 7M -t 60</iperf_args>
<direction>UL</direction>
<id>nrmodule2_quectel</id>
<iperf_packetloss_threshold>5</iperf_packetloss_threshold>
<iperf_bitrate_threshold>95</iperf_bitrate_threshold>
<iperf_profile>single-ue</iperf_profile>
</testCase>
<testCase id="080000">
<class>Terminate_eNB</class>
<desc>Terminate eNB</desc>
<eNB_instance>0</eNB_instance>
<eNB_serverId>0</eNB_serverId>
<air_interface>lte</air_interface>
</testCase>
<testCase id="080001">
<class>Terminate_eNB</class>
<desc>Terminate gNB</desc>
<eNB_instance>1</eNB_instance>
<eNB_serverId>1</eNB_serverId>
<air_interface>nr</air_interface>
</testCase>
</testCaseList>

View File

@@ -34,7 +34,7 @@
<testCase id="090110">
<class>Initialize_OAI_UE</class>
<desc>Initialize OAI UE -- sniffing Orange frequency</desc>
<Initialize_OAI_UE_args>-C 816000000 -r 50 --ue-rxgain 135 --ue-scan-carrier --no-L2-connect --nokrnmod 1 --log_config.global_log_options level,nocolor,time</Initialize_OAI_UE_args>
<Initialize_OAI_UE_args>-C 816000000 -r 50 --ue-rxgain 135 --ue-scan-carrier --no-L2-connect --log_config.global_log_options level,nocolor,time</Initialize_OAI_UE_args>
</testCase>
<testCase id="000001">

View File

@@ -34,7 +34,7 @@
<testCase id="090111">
<class>Initialize_OAI_UE</class>
<desc>Initialize OAI UE -- sniffing SFR frequency</desc>
<Initialize_OAI_UE_args>-C 806000000 -r 50 --ue-rxgain 130 --ue-scan-carrier --no-L2-connect --nokrnmod 1 --log_config.global_log_options level,nocolor,time</Initialize_OAI_UE_args>
<Initialize_OAI_UE_args>-C 806000000 -r 50 --ue-rxgain 130 --ue-scan-carrier --no-L2-connect --log_config.global_log_options level,nocolor,time</Initialize_OAI_UE_args>
</testCase>
<testCase id="000001">

View File

@@ -248,7 +248,7 @@ services:
UE_NFAPI_IF_NAME: eno1
ENB_IP_ADDRESS: 127.0.0.1
LTE_UE_IP_ADDRESS: 127.0.0.1
USE_ADDITIONAL_OPTIONS: --L2-emul 5 --nokrnmod 1 --num-ues 1 --node-number 2 --log_config.global_log_options level,nocolor,time
USE_ADDITIONAL_OPTIONS: --L2-emul 5 --num-ues 1 --node-number 2 --log_config.global_log_options level,nocolor,time
volumes:
- ../../../openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results:/opt/oai-nr-ue/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results
healthcheck:
@@ -276,7 +276,7 @@ services:
UE_NFAPI_IF_NAME: eno1
ENB_IP_ADDRESS: 127.0.0.1
LTE_UE_IP_ADDRESS: 127.0.0.1
USE_ADDITIONAL_OPTIONS: --L2-emul 5 --nokrnmod 1 --num-ues 1 --node-number 3 --log_config.global_log_options level,nocolor,time
USE_ADDITIONAL_OPTIONS: --L2-emul 5 --num-ues 1 --node-number 3 --log_config.global_log_options level,nocolor,time
volumes:
- ../../../openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results:/opt/oai-nr-ue/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results
healthcheck:

View File

@@ -233,7 +233,7 @@ services:
OPC: 'c42449363bbad02b66d16bc975d77cc1'
MSISDN: '001011234561010'
HPLMN: 20896
USE_ADDITIONAL_OPTIONS: --rfsim -C 2680000000 -r 25 --ue-rxgain 140 --ue-txgain 120 --nokrnmod 1 --log_config.global_log_options level,nocolor,time
USE_ADDITIONAL_OPTIONS: --rfsim -C 2680000000 -r 25 --ue-rxgain 140 --ue-txgain 120 --log_config.global_log_options level,nocolor,time
healthcheck:
test: /bin/bash -c "pgrep lte-uesoftmodem"
interval: 10s

View File

@@ -55,7 +55,7 @@ services:
OPC: 'c42449363bbad02b66d16bc975d77cc1'
MSISDN: '001011234561010'
HPLMN: 20896
USE_ADDITIONAL_OPTIONS: --rfsim -C 2680000000 -r 25 --ue-rxgain 140 --ue-txgain 120 --nokrnmod 1 --log_config.global_log_options level,nocolor,time --noS1
USE_ADDITIONAL_OPTIONS: --rfsim -C 2680000000 -r 25 --ue-rxgain 140 --ue-txgain 120 --log_config.global_log_options level,nocolor,time --noS1
healthcheck:
test: /bin/bash -c "pgrep lte-uesoftmodem"
interval: 10s

View File

@@ -233,7 +233,7 @@ services:
OPC: 'c42449363bbad02b66d16bc975d77cc1'
MSISDN: '001011234561010'
HPLMN: 20896
USE_ADDITIONAL_OPTIONS: --rfsim -C 2680000000 -r 50 --ue-rxgain 140 --ue-txgain 120 --nokrnmod 1 --log_config.global_log_options level,nocolor,time
USE_ADDITIONAL_OPTIONS: --rfsim -C 2680000000 -r 50 --ue-rxgain 140 --ue-txgain 120 --log_config.global_log_options level,nocolor,time
healthcheck:
test: /bin/bash -c "pgrep lte-uesoftmodem"
interval: 10s

View File

@@ -233,7 +233,7 @@ services:
OPC: 'c42449363bbad02b66d16bc975d77cc1'
MSISDN: '001011234561010'
HPLMN: 20896
USE_ADDITIONAL_OPTIONS: --rfsim -C 2680000000 -r 100 --ue-rxgain 140 --ue-txgain 120 --nokrnmod 1 --log_config.global_log_options level,nocolor,time
USE_ADDITIONAL_OPTIONS: --rfsim -C 2680000000 -r 100 --ue-rxgain 140 --ue-txgain 120 --log_config.global_log_options level,nocolor,time
healthcheck:
test: /bin/bash -c "pgrep lte-uesoftmodem"
interval: 10s

View File

@@ -39,7 +39,7 @@ services:
OPC: 'e734f8734007d6c5ce7a0508809e7e9c'
MSISDN: '33611123456'
HPLMN: 20893
USE_ADDITIONAL_OPTIONS: -C 2680000000 -r 25 --ue-rxgain 140 --ue-txgain 120 --nokrnmod 1 --rfsim --noS1 --log_config.global_log_options level,nocolor,time --noS1
USE_ADDITIONAL_OPTIONS: -C 2680000000 -r 25 --ue-rxgain 140 --ue-txgain 120 --rfsim --noS1 --log_config.global_log_options level,nocolor,time --noS1
healthcheck:
test: /bin/bash -c "pgrep lte-uesoftmodem"
interval: 10s

View File

@@ -43,7 +43,7 @@ services:
OPC: 'e734f8734007d6c5ce7a0508809e7e9c'
MSISDN: '33611123456'
HPLMN: 20893
USE_ADDITIONAL_OPTIONS: -C 2680000000 -r 25 --ue-rxgain 140 --ue-txgain 120 --nokrnmod 1 --rfsim --noS1 --log_config.global_log_options level,nocolor,time --noS1
USE_ADDITIONAL_OPTIONS: -C 2680000000 -r 25 --ue-rxgain 140 --ue-txgain 120 --rfsim --noS1 --log_config.global_log_options level,nocolor,time --noS1
healthcheck:
test: /bin/bash -c "pgrep lte-uesoftmodem"
interval: 10s

View File

@@ -232,7 +232,7 @@ services:
OPC: 'c42449363bbad02b66d16bc975d77cc1'
MSISDN: '001011234561010'
HPLMN: 20896
USE_ADDITIONAL_OPTIONS: --rfsim -T -C 2605000000 -r 25 --ue-rxgain 140 --ue-txgain 120 --nokrnmod 1 --log_config.global_log_options level,nocolor,time
USE_ADDITIONAL_OPTIONS: --rfsim -T -C 2605000000 -r 25 --ue-rxgain 140 --ue-txgain 120 --log_config.global_log_options level,nocolor,time
healthcheck:
test: /bin/bash -c "pgrep lte-uesoftmodem"
interval: 10s

View File

@@ -241,7 +241,7 @@ services:
OPC: 'C42449363BBAD02B66D16BC975D77CC1'
DNN: oai
NSSAI_SST: 1
USE_ADDITIONAL_OPTIONS: --sa --rfsim -r 106 --numerology 1 -C 3619200000 --nokrnmod --log_config.global_log_options level,nocolor,time
USE_ADDITIONAL_OPTIONS: --sa --rfsim -r 106 --numerology 1 -C 3619200000 --log_config.global_log_options level,nocolor,time
depends_on:
- oai-du
networks:

View File

@@ -202,7 +202,7 @@ services:
OPC: 'C42449363BBAD02B66D16BC975D77CC1'
DNN: oai
NSSAI_SST: 1
USE_ADDITIONAL_OPTIONS: -E --sa --rfsim -r 106 --numerology 1 --band 66 -C 2169080000 --CO -400000000 --ssb 396 --nokrnmod --log_config.global_log_options level,nocolor,time
USE_ADDITIONAL_OPTIONS: -E --sa --rfsim -r 106 --numerology 1 --band 66 -C 2169080000 --CO -400000000 --ssb 396 --log_config.global_log_options level,nocolor,time
depends_on:
- oai-gnb
networks:

View File

@@ -228,7 +228,7 @@ services:
NR_UE_NFAPI_IF_NAME: eno1
GNB_IP_ADDRESS: 127.0.0.1
NR_UE_IP_ADDRESS: 127.0.0.1
USE_ADDITIONAL_OPTIONS: --nokrnmod 1 --nfapi STANDALONE_PNF --node-number 2 --sa --emulate-l1 --log_config.global_log_options level,time,thread_id,nocolor
USE_ADDITIONAL_OPTIONS: --nfapi STANDALONE_PNF --node-number 2 --sa --emulate-l1 --log_config.global_log_options level,time,thread_id,nocolor
volumes:
- ../../../openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results:/opt/oai-nr-ue/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results
depends_on:

View File

@@ -250,7 +250,7 @@ Create entry for Second UE in docker-compose.yaml file as follows:
OPC: 'C42449363BBAD02B66D16BC975D77CC1'
DNN: oai
NSSAI_SST: 1
USE_ADDITIONAL_OPTIONS: -E --sa --rfsim -r 106 --numerology 1 -C 3619200000 --nokrnmod --log_config.global_log_options level,nocolor,time
USE_ADDITIONAL_OPTIONS: -E --sa --rfsim -r 106 --numerology 1 -C 3619200000 --log_config.global_log_options level,nocolor,time
depends_on:
- oai-gnb
networks:

View File

@@ -203,7 +203,7 @@ services:
OPC: 'C42449363BBAD02B66D16BC975D77CC1'
DNN: oai
NSSAI_SST: 1
USE_ADDITIONAL_OPTIONS: -E --sa --rfsim -r 106 --numerology 1 -C 3619200000 --nokrnmod --log_config.global_log_options level,nocolor,time
USE_ADDITIONAL_OPTIONS: -E --sa --rfsim -r 106 --numerology 1 -C 3619200000 --log_config.global_log_options level,nocolor,time
depends_on:
- oai-gnb
networks:
@@ -226,7 +226,7 @@ services:
OPC: 'C42449363BBAD02B66D16BC975D77CC1'
DNN: oai
NSSAI_SST: 1
USE_ADDITIONAL_OPTIONS: -E --sa --rfsim -r 106 --numerology 1 -C 3619200000 --nokrnmod --log_config.global_log_options level,nocolor,time
USE_ADDITIONAL_OPTIONS: -E --sa --rfsim -r 106 --numerology 1 -C 3619200000 --log_config.global_log_options level,nocolor,time
depends_on:
- oai-gnb
networks:

View File

@@ -193,7 +193,7 @@ services:
OPC: 'C42449363BBAD02B66D16BC975D77CC1'
DNN: oai
NSSAI_SST: 1
USE_ADDITIONAL_OPTIONS: --sa --rfsim -r 24 --ssb 24 --numerology 1 -C 3604320000 --nokrnmod --log_config.global_log_options level,nocolor,time
USE_ADDITIONAL_OPTIONS: --sa --rfsim -r 24 --ssb 24 --numerology 1 -C 3604320000 --log_config.global_log_options level,nocolor,time
depends_on:
- oai-gnb
networks:

View File

@@ -194,7 +194,7 @@ services:
OPC: 'C42449363BBAD02B66D16BC975D77CC1'
DNN: oai
NSSAI_SST: 1
USE_ADDITIONAL_OPTIONS: --sa --rfsim -r 106 --numerology 1 --band 78 -C 3319680000 --nokrnmod --ue-nb-ant-tx 2 --ue-nb-ant-rx 2 --uecap_file /opt/oai-nr-ue/etc/uecap.xml --log_config.global_log_options level,nocolor,time
USE_ADDITIONAL_OPTIONS: --sa --rfsim -r 106 --numerology 1 --band 78 -C 3319680000 --ue-nb-ant-tx 2 --ue-nb-ant-rx 2 --uecap_file /opt/oai-nr-ue/etc/uecap.xml --log_config.global_log_options level,nocolor,time
depends_on:
- oai-gnb
networks:

View File

@@ -239,7 +239,7 @@ services:
OPC: 'C42449363BBAD02B66D16BC975D77CC1'
DNN: oai
NSSAI_SST: 1
USE_ADDITIONAL_OPTIONS: --sa --rfsim -r 106 --numerology 1 -C 3619200000 --nokrnmod --log_config.global_log_options level,nocolor,time
USE_ADDITIONAL_OPTIONS: --sa --rfsim -r 106 --numerology 1 -C 3619200000 --log_config.global_log_options level,nocolor,time
depends_on:
- oai-du
networks:

View File

@@ -7,7 +7,7 @@ services:
environment:
RFSIMULATOR: server
USE_VOLUMED_CONF: 'yes'
USE_ADDITIONAL_OPTIONS: --phy-test --rfsim --noS1 --nokrnmod --log_config.global_log_options level,nocolor,time
USE_ADDITIONAL_OPTIONS: --phy-test --rfsim --rfsimulator.wait_timeout 20 --noS1 --log_config.global_log_options level,nocolor,time
networks:
public_net:
ipv4_address: 192.168.71.140
@@ -31,7 +31,7 @@ services:
OPC: 'C42449363BBAD02B66D16BC975D77CC1'
DNN: oai
NSSAI_SST: 1
USE_ADDITIONAL_OPTIONS: --phy-test --rfsim --noS1 --nokrnmod --rrc_config_path etc/rrc/ --log_config.global_log_options level,nocolor,time
USE_ADDITIONAL_OPTIONS: --phy-test --rfsim --noS1 --rrc_config_path etc/rrc/ --log_config.global_log_options level,nocolor,time
volumes:
- rrc.config:/opt/oai-nr-ue/etc/rrc/
depends_on:

View File

@@ -7,7 +7,7 @@ services:
environment:
RFSIMULATOR: server
USE_VOLUMED_CONF: 'yes'
USE_ADDITIONAL_OPTIONS: --do-ra --rfsim --noS1 --nokrnmod --log_config.global_log_options level,nocolor,time
USE_ADDITIONAL_OPTIONS: --do-ra --rfsim --rfsimulator.wait_timeout 20 --noS1 --log_config.global_log_options level,nocolor,time
networks:
public_net:
ipv4_address: 192.168.71.140
@@ -31,7 +31,7 @@ services:
OPC: 'C42449363BBAD02B66D16BC975D77CC1'
DNN: oai
NSSAI_SST: 1
USE_ADDITIONAL_OPTIONS: --do-ra --rfsim --noS1 --rrc_config_path etc/rrc/ --nokrnmod --log_config.global_log_options level,nocolor,time
USE_ADDITIONAL_OPTIONS: --do-ra --rfsim --noS1 --rrc_config_path etc/rrc/ --log_config.global_log_options level,nocolor,time
volumes:
- rrc.config:/opt/oai-nr-ue/etc/rrc/
depends_on:

View File

@@ -7,7 +7,7 @@ services:
environment:
RFSIMULATOR: server
USE_VOLUMED_CONF: 'yes'
USE_ADDITIONAL_OPTIONS: --do-ra --rfsim --noS1 --nokrnmod --log_config.global_log_options level,nocolor,time
USE_ADDITIONAL_OPTIONS: --do-ra --rfsim --rfsimulator.wait_timeout 20 --noS1 --log_config.global_log_options level,nocolor,time
networks:
public_net:
ipv4_address: 192.168.71.140
@@ -31,7 +31,7 @@ services:
OPC: 'C42449363BBAD02B66D16BC975D77CC1'
DNN: oai
NSSAI_SST: 1
USE_ADDITIONAL_OPTIONS: --do-ra --rfsim --noS1 --rrc_config_path etc/rrc/ --nokrnmod --log_config.global_log_options level,nocolor,time
USE_ADDITIONAL_OPTIONS: --do-ra --rfsim --noS1 --rrc_config_path etc/rrc/ --log_config.global_log_options level,nocolor,time
volumes:
- rrc.config:/opt/oai-nr-ue/etc/rrc/
depends_on:

View File

@@ -194,7 +194,7 @@ services:
OPC: 'C42449363BBAD02B66D16BC975D77CC1'
DNN: oai
NSSAI_SST: 1
USE_ADDITIONAL_OPTIONS: --sa --rfsim -r 25 --numerology 0 --band 66 -C 2152250000 --CO -400000000 --ssb 48 --nokrnmod --nokrnmod --log_config.global_log_options level,nocolor,time
USE_ADDITIONAL_OPTIONS: --sa --rfsim -r 25 --numerology 0 --band 66 -C 2152250000 --CO -400000000 --ssb 48 --log_config.global_log_options level,nocolor,time
depends_on:
- oai-gnb
networks:

View File

@@ -0,0 +1,18 @@
version: '3.8'
services:
oai-enb:
image: oai-enb:latest
privileged: true
container_name: oai-enb
environment:
TZ: Europe/Paris
USE_VOLUMED_CONF: 'yes'
USE_ADDITIONAL_OPTIONS: --usrp-tx-thread-config 1 --thread-pool 0,2,4,6
volumes:
- ../../conf_files/enb.band38.lte_2x2.100PRB.usrpn310.conf:/opt/oai-enb/etc/mounted.conf
network_mode: "host"
healthcheck:
test: /bin/bash -c "pgrep lte-softmodem"
interval: 10s
timeout: 5s
retries: 5

View File

@@ -0,0 +1,18 @@
version: '3.8'
services:
oai-enb:
image: oai-enb:latest
privileged: true
container_name: oai-enb
environment:
TZ: Europe/Paris
USE_VOLUMED_CONF: 'yes'
USE_ADDITIONAL_OPTIONS: --usrp-tx-thread-config 1 --thread-pool 0,2,4,6
volumes:
- ../../conf_files/enb.band38.lte_2x2_tm2.100PRB.usrpn310.conf:/opt/oai-enb/etc/mounted.conf
network_mode: "host"
healthcheck:
test: /bin/bash -c "pgrep lte-softmodem"
interval: 10s
timeout: 5s
retries: 5

View File

@@ -20,7 +20,7 @@ services:
NB_PRB: 25
ENABLE_MEASUREMENT_REPORTS: 'yes'
ENABLE_X2: 'yes'
MME_S1C_IP_ADDRESS: 172.21.16.136
MME_S1C_IP_ADDRESS: 172.21.16.137
ENB_S1C_IF_NAME: eth0
ENB_S1C_IP_ADDRESS: 192.168.68.130
ENB_S1U_IF_NAME: eth0

View File

@@ -15,7 +15,7 @@ services:
TAC: 1
ENABLE_X2: 'yes'
ENB_X2_IP_ADDRESS: 192.168.68.130
MME_S1C_IP_ADDRESS: 172.21.16.136
MME_S1C_IP_ADDRESS: 172.21.16.137
GNB_S1C_IF_NAME: eth0
GNB_S1C_IP_ADDRESS: 192.168.68.194
GNB_S1U_IF_NAME: eth0

View File

@@ -0,0 +1,18 @@
version: '3.8'
services:
oai-gnb:
image: oai-gnb-aw2s:latest
privileged: true
network_mode: "host"
container_name: oai-gnb-aw2s
environment:
TZ: Europe/Paris
USE_VOLUMED_CONF: 'yes'
USE_ADDITIONAL_OPTIONS: --sa
volumes:
- ../../conf_files/gnb.sa.band78.51prb.aw2s.ddsuu.conf:/opt/oai-gnb-aw2s/etc/mounted.conf
healthcheck:
test: /bin/bash -c "pgrep nr-softmodem"
interval: 10s
timeout: 5s
retries: 5

View File

@@ -15,12 +15,12 @@ services:
TAC: 1
NSSAI_SST: 1
NSSAI_SD0: 1
AMF_IP_ADDRESS: 172.21.16.136
AMF_IP_ADDRESS: 172.21.16.137
GNB_NGA_IF_NAME: eth0
GNB_NGA_IP_ADDRESS: 192.168.68.194
GNB_NGU_IF_NAME: eth0
GNB_NGU_IP_ADDRESS: 192.168.68.194
USE_ADDITIONAL_OPTIONS: --sa --RUs.[0].sdr_addrs serial=30C51D4 --continuous-tx --log_config.global_log_options level,nocolor,time,line_num,function
USE_ADDITIONAL_OPTIONS: --sa --RUs.[0].sdr_addrs serial=30C51D4 --telnetsrv --telnetsrv.shrmod ci --continuous-tx --log_config.global_log_options level,nocolor,time,line_num,function
volumes:
- /dev:/dev
networks:

View File

@@ -16,7 +16,7 @@ services:
NSSAI_SST: 1
NSSAI_SD0: 1
NSSAI_SD1: 2
AMF_IP_ADDRESS: 172.21.16.136
AMF_IP_ADDRESS: 172.21.16.137
GNB_NGA_IF_NAME: eth0
GNB_NGA_IP_ADDRESS: 192.168.68.194
GNB_NGU_IF_NAME: eth0

View File

@@ -82,7 +82,7 @@ endif()
set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS Debug Release RelWithDebInfo MinSizeRel)
#
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -msse4.2 -std=gnu99 -Wall -Wstrict-prototypes -fno-strict-aliasing -rdynamic -funroll-loops -Wno-packed-bitfield-compat ")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -msse4.2 -std=gnu99 -Wall -Wstrict-prototypes -fno-strict-aliasing -rdynamic -funroll-loops")
set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -ggdb -DMALLOC_CHECK_=3")
set(CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELWITHDEBINFO} -ggdb -DMALLOC_CHECK_=3 -O2")

View File

@@ -289,11 +289,13 @@
(Test10: Format 2 9-bit 2/106 PRB),
(Test11: Format 2 10-bit 2/106 PRB),
(Test12: Format 2 11-bit 2/106 PRB),
(Test13: Format 2 12-bit 8/106 PRB),
(Test14: Format 2 19-bit 8/106 PRB),
(Test15: Format 2 32-bit 8/106 PRB),
(Test16: Format 2 32-bit 16/106 PRB),
(Test17: Format 2 64-bit 16/106 PRB)</desc>
(Test13: Format 2 12-bit 4/106 PRB),
(Test14: Format 2 19-bit 4/106 PRB),
(Test15: Format 2 12-bit 8/106 PRB),
(Test16: Format 2 19-bit 8/106 PRB),
(Test17: Format 2 32-bit 8/106 PRB),
(Test18: Format 2 32-bit 16/106 PRB),
(Test19: Format 2 64-bit 16/106 PRB)</desc>
<main_exec>nr_pucchsim</main_exec>
<main_exec_args>-R 106 -i 1 -P 0 -b 1 -s-2 -n1000
-R 106 -i 1 -P 0 -b 2 -s-2 -n1000
@@ -307,12 +309,14 @@
-R 106 -i 1 -P 2 -b 9 -s5 -n1000
-R 106 -i 1 -P 2 -b 10 -s6 -n1000
-R 106 -i 1 -P 2 -b 11 -s6 -n1000
-R 106 -i 1 -P 2 -q4 -b 12 -s-3 -n1000
-R 106 -i 1 -P 2 -q4 -b 19 -s-3 -n1000
-R 106 -i 1 -P 2 -q8 -b 12 -s-3 -n1000
-R 106 -i 1 -P 2 -q8 -b 19 -s-3 -n1000
-R 106 -i 1 -P 2 -q8 -b 32 -s-3 -n1000
-R 106 -i 1 -P 2 -q16 -b 32 -s-3 -n1000
-R 106 -i 1 -P 2 -q16 -b 64 -s-3 -n1000</main_exec_args>
<tags>test1 test2 test3 test4 test5 test6 test7 test8 test9 test10 test11 test12 test13 test14 test15 test16 test17</tags>
<tags>test1 test2 test3 test4 test5 test6 test7 test8 test9 test10 test11 test12 test13 test14 test15 test16 test17 test18 test19</tags>
<search_expr_true>PUCCH test OK</search_expr_true>
<search_expr_false>segmentation fault|assertion|exiting|fatal</search_expr_false>
<nruns>3</nruns>
@@ -354,18 +358,21 @@
<desc>nr_ulsim Test cases. (Test1: MCS 9 106 PRBs),
(Test2: MCS 16 50 PRBs),
(Test3: MCS 28 50 PRBs),
(Test4: MCS 9 217 PRBs),
(Test5: MCS 9 273 PRBs),
(Test6: PUSCH Type A, 2 DMRS Symbols),
(Test7: PUSCH Type A, 3 DMRS, 4 PTRS, 5 Interpolated Symbols),
(Test8: PUSCH Type B, 3 DMRS, 2 PTRS, 7 Interpolated Symbols),
(Test9: PUSCH Type B, 3 DMRS, 2 PTRS, 3 Interpolated Symbols),
(Test10: 25 PRBs, 15 kHz SCS),
(Test11: MCS 0, low SNR performance)</desc>
(Test4: MCS 27 50 PRBs 256QAM),
(Test5: MCS 9 217 PRBs),
(Test6: MCS 9 273 PRBs),
(Test7: PUSCH Type A, 2 DMRS Symbols),
(Test8: PUSCH Type A, 3 DMRS, 4 PTRS, 5 Interpolated Symbols),
(Test9: PUSCH Type B, 3 DMRS, 2 PTRS, 7 Interpolated Symbols),
(Test10: PUSCH Type B, 3 DMRS, 2 PTRS, 3 Interpolated Symbols),
(Test11: 25 PRBs, 15 kHz SCS),
(Test12: MCS 0, low SNR performance)
(Test13: MCS 28, 106 PRBs, Time shift 8)</desc>
<main_exec>nr_ulsim</main_exec>
<main_exec_args>-n100 -m9 -r106 -s5
-n100 -m16 -s10
-n100 -m28 -s20
-n100 -m27 -s25 -q1
-n100 -m9 -R217 -r217 -s5
-n100 -m9 -R273 -r273 -s5
-n100 -s5 -U 0,1,1,1
@@ -373,8 +380,9 @@
-n100 -s5 -T 2,2 -U 1,2,1,1
-n100 -s5 -a4 -b8 -T 1,2 -U 1,3,1,1
-n100 -u0 -m0 -R25 -r25 -i 1,0
-n100 -m0 -S -0.6 -i 1,0</main_exec_args>
<tags>test1 test2 test3 test4 test5 test6 test7 test8 test9 test10 test11</tags>
-n100 -m0 -S -0.6 -i 1,0
-n100 -m 28 -R106 -r106 -t90 -s24 -S24 -d 8</main_exec_args>
<tags>test1 test2 test3 test4 test5 test6 test7 test8 test9 test10 test11 test12 test13</tags>
<search_expr_true>PUSCH test OK</search_expr_true>
<search_expr_false>segmentation fault|assertion|exiting|fatal</search_expr_false>
<nruns>3</nruns>
@@ -440,7 +448,11 @@
(Test21: 3GPP G-FR1-A5-13, PUSCH Type B, 40 MHz BW, 30 kHz SCS, 8 RX Antennas Requirements Test),
(Test22: 3GPP G-FR1-A5-14, PUSCH Type B, 100 MHz BW, 30 kHz SCS, 2 RX Antennas Requirements Test),
(Test23: 3GPP G-FR1-A5-14, PUSCH Type B, 100 MHz BW, 30 kHz SCS, 4 RX Antennas Requirements Test),
(Test24: 3GPP G-FR1-A5-14, PUSCH Type B, 100 MHz BW, 30 kHz SCS, 8 RX Antennas Requirements Test)</desc>
(Test24: 3GPP G-FR1-A5-14, PUSCH Type B, 100 MHz BW, 30 kHz SCS, 8 RX Antennas Requirements Test),
(Test25: 3GPP G-FR1-A3-27, PUSCH Type B, 40 MHz BW, 30 kHz SCS, 2 RX Antennas Requirements Test, 2 layers),
(Test26: 3GPP G-FR1-A3-27, PUSCH Type B, 40 MHz BW, 30 kHz SCS, 4 RX Antennas Requirements Test, 2 layers),
(Test27: 3GPP G-FR1-A4-27, PUSCH Type B, 40 MHz BW, 30 kHz SCS, 2 RX Antennas Requirements Test, 2 layers),
(Test28: 3GPP G-FR1-A4-27, PUSCH Type B, 40 MHz BW, 30 kHz SCS, 4 RX Antennas Requirements Test, 2 layers)</desc>
<main_exec>nr_ulsim</main_exec>
<main_exec_args>-n100 -b14 -I7 -i 0,1 -g A,l,10 -t70 -u 1 -m20 -R106 -r106 -U 0,1,1,2 -z2 -s12.4 -S12.4
-n100 -b14 -I7 -i 0,1 -g A,l,10 -t70 -u 1 -m20 -R106 -r106 -U 0,1,1,2 -z4 -s8.5 -S8.5
@@ -465,8 +477,12 @@
-n100 -b14 -I7 -i 0,1 -g A,l,10 -t70 -u 1 -m20 -R106 -r106 -U 1,1,1,2 -z8 -s5.5 -S5.5
-n100 -b14 -I7 -i 0,1 -g A,l,10 -t70 -u 1 -m20 -R273 -r273 -U 1,1,1,2 -z2 -s13.1 -S13.1
-n100 -b14 -I7 -i 0,1 -g A,l,10 -t70 -u 1 -m20 -R273 -r273 -U 1,1,1,2 -z4 -s9.2 -S9.2
-n100 -b14 -I8 -i 0,1 -g A,l,10 -t70 -u 1 -m20 -R273 -r273 -U 1,1,1,2 -z8 -s5.9 -S5.9</main_exec_args>
<tags>test1 test2 test3 test4 test5 test6 test7 test8 test9 test10 test11 test12 test13 test14 test15 test16 test17 test18 test19 test20 test21 test22 test23 test24</tags>
-n100 -b14 -I8 -i 0,1 -g A,l,10 -t70 -u 1 -m20 -R273 -r273 -U 1,1,1,2 -z8 -s5.9 -S5.9
-n100 -b14 -I15 -i 0,1 -g B,l -t70 -u 1 -m2 -R106 -r106 -U 1,1,1,2 -W2 -y2 -z2 -s1.7 -S1.7
-n100 -b14 -I15 -i 0,1 -g B,l -t70 -u 1 -m2 -R106 -r106 -U 1,1,1,2 -W2 -y2 -z4 -s-2.1 -S-2.1
-n100 -b14 -I15 -i 0,1 -g C,l -t70 -u 1 -m16 -R106 -r106 -U 1,1,1,2 -W2 -y2 -z2 -s18.7 -S18.7
-n100 -b14 -I15 -i 0,1 -g C,l -t70 -u 1 -m16 -R106 -r106 -U 1,1,1,2 -W2 -y2 -z4 -s11.2 -S11.2</main_exec_args>
<tags>test1 test2 test3 test4 test5 test6 test7 test8 test9 test10 test11 test12 test13 test14 test15 test16 test17 test18 test19 test20 test21 test22 test23 test24 test25 test26 test27 test28</tags>
<search_expr_true>PUSCH test OK</search_expr_true>
<search_expr_false>segmentation fault|assertion|exiting|fatal</search_expr_false>
<nruns>3</nruns>

View File

@@ -56,7 +56,7 @@ CMAKE_CMD="$CMAKE"
MAKE_CMD=make
BUILD_ECLIPSE=0
NR="False"
OPTIONAL_LIBRARIES="telnetsrv enbscope uescope nrscope nrqtscope ldpc_cuda ldpc_t1 websrv"
OPTIONAL_LIBRARIES="telnetsrv enbscope uescope nrscope nrqtscope ldpc_cuda ldpc_t1 websrv oai_iqplayer"
RU=0
CMAKE_C_FLAGS=()
CMAKE_CXX_FLAGS=()
@@ -300,10 +300,6 @@ function main() {
SIMUS_PHY=1
echo_info "Will compile dlsim, ulsim, ..."
shift;;
-S | --core_simulators)
SIMUS_CORE=1
echo_info "Will compile security unitary tests"
shift;;
-s | --check)
OAI_TEST=1
echo_info "Will run auto-tests"
@@ -466,17 +462,6 @@ function main() {
cecho "OPENAIR_DIR = $OPENAIR_DIR" $green
# for conf files copy in this bash script
if [ -d /usr/lib/freeDiameter ]; then
export FREEDIAMETER_PREFIX=/usr
else
if [ -d /usr/local/lib/freeDiameter ]; then
export FREEDIAMETER_PREFIX=/usr/local
else
echo_warning "FreeDiameter prefix not found, install freeDiameter if EPC, HSS"
fi
fi
if [ "$CLEAN_ALL" = "1" ] ; then
clean_all_files
echo_info "Erased all previously producted files"
@@ -517,25 +502,15 @@ function main() {
fi
execlist=""
if [ "$eNB" = "1" ] ; then
execlist="$execlist lte-softmodem"
fi
if [ "$gNB" = "1" ] ; then
execlist="$execlist nr-softmodem nr-cuup"
fi
if [ "$RU" = "1" ] ; then
execlist="$execlist oairu"
fi
if [ "$UE" = 1 ] ; then
execlist="$execlist lte-uesoftmodem"
fi
if [ "$nrUE" = 1 ] ; then
execlist="$execlist nr-uesoftmodem"
fi
if [[ "$execlist" == "" && "$SIMUS_PHY" != "1" && "$HW" == "None" ]]; then
SKIP_SHARED_LIB_FLAG="True"
fi
[[ "$eNB" == "1" ]] && execlist="$execlist lte-softmodem"
[[ "$gNB" == "1" ]] && execlist="$execlist nr-softmodem nr-cuup"
[[ "$RU" == "1" ]] && execlist="$execlist oairu"
[[ "$UE" == 1 ]] && execlist="$execlist lte-uesoftmodem"
[[ "$nrUE" == 1 ]] && execlist="$execlist nr-uesoftmodem"
# TODO: fix: dlsim_tm4 pucchsim prachsim pdcchsim pbchsim mbmssim
[[ "$SIMUS_PHY" == "1" ]] && execlist="$execlist dlsim ulsim ldpctest polartest smallblocktest nr_pbchsim nr_dlschsim nr_ulschsim nr_dlsim nr_ulsim nr_pucchsim nr_prachsim"
[[ "$BUILD_OPTLIB" != "" ]] && execlist="$execlist $BUILD_OPTLIB"
[[ "$execlist" != "" ]] && execlist="$execlist params_libconfig coding rfsimulator"
DIR=$OPENAIR_DIR/cmake_targets
@@ -552,34 +527,19 @@ function main() {
echo_info "running $CMAKE_CMD"
eval $CMAKE_CMD
for f in $execlist ; do
echo_info "Compiling $f..."
compilations $BUILD_DIR $f
done
# mandatory shared libraries common to UE and (e/g)NB
if [ "$SKIP_SHARED_LIB_FLAG" = "False" ]; then
echo_info "Building shared libraries common to UE and gNB"
# configuration module libraries, one currently available, using libconfig
config_libconfig_shlib=params_libconfig
compilations $BUILD_DIR $config_libconfig_shlib
compilations $BUILD_DIR coding
if [[ "$execlist" != "" ]]; then
echo_info "Compiling $execlist..."
compilations $BUILD_DIR all.txt $execlist
fi
if [ "$UE" = 1 ] ; then
echo_info "Compiling UE specific part"
if [ $UE_ip -eq 1 ]
if [ "$UE_ip" = 1 ]
then
echo_info "Building ue_ip module"
compilations $BUILD_DIR ue_ip
compilations $BUILD_DIR ue_ip.txt ue_ip
else
echo_info "Bypassing ue_ip build"
fi #IS_CONTAINER
@@ -594,9 +554,9 @@ function main() {
cd $DIR/nas_sim_tools/build
eval $CMAKE_CMD ..
compilations nas_sim_tools usim
compilations nas_sim_tools nvram
compilations nas_sim_tools conf2uedata
compilations nas_sim_tools usim.txt usim
compilations nas_sim_tools nvram.txt nvram
compilations nas_sim_tools conf2uedata.txt conf2uedata
# generate USIM data
if [ -f conf2uedata ]; then
@@ -606,42 +566,6 @@ function main() {
fi
fi
cd $DIR/$BUILD_DIR/build
##################
# PHY simulators #
##################
if [ "$SIMUS_PHY" = "1" ] ; then
echo_info "Compiling physical unitary tests simulators"
# TODO: fix: dlsim_tm4 pucchsim prachsim pdcchsim pbchsim mbmssim
simlist="dlsim ulsim ldpctest polartest smallblocktest nr_pbchsim nr_dlschsim nr_ulschsim nr_dlsim nr_ulsim nr_pucchsim nr_prachsim"
# simlist="ldpctest"
for f in $simlist ; do
compilations $BUILD_DIR $f
done
compilations $BUILD_DIR coding
fi
###################
# Core simulators #
###################
if [ "$SIMUS_CORE" = "1" ] ; then
echo_info "Compiling security unitary tests simulators"
simlist="secu_knas_encrypt_eia1 secu_kenb aes128_ctr_encrypt aes128_ctr_decrypt secu_knas_encrypt_eea2 secu_knas secu_knas_encrypt_eea1 kdf aes128_cmac_encrypt secu_knas_encrypt_eia2"
for f in $simlist ; do
compilations $BUILD_DIR test_$f
done
fi
######################
# Optional libraries #
######################
if [ ! -z "$BUILD_OPTLIB" ] ; then
for oklib in $BUILD_OPTLIB ; do
compilations $BUILD_DIR $oklib
done
fi
####################################################
# Build RF device and transport protocol libraries #
####################################################
@@ -652,31 +576,31 @@ function main() {
rm -f liboai_device.so
if [ "$HW" == "OAI_USRP" ] ; then
compilations $BUILD_DIR oai_usrpdevif
compilations $BUILD_DIR oai_usrpdevif.txt oai_usrpdevif
ln -sf liboai_usrpdevif.so liboai_device.so
echo_info "liboai_device.so is linked to USRP device library"
elif [ "$HW" == "OAI_BLADERF" ] ; then
if [ -f "/usr/include/libbladeRF.h" ] ; then
compilations $BUILD_DIR oai_bladerfdevif
compilations $BUILD_DIR oai_bladerfdevif.txt oai_bladerfdevif
fi
ln -sf liboai_bladerfdevif.so liboai_device.so
echo_info "liboai_device.so is linked to BLADERF device library"
elif [ "$HW" == "OAI_LMSSDR" ] ; then
# if [ -f "/usr/include/libbladeRF.h" ] ; then
compilations $BUILD_DIR oai_lmssdrdevif
compilations $BUILD_DIR oai_lmssdrdevif.txt oai_lmssdrdevif
# fi
ln -sf liboai_lmssdrdevif.so liboai_device.so
echo_info "liboai_device.so is linked to LMSSDR device library"
elif [ "$HW" == "OAI_IRIS" ] ; then
compilations $BUILD_DIR oai_irisdevif
compilations $BUILD_DIR oai_irisdevif.txt oai_irisdevif
ln -s liboai_irisdevif.so liboai_device.so
echo_info "liboai_device.so is linked to IRIS device library"
elif [ "$HW" == "OAI_AW2SORI" ] ; then
compilations $BUILD_DIR aw2sori_transpro
compilations $BUILD_DIR aw2sori_transpro.txt aw2sori_transpro
ln -sf libaw2sori_transpro.so libthirdparty_transpro.so
echo_info "build libthirdparty_transpro.so for AW2SORI fronthaul"
@@ -685,28 +609,22 @@ function main() {
fi
fi
#build simulators devices
if [ "$SKIP_SHARED_LIB_FLAG" = "False" ]; then
echo_info "Compiling rfsimulator"
compilations $BUILD_DIR rfsimulator
fi
#build transport protocol libraries (currently only ETHERNET is available)
if [ "$SKIP_SHARED_LIB_FLAG" = "False" ]; then
echo_info "Building transport protocol libraries"
rm -f liboai_transpro.so
if [ "$TP" == "Ethernet" ]; then
compilations $BUILD_DIR oai_eth_transpro
compilations $BUILD_DIR oai_eth_transpro.txt oai_eth_transpro
ln -sf liboai_eth_transpro.so liboai_transpro.so
echo_info "liboai_transpro.so is linked to ETHERNET transport"
fi
if [ "$TP" == "benetel4g" ]; then
compilations $BUILD_DIR benetel_4g
compilations $BUILD_DIR benetel_4g.txt benetel4g
ln -sf libbenetel_4g.so liboai_transpro.so
echo_info "liboai_transpro.so is linked to BENETEL4G transport"
fi
if [ "$TP" == "benetel5g" ]; then
compilations $BUILD_DIR benetel_5g
compilations $BUILD_DIR benetel_5g.txt benetel_5g
ln -sf libbenetel_5g.so liboai_transpro.so
echo_info "liboai_transpro.so is linked to BENETEL4G transport"
fi

View File

@@ -55,7 +55,7 @@ macro(add_list2_option name val helpstr)
endif()
set(${name} ${value} CACHE STRING "${helpstr}")
set_property(CACHE ${name} PROPERTY STRINGS ${ARGN})
if(NOT "${value}" STREQUAL "False")
if(NOT "${value}" STREQUAL "None")
add_definitions("-D${value}=1")
endif()
endmacro(add_list2_option)

View File

@@ -10,7 +10,7 @@ add_definitions(-std=gnu99)
ENABLE_LANGUAGE(C)
set(CMAKE_C_FLAGS
"${CMAKE_C_FLAGS} ${C_FLAGS_PROCESSOR} -Werror -Wall -Wstrict-prototypes -Wno-packed-bitfield-compat -g")
"${CMAKE_C_FLAGS} ${C_FLAGS_PROCESSOR} -Werror -Wall -Wstrict-prototypes -g")
set(OPENAIR_DIR $ENV{OPENAIR_DIR})
set(OPENAIR3_DIR $ENV{OPENAIR_DIR}/openair3)

View File

@@ -1,89 +0,0 @@
# - Find freediameter
# Find the native FreeDiameter includes and libraries
#
# FREEDIAMETER_FOUND - True if FreeDiameter found.
# FREEDIAMETER_INCLUDE_DIR - where to find gnutls.h, etc.
# FREEDIAMETER_LIBRARIES - List of libraries when using gnutls.
# FREEDIAMETER_HSS_S6A_ENABLED - true if FreeDiameter enabled for S6A interface
if (FREEDIAMETER_INCLUDE_DIR AND FREEDIAMETER_LIBRARIES)
set(FREEDIAMETER_FIND_QUIETLY TRUE)
endif (FREEDIAMETER_INCLUDE_DIR AND FREEDIAMETER_LIBRARIES)
# Include dir
find_path(FREEDIAMETER_INCLUDE_DIR
NAMES
freeDiameter/freeDiameter-host.h
freeDiameter/libfdcore.h
freeDiameter/libfdproto.h
)
# Library
find_library(FREEDIAMETER_LIBRARY
NAMES fdcore
)
# handle the QUIETLY and REQUIRED arguments and set FREEDIAMETER_FOUND to TRUE if
# all listed variables are TRUE
INCLUDE(FindPackageHandleStandardArgs)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(FREEDIAMETER DEFAULT_MSG FREEDIAMETER_LIBRARY FREEDIAMETER_INCLUDE_DIR)
IF(FREEDIAMETER_FOUND)
SET( FREEDIAMETER_LIBRARIES ${FREEDIAMETER_LIBRARY} )
ELSE(FREEDIAMETER_FOUND)
SET( FREEDIAMETER_LIBRARIES )
ENDIF(FREEDIAMETER_FOUND)
find_library(FREEDIAMETER_LIBRARY2
NAMES fdproto
)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(FREEDIAMETER2 DEFAULT_MSG FREEDIAMETER_LIBRARY2 FREEDIAMETER_INCLUDE_DIR)
IF(FREEDIAMETER2_FOUND)
SET( FREEDIAMETER_LIBRARIES ${FREEDIAMETER_LIBRARIES} ${FREEDIAMETER_LIBRARY2} )
ELSE(FREEDIAMETER2_FOUND)
SET( FREEDIAMETER_LIBRARIES )
ENDIF(FREEDIAMETER2_FOUND)
# Lastly make it so that the FREEDIAMETER_LIBRARY and FREEDIAMETER_INCLUDE_DIR variables
# only show up under the advanced options in the gui cmake applications.
MARK_AS_ADVANCED( FREEDIAMETER_LIBRARY FREEDIAMETER_INCLUDE_DIR )
# Now check if the library is patched for OPENAIR HSS S6A.
IF(FREEDIAMETER_FOUND)
IF( FREEDIAMETER_INCLUDE_DIR )
# Extract FD_PROJECT_VERSION_MAJOR, FD_PROJECT_VERSION_MINOR from freeDiameter-host.h
# Read the whole file:
#
FILE(READ "${FREEDIAMETER_INCLUDE_DIR}/freeDiameter/freeDiameter-host.h" _freeDiameter_HOST_H_CONTENTS)
STRING(REGEX REPLACE ".*#define FD_PROJECT_VERSION_MAJOR ([0-9]+).*" "\\1" FD_PROJECT_VERSION_MAJOR "${_freeDiameter_HOST_H_CONTENTS}")
STRING(REGEX REPLACE ".*#define FD_PROJECT_VERSION_MINOR ([0-9]+).*" "\\1" FD_PROJECT_VERSION_MINOR "${_freeDiameter_HOST_H_CONTENTS}")
IF(FD_PROJECT_VERSION_MAJOR GREATER 0)
MATH(EXPR FREEDIAMETER_VERSION_VALUE "${FD_PROJECT_VERSION_MAJOR} * 100 + ${FD_PROJECT_VERSION_MINOR} * 10")
SET(FREEDIAMETER_VERSION "${FREEDIAMETER_VERSION_VALUE}" CACHE INTERNAL "Freediameter release version")
MESSAGE(STATUS "freeDiameter version found ${FREEDIAMETER_VERSION}")
ENDIF(FD_PROJECT_VERSION_MAJOR GREATER 0)
ENDIF( FREEDIAMETER_INCLUDE_DIR )
GET_FILENAME_COMPONENT(FREEDIAMETER_PATH ${FREEDIAMETER_LIBRARY} PATH)
IF( NOT( "${FREEDIAMETER_VERSION_TEST_FOR}" STREQUAL "${FREEDIAMETER_LIBRARIES}" ))
INCLUDE (CheckLibraryExists)
MESSAGE(STATUS "Checking freeDiameter patched for S6A")
UNSET(FREEDIAMETER_HSS_S6A_ENABLED)
UNSET(FREEDIAMETER_HSS_S6A_ENABLED CACHE)
UNSET(DICT_S6A_FOUND)
UNSET(DICT_S6A_FOUND CACHE)
FIND_FILE(DICT_S6A_FOUND NAMES dict_s6a.fdx PATHS ${FREEDIAMETER_PATH} ${FREEDIAMETER_PATH}/freeDiameter)
IF(DICT_S6A_FOUND)
SET( FREEDIAMETER_HSS_S6A_ENABLED TRUE CACHE INTERNAL "dict_s6a.fdx Found")
ELSE(DICT_S6A_FOUND)
SET( FREEDIAMETER_HSS_S6A_ENABLED FALSE CACHE INTERNAL "dict_s6a.fdx not Found")
ENDIF(DICT_S6A_FOUND)
SET( FREEDIAMETER_VERSION_TEST_FOR ${FREEDIAMETER_LIBRARIES} CACHE INTERNAL "Version the test was made against" )
ENDIF (NOT( "${FREEDIAMETER_VERSION_TEST_FOR}" STREQUAL "${FREEDIAMETER_LIBRARIES}" ))
ENDIF(FREEDIAMETER_FOUND)

View File

@@ -1,55 +0,0 @@
# - Find mysqlclient
#
# -*- cmake -*-
#
# Find the native MySQL includes and library
#
# MySQL_INCLUDE_DIR - where to find mysql.h, etc.
# MySQL_LIBRARIES - List of libraries when using MySQL.
# MySQL_FOUND - True if MySQL found.
IF (MySQL_INCLUDE_DIR AND MySQL_LIBRARY)
# Already in cache, be silent
SET(MySQL_FIND_QUIETLY TRUE)
ENDIF (MySQL_INCLUDE_DIR AND MySQL_LIBRARY)
# Include dir
FIND_PATH(MySQL_INCLUDE_DIR
NAMES mysql.h
PATH_SUFFIXES mysql
)
# Library
#SET(MySQL_NAMES mysqlclient mysqlclient_r)
SET(MySQL_NAMES mysqlclient)
FIND_LIBRARY(MySQL_LIBRARY
NAMES ${MySQL_NAMES}
PATHS /usr/lib /usr/local/lib
PATH_SUFFIXES mysql
)
IF (MySQL_INCLUDE_DIR AND MySQL_LIBRARY)
SET(MySQL_FOUND TRUE)
SET( MySQL_LIBRARIES ${MySQL_LIBRARY} )
ELSE (MySQL_INCLUDE_DIR AND MySQL_LIBRARY)
SET(MySQL_FOUND FALSE)
SET( MySQL_LIBRARIES )
ENDIF (MySQL_INCLUDE_DIR AND MySQL_LIBRARY)
IF (MySQL_FOUND)
IF (NOT MySQL_FIND_QUIETLY)
MESSAGE(STATUS "Found MySQL: ${MySQL_LIBRARY}")
ENDIF (NOT MySQL_FIND_QUIETLY)
ELSE (MySQL_FOUND)
IF (MySQL_FIND_REQUIRED)
MESSAGE(STATUS "Looked for MySQL libraries named ${MySQL_NAMES}.")
MESSAGE(FATAL_ERROR "Could NOT find MySQL library")
ENDIF (MySQL_FIND_REQUIRED)
ENDIF (MySQL_FOUND)
MARK_AS_ADVANCED(
MySQL_LIBRARY
MySQL_INCLUDE_DIR
)

View File

@@ -1,36 +0,0 @@
# - Find PostgreSQL library
#
# This module defines:
# POSTGRESQL_FOUND - True if the package is found
# POSTGRESQL_INCLUDE_DIR - containing libpq-fe.h
# POSTGRESQL_LIBRARIES - Libraries to link to use PQ functions.
if (POSTGRESQL_INCLUDE_DIR AND POSTGRESQL_LIBRARIES)
set(POSTGRESQL_FIND_QUIETLY TRUE)
endif (POSTGRESQL_INCLUDE_DIR AND POSTGRESQL_LIBRARIES)
# Include dir
find_path(POSTGRESQL_INCLUDE_DIR
NAMES libpq-fe.h
PATH_SUFFIXES pgsql postgresql
)
# Library
find_library(POSTGRESQL_LIBRARY
NAMES pq
)
# handle the QUIETLY and REQUIRED arguments and set POSTGRESQL_FOUND to TRUE if
# all listed variables are TRUE
INCLUDE(FindPackageHandleStandardArgs)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(POSTGRESQL DEFAULT_MSG POSTGRESQL_LIBRARY POSTGRESQL_INCLUDE_DIR)
IF(POSTGRESQL_FOUND)
SET( POSTGRESQL_LIBRARIES ${POSTGRESQL_LIBRARY} )
ELSE(POSTGRESQL_FOUND)
SET( POSTGRESQL_LIBRARIES )
ENDIF(POSTGRESQL_FOUND)
# Lastly make it so that the POSTGRESQL_LIBRARY and POSTGRESQL_INCLUDE_DIR variables
# only show up under the advanced options in the gui cmake applications.
MARK_AS_ADVANCED( POSTGRESQL_LIBRARY POSTGRESQL_INCLUDE_DIR )

View File

@@ -1,264 +0,0 @@
# Declare variables for path prefixes for different types of files.
# NB: depends on 'multi_kernel' and 'uninstall_target'.
# fill_install_prefixes(<project_name> <project_prefix>
# [BASE_INSTALL_PREFIX <base_install_prefix>]
# [KERNEL]
# )
#
# Setup variables <project_prefix>_* to the install prefixes for
# different project components.
# Precisely, variables with next sufficies are set:
# INSTALL_PREFIX_EXEC - executables
# INSTALL_PREFIX_READONLY - readonly files
# INSTALL_PREFIX_GLOBAL_CONF - global configuration files
# INSTALL_PREFIX_PREFIX_LIB - libraries
# INSTALL_INCLUDE_DIR - include directory(for flags to compiler)
# INSTALL_PREFIX_INCLUDE - include files
# INSTALL_PREFIX_TEMP_SESSION - temporary files(exists until system restarts)
# INSTALL_PREFIX_TEMP - temporary files(preserved even when system restats)
# INSTALL_PREFIX_STATE - files which describe current state of the project.
# INSTALL_PREFIX_CACHE - cache files
# INSTALL_PREFIX_VAR - other modifiable files
# INSTALL_PREFIX_DOC - documentation files
# INSTALL_PREFIX_EXAMPLES - documentation files
#
# With 'KERNEL' option enabled paths for kernel-related files also set:
# INSTALL_KINCLUDE_DIR - directory for include when build kernel components
# INSTALL_PREFIX_KINCLUDE - include files for the kernel.
#
# Additionally, with 'KERNEL' option enabled, several variables are set to
# paths, which contains "%kernel%" pattern.
# These paths are intended for kernel-dependent files; for make paths
# complete one should replace "%kernel%" substring with version of the
# kernel.
# Next kernel-dependend paths are set(sufficies only):
# KERNEL_INSTALL_PREFIX_KMODULE - directory for install kernel modules
# KERNEL_INSTALL_PREFIX_KSYMVERS - directory for install kernel modules' symvers files.
# KERNEL_INSTALL_INCLUDE_KERNEL_DIR - include directory with kernel-dependent headers.
# KERNEL_INSTALL_PREFIX_INCLUDE_KERNEL - include files, which depends from kernel.
#
# Iff option 'COMMON_INSTALL_PREFIX' is given, all paths above are
# calculated using <base_install_prefix> as base prefix.
# Otherwise, CMAKE_INSTALL_PREFIX is used for that purpose.
#
# Additionally,
# INSTALL_TYPE
# variable(suffix) is set to one of:
# - "GLOBAL_OPT" - install into "/opt",
# - "GLOBAL" - global installation except one into "/opt",
# - "LOCAL" - local installation.
function(fill_install_prefixes project_name project_prefix)
cmake_parse_arguments(fip "KERNEL" "BASE_INSTALL_PREFIX" "" ${ARGN})
if(fip_UNPARSED_ARGUMENTS)
list(GET fip_UNPARSED_ARGUMENTS 0 exceeded_arg)
message(SEND_ERROR "Exceeded argument: ${exceeded_arg}")
endif(fip_UNPARSED_ARGUMENTS)
if(NOT fip_BASE_INSTALL_PREFIX)
set(fip_BASE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}")
endif(NOT fip_BASE_INSTALL_PREFIX)
# Follow conventions about paths listed in
# devel-docs/general/path_conventions.txt
# in kedr-devel package.
# Determine type of installation
if(fip_BASE_INSTALL_PREFIX MATCHES "^/opt")
set(fip_INSTALL_TYPE "GLOBAL_OPT")
elseif(fip_BASE_INSTALL_PREFIX MATCHES "^/usr"
OR fip_BASE_INSTALL_PREFIX STREQUAL "/"
)
set(fip_INSTALL_TYPE "GLOBAL")
else()
set(fip_INSTALL_TYPE "LOCAL")
endif()
# 1
if(fip_INSTALL_TYPE STREQUAL "GLOBAL_OPT")
set(fip_INSTALL_PREFIX_EXEC "/opt/${project_name}/bin")
else(fip_INSTALL_TYPE STREQUAL "GLOBAL_OPT")
set(fip_INSTALL_PREFIX_EXEC "${fip_BASE_INSTALL_PREFIX}/bin")
endif(fip_INSTALL_TYPE STREQUAL "GLOBAL_OPT")
# 2
set(fip_INSTALL_PREFIX_EXEC_AUX
"${fip_BASE_INSTALL_PREFIX}/lib/${project_name}"
)
# 3
set(fip_INSTALL_PREFIX_READONLY
"${fip_BASE_INSTALL_PREFIX}/share/${project_name}"
)
# 4
set(fip_INSTALL_PREFIX_MANPAGE
"${fip_BASE_INSTALL_PREFIX}/share/man"
)
# 5
if(fip_INSTALL_TYPE STREQUAL "GLOBAL_OPT")
set(fip_INSTALL_PREFIX_GLOBAL_CONF "/etc/opt/${project_name}")
elseif(fip_INSTALL_TYPE STREQUAL "GLOBAL")
set(fip_INSTALL_PREFIX_GLOBAL_CONF "/etc/${project_name}")
else(fip_INSTALL_TYPE STREQUAL "GLOBAL_OPT")
set(fip_INSTALL_PREFIX_GLOBAL_CONF
"${fip_BASE_INSTALL_PREFIX}/etc/${project_name}"
)
endif(fip_INSTALL_TYPE STREQUAL "GLOBAL_OPT")
# 6
set(fip_INSTALL_PREFIX_LIB "${fip_BASE_INSTALL_PREFIX}/lib")
# 7
set(fip_INSTALL_PREFIX_LIB_AUX
"${fip_BASE_INSTALL_PREFIX}/lib/${project_name}"
)
# 8
set(fip_INSTALL_INCLUDE_DIR "${fip_BASE_INSTALL_PREFIX}/include")
set(fip_INSTALL_PREFIX_INCLUDE
"${fip_INSTALL_INCLUDE_DIR}/${project_name}"
)
# 9
set(fip_INSTALL_PREFIX_TEMP_SESSION "/tmp/${project_name}")
# 10
if(fip_INSTALL_TYPE MATCHES "GLOBAL")
set(fip_INSTALL_PREFIX_TEMP "/var/tmp/${project_name}")
else(fip_INSTALL_TYPE MATCHES "GLOBAL")
set(fip_INSTALL_PREFIX_TEMP
"${fip_BASE_INSTALL_PREFIX}/var/tmp/${project_name}"
)
endif(fip_INSTALL_TYPE MATCHES "GLOBAL")
# 11
if(fip_INSTALL_TYPE STREQUAL "GLOBAL_OPT")
set(fip_INSTALL_PREFIX_STATE
"/var/opt/${project_name}/lib/${project_name}"
)
elseif(fip_INSTALL_TYPE STREQUAL "GLOBAL")
set(fip_INSTALL_PREFIX_STATE "/var/lib/${project_name}")
else(fip_INSTALL_TYPE STREQUAL "GLOBAL")
set(fip_INSTALL_PREFIX_STATE
"${fip_BASE_INSTALL_PREFIX}/var/lib/${project_name}"
)
endif(fip_INSTALL_TYPE STREQUAL "GLOBAL_OPT")
# 12
if(fip_INSTALL_TYPE STREQUAL "GLOBAL_OPT")
set(fip_INSTALL_PREFIX_CACHE
"/var/opt/${project_name}/cache/${project_name}"
)
elseif(fip_INSTALL_TYPE STREQUAL "GLOBAL")
set(fip_INSTALL_PREFIX_CACHE "/var/cache/${project_name}")
else(fip_INSTALL_TYPE STREQUAL "GLOBAL_OPT")
set(fip_INSTALL_PREFIX_CACHE
"${fip_BASE_INSTALL_PREFIX}/var/cache/${project_name}"
)
endif(fip_INSTALL_TYPE STREQUAL "GLOBAL_OPT")
# 13
if(fip_INSTALL_TYPE MATCHES "GLOBAL")
set(fip_INSTALL_PREFIX_VAR "/var/opt/${project_name}")
else(fip_INSTALL_TYPE MATCHES "GLOBAL")
set(fip_INSTALL_PREFIX_VAR
"${fip_BASE_INSTALL_PREFIX}/var/${project_name}"
)
endif(fip_INSTALL_TYPE MATCHES "GLOBAL")
# 14
set(fip_INSTALL_PREFIX_DOC
"${fip_BASE_INSTALL_PREFIX}/share/doc/${project_name}"
)
# Set derivative install path and prefixes
# additional, 4
set(fip_INSTALL_PREFIX_EXAMPLES
"${fip_INSTALL_PREFIX_READONLY}/examples")
# Export symbols to the outer scope
foreach(suffix
INSTALL_TYPE
INSTALL_PREFIX_EXEC
INSTALL_PREFIX_EXEC_AUX
INSTALL_PREFIX_READONLY
INSTALL_PREFIX_MANPAGE
INSTALL_PREFIX_GLOBAL_CONF
INSTALL_PREFIX_LIB
INSTALL_PREFIX_LIB_AUX
INSTALL_INCLUDE_DIR
INSTALL_PREFIX_INCLUDE
INSTALL_PREFIX_TEMP_SESSION
INSTALL_PREFIX_TEMP
INSTALL_PREFIX_STATE
INSTALL_PREFIX_CACHE
INSTALL_PREFIX_VAR
INSTALL_PREFIX_DOC
INSTALL_PREFIX_EXAMPLES
)
set(${project_prefix}_${suffix} "${fip_${suffix}}" PARENT_SCOPE)
endforeach(suffix)
if(fip_KERNEL)
# Set derivative install path and prefixes
# additional, 1
if(fip_INSTALL_TYPE MATCHES GLOBAL)
set(fip_KERNEL_INSTALL_PREFIX_KMODULE
"/lib/modules/%kernel%/extra"
)
else(fip_INSTALL_TYPE MATCHES GLOBAL)
set(fip_KERNEL_INSTALL_PREFIX_KMODULE
"${fip_INSTALL_PREFIX_LIB}/modules/%kernel%/extra"
)
endif(fip_INSTALL_TYPE MATCHES GLOBAL)
# additional, 2
set(fip_KERNEL_INSTALL_PREFIX_KSYMVERS
"${fip_INSTALL_PREFIX_LIB}/modules/%kernel%/symvers"
)
# additional, 3
set(fip_INSTALL_KINCLUDE_DIR "${fip_INSTALL_INCLUDE_DIR}")
set(fip_INSTALL_PREFIX_KINCLUDE "${fip_INSTALL_PREFIX_INCLUDE}")
# Kernel include files, which depends from kernel version.
# This prefix is not listed in path conventions.
set(fip_KERNEL_INSTALL_INCLUDE_KERNEL_DIR
"${fip_BASE_INSTALL_PREFIX}/include-kernel/%kernel%"
)
set(fip_KERNEL_INSTALL_PREFIX_INCLUDE_KERNEL
"${fip_KERNEL_INSTALL_INCLUDE_KERNEL_DIR}/${project_name}-kernel"
)
# Export symbols to the outer scope
foreach(suffix
KERNEL_INSTALL_PREFIX_KMODULE
KERNEL_INSTALL_PREFIX_KSYMVERS
INSTALL_KINCLUDE_DIR
INSTALL_PREFIX_KINCLUDE
KERNEL_INSTALL_INCLUDE_KERNEL_DIR
KERNEL_INSTALL_PREFIX_INCLUDE_KERNEL
)
set(${project_prefix}_${suffix} "${fip_${suffix}}" PARENT_SCOPE)
endforeach(suffix)
endif(fip_KERNEL)
endfunction(fill_install_prefixes project_name project_prefix)
########################################################################
# Kernel-dependent paths.
#
# Some deliverables may depends on linux kernel.
#
# For make "one user installation for several kernels" paradigm works,
# installation directory for that deliverables should include
# kernel-version part(like "3.10.2-generic").
#
# So, components installed by user installation can determine at runtime,
# which kernel-dependent deliverable should be used on currently loaded system.
# They do selection using 'uname -r' request.
#
# For define variables represented kernel-dependent directories,
# we use strings containing "%kernel%" stem.
# kernel_path(kernel_version RESULT_VARIABLE pattern ...)
#
# Form concrete path representation from kernel-dependent pattern(s).
# Replace occurence of %kernel% in pattern(s) with given @kernel_version string.
# Result is stored in the RESULT_VARIABLE.
#
# @kernel_version may be concrete version of the kernel,
# or variable reference in some language.
macro(kernel_path kernel_version RESULT_VARIABLE pattern)
string(REPLACE "%kernel%" "${kernel_version}" ${RESULT_VARIABLE} ${pattern} ${ARGN})
endmacro(kernel_path kernel_version RESULT_VARIABLE pattern)

View File

@@ -207,8 +207,13 @@ check_errors() {
}
compilations() {
cd $OPENAIR_DIR/cmake_targets/$1/build
echo_info "Log file for compilation is being written to: $dlog/$2.txt"
local dir=$1
shift 1
local logfile=$1
shift 1
local targets=$@
cd $OPENAIR_DIR/cmake_targets/$dir/build
echo_info "Log file for compilation is being written to: $dlog/$logfile"
set +e
{
if [ "$BUILD_COVERITY_SCAN" == "1" ]; then
@@ -217,28 +222,27 @@ compilations() {
COV_SCAN_PREFIX=""
fi
if [ "$MAKE_CMD" != "" ]; then
$MAKE_CMD $2
$MAKE_CMD $targets
else
if [ "$VERBOSE_COMPILE" == "1" ]; then
$COV_SCAN_PREFIX make -j`nproc` $2 VERBOSE=$VERBOSE_COMPILE
$COV_SCAN_PREFIX make -j`nproc` $targets VERBOSE=$VERBOSE_COMPILE
else
$COV_SCAN_PREFIX make -j`nproc` $2
$COV_SCAN_PREFIX make -j`nproc` $targets
fi
fi
ret=$?
} > $dlog/$2.txt 2>&1
set -e
} > $dlog/$logfile 2>&1
if [ "$VERBOSE_CI" == "1" ]; then
echo_info "====== Start of log for $2.txt ======"
cat $dlog/$2.txt
echo_info "====== End of log for $2.txt ======"
echo_info "====== Start of log for $logfile ======"
cat $dlog/$logfile
echo_info "====== End of log for $logfile ======"
fi
check_warnings "$dlog/$2.txt"
check_warnings "$dlog/$logfile"
if [[ $ret -eq 0 ]]; then
echo_success "$2 compiled"
echo_success "$targets compiled"
else
check_errors "$dlog/$2.txt"
echo_error "$2 compilation failed"
check_errors "$dlog/$logfile"
echo_error "compilation of $targets failed"
exit 1
fi
}
@@ -590,19 +594,10 @@ check_install_oai_software() {
case "$(get_distribution_release)" in
"ubuntu18.04")
add_cmake_repo
specific_packages="libgcrypt11-dev guile-2.0-dev"
;;
"ubuntu20.04")
specific_packages="guile-2.0-dev"
;;
"ubuntu21.04")
specific_packages="guile-2.0-dev"
;;
"ubuntu22.04")
specific_packages="guile-2.2-dev"
specific_packages="libgcrypt11-dev"
;;
"debian11")
specific_packages="guile-2.2-dev libz-dev"
specific_packages="libz-dev"
;;
esac
$SUDO apt-get install -y \
@@ -623,8 +618,6 @@ check_install_oai_software() {
libsctp-dev \
libssl-dev \
libtool \
libxslt1-dev \
libtasn1-6-dev \
patch \
openssl \
xxd
@@ -645,7 +638,6 @@ check_install_oai_software() {
gcc \
gcc-c++ \
git \
guile-devel \
atlas-devel \
pkgconfig \
libconfig-devel \
@@ -653,9 +645,7 @@ check_install_oai_software() {
libgcrypt-devel \
lksctp-tools \
lksctp-tools-devel \
libtasn1 \
libtool \
libxslt-devel \
ninja-build \
make \
openssl \

Some files were not shown because too many files have changed in this diff Show More