Compare commits

..

530 Commits

Author SHA1 Message Date
Raymond Knopp
f44d1ccfeb reduced memory requirements of dlsim,ulsim 2022-01-12 14:21:47 +01:00
Raphael Defosseux
2ac6a30cff fix(ci): forcing USRP N3xx reboot on caracal; creating a real dummy scenario
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2022-01-12 11:27:50 +01:00
Remi Hardy
93f15bc99a Merge branch 'ci_improve_iperf_pass_fail' into 'develop'
[CI] improve iperf pass fail

See merge request oai/openairinterface5g!1373
2022-01-11 07:04:30 +00:00
hardy
efcc3f55de Merge remote-tracking branch 'origin/develop' into ci_improve_iperf_pass_fail 2022-01-10 11:50:29 +01:00
Remi Hardy
8d1c9894c2 integration_2021_wk51_d_2 (done on 2022_wk01)
MR !1274 : L2 Emulator for NSA Mode
This merge request will incorporate the NSA UE with the L2 Emulator (bypassing of layer 1). 
These changes include the following features:

-NSA Interface between LTE and NR UE is properly established. These include the following steps: 
 First UE capability enquiry is sent to NR UE 
 NR UE updates and fills first capability enquiry
 eNB request for a measurement report
 Measurement request is sent to NR UE
 Measurement report is filled in NR UE
 Measurement report is received in eNB
 Request for second UE capability enquiry
 Send second enquiry to NR UE
 Second capability information is filled by NR UE
 Second capability information is sent to eNB
 NR UE capability information is received in gNB
 Periodic measurement report received in gNB
 RRCReconfigurationRequest is sent to NR UE
 RRCReconfigurationComplete is sent from NR UE
 RACH is received in the gNB
 RAR is received in NR UE
 Msg 3 is generated and sent to gNB
 CFRA procedure is complete

-A single NSA UE is able to ping an external source
-UE-to-UE traffic is still in work
-The gNB is crashing regularly and is still in work

MR !1265 : F1 split for 5G 
documentation in doc/f1.md 
Use new gtp-u for also 4G (no legacy code cleanup, will be done after this MR) 
Some various fixes in the existing code when we face issues 4G F1 behavior will also change
2022-01-07 20:09:13 +00:00
Robert Schmidt
00e49309d2 Revert "Change obelix N300 IP addresses"
This reverts commit d74180cabb.
2022-01-06 17:17:27 +01:00
hardy
42d25bcad8 test purpose : change ping acceptance threshold for SA test 2022-01-05 18:28:05 +01:00
Raphael Defosseux
1a2a6606ce feat(ci): migrating 5G-NR phytest from old Jenkins server to new one
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2022-01-04 14:54:26 +01:00
Laurent THOMAS
2615a6722a fix get_nr_table_idx to make same as develop branch 2022-01-03 19:32:47 +01:00
Laurent Thomas
9b0e6ea71a fix merge issue in ocp-enb 2022-01-02 23:39:10 +01:00
Laurent Thomas
b57a40496d fix ocp-enb memory init 2022-01-02 21:17:43 +01:00
Laurent THOMAS
f20d280426 add clean log+exit when radio board can't start 2021-12-31 11:44:49 +01:00
Laurent THOMAS
2ecb1a626f remove false detection of lte-uesoftmodem "segv" 2021-12-30 23:03:12 +01:00
Laurent THOMAS
473105a7ba remove false detection of SEGV in CI 2021-12-30 21:51:25 +01:00
Laurent THOMAS
6be158b664 add gtp-u echo reply implementation, and ci trace improvement 2021-12-30 12:50:32 +01:00
Laurent THOMAS
5ead416cd0 remove volonatry process maximum life time of 600sec (episys?) 2021-12-28 16:58:23 +01:00
Laurent THOMAS
723e272e84 fix 4G ue release context cleaning 2021-12-28 15:50:55 +01:00
Laurent THOMAS
88a63e35bc fix un-initialized var 2021-12-28 12:07:48 +01:00
Laurent THOMAS
2d105be71e fix CU assert and bugs discovered after 2021-12-28 11:29:26 +01:00
Robert Schmidt
aaf51e688b CI: add line number and function for logging in all NSA tests 2021-12-27 17:40:15 +01:00
Laurent THOMAS
61fb99c73f cleanup nr_band function 2021-12-27 17:21:10 +01:00
Laurent THOMAS
31d9da3f73 cleanup nr_band() function 2021-12-27 17:10:19 +01:00
Robert Schmidt
768f14a9da CI: more logging with time and no color codes 2021-12-27 16:33:57 +01:00
Robert Schmidt
850efd197c Fix: mark rach_ind PDUs as handled in L1 mode 2021-12-27 14:00:03 +01:00
Robert Schmidt
1ebcd1ed32 Print LOG time as uptime 2021-12-27 12:24:24 +01:00
Robert Schmidt
a54323bc8f CI: logging with time and no color codes 2021-12-27 12:17:56 +01:00
Laurent THOMAS
dc6a5d284c add more workaround with LOG_E() in UE ptrs 2021-12-27 11:42:06 +01:00
Laurent THOMAS
7019aa96d8 workaround bug in set_ptrs_symb_idx() + log of the error 2021-12-27 11:09:21 +01:00
Laurent THOMAS
799463994a merge NR_F1C_F1U_extensions 2021-12-27 10:32:53 +01:00
Robert Schmidt
ecd1574e3e fiif does not exist in bash 2021-12-26 23:59:23 +01:00
Robert Schmidt
206043e5ca Rename file to name expected in CI scripts 2021-12-26 23:46:38 +01:00
Robert Schmidt
d74180cabb Change obelix N300 IP addresses
We suspected a faulty N310 on obelix. It has been replaced with another
N300 with the same .10.2 addr, but the mgmt_addr changed to .18.16,
corrected in this commit.
2021-12-26 00:40:40 +01:00
francescomani
4f773ce594 some tentative fixes in config files 2021-12-26 00:40:32 +01:00
Robert Schmidt
b7141b0568 Suppress warning in RLC
Cedric is not sure whether this is a problem, suppress this for the time
being.
2021-12-24 12:07:28 +01:00
Robert Schmidt
3521b636d8 Restore original logging format 2021-12-24 12:00:42 +01:00
Robert Schmidt
6c823168fe Merge remote-tracking branch 'origin/episys-merge-nsa' into integration_2021_wk51_d 2021-12-24 10:13:27 +01:00
Melissa Elkadi
0ea0965a35 Modifying new changes from develop to exclude emulated L1 mode 2021-12-21 06:08:24 -08:00
Melissa Elkadi
e7ef264226 Merge branch 'eurecom-develop' into eurecom-episys-merge-nsa 2021-12-21 06:02:40 -08:00
Melissa Elkadi
30c14c2f5a nFAPI bug fix. Not properly packing/unpacking PUCCH PDU 2021-12-21 05:51:25 -08:00
Melissa Elkadi
f32244136a Demoting more logs to log_D 2021-12-14 12:19:10 -08:00
Melissa Elkadi
acb5db8ecd Merge branch 'eurecom-develop' into eurecom-episys-merge-nsa 2021-12-14 12:03:04 -08:00
Melissa Elkadi
d61bcb2113 Demoting several PHY logs 2021-12-14 10:27:23 -08:00
Melissa Elkadi
60e39af311 Updating min_txtxtime_pdsch and dl_harq_pid fix 2021-12-14 09:56:02 -08:00
Melissa Elkadi
f028f8e209 Added new conf file for NR UE 2021-12-09 10:45:58 -08:00
Melissa Elkadi
932f8b385f Reverting changes to ue_test_sfr (SIM) conf file for NSA mode 2021-12-08 05:38:29 -08:00
Melissa Elkadi
118bd8b36f Merge branch 'eurecom-develop' into eurecom-episys-merge-nsa 2021-12-06 13:23:21 -08:00
Melissa Elkadi
fd2f61debc Merge branch 'eurecom-develop' into eurecom-episys-merge-nsa 2021-12-03 05:44:34 -08:00
Melissa Elkadi
3fac8bd2e1 Merge branch 'episys/master-nsa' into eurecom-episys-merge-nsa 2021-11-29 14:40:21 -08:00
Melissa Elkadi
4f9c2bd869 Merge branch 'eurecom-develop' into eurecom-episys-merge-nsa 2021-11-29 14:33:23 -08:00
Melissa Elkadi
67df305219 Merge branch 'eurecom-develop' into episys/master-nsa 2021-11-29 10:59:20 -08:00
Melissa
85047dd70c Merge branch 'episys/master-nsa-LOG_A' into 'episys/master-nsa'
Change some LOG_I's to LOG_A's

See merge request aburger/openairinterface5g!88
2021-11-29 17:12:55 +00:00
Michael Cook
589033f4b4 Change some LOG_I's to LOG_A's
Our proxy_testscript.py expects these specific log messages to be
logged as LOG_A
2021-11-26 09:16:38 -08:00
Melissa Elkadi
df72429b04 Merge branch 'eurecom-episys-merge-nsa' into episys/master-nsa 2021-11-24 08:54:14 -08:00
Melissa Elkadi
92ef60d07f This commit does the following:
1. Reverts GTPU_need_ITTI back to develop
2. Removed gdb helper and co files
3. Reverts changes to logging mechanism
4. Reverts changes to assert that were unnecessary
5. Reverts changes to VNF that occured from a bad merge
6. Removes unnecessary else() in gNB softmodem
2021-11-23 15:49:47 -08:00
Melissa
ba5fa308e2 Merge branch 'episys/david/multi_ue_sa' into 'episys/master-nsa'
Updated for multiple UEs CBRA procedure.

See merge request aburger/openairinterface5g!86
2021-11-23 22:32:07 +00:00
Melissa Elkadi
d7b23238da Removing unnecessary filtering in NRUE MAC layer 2021-11-23 14:12:45 -08:00
Melissa Elkadi
cf9686f787 Setting ctxt by mod_id instead of instance in gNB
This change allows multiple UEs to have a tunnel interface
brought up when connecting to the 5GCN

Also, adding two new config files for mutltiple UEs
to connect to the 5GCN
2021-11-23 14:01:20 -08:00
Melissa Elkadi
dd891537a7 Checking for pointers to be NULL before allocating memory 2021-11-23 12:37:22 -08:00
Melissa Elkadi
efdd06584f Merge branch 'episys/master-nsa' into episys/david/multi_ue_sa 2021-11-23 08:13:18 -08:00
Melissa Elkadi
94d146e80b Renaming queue.h in PHY_INTERFACE layer to queue_t.h
There are two queue.h files in this repository.
2021-11-23 08:05:58 -08:00
Melissa Elkadi
97eda100c7 Removed logic around CALLOCs
When we check if the pointer is NULL before CALLOCing,
then the gNB will crash. It seems that we are mostlikely
leaking memeory since the gNB only crashes with the old
change. By reverting these changes, the gNB does not crash.
We are seeing UE-to-UE IP traffic on this commit when
the tunnel interfaces are established (~50% of the time).
2021-11-23 07:33:31 -08:00
Melissa Elkadi
8688f8ad83 Merge branch 'episys/master-nsa' into episys/david/multi_ue_sa 2021-11-23 06:47:37 -08:00
Melissa Elkadi
8e18afec55 Merge branch 'episys/master-nsa' into eurecom-episys-merge-nsa 2021-11-23 06:25:07 -08:00
Melissa Elkadi
c08b0c2b56 Merge branch 'eurecom-develop' into eurecom-episys-merge-nsa 2021-11-23 06:24:33 -08:00
Melissa Elkadi
23582a4483 Adding more error checking 2021-11-22 16:31:47 -08:00
Melissa Elkadi
eaa5782579 Merge branch 'episys/master-nsa' into episys/david/multi_ue_sa 2021-11-22 14:29:58 -08:00
Melissa
543570a1ac Merge branch 'episys/5gcn_traffic_testing' into 'episys/master-nsa'
5G IP Traffic for SA mode

See merge request aburger/openairinterface5g!85
2021-11-22 22:29:08 +00:00
Melissa Elkadi
8d94b36349 Adding assertFatals and code cleanup for MR 2021-11-22 14:24:06 -08:00
Melissa Elkadi
6d556607d4 Reverting incorrect CALLOC 2021-11-22 12:34:18 -08:00
Melissa Elkadi
fc140b2007 Allocating for the number of DCIs and changing pdu_idx check 2021-11-22 07:40:36 -08:00
Melissa Elkadi
37c1f1ec1d Unnecessary filtering/changes to OAI MAC layer
The filtering added in the nrue_procedures.c file
are already happening in the stub function so we
should be duplicating them in the NRUE MAC layer.
2021-11-22 07:24:39 -08:00
Melissa Elkadi
8d1196a9cd Merge branch 'episys/5gcn_traffic_testing' into episys/david/multi_ue_sa 2021-11-22 07:15:59 -08:00
David Kim
c974609c2f Updated the execution condition for pdcp_run. 2021-11-19 14:31:41 -08:00
Melissa Elkadi
32cca25075 Modifying how we handle the UCI multiplexing.
In this commit, we changed the UCI handling.
When the UL_TTI_REQ arrives at the NRUE it
has info related to how many UCIs we should
pull from the queue and send to the gNB. If
we do not have that many UCIs available (likely
becasue a DL_TTI_REQ is late), then we will
requeue the UL_TTI_REQ and wait until we have
all the UCI indications before multiplexing.
This change makes it easier to handle multiple
UCIs becasue previously we would send what we
had and then try again later which made keeping
track of the UL_TTI_REQ and second UCI more
difficult.
2021-11-19 14:14:21 -08:00
David Kim
6ef81fd4b8 Updated for formatting. 2021-11-19 13:53:26 -08:00
David Kim
202862bce1 Updated for multiple UEs CBRA procedure.
1. Added rnti filter for multiple UEs.
2. Adjusted mode offset for SA mode.
2021-11-19 13:42:34 -08:00
Melissa Elkadi
e1d50ead74 Removing incorrect setting of num_pdus to 0 2021-11-19 11:37:02 -08:00
Melissa Elkadi
7f7bda5421 The number of active harqs is included in the UL_TTI_REQ
Also, we had two heap-buffer-overflow crashes while
filling the CRC_IND and RX_IND. The corrected CALLOC
command is included in this commit as well.

Lastly, we included a better fix for handling late
DL_TTI_REQs. If the number of active harqs is larger
than the number of UCIs we have built, this is a good
indicator that the DL_TTI_REQ is late. To mitigate
problems, we will requeue the UL_TTI_REQ to when the
late DL_TTI_REQ comes in, we can handle the late
UCI that is built from it.
2021-11-19 11:23:47 -08:00
Melissa Elkadi
87097d9767 Adding assertFatal to UCI multiplexing 2021-11-19 07:55:03 -08:00
Melissa Elkadi
a279503db0 Fixing formatting for if statement 2021-11-18 11:51:03 -08:00
Melissa Elkadi
6f69e836a8 This commit allows IP traffic to work for 2 UEs in NSA mode
The nr_rrc_ue_process_RadioBearerConfig() function
call in the RRC layer of the NRUE was removed when
it should not have been for NSA mode. This is now
added back in for NSA mode. Also, the call to
pdcp_run should only be when were NOT in NOS1 mode
and ARE in SA mode. This was fixed as well.

Ue-to-Ue IP traffic in NSA works, but eventually
the NSA UE will crash due to an incorrect PDCCH
configuration. This is a bug we will need to look
into. It doesnt always crash, only about 40% of
the time. And even when the NRUE does crash, it
happens towards the end of the simulation.
2021-11-18 11:45:47 -08:00
Melissa Elkadi
16d82de9cf Only call pdcp_run for SA 5GCN mode, not NSA mode 2021-11-18 11:08:53 -08:00
Melissa Elkadi
2205d6472d Adding AssertFatal to check for array indicies 2021-11-18 10:43:15 -08:00
Melissa Elkadi
2da73cfed7 Merge branch 'episys/master-nsa' into episys/5gcn_traffic_testing 2021-11-18 08:29:36 -08:00
Melissa Elkadi
c008c8e60d IP TRAFFIC IS WORKING WITH ONE NR UE IN SA MODE
This commit includes a hack fix that has allowed
the Ip traffic to work in SA mode. Furthermore,
NSA mode (without the EPC) works in this commit
as well with up to 4 NSA UEs. We will need to
understand better the issue with the UL_DCI
handling in the NRUE that was causing the gNB
to crash.

The AssertFatal in the gNB when the gNB runs out
of downlink HARQ PIDs is caused by the NRUE
receiving a UL_DCI and then building BOTH a UCI
and a CRC/RX pair. So we are essentially sending
a UL and DL DCI to the gNB in this case which
results in an unexpected HARQ PID being received
in the gNB. The filtering in this commit stops
the UCI being built in the NRUE when a UL_DCI
is recevied.
2021-11-18 08:26:12 -08:00
Melissa Elkadi
99a75d6fbb Merge branch 'eurecom-episys-merge-nsa' into episys/master-nsa 2021-11-18 05:36:04 -08:00
Melissa Elkadi
6c49b7c799 Fixing AssertFatal command 2021-11-18 05:35:34 -08:00
Melissa Elkadi
bb4db86d61 Do not handle multiplexing of UCIs if nothing is in UCI queue 2021-11-17 15:39:07 -08:00
Melissa Elkadi
236f980ba0 Merge branch 'episys/master-nsa' into episys/5gcn_traffic_testing 2021-11-17 15:12:59 -08:00
Melissa Elkadi
8241eb8e90 Merge branch 'eurecom-develop' into eurecom-episys-merge-nsa 2021-11-17 14:34:51 -08:00
Melissa Elkadi
40e213dd9d Merge branch 'eurecom-develop' into episys/master-nsa 2021-11-17 14:31:30 -08:00
Melissa Elkadi
638b32bbb2 Merge branch 'episys/master-nsa' into eurecom-episys-merge-nsa 2021-11-17 13:31:16 -08:00
Melissa
c92323fb13 Merge branch 'episys/david/nsa_integrated_RA' into 'episys/master-nsa'
Integrated ra procedure for both nsa and sa.

See merge request aburger/openairinterface5g!83
2021-11-17 21:13:37 +00:00
Deokseong "David" Kim
efc797f35d Integrated ra procedure for both nsa and sa. 2021-11-17 21:13:36 +00:00
Melissa Elkadi
d28deb3c34 Handling multiplexing of UCI indications
The IP traffic of a single NRUE works most
of the time in this commit. There seems to
be a bug in the gNB and it will occassionally
crash with a heap-buffer-overflow. This will
be looked at in the next commit.

The changes in this commit include gathering
all of the UCI indications in the queue that
have the same scheduled sfn_slot and sending
them as one aggregated UCI when the scheduled
sfn_slot matches the received ul_tti_request.
2021-11-17 11:33:05 -08:00
Michael Cook
afeb5f4de2 Fix warning about unused variable off
It's used only if LOG_M is enabled.
2021-11-14 06:29:24 -08:00
Melissa Elkadi
e928ef991a Merge branch 'episys/david/nsa_integrated_RA' into eurecom-episys-merge-nsa 2021-11-12 10:52:27 -08:00
David Kim
27163417a0 Fixed id mismatch problem for pdcp tun interface in enm. 2021-11-12 10:25:49 -08:00
Melissa Elkadi
368977b3bb The NRUE and gNB are connected to the 5GCN!
When IP traffic is started on the NRUE, the
gNB immediately crashes
2021-11-12 09:03:47 -08:00
Melissa Elkadi
36250e72f2 Merge branch 'episys/david/nsa_integrated_RA' into eurecom-episys-merge-nsa 2021-11-11 18:58:14 -08:00
Melissa Elkadi
04d0004e4d Merge branch 'episys/david/nsa_integrated_RA' into eurecom-episys-merge-nsa 2021-11-11 13:59:42 -08:00
David Kim
01c2f79f9e Fixed build error in eNB ocp. 2021-11-11 12:43:26 -08:00
David Kim
d118cbfadc Consolidated two 'if' condition in ra procedures for nsa and sa. 2021-11-10 18:18:12 -08:00
Melissa Elkadi
5fcea85427 Getting rid of duplicate if statement contents 2021-11-10 14:41:54 -08:00
David Kim
1803b1fb34 Integrated ra procedure for both nsa and sa. 2021-11-10 13:52:29 -08:00
Melissa Elkadi
c5ad7d89fe Removing white space 2021-11-10 08:59:46 -08:00
Melissa Elkadi
046258f1ba Merge branch 'eurecom-develop' into eurecom-episys-merge-nsa 2021-11-09 15:17:58 -08:00
Melissa
9fb044588d Merge branch 'episys/david/nsa_ci_debug_for_sa' into 'episys/master-nsa'
NSA CI debug update for SA mode

See merge request aburger/openairinterface5g!82
2021-11-09 23:00:14 +00:00
David Kim
0429f7e872 Merge remote-tracking branch 'origin/episys/master-nsa' into episys/david/nsa_ci_debug_for_sa 2021-11-09 11:10:40 -08:00
Melissa
dfd428672b Merge branch 'episys/mel/sa_development_init' into 'episys/master-nsa'
CBRA Procedure Working for SA Mode

See merge request aburger/openairinterface5g!81
2021-11-09 17:46:07 +00:00
Melissa Elkadi
83f8d71233 Fixing indentation in if statement and adding conf file 2021-11-09 09:44:48 -08:00
David Kim
3613485749 Added new config file for gNB in SA test. 2021-11-08 21:30:35 -08:00
David Kim
d564d8f94d Updated to emulate_l1 instead of nsa in gNB indication. 2021-11-08 21:27:55 -08:00
David Kim
e5ac73a552 Merge remote-tracking branch 'origin/episys/mel/sa_development_init' into episys/david/nsa_ci_debug_for_sa 2021-11-08 21:21:44 -08:00
David Kim
b13fce5385 Removed NSA mode further in nrUE codes and fixed format. 2021-11-08 16:04:39 -08:00
Melissa Elkadi
dbf2aba843 Reverting white space change 2021-11-08 14:41:51 -08:00
Melissa Elkadi
dbacbfd0cd Removing more unnecessary filtering in NRUE
Got rid of unnecessary mac->scc check as well
2021-11-08 11:28:41 -08:00
Melissa Elkadi
fa4617c0bf Fixing MR based on OAI feedback
The following was changed in this commit:
 - A new struct in the mac instance was created
   for all emulated L1 fields.
 - NR UE RRC state bug was fixed
 - Checking the RAR rnti based on the MAC instance
   ra.ra_rnti and not hardcoding to 0x10b
 - Modified the name of the new emulate_l2 flag
   to make sense: emulate_l1
2021-11-08 10:59:28 -08:00
Melissa Elkadi
85e066054f Checking for emulate_l2 instead of NSA flag 2021-11-05 15:45:48 -07:00
Melissa Elkadi
f536682367 Fixing formatting and added AssertFatal 2021-11-05 14:59:00 -07:00
David Kim
d51314f57d Updated coding format in unified way. 2021-11-05 14:42:39 -07:00
David Kim
6420c3166b Removed unrequired comments. 2021-11-05 14:34:18 -07:00
David Kim
fa6aa31559 Changed log level from I to D in PUSCH detection. 2021-11-05 14:25:09 -07:00
David Kim
8d6b112c17 Removed unrequired nsa conditions. 2021-11-05 12:35:15 -07:00
Melissa Elkadi
fbd791d4a4 Removing unnecessary DCI filtering.
The DCIs are filtered already in the NRUE when
the NFAPI messages are handled.
2021-11-05 12:22:00 -07:00
Melissa Elkadi
a2a823d54b Removing log 2021-11-05 11:56:28 -07:00
Melissa Elkadi
3569ba630c Reverted log level and gNB_RA_sched for NSA mode 2021-11-05 11:49:34 -07:00
Melissa Elkadi
f04f8e7d7b Setting ra_state breaks RA Procedure for NSA mode
Also, changed some if statement formatting.
2021-11-05 11:29:45 -07:00
David Kim
fc1815170e Fixed a bug on setting the number of pdus. 2021-11-05 09:48:48 -07:00
Melissa Elkadi
bf8a37f878 CBRA and CFRA procedure complete!! 2021-11-04 18:27:26 -07:00
Melissa Elkadi
954a64a1c0 SA mode SIB processing
In SA mode, we will not be able to process the SIB if
we change for mac->scc_SIB == NULL : return;

So we change the statement for NSA mode
2021-11-04 17:58:01 -07:00
Melissa Elkadi
7c484fba33 Changing how we filter DCI's fixes NSA mode
It will likely break SA mode because it will
filter out Msg3. I will come back to this and
fix it for Msg3.
2021-11-04 17:17:55 -07:00
Melissa Elkadi
f9b8461548 Reverting more changing that were unnecessary for SA 2021-11-04 16:40:44 -07:00
Melissa Elkadi
59458c9690 Reverting changes that did not fix SA mode 2021-11-04 16:36:50 -07:00
David Kim
ae8e0ea3da Reverted unncessary changes. 2021-11-04 13:46:24 -07:00
Melissa Elkadi
479784a064 Calling proper nr_ue_get_rach function
Also, reverted a DCI filtering change to exist again.
2021-11-04 13:15:58 -07:00
Melissa Elkadi
e0991d3cec Reverting log changes for MR 2021-11-04 12:44:30 -07:00
Melissa Elkadi
2f7378d125 Update conf files to match master-nsa and made new SA mode gNB. 2021-11-04 12:30:53 -07:00
Melissa Elkadi
7e10b4a106 Reverting nr-uesoftmodem to match master and added SA mode 2021-11-04 12:16:39 -07:00
Melissa Elkadi
f4448023df Merge branch 'episys/master-nsa' into episys/mel/sa_development_init 2021-11-04 11:48:34 -07:00
Melissa Elkadi
10dec919ce Temp fix to try to get CBRA procdeure complete
Need to review this with Raymond.
2021-11-04 11:11:13 -07:00
David Kim
d2ecd40fbd Removed unused debug log. 2021-11-04 10:34:06 -07:00
David Kim
4fb67cbd9c Resolved conflict in Merge remote-tracking branch 'origin/episys/master-nsa' into episys/david/nsa_ci_debug_for_sa 2021-11-04 10:24:48 -07:00
Melissa Elkadi
7dc523355d Return 0 is not a fail, so changing to -1 2021-11-04 10:07:25 -07:00
David Kim
f4049a9fe2 Code cleanup 2021-11-04 09:31:42 -07:00
Melissa Elkadi
d7b4adb006 Only filtering DCIs in MAC layer after RA is complete. 2021-11-04 09:17:16 -07:00
David Kim
c7f083b14a Updated gNB part to handle CI test 2021-11-03 22:30:28 -07:00
Melissa Elkadi
81716e4c77 Filtering for multiple UEs in MAC excluding SIB and RAR
For multiple UEs, we need to be able to filter the rx'd messages by
the RNTI. However, we do not have the RNTI value until the CFRA (NSA)
or CBRA (SA) procedure is complete. The check below will handle this.
Also, depending on the RNTI value, we can have a SIB (0xffff), RAR (0x10b),
Msg3 (TC_RNTI) or an actual DCI message (CRNTI). When we get Msg3, the
MAC instance of the UE still has a CRNTI = 0. Only once the RA procedure
succeeds is the CRNTI value updated to the TC_RNTI.
2021-11-03 16:28:42 -07:00
Melissa Elkadi
edd710f6a9 Removing bad log and changing RA state when we get prach 2021-11-03 15:52:49 -07:00
Melissa Elkadi
54a894e534 Updated the following for SA development:
1. The preamble index in the NRUE is random for SA.
   Using the preamble index from the mac->ra is
   correct.

2. The dl_pathloss calculated is from L1. We should
   shunt this feature out for our emulated mode. If
   we add the abstraction later, we can model the
   pathloss in the proxy and update it in the RA
   procedure of the NRUE.

3. Checking that the crnti != t_crnti is not valid
   for SA mode. And may only be needed for multi-UE
   in NSA mode. We might be able to delete it all
   together. For now, we only use for NSA mode.

4. Checking the RAR based on rnti = 10b and not the
   RA_STATE is better.
2021-11-03 10:54:33 -07:00
Melissa Elkadi
c87141fbcf Updating gNB RA PROC to match develop branch 2021-11-03 09:14:40 -07:00
Melissa Elkadi
b8444ecbc1 Merge branch 'eurecom-develop' into episys/mel/sa_development_init 2021-11-03 08:54:06 -07:00
Melissa Elkadi
e8f965d010 Merge branch 'eurecom-develop' into eurecom-episys-merge-nsa 2021-11-03 06:32:38 -07:00
Melissa Elkadi
ceda62cde8 Merge branch 'eurecom-episys-merge-nsa' into episys/master-nsa 2021-11-02 15:53:36 -07:00
Melissa
09ed3720a6 Merge branch 'episys/mel/merge_bw_testing_abs' into 'episys/master-nsa'
Merge NFAPI changes to new SA master branch

See merge request aburger/openairinterface5g!79
2021-11-02 21:41:30 +00:00
Melissa Elkadi
b29fd449d0 Changed ul_tti_req queueing mechanism:
Instead of resetting queue when full,
take last item out.
2021-11-02 14:35:32 -07:00
Melissa Elkadi
554e7db1d9 Updated the nr_ue_get_rach() function to match develop
Also, in the nr_rrc_mac_config_req_ue(), we should
only be configuring L1 if we are not in the L2 emul
mode. We are crashing due to the RRC state in the NRUE
not being set/checked properly.
2021-11-02 13:21:42 -07:00
David Kim
bb21c02d2c updated for CI debug in nrUE side. 2021-11-02 08:56:06 -07:00
Melissa Elkadi
7825350905 Fixing merge request comments 2021-11-01 16:24:59 -07:00
David Kim
7b619c5439 updated for CI debug from crash. 2021-11-01 14:34:10 -07:00
Melissa Elkadi
e635b90fda Decoding MIB and SIB1 in NR UE
In this commit, we changed the stub function of the NRUE
to handle the MIB and SIB1, which arrive in a single
DL_TTI_REQ. If we have not received the MIB, we first
call the scheduler, then we handle any received NFAPI
messages. The NFAPI message handler will then call
the nr_ue_dl_indication() again, which will process
first the MIB, then SIB1. It seems that we are not
properly sending the SIB1 response back to the gNB so
the NRUE eventually crashes. We are however, properly
decoding the MIB and SIB which is a step in the right
direction!
2021-11-01 12:42:01 -07:00
David Kim
d62599b34e updated RRC_UE.c in nsa mode. 2021-11-01 10:21:49 -07:00
David Kim
e303b1be6b Fixing ra procedures sync problem by checking rnti value. 2021-10-29 17:48:30 -07:00
David Kim
95202fba91 updated for CI sa test 2021-10-29 14:47:56 -07:00
Melissa Elkadi
04251e84be Removing name from log and demoting log 2021-10-29 13:51:58 -07:00
Melissa Elkadi
1dec9dd9f6 First attempt at receiving MIB and SIB in SA mode 2021-10-29 13:49:56 -07:00
Melissa Elkadi
733279689f Fixing white space and added a TODO comment 2021-10-28 15:02:14 -07:00
David Kim
44a13ef81e Removed initial segment fault by adding nsa mode. 2021-10-28 13:59:57 -07:00
Melissa Elkadi
26ddb9eabe Only do LTE channel modelling in LTE mode, not NSA 2021-10-28 11:58:01 -07:00
Melissa Elkadi
3007550150 Updating DCI configuration to avoid seg fault 2021-10-28 11:14:47 -07:00
Melissa Elkadi
cfb49c17d2 Added a seprate queue for chan_params 2021-10-28 10:32:28 -07:00
Melissa Elkadi
fa810fab70 Accounting for wrap in slot comparison in gNB 2021-10-28 08:58:36 -07:00
Melissa Elkadi
66144698c7 Reverting log and white space changes for MR 2021-10-28 08:51:09 -07:00
Melissa Elkadi
455e3d8343 This commit gets rid of sfn_slot sleep
In the previous commit, the NRUE would record
the time it received a slot and compare this
rx time to the next slot. If the next slot
came in before it had been 500us, the NRUE
would sleep a delta amount to make the duration
between the two slot indications 500 us. This
change complicated the code and did not
improve the performance so it was removed.
Furthermore, this commit removes the old
queueing mechanism of the slot indications and
uses calloc rather than an array.
2021-10-28 08:14:20 -07:00
Melissa Elkadi
3ec5210652 Merge branch 'episys/master-sa' into episys/mel/merge_bw_testing_abs 2021-10-28 06:36:43 -07:00
Melissa
f9ad8dbd9d Merge branch 'origin-episys-merge-nsa' into 'episys/master-nsa'
Instead of removing the frees we allocated from heap.

See merge request aburger/openairinterface5g!78
2021-10-27 22:37:14 +00:00
Melissa
957c79e5eb Update README.txt for NSA mode 2021-10-27 22:36:33 +00:00
Melissa
534a8bbf10 Update README.txt for LTE L2 Emulator 2021-10-27 22:28:25 +00:00
Melissa Elkadi
916c30054f Merge branch 'episys/master-nsa' into origin-episys-merge-nsa 2021-10-27 15:08:32 -07:00
Melissa Elkadi
4eb0aceab6 Merge remote-tracking branch 'eurecom/develop' into episys/master-nsa 2021-10-27 15:05:05 -07:00
Melissa Elkadi
18aaa88517 Merge branch 'eurecom-develop' into episys/mel/merge_bw_testing_abs 2021-10-27 08:05:26 -07:00
Melissa Elkadi
f816f8df8d Merge branch 'episys/master-nsa' into origin-episys-merge-nsa 2021-10-27 07:39:52 -07:00
Melissa Elkadi
639d85dded Merge branch 'eurecom-episys-merge-nsa' into origin-episys-merge-nsa 2021-10-27 07:31:59 -07:00
Melissa Elkadi
bf4bf813dd Merge remote-tracking branch 'eurecom/develop' into eurecom-episys-merge-nsa 2021-10-27 07:31:35 -07:00
Melissa Elkadi
16b5da25a2 Merge branch 'episys/master-nsa' into episys/mel/merge_bw_testing_abs 2021-10-26 16:18:21 -07:00
Melissa Elkadi
cb8ecc6053 Merge branch 'eurecom-episys-merge-nsa' into origin-episys-merge-nsa 2021-10-26 16:03:48 -07:00
Melissa Elkadi
0fd35a229a Instead of removing the frees we allocated from heap.
In SA mode, there were DCI_INDs and RX_INDS that
were allocated on the stack and were assigned to
pointers used in the MAC instance. In NSA mode we
allocated these members on the heap so we free'd
them once we were done. In SA mode, they were not
allocated on the heap so this free call caused an
a free() error. We have now allocated these pointers
on the heap to avoid this error and ensure the
pointers are correct.
2021-10-26 15:48:03 -07:00
Melissa Elkadi
0f1723a485 Properly calling init_tun and nas_conf for SA and NSA 2021-10-26 09:56:09 -07:00
Melissa Elkadi
99183b1761 Freeing memory that wasnt allocated on heap in SA mode 2021-10-26 09:19:41 -07:00
Melissa
265c88749e Merge branch 'episys/david/checking_valid_spCellConfig' into 'episys/master-nsa'
Added one more condition for valid cell config

See merge request aburger/openairinterface5g!75
2021-10-25 21:46:27 +00:00
Deokseong "David" Kim
a13ed80cb7 Added one more condition for valid cell config 2021-10-25 21:46:27 +00:00
Melissa
d08eed8f3a Merge branch 'origin-episys-merge-nsa' into 'episys/master-nsa'
Merge from Eurecom/develop into Eurecom/episys-merge-nsa

See merge request aburger/openairinterface5g!76
2021-10-25 21:10:46 +00:00
Melissa
7d6212bb44 Upload New File 2021-10-25 19:31:15 +00:00
Melissa
7fcaee0961 Upload New File 2021-10-25 19:30:59 +00:00
Melissa
f70058a460 Upload New File 2021-10-25 19:30:46 +00:00
Melissa
c18f57d389 Upload New File 2021-10-25 19:30:31 +00:00
Melissa Elkadi
6b551e81b7 Adding documentation for NSA and LTE L2 emulator 2021-10-25 12:28:58 -07:00
Melissa Elkadi
8a56d146cc Merge branch 'episys/master-nsa' into episys/mel/merge_bw_testing_abs 2021-10-25 11:07:59 -07:00
Melissa Elkadi
e4ad4a6b17 Merge branch 'episys/master-nsa' into origin-episys-merge-nsa 2021-10-25 10:46:36 -07:00
Melissa Elkadi
74b2dbe73a Merge branch 'origin-episys-merge-nsa' into eurecom-episys-merge-nsa 2021-10-25 10:34:53 -07:00
Melissa Elkadi
b56c8ac3ce Merge remote-tracking branch 'eurecom/develop' into origin-episys-merge-nsa 2021-10-25 10:27:11 -07:00
Melissa Elkadi
2edfdb20a4 Merge remote-tracking branch 'eurecom/develop' into episys/mel/merge_bw_testing_abs 2021-10-25 09:52:23 -07:00
Melissa Elkadi
f1cb957c04 Merge branch 'episys/master-nsa' of gitlab.int-episci.com:aburger/openairinterface5g into episys/master-nsa 2021-10-19 14:58:32 -07:00
Melissa Elkadi
7ccf745ddb Merge remote-tracking branch 'eurecom/episys-merge-nsa' into episys/master-nsa 2021-10-19 14:57:47 -07:00
Melissa Elkadi
7665f397a6 Only calling init_pdcp for NSA mode in gNB executable
Also, reverted some init_pdcp logic to match
the develop branch and added NSA mode. Lastly,
added additional error checking for cellConfig
to avoid crash in MAC layer.
2021-10-19 14:52:41 -07:00
Melissa
b4d8de2761 Merge branch 'revert-e630bf1c' into 'episys/master-nsa'
Revert "tx_data_request len field is a uint16_t"

See merge request aburger/openairinterface5g!74
2021-10-19 21:08:33 +00:00
Melissa
bcca4aad81 Revert "tx_data_request len field is a uint16_t"
This reverts commit e630bf1c52
2021-10-19 21:08:14 +00:00
Melissa Elkadi
58eb8d2af4 Creating new queue for ul_ttis if dl_tti is late
Also, this commit changes the len argument in the
pusharray32 to match the actual field type (uint16_t).
There is also simple name change from sf -> slot.
The new queueing system is not a permanent solution.
It was simply a way for us to try to handle late
dl_tti_requests. If we queue every single ul_tti_req
that we get, the queue gets full very quickly becasue
we only remove ul_ttis from the queue when a uci has
been populated with a matching sfn/sf. Because of this,
we only queue ul_ttis if we have a uci_indication
prepared already. Rarely, a dl_tti_req will arrive at
the NRUE too late, and the NRUE does not have time
to create the uci_ind so we dont process the corresponding
ul_tti. A seprate queue was made to hold all other ul_ttis
the arrive in the NRUE (this queue will continuously
get full and then emptied) but will occasionally hold
a ul_tti that corresponds to a uci that hasnt
been populated yet.
2021-10-19 07:59:55 -07:00
Melissa Elkadi
e630bf1c52 tx_data_request len field is a uint16_t
In the pusharray32, used exclusively by the
    tx_data_request, the len argument passed in
    is defined as a uint32_t. This update fixes
    the passed in argument to be defined as a
    uint16_t instead.
2021-10-18 18:50:12 -07:00
Melissa Elkadi
09a90a4838 Merge remote-tracking branch 'origin/episys/master-nsa' into eurecom-episys-merge-nsa 2021-10-18 18:36:44 -07:00
Melissa
09e1b98f87 Merge branch 'episys/david/sctp_update' into 'episys/master-nsa'
Adding NSA mode for calling rlc_module_init  and SCTP_TASK

See merge request aburger/openairinterface5g!72
2021-10-19 01:36:08 +00:00
Deokseong "David" Kim
a30e27cb11 Adding NSA mode for calling rlc_module_init and SCTP_TASK 2021-10-19 01:36:07 +00:00
Melissa
d1787a605e Merge branch 'episys/master-nsa+alarm' into 'episys/master-nsa'
Set alarm

See merge request aburger/openairinterface5g!71
2021-10-18 22:04:20 +00:00
Michael Cook
69fc902b52 Set alarm 2021-10-18 22:04:19 +00:00
Melissa Elkadi
fe78d8a08f Only calling rlc_module_init for NSA mode
In develop, this function call was commented out.
It is necessary for NSA mode so we have modified
the logic for this case.
2021-10-15 09:13:36 -07:00
Melissa Elkadi
dbe23abcf3 Merge remote-tracking branch 'origin/episys/master-nsa' into eurecom-episys-merge-nsa 2021-10-13 09:57:54 -07:00
Melissa Elkadi
966a4d1d46 Merge remote-tracking branch 'origin/episys/master-nsa' into eurecom-episys-merge-nsa 2021-10-13 09:57:33 -07:00
Melissa
2800fbe0d5 Merge branch 'episys/david/fixing_nr_xlsim_build' into 'episys/master-nsa'
Fixed nr_dlsim and nr_ulsim build errors.

See merge request aburger/openairinterface5g!69
2021-10-13 16:27:13 +00:00
Deokseong "David" Kim
a5d23a0e08 Fixed nr_dlsim and nr_ulsim build errors. 2021-10-13 16:27:13 +00:00
Melissa
cb1344274f Merge branch 'origin-episys-merge-nsa' into 'episys/master-nsa'
Merge changes to episys-merge-nsa to episys/master-nsa

See merge request aburger/openairinterface5g!70
2021-10-13 15:44:21 +00:00
Melissa Elkadi
c751b594f1 Merge remote-tracking branch 'eurecom/develop' into eurecom-episys-merge-nsa 2021-10-13 07:03:11 -07:00
Melissa Elkadi
09cec7c72e Merge remote-tracking branch 'eurecom/develop' into origin-episys-merge-nsa 2021-10-13 07:01:27 -07:00
Melissa Elkadi
28391dad6a Updating pdcp init functions to maintain SA behavior 2021-10-13 06:52:15 -07:00
Melissa Elkadi
ea2495ea0a Attemping to stop filling UL_TTI_REQ queue
This is sort of hacky, but it stops the gNB
from crashing for 2 UEs with the proxy and
4 UEs with our internal proxy.
2021-10-12 17:06:00 -07:00
Melissa Elkadi
b17a5189b7 Adding timing informtion to rx'd slot indictions
Ensuring in the NRUE that the slot indications we
process are 500us apart.
2021-10-12 10:27:15 -07:00
Melissa Elkadi
f37264e676 Avoiding unnecessary casting and fixed bug in ul_tti handling 2021-10-08 15:45:28 -07:00
Melissa Elkadi
b3145dec04 Removing commented code 2021-10-08 08:53:49 -07:00
Melissa Elkadi
4b8a15fa14 Allocating NR nFAPI messages on the heap prior to queueing
This commit is properly allocating the NR nFAPI
messages on the heap; however, when we do this,
it makes the NR UE behind the gNB even more and
casuses us to not finish the CFRA procedure. This
is because the RAR is recevied in the NR UE, but
the slot indications are too far in advance, so
the CRC/RX pair (msg3) is never sent because
the scheduled ul_slot and ul_frame already was
received prior to getting the RAR.
Need to fix this!!
2021-10-07 18:37:20 -07:00
Melissa Elkadi
9355495ad1 Unqueueing UL_TTI_REQs based on active harq sfn sf
Also fixed some silly spelling errors.
2021-10-07 16:46:10 -07:00
David Kim
39563f3cd5 Restored the original NAS configuration file. 2021-10-07 10:11:21 -07:00
Melissa Elkadi
5552d53b08 gNB and NRUE slots not matching is what happens in LTE
This commit allows us to call the scheduler for
every slot indication we get to ensure we properly
configure the DCI. Also, we are sure to process the
DCI only when we have both the config (dl_tti) and
the payload (tx_req). Lastly, removed the hack
to the slot indication (we do not shift the slot
indication by -6 anymore). We are passing up to 4
NSA UEs, but sometimes one will not complete the CFRA
procedure.
2021-10-07 10:06:40 -07:00
Raphael Defosseux
4c5a693a14 feat(ci): old L2 simulator test is now disabled in VM pipeline
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2021-10-07 16:48:26 +02:00
Melissa Elkadi
10432a3fbc Merge branch 'episys-merge-nsa' of https://gitlab.eurecom.fr/oai/openairinterface5g into eurecom-episys-merge-nsa 2021-10-06 18:31:29 -07:00
Melissa Elkadi
aa9a9e7a41 Merge branch 'episys/master-nsa' into eurecom-episys-merge-nsa 2021-10-06 18:25:32 -07:00
Melissa
42bed9b5ed Merge branch 'episys/david/restoring_original_NSA_config' into 'episys/master-nsa'
Restored the original NAS configuration file.

See merge request aburger/openairinterface5g!68
2021-10-07 01:24:49 +00:00
Melissa Elkadi
746d074646 Queuing all nFAPI messages and handling after slot ind
This commit changes the stub functionality entirely.
We are now queueing any received NR nFAPI message
and handling it only after we recevie a slot ind
that corresponds with the nFAPI message's sfn/slot
value. When doing this, an existing issue has been
brought to light. The gNB and NR UE are not in sync
when it comes to their slot indications. Generally,
the NR UE seems to be ahead of the gNB by around 6-7
slots. This commit has a hack... when we receive a
slot indication at the moment, we decrament it by 6
to try to keep the NRUE from being ahead of the gNB.
This will be fixed shortly... This was a temporary
fix..
2021-10-06 18:13:13 -07:00
David Kim
49f2a2ad2b Restored the original NAS configuration file. 2021-10-06 11:52:49 -07:00
Melissa Elkadi
98bc149e98 Reverting change that that forces DCI config before handling
By reverting this change, we will see the NRUE2 crash
because the DCI wont be configured before handling.
This will get fixed in the next commit by adding
queues for the nFAPI messages, therefore forcing
us to handle the nfapi messages only after we have
processes the corresponding slot indication.
2021-10-06 09:47:19 -07:00
Melissa Elkadi
47e96132f6 Handling multiple DCIs in a single DL_TTI and TX_REQ 2021-10-05 16:09:52 -07:00
Melissa Elkadi
1b2d8b5288 def_dci_pdu_rel15 fix.
In this commit we were trying to understand why
the memset of the def_dci_pdu_rel15 array in the NRUE
was casuing the NR UE to crash. This was happening
becuase some of the members of the def_dci_pdu_rel15
array canont be zero in NSA mode. This was happening
because sometimes, we would recevied two DCI indications
in a row, after the first one, we would be memesetting
the array to all 0s and then try to process the second
DCI. The fix we have implemnted is to call the configure_dci()
prior to processing ANY DCI, to ensure we have properly
configured the UE to handle these DCIs.

Also, in the gNB, it was not able to find the UL scheduled
slot for the feedback harq because it was not accounting for
the slot wrapping.
2021-10-05 11:40:40 -07:00
Raphael Defosseux
05f0206cf0 style(MAC): lowering one log line to match previous behavior
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2021-10-04 16:44:18 +02:00
Melissa Elkadi
fb0a80ee84 Adding memset of def_dci_pdu_rel15 back in
Removing the memset seemed to hide the problem
and now the problem is appearing in a differnt
manner... it is causing the NRUE to skip HARQ
PIDs as its filling the UCI indication and process
the DCI PDUs. So adding the memset causes the NR UE
to crash becasue the DL_BWP_ID is becoming 0
which leads us to index into an pointer that is not
allocated and then a crash happens in DCI handling.
2021-10-01 15:53:23 -07:00
David Kim
eb5f517165 updated configuration file location for ci test. 2021-10-01 15:34:12 -07:00
Melissa Elkadi
8c6723ca74 Lowering log level so it is not so verbose 2021-10-01 15:14:50 -07:00
Melissa Elkadi
373d292a48 Merge remote-tracking branch 'origin/episys/master-nsa' into eurecom-episys-merge-nsa 2021-10-01 15:02:21 -07:00
Melissa Elkadi
78b6988735 Merge branch 'episys/master-nsa' into eurecom-episys-merge-nsa 2021-10-01 15:01:57 -07:00
Melissa Elkadi
a5d6ff5a75 We are now sending either SR or HARQ based on UL_TTI_REQ
This requires some updates to the nFAPI code as well.
We also have declared the def_dci_rel15 extern variable
consistently throughout the code.

In this commit, the gNB is still crashing. However, it seems
that the NSA UE is sending the proper responses back, but there
some sort of incorrect management of the def_dci_pdu_rel15
variable. If we memset this array to 0, we can see incorrect
0 assignments to elements of the UCI indications. Hopefully
fixing this issue will result in less gNB crashes.
2021-10-01 14:52:32 -07:00
Melissa
7e806ad0e9 Merge branch 'episys/david/moving_config_files_into_a_folder' into 'episys/master-nsa'
Updated configuration file location for CI test.

See merge request aburger/openairinterface5g!67
2021-10-01 21:45:30 +00:00
David Kim
eef6ca5037 updated configuration file location for ci test. 2021-10-01 10:21:42 -07:00
Melissa Elkadi
ce8301ba38 Setting SR flag to 0 in NR UE to ensure we dont handle SRs 2021-09-30 19:25:57 -07:00
David Kim
b2d1052fe9 Added some config files after restoring original config files. 2021-09-30 18:39:30 -07:00
Melissa
e915230c28 Merge branch 'episys/david/adding_config_files' into 'episys/master-nsa'
Added some config files after restoring original config files.

See merge request aburger/openairinterface5g!66
2021-10-01 01:33:27 +00:00
Melissa Elkadi
d26aefaa87 Merge remote-tracking branch 'origin/episys/david/adding_config_files' into eurecom-episys-merge-nsa 2021-09-30 18:25:40 -07:00
Melissa Elkadi
d586689a33 Merge branch 'episys/master-nsa' of 10.1.1.59:aburger/openairinterface5g into episys/master-nsa 2021-09-30 18:04:37 -07:00
David Kim
bab9c42e59 Added some config files after restoring original config files. 2021-09-30 17:07:44 -07:00
Melissa
680278c03d Merge branch 'origin-episys-merge-nsa' into 'episys/master-nsa'
Syncing our OAI merge branch with our internal NSA master branch

See merge request aburger/openairinterface5g!64
2021-09-30 23:16:47 +00:00
Melissa
3eafdff63a Syncing our OAI merge branch with our internal NSA master branch 2021-09-30 23:16:46 +00:00
Melissa Elkadi
eccab94b2a Merge branch 'eurecom-episys-merge-nsa' into origin-episys-merge-nsa 2021-09-30 16:00:17 -07:00
Melissa Elkadi
a30f6791f7 Incorrectly removed timeout variable in PNF
Also, putting memset back to help us locate a
bug in the handling of the def_dci_pdu_rel15
2021-09-30 15:57:10 -07:00
Melissa Elkadi
354cf0820f Merge remote-tracking branch 'eurecom/bandwidth-testing-abs' into episys/mel/merge_bw_testing_abs 2021-09-30 07:10:51 -07:00
Melissa Elkadi
e8631811bd Merge remote-tracking branch 'eurecom/episys-merge-nsa' into origin-episys-merge-nsa 2021-09-30 06:30:37 -07:00
Melissa Elkadi
11ab8b55f0 Removing unused variables to get rid of warnings. 2021-09-30 06:29:35 -07:00
Melissa Elkadi
3eb6f5313f Merge branch 'eurecom-episys-merge-nsa' into origin-episys-merge-nsa 2021-09-29 12:31:55 -07:00
Melissa Elkadi
82af1cbc80 Correctly packing UCI indications
Also, removing memset for def_dci_pdu_rel15 because
it is setting the DL_BWP_ID = 0 before we have used
it.
2021-09-29 12:25:40 -07:00
Melissa Elkadi
cf0430a5bc Correctly packing UCI indications.
Also, removing memset for def_dci_pdu_rel15 because
it is setting the DL_BWP_ID = 0 before we have used
it.
2021-09-29 12:15:58 -07:00
Melissa Elkadi
5ab30707d0 Merge remote-tracking branch 'eurecom/episys-merge-nsa' into origin-episys-merge-nsa 2021-09-29 07:36:01 -07:00
Melissa Elkadi
8cf07859ca Processing crc_ind and rx_inds per PDU in gNb 2021-09-29 07:10:23 -07:00
Melissa
622410db32 Merge branch 'episys/david/processing_crc_ind_rx_ind_per_pdu' into 'episys/master-nsa'
processing crc_ind and rx_ind per pdu in gNB.

See merge request aburger/openairinterface5g!63
2021-09-28 21:57:11 +00:00
Deokseong "David" Kim
a3557eb486 processing crc_ind and rx_ind per pdu in gNB. 2021-09-28 21:57:10 +00:00
Melissa Elkadi
abb81d8d70 Fixing a typo 2021-09-28 14:46:40 -07:00
Melissa Elkadi
4cbea4cc8c Cleaning up MR code 2021-09-28 14:30:31 -07:00
Melissa Elkadi
df79567b16 Merge remote-tracking branch 'origin/episys/david/processing_crc_ind_rx_ind_per_pdu' into episys/mel/merge_bw_testing_abs 2021-09-28 13:18:06 -07:00
Melissa Elkadi
62118252dd Merge remote-tracking branch 'eurecom/bandwidth-testing-abs' into episys/mel/merge_bw_testing_abs 2021-09-28 13:13:54 -07:00
Melissa
9b1b629843 Merge branch 'develop' into 'episys-merge-nsa'
# Conflicts:
#   executables/nr-uesoftmodem.c
2021-09-28 20:06:11 +00:00
David Kim
60dca0657b processing crc_ind and rx_ind per pdu in gNB.
1. If matched rnti does not exist between crc_ind pdus and rx_ind puds, the ind or unmatched pdus will be requeued.
2. Sending crc_ind and rx_ind togetehr with crc_ind first in nrUE.
2021-09-27 12:59:40 -07:00
Laurent THOMAS
57aed7ea9b fix memory error in do_nrMeasurementReport 2021-09-27 18:11:55 +02:00
Melissa Elkadi
ca0bf39d36 Code clean up part 3.
I have removed more irrelevant comments and
updated a few logs.
2021-09-24 07:44:36 -07:00
Melissa Elkadi
f41452cce1 Merge remote-tracking branch 'origin/episys/mel/merge_develop_cfra_working_9_14_21' into eurecom-episys-merge-nsa 2021-09-23 15:06:01 -07:00
Melissa
79aeea60e9 Merge branch 'episys/mel/merge_to_cfra_working_9_14_21' into 'episys/mel/merge_develop_cfra_working_9_14_21'
Added slot_ind queue and handling slot_inds in VNF

See merge request aburger/openairinterface5g!61
2021-09-23 21:54:23 +00:00
Melissa
4b8f62b011 Added slot_ind queue and handling slot_inds in VNF 2021-09-23 21:54:22 +00:00
Melissa Elkadi
70be674227 Code clean up part 2.
This commit continues to clean up the reminader
of the changed files in the merge req 1274.
The changes include log updates, comment removals,
etc.
2021-09-23 14:19:55 -07:00
Melissa Elkadi
82ba5a3531 Code clean up part one.
This commit includes about 1/3 of the code clean up
in preparation for the merge to the OAI develop
branch. Several of the changes are white space changes,
removing of logs, comment removals, and updating any
changed code for our use-case to be clear for NSA mode.
2021-09-23 12:53:38 -07:00
Melissa Elkadi
30065ef014 Removing hacks to gNB code for NSA mode 2021-09-22 07:27:13 -07:00
Melissa
61e242199a Merge branch 'episys/david/sync_between_dl_tti_req_and_tx_data_req' into 'episys/mel/merge_develop_cfra_working_9_14_21'
Episys/david/sync between dl tti req and tx data req

See merge request aburger/openairinterface5g!60
2021-09-21 22:38:30 +00:00
Deokseong "David" Kim
6a7fe60266 Episys/david/sync between dl tti req and tx data req 2021-09-21 22:38:29 +00:00
Melissa Elkadi
c4e27cf8b4 Properly assigning the rx_ind.pdu pointer
Also, the ul_slot was not properly wrapping.
It was increased to a value greater than the
largest slot value.
2021-09-21 15:16:36 -07:00
Melissa Elkadi
5ae3c8914a Only filtering tx_requests if RAR has been rx'd
But, we are not going to process the tx_request
unless we are waiting for the RAR OR if the RNTI
from the previous DCI matches.
2021-09-15 15:32:17 -07:00
Melissa Elkadi
54e231bfeb Filtering tx_requests based on prev DCI RNTI
In this commit, we create a new flag in the MAC
instance which is set to true if the recevied
DL DCI PDU's RNTI value matches the current UEs
RNTI value. If the RNTI value does not match,
then we should not process the recevied tx_request.
This check should only take place after the CFRA
procedure is complete.
2021-09-15 15:20:07 -07:00
Melissa Elkadi
d2daf8e860 Change slot_ahead to process ack/nack after pdsch 2021-09-15 11:07:27 -07:00
Melissa Elkadi
88e1b55f02 Filling UCI after DCI because info is available
Previously, we thought that filling the UCI ind
after we got the pdsch payload would stop the
 harq_pid from going inactive, but this was not
the case. The harq_pid is getting set to inactive
too early because of the sf_slot ahead value. The
fix for this will come in the next commit.
2021-09-15 10:03:21 -07:00
Melissa Elkadi
77548d5bec Properly filtering DCIs in the NR UE 2021-09-14 12:53:39 -07:00
Melissa Elkadi
dbc4b0e321 Updating merged code with harq_pid global
The harq_pid is set to inactive during the scheduling
of ACK/NACK, but this is happening before tx_req (PDSCH)
is recevied. We update the global harq_pid then use it
once we get the PDSCH PDU, then we set it to inactive.
Also, the global previously wasnt being set properly because
a memset was changing the def_dci_re15 struct. We now
memset after we update the harq_pid global.
2021-09-14 12:08:38 -07:00
Melissa Elkadi
1f4b552063 Revering nr_ue_get_rach() to complete CFRA 2021-09-14 12:05:24 -07:00
Melissa Elkadi
2ac8d4b680 Properly handling cellGroupConfig in NR UE 2021-09-14 09:10:47 -07:00
Melissa Elkadi
c8ca564212 Merge remote-tracking branch 'eurecom/develop' into episys/mel/merge_develop_cfra_working_9_14_21 2021-09-14 08:36:54 -07:00
Melissa Elkadi
6a8e4e2883 Merge remote-tracking branch 'eurecom/develop' into episys/mel/merge_develop_cfra_working 2021-09-14 07:34:58 -07:00
Melissa Elkadi
3abc7f93e7 Preparing UCIs after we have recevied PDSCH PDU
In this commit, we introduced a new global to save
the harq_pid from the PDCCH that comes down in the
DCI message so that we can use the harq_pid in the
PDSCH. Now, the UCI ind will be filled after we
have recevied the PDSCH in the tx_request.
2021-09-10 14:34:48 -07:00
Mario Joa-Ng
82e6d04e56 fix bugs in GNB MAC nr_store_dlsch_buffer()
This commit is to handle multipe UE correctly.
Right now UE #1 and UE #2 can both ping google.
2021-09-09 16:10:20 -07:00
Melissa Elkadi
a34856ba38 Filtering DCI PDUs by RNTI in NR UE 2021-09-09 14:47:58 -07:00
Melissa Elkadi
3df849eca2 Code clean up 2021-09-03 13:04:15 -07:00
Melissa Elkadi
0b7ce4351d Adding error checking in processing CCCH msgs. 2021-09-03 12:37:07 -07:00
Melissa Elkadi
d60dfa552a Properly initializing the PDCP layer
Previously, the ue_id passed into the
init_pdcp() in  the proxy would be 41.
This is outside of the bounds of the
nas_sock_fd array and would cause a crash.
This was occuring because the node_number
in the NRUE starts at 2, not 1.
2021-09-03 11:40:53 -07:00
Melissa
0f3340011a Merge branch 'episys/david/Adding_function_declaration_to_read_config_file' into 'episys/mel/merge_develop_cfra_working'
Added function declaration to read config file.

See merge request aburger/openairinterface5g!58
2021-09-03 18:37:24 +00:00
David Kim
f8c9be3af9 Added function declaration to read config file.
config files were also updated.
2021-09-03 10:46:09 -07:00
Melissa Elkadi
ca1805faaf IP ping traffic is working correctly
In this commit we have updated the NRUE
to properly get the RadioBearer info from
the gNB. Because NSA and SA mode both use
this information, we have updated the SA
function previously in place by changing
the name to allow both NSA and SA mode to
use. This commit also updated the NR/LTE UEs
configuration files to with the correct
proxy IP address.
2021-09-03 10:13:59 -07:00
Melissa Elkadi
5c49b19788 Merge remote-tracking branch 'origin/episys/david/merge_develop_cfra_working_using_ue_config_for_IP_address' into episys/mel/merge_develop_cfra_working 2021-09-02 15:36:40 -07:00
Melissa Elkadi
2cb934ac2d Didnt mean to redefine variables in 1c11708501
This commit fixes commit 1c11708501 which
we are redefining data_buffer and size_to_write.
2021-09-02 15:34:32 -07:00
Melissa Elkadi
1c11708501 IP working. but HACK!! Changed SN size to 12
Also changed the code to only remove the first
byte of the PDU if it is 00.
2021-09-02 15:29:18 -07:00
David Kim
6342e67c33 Setting UE and nrUE IP address in config file.
1. Removed hard coded IP address in the code for UE and nrUE's remote address.
2. Read IP address from config file for UE and nrUE's remote address.
2021-09-02 13:33:42 -07:00
Melissa Elkadi
233e567a4a Merge branch 'episys/mel/merge_develop_cfra_working' of 10.1.1.59:aburger/openairinterface5g into episys/mel/merge_develop_cfra_working 2021-09-02 10:16:25 -07:00
Melissa Elkadi
b003f37490 Comment for removed first byte before write to TUN 2021-09-02 10:13:44 -07:00
Melissa
672459ad15 Merge branch 'episys/mel/merge_develop_cfra_working_for_multiUE' into 'episys/mel/merge_develop_cfra_working'
Fix to handle multiple UEs and typo bug.

See merge request aburger/openairinterface5g!56
2021-09-01 21:10:12 +00:00
Deokseong "David" Kim
262efe7902 Fix to handle multiple UEs and typo bug. 2021-09-01 21:10:10 +00:00
David Kim
d72d646c0d Adjusted code format to increase code readability. 2021-08-31 18:21:54 -07:00
David Kim
ea63a9eeb0 Merge remote-tracking branch 'origin/episys/mel/merge_develop_cfra_working' into episys/mel/merge_develop_cfra_working_for_multiUE
Resolved merge conflict.
2021-08-31 17:45:26 -07:00
Melissa Elkadi
bfa8c8355c Updated logic for getting IP data in scheduler
Also, the error checking for writing to the TUN
interface was incorrect so that was fixed as well.
2021-08-31 16:06:45 -07:00
Melissa Elkadi
1c248bcf49 Successfully writing to TUN if and removed usleep 2021-08-31 15:53:14 -07:00
Melissa Elkadi
24d75a99af Only initializing PDCP if using EPC (S1 mode) 2021-08-31 11:48:21 -07:00
David Kim
86d605eea1 Fix to handle multiple UEs and typo bug.
1. Changed hard coded preamble index(63) to soft coded.
2. Active UE will not be considered in gNB scheduging RA.
3. Added condition to process dci indication to handle multiple UEs.
4. Bug fix in mutex_lock (unlock to lock). It should be lock rather than unlock.
5. nr_ue_scheduler update not to entering into getting IP traffic to be transmitted in noS1 mode.
6. log update in checking the number of rx_ind or crc
2021-08-30 11:01:32 -07:00
Melissa Elkadi
512e76dee8 Error checking and meas sending wait for EPC only 2021-08-26 17:37:51 -07:00
Melissa Elkadi
6ec545e29d Error checking for processing DL PDUs
Also, we only should be handling/generating AM
PDUs in the PDCP/RLC layer, not UM PDUs. Updated
the pre-configuration settings. This seemed to
make the uplink traffic work (meaning it gets
from NR UE to the gNB to the EPC). Woo! Still
working on the downlink.
2021-08-26 15:44:45 -07:00
Melissa Elkadi
cad1175154 Get IP traffic in MAC layer and handling of RAR
Previously, we would assume every downlink in
slot 7 was an RAR; now we assume every slot 7
that occurs before the CFRA procedure is done
is an RAR. Also changed the logic in scheduler
to allow us to get nr_ue_sdus in the MAC layer.
2021-08-25 17:15:16 -07:00
Melissa Elkadi
63cb61db7d Only do DRB preconfiguration if NOT in noS1 mode 2021-08-25 16:09:20 -07:00
Melissa
b6e8266732 Merge branch 'episys/david/cfra_working_update_0824' into 'episys/mel/merge_develop_cfra_working'
Update on scheduler to relax AssertFatal.

See merge request aburger/openairinterface5g!55
2021-08-25 22:52:59 +00:00
Deokseong "David" Kim
43d8ed216e Update on scheduler to relax AssertFatal. 2021-08-25 22:52:58 +00:00
Melissa Elkadi
72675ef351 Updating .gitignore for logs and strace files 2021-08-25 15:43:33 -07:00
Melissa Elkadi
1b49e7e2ef Additions to get UE connected to EPC 2021-08-25 12:10:12 -07:00
Melissa Elkadi
b7e5c9cf9f Update logic for calling scheduler 2021-08-25 11:28:19 -07:00
Melissa Elkadi
9b6b905bb8 Adding hacks to stop gNB from crashing 2021-08-24 16:25:40 -07:00
Melissa Elkadi
e695224903 Adding 'Receiving RAR' as LOG_A for NSA mode 2021-08-24 15:51:58 -07:00
Melissa
d1c9821869 Merge branch 'episys/mel/merge_develop_cfra_working_bufsize' into 'episys/mel/merge_develop_cfra_working'
Be more careful about buffer sizes

See merge request aburger/openairinterface5g!54
2021-08-23 21:06:10 +00:00
Michael Cook
d768522466 Be more careful about buffer sizes 2021-08-23 21:06:09 +00:00
Melissa Elkadi
1116d16df2 Need to call scheduler after RACH indefinitly
The ue_sched_mode is reset to 0 again when we
memset the ul_info and after the CFRA procedure
is complete, then uplink CRCs with the PUCCH
response (PUSCH) are not being sent because the
scheduler isnt being called. This makes the
gNB run out of uplink harq ids since its never
getting the proper responses. The change below
will ensure that we call the scheduler AFTER the
RACH is sent and all the time after that.
2021-08-20 14:50:23 -07:00
Melissa Elkadi
671f461e6c Making sure we never are in ONLY_PUSCH mode
When running on some machines, the ue_sched_mode
will be initialized to zero. This will cause
the ul_info the go into the ONLY_PUSCH mode.
We do not want to ever call the scheduler and return.
Furthermore, we only want to call the scheduler after
the NRUE has sent the RACH_IND to the gNB.
2021-08-20 10:50:39 -07:00
Melissa Elkadi
0eb90bd8c8 Setting ue_sched_mode after filling RACH_IND
Also, removed the check before calling the
nr_uescheduler that was associated with the
ra.state. Lastly, removed the DL_HARQ_PID
position change as that was incorrect.
2021-08-20 09:55:17 -07:00
Melissa Elkadi
e6709fe9e6 DCI format options were being set incorrectly.
Had to add a check for our NSA mode. If we are in
NSA mode, the DCI format options should be populated
with formats 1 and 7 exclusively. This fixed the
DLBWP calculation for the PDCCH PDUs.
2021-08-20 07:41:54 -07:00
Melissa Elkadi
2fb0e41d44 Merge branch 'episys/mel/merge_develop_cfra_working' of 10.1.1.59:aburger/openairinterface5g into episys/mel/merge_develop_cfra_working 2021-08-19 13:54:31 -07:00
Melissa Elkadi
0ee8f20d54 Updated gNB conf file & last RRC msg in LTE/NR UE 2021-08-19 13:53:12 -07:00
Melissa Elkadi
9fb130b8b4 Updated gNB conf file & last RRC msg in LTE/NR UE 2021-08-19 10:26:50 -07:00
Melissa Elkadi
2c5f0af081 CFRA procedure is working! But gNB still crashes
How? Well, we had to properly allocate the
ul_config_req. We also had to update the
ue_get_rach function. There were several
places where the functionality would check
for a particular mode (ra, sa, phy_test, etc).
In some of these places we had to add NSA mode.
In the VNF, they start the scheduler after 3 sec,
this is sort of a hack, might want to revisit.
This commit also includes removal of printfs.
2021-08-18 16:09:37 -07:00
David Kim
933dcd2894 Updated vnf codes to fix merge errors.
1. Prototype of nr indication functions were updated.
2. nr_rx_indication name changed to nr_rx_data_indication
3. Added other logs and assert conditions that were gone away from merge.
4. pnf files were not touched.
5. To be sync with original nfapi branch, the following file was checkout from eurocom-nfapi_nr_arch_mod
   nfapi/open-nFAPI/vnf/public_inc/nfapi_vnf_interface.h
2021-08-17 10:03:06 -07:00
Melissa Elkadi
2a979f4e2f Merge branch 'eurecom-nfapi-nr-arch-mod' into episys/merge_nsa_w_develop 2021-08-13 10:27:30 -07:00
Melissa Elkadi
3a51e7c352 Successfully encoding meas report! Woohoo!
However, when we free after we encode, fsanitize isnt happy.
Need to clean that up. Also, found an actual bug in LTE.
For the random value issue from fall 2020, we added a fix.
This fix uses ctxt and we were getting ctxt properly.
Lastly, we allocated some memory in processing of the
NR Meas report in the eNB.
2021-08-12 13:21:58 -07:00
Melissa Elkadi
9b16c1d860 Merge branch 'eurecom-develop' into episys/merge_nsa_w_develop
At this point we are successfully able to build.
Additionally, we can run the scenario,
however, it does not pass. It seems that the gNB
is not connecting to the proxy correctly. Just
wanted to push the progress so far. FYI, the items
that had to be changed to correct the linking issues
were the following:

 - mac_rrc_data_ind_ue vs. nr_mac_rrc_data_ind_ue
 - rrc_data_req vs. nr_rrc_data_req
 - mac_rrc_data_req_ue vs. nr_mac_rrc_data_req_ue
 - rrc_data_req_ue vs. rrc_data_req_nr_ue
 - rrc_data_req vs. nr_rrc_data_req

The listed functions should be declard in the LTE/NR
UE directory depending on the functionality. Several
were mixed. i.e.: LTE functions being called in NR UE.

Also, removing siWindowLength, siWindowLength_int,
SIBType, SIBPeriod, and siPeriod_int from the NR UE RRC.
These variable were not used in the NR UE and are defined
for LTE only.

Lastly, in the NR_IF_Module.c of the NR UE, the global
variable def_dci_pdu_rel15 is not accessible. Need to
revisit this. For not it is commented out.
2021-08-11 10:23:42 -07:00
Melissa Elkadi
2f89161363 Merge branch 'episys/mel_and_david_ip' of 10.1.1.59:aburger/openairinterface5g into episys/mel_and_david_ip 2021-08-10 06:15:06 -07:00
Melissa
56d2985c21 Merge branch 'episys/david/multiUE_with_crnti_checking' into 'episys/mel_and_david_ip'
Added crnti checking in nrUE and update in gNB

See merge request aburger/openairinterface5g!53
2021-08-09 23:46:31 +00:00
Deokseong "David" Kim
4133b6bb60 Added crnti checking in nrUE and update in gNB 2021-08-09 23:46:31 +00:00
Melissa Elkadi
8de86da7f5 Merge branch 'episys/david/multiUE_with_crnti_checking' into episys/mel_and_david_ip 2021-08-09 16:30:38 -07:00
Melissa Elkadi
cf4771520b Merge branch 'episys/david/multiUE_with_crnti_checking' of 10.1.1.59:aburger/openairinterface5g into episys/david/multiUE_with_crnti_checking
Also changed a log and typo
2021-08-09 16:29:58 -07:00
Melissa Elkadi
4e6e7519af Semicolon in RRC NR UE incorrect 2021-08-09 15:54:59 -07:00
Melissa Elkadi
4f1d543478 Adding hexdumps to see dc/p bit in PDU
At this point we can see the UDP uplink data
getting to the GTP layer of the gNB. This
only works if you change the memcpy in serialize_sdu()
to not have the encoded.byte
2021-08-09 14:59:27 -07:00
David Kim
85fb91dff7 Merge branch 'episys/nsa_epc_gnb_updates' into episys/david/multiUE_with_crnti_checking 2021-08-09 09:06:15 -07:00
David Kim
5c10d7ed1b Uncommented downlink harq ACK/NACK scheduling condition. 2021-08-08 22:32:13 -07:00
David Kim
845a5dc2d7 Added time window for handling rach indication. 2021-08-07 15:34:33 -07:00
David Kim
6b1651c404 put lines into the inside of { } after 'if' condition. 2021-08-06 12:08:08 -07:00
David Kim
507c34609e bug fix: removed ';' at the end of 'if' condition. 2021-08-06 11:56:51 -07:00
David Kim
a8517323e7 Code cleanup for debug logs. 2021-08-06 10:37:02 -07:00
Melissa Elkadi
745241bd63 Merge branch 'episys/nsa_epc_gnb_updates' into episys/david/multiUE_with_crnti_checking
Also, lots of debugging logs added
2021-08-04 16:24:27 -07:00
David Kim
c619833442 Added crnti checking routine in nrUE. 2021-08-04 10:08:22 -07:00
Melissa Elkadi
d95e35df3c Reverted AssertFatal and just return instead
In the PDCP layer, if the sdu size < 3, this
just means control information is being passed.
In this case, we do not want to cipher the sdu,
its better to just return.
]
2021-08-03 17:04:35 -07:00
Melissa Elkadi
7d505e70f2 Updated PDSCH pdu copy from tx_data_req
Also, finally committing the critical logs for IP traffic.
2021-08-03 16:38:07 -07:00
Melissa Elkadi
952e2cd131 Adding #include assertions.h for PDCP file 2021-08-03 13:29:32 -07:00
Melissa Elkadi
5751a0a435 Not sending random data to gNB, sending IP
The IP traffic still does not work. But we are
updating the NR UE scheduler to ensure we are are
sending true IP traffic. Also, we were getting an
assert(); as well, and there was no logs, so we
fix that in this commit as well.
2021-08-03 13:25:45 -07:00
David Kim
54465993d5 queueing sfn slot information contained in channel params. 2021-07-30 16:44:39 -07:00
Melissa Elkadi
702a060e65 Added check for EPC mode to init RLC layer 2021-07-30 14:52:40 -07:00
David Kim
dd73b2df87 Updated AssertFatal conditions and LOG level from I to D
Regarding dl_hard, some AssertFatal commented out.
Regarding to memory allocation error, AssertFatal was used.
2021-07-30 08:35:57 -07:00
Melissa Elkadi
b5e8954476 Changed logic in MAC layer to allow RLC data read
Also changed logic in the NR UE schedule to read
IP traffic. Also, configured the RLC layer in the
NR UE softmodem and the DRBs with the cRNTI once
the RACH procedure is complete in the NR UE.
2021-07-29 15:55:59 -07:00
David Kim
61aa4f99dd Code cleaning in formatting and fixing typo. 2021-07-29 13:32:21 -07:00
David Kim
c80193731d Commented some AssertFatal condition in dlsch ack/nack scheduling. 2021-07-29 10:38:56 -07:00
Melissa Elkadi
97a648e35f IP Traffic not working, tun if established by NRUE
Updated the configuration files. Added a sleep to
ensure that the LTE UE gets attached to the EPC
before the bearer is modified to be gNB. Updated
the ifconfig tunnel up command to be brought up
by the NR UE socket when in NSA mode. Lastly,
started the gNB PDCP layer in S1 mode.
2021-07-28 15:36:11 -07:00
David Kim
829bf4f8a2 Restored to the original OAI ue and nr-ue config file
Restored original LOG level.
Code cleanup to remove emptry space and added some logs.
2021-07-28 00:24:35 -07:00
David Kim
38e5415f34 Fixing "Unexpected ULSCH HARQ PID" issue.
1. If VNF is slower than PNF, next scheduling will be done after resync.
2. If VNF is unstable in slot progress, next scheduling will be done in next stable status.
3. SFN/SLOT indications are queued in nrUE.
4. get_queue is used instead of unquque for FIFO operation.
2021-07-27 21:02:01 -07:00
Melissa Elkadi
24245d8805 Log argument indexed passed the end of array.
Unnecessary dl_ind_type array for logging.
2021-07-20 15:21:23 -07:00
David Kim
4f23fa2f61 added queues between VNF and MAC to handle indications. 2021-07-19 18:55:02 -07:00
Melissa
7df8064bb7 Merge branch 'proxy-nfapi-conf' into 'episys/x2_trigger_nsa'
Separate nfapi.conf files for proxy

See merge request aburger/openairinterface5g!47
2021-07-19 21:30:42 +00:00
Michael Cook
102ff853ec Separate nfapi.conf files for proxy
In scripts/conf_files, restore ue.nfapi.conf and nr-ue.nfapi.conf
to the template versions.  And add proxy_ue.nfapi.conf
proxy_nr-ue.nfapi.conf for use with emane.git's run-oai and
multi-ue-proxy.git's run-oai.
2021-07-17 07:52:49 -07:00
Melissa Elkadi
7f2e622b0e Sending tunnel interface 'up' command to NR UE
Once the LTE UE's tunnel interface with the EPC
is ready to be established, if we are in NSA mode,
we do not want to launch the tunnel interface
from the LTE UE side, but in the NR UE. Via itti_msgs
we send the string containing the tunnel interface
'up' command to the NR UE and bring it up from the NR UE.
2021-07-07 11:55:34 -07:00
Melissa Elkadi
9d644f247c Fixed memory leak for unqueuing uci_inds 2021-07-05 10:15:26 -07:00
Melissa Elkadi
6ddb49d09c Sending uci_ind based on rx'd ul_tti's sfn/slot
Also, updated the filing of the DCI payload
based on the actual number of recevied bits
and not based on the max number of rx'd bits.
2021-07-02 13:51:39 -07:00
Melissa Elkadi
4dfe7c2596 5G Userplane working 50% of the time
This commit includes several changes.
First, it updates the way we fill the uplink
UCI indication. This still has some todo comments
since all the fields in this ind were hardcoded.
It also updates the pack and unpack functions for
the NR_UCI incations. Lastly, it includes updates
to the gNB UCI scheduler. The updates in the gNB
were cherry picked from develop. There are two updates
to the VNF which allow the VNF timing/slots to be
adjusted based on the received timing_info packets
from the VNF. This adjustment was disabled in IISc's
nFAPI code. For now, it is improving the timing
between the VNF and PNF.
2021-07-01 12:21:57 -07:00
Melissa Elkadi
90d5641770 Filling, queuing and sending UCI ind to gNB
Currently, the pull8 in nFAPI of the VNF
is failing.
2021-06-30 17:21:41 -07:00
Melissa Elkadi
fc79bb1c91 Updating dropping of PUSCH if repeated sfn/slot
The previous two commits did not correctly check
the gNB sfn and slot. The code now correctly sets
the slot in which the PUSCH is SCHEDULED, not the slot
the rx is expected. Also, the sfn/slot is only updated
if we do in fact schedule a PUSCH.
2021-06-30 11:32:57 -07:00
Melissa Elkadi
ad653819b9 Not sending DCI if repeated sfn/slot
Also, we are now updating ul_tti_future
for every index in the array, not just slot 7, 8, and 9.
2021-06-29 15:51:48 -07:00
Melissa Elkadi
30fe619000 Dont send DCIs repeatedly for a given sfn/slot
Although the timing isnt perfect, if the VNF adjusts
in the middle of scheduling a DCI the gNB would try to
send two DCIs for a certain sfn/slot; this commit will
stop that from happening. The timing issue still persits.
2021-06-29 13:24:07 -07:00
Melissa Elkadi
5ee9bc2cc9 Updating matacher function for de-queuing 2021-06-28 16:58:01 -07:00
Melissa Elkadi
f61d5b74b1 Removing free of unallocated memory 2021-06-28 15:02:04 -07:00
Melissa
01127c6ce7 Merge branch 'episys/sync-nfapi-with-muep-more' into 'episys/x2_trigger_nsa'
Sync more NFAPI changes from multi-ue-proxy.git

See merge request aburger/openairinterface5g!45
2021-06-28 14:53:37 -07:00
Michael Cook
9ac2d7724d Merge remote-tracking branch 'origin/episys/x2_trigger_nsa' into episys/sync-nfapi-with-muep-more 2021-06-28 17:44:21 -04:00
Melissa
13c1379958 Merge branch 'episys/sync-nfapi-with-muep' into 'episys/x2_trigger_nsa'
Sync nfapi_p[57].c with multi-ue-proxy.git

See merge request aburger/openairinterface5g!44
2021-06-28 14:43:39 -07:00
Michael Cook
cf4758a742 Merge remote-tracking branch 'origin/episys/x2_trigger_nsa' into episys/sync-nfapi-with-muep-more 2021-06-28 17:40:00 -04:00
Michael Cook
4fb933cbdf Copy review feedback from multi-ue-proxy.git 2021-06-28 17:39:16 -04:00
Melissa Elkadi
9b96dd2a5f Unqueue based on sfn_slot
Also, added functionality to fill tx_req in NR UE
when a DCI is received after the slot indication.
2021-06-28 12:39:28 -07:00
Michael Cook
e54896591b Sync more NFAPI changes from multi-ue-proxy.git
Most notably, nfapi_rx_indication_pdu_t.data type is changed from
`uint8_t*` to `uint8_t[]`.  Also, renamed from `data` to
`rx_ind_data` to make it easier to find.
2021-06-26 10:20:48 -07:00
Michael Cook
9a0926bdee Sync nfapi_p[57].c with multi-ue-proxy.git
These are all superficial, low-risk changes
2021-06-26 09:08:54 -07:00
Melissa Elkadi
46488432e6 This commit includes the iisc pnf_p7 slot tick fix
It also includes the queuing development. The idea
is that the 5G Userplane messages will be filled
and configured the same as previous commit, but
the uplink messages will be queued and then sent to
the gNB during the correct slot. Still WIP.
2021-06-25 14:49:02 -07:00
Melissa Elkadi
912cba163d Enabled VNF timing adjustments.
Also ported in new gNB ulsch scheduler code from
Eurecom/develop branch.
2021-06-24 15:33:22 -07:00
Melissa
3da3b20c86 Merge branch 'episys/use-Werror' into 'episys/x2_trigger_nsa'
Enable -Werror compiler option

See merge request aburger/openairinterface5g!43
2021-06-21 14:11:53 -07:00
Michael Cook
96efbb2cab Add -Werror compiler option
Fix some warnings, too.
2021-06-21 14:11:53 -07:00
Melissa Elkadi
3605fed468 Already filling rx_ind so removing stub functions 2021-06-21 14:05:54 -07:00
Melissa Elkadi
e3bf4940fd WIP: Not working or building.
Starting to complete the final fill of
dl_indication and an rx_indication
2021-06-18 15:06:59 -07:00
Melissa Elkadi
c7875ce24c Properly filling the dci_format
This commit properly is filing the dci_format but the
rx_ind and dl_ind has not been updated in the NR UE
prior to sending to gNB. The chnages in this commit
to properly fill the dci_format include:
- filling the dci canidates every slot indiction
- checking for a dl_tti/ul_tti containing a dci
- when dci payload is received we use the filled
  dci canidates to update the dci_format

Also, a bug in LTE UE is found where we are indexing
passed the end of ue_sdu array. We added a check for this.
Furthermore, in the nr_ue_scheduler we were utilizing
tx_req but the memory wasnt properly initialized.
2021-06-18 13:33:20 -07:00
Melissa
9cce04efd6 Merge branch 'episys/x2_trigger_nsa_for_multi_ues' into 'episys/x2_trigger_nsa'
Adjusted UDP port ids for multiple UE connection with proxy

See merge request aburger/openairinterface5g!41
2021-06-16 16:06:39 -07:00
Deokseong "David" Kim
591e0e1f36 Adjusted UDP port ids for multiple UE connection with proxy 2021-06-16 16:06:38 -07:00
Melissa Elkadi
777bcc6c37 Saving DCI format to mac instance to fill in stub 2021-06-16 14:52:47 -07:00
Melissa Elkadi
17222c91e0 Added assert fatals for ul_config and TLVs
Also started handling ul_dci that is received in NR UE.
We now receive dci format 01, 10, and 11 at the NR UE.
The dl_info being filled in NRUE was not memset to 0, that
has been added. Additionally, we will need to get the dci_format
based on the length in the dl_config structs and map it.
For the moment the dci_format values are hard coded.
2021-06-15 15:55:59 -07:00
Melissa Elkadi
c3710ecfc4 Handling channel information if rx'd in slot_ind 2021-06-15 07:03:48 -07:00
Melissa Elkadi
52dafe61c7 Fixed a bug in rx and crc filling in the NR UE
Also, there is not a field for dci_format in
nFAPI so there is a way it is detected by the NR UE.
For now, we have hardcoded the value in the stub when
we receive the DCI. Lastly, updated the nr_harq_handling
in the gNB.
2021-06-14 16:29:42 -07:00
Melissa Elkadi
2b698b77e4 CFRA procedure success commit pt. 2
This commit includes the changes made to gNB.
All of these changes were cherry picked from
the Eurecom/develop branch to ensure the
CFRA procedure is working. Without these changes
there were several seg. faults.
2021-06-11 12:39:01 -07:00
Melissa Elkadi
e8cfcbe607 CFRA Procedure success commit pt. 1
This commit contains the changes to the OAI code in
the NR UE and in nFAPI.
- Filling crc_ind for msg3
- Updating pack/unpack of CRC_ind
- Creating phy abstraction CRC_ind handling in VNF
- Removal of old comments
- Only sending on RACH in phy_stub
- Calling nr_msg3_transmitted in scheduler for NSA mode
2021-06-11 12:35:40 -07:00
Melissa Elkadi
04ab6dbad5 Added an RX_IND handle in the gNB/VNF
Also updated the NR nFAPI for properly packing
and unpacking the ra_indication. Lastly, added
the functionality for calling the callback RX_ind
functions in the VNF. The RX_IND PDU is recevied
as NULL in the gNB so need to investigate how to
properly pack and unpack the *pdu in the RX_ind.
2021-06-10 15:39:18 -07:00
Melissa Elkadi
b91251d1e0 Changed nsa_send_standalone_msg() and sending RX
The send_standlone_msg will now be able to send
any type of uplink message and we fill the RX
indication in the stub_schedule_response and
are trying to send to gNB. Need to update the NR nfapi.
2021-06-10 12:44:34 -07:00
Melissa Elkadi
0752dd20d1 Filling rx_ind with tx_req information 2021-06-10 10:24:21 -07:00
Melissa Elkadi
d5a7a1a352 Filling RACH ind with prach_pdu
Also added logs for handling Msg3 and
initialized ul_config->num_pdus at every
received slot ind instead of every time
we call get_ul_config()
2021-06-09 14:57:43 -07:00
Melissa Elkadi
4f0c8fbf86 Split process RAR function into 3 functions 2021-06-09 08:02:22 -07:00
Melissa Elkadi
88c614eefc RAR successful here. This commit includes:
- Hardcoding the freq_index when filling RACH
- Not handling DCI unless dci_rel_15 global is allocated
- Verifies ra_rnti matches in prach pdu and RACH
- Updates handling of DCI and RX from dl and tx reqs
2021-06-08 12:31:52 -07:00
Melissa Elkadi
082afd0c05 Updated log in gNB 2021-06-07 15:11:15 -07:00
Melissa Elkadi
d434439596 Using ul_config->prach_pdu in get_rach()
Also, changed freq_index hardcode to 0.
Logging ra_rnti in gNB and NR UE
2021-06-07 14:15:40 -07:00
Melissa Elkadi
2dc4addf11 Added logs for understanding mac->ra_rnti.
Need to figure out where to set ra_rnti in the NRUE.
2021-06-04 14:10:30 -07:00
Melissa Elkadi
6d93b6a663 Removed change to gNB scheduler
Changed NFAPI_mode check in the gNB scheduler
to ensure that the frame is correctly updated for
msg3. Also added comments in NR UE for handling
the RAR and implementing the dci/rx_ind handover
for the RAR procedure.
2021-06-04 10:02:17 -07:00
Melissa Elkadi
0dfffed0d2 Added processing RAR function. Still WIP. 2021-06-03 14:33:43 -07:00
Melissa Elkadi
4f5f1a27da Checking dl_tti and ul_tti for RAR and Msg3 2021-06-03 13:09:34 -07:00
Melissa Elkadi
5ba3d16fbc gNB scheduler was not updating Msg3 future frame
The fix added in this commit may not be correct and
should be reviewed by Eurecom. For now we set the
future frame based on the PRACH recevied frame + 1.
Also fixed the copying of RACH ind into UL_INFO global.
RAR is being passed to NR UE.
2021-06-03 12:24:13 -07:00
Melissa Elkadi
6299d4515e Creating UL_ind RACH handle function in VNF
Also fixed a few bugs in nr-nFAPI:
- Push16->push8 fix in packing of RACH
- Allocating memory for pdu_list and preamble_list in unpack
- Properly indexing through both lists during unpack
- Created new nr_rach handling function
2021-06-02 16:33:12 -07:00
Melissa Elkadi
f768b90f59 Fixing how we set slot_tx in the NR UE.
Also fixed unpacking ul_tti_inds.
2021-06-02 10:02:03 -07:00
Melissa Elkadi
2949d3008e Updating gNB configuration for EMANE 2021-06-01 15:57:41 -07:00
Melissa Elkadi
7a7b668e16 The pRACH is now only generated for slot 19.
Several other changes in this commit include:
- Setting the number of PDUS in the ul_config
  to be zero when we will it (inside of the
  get_ul_config() function.)
- We reset the nprach flag to 0 for each slot.
- We return out of the prach scheduler if
  mac->ul_config == NULL
- Added error checking for array indexing
- Created a dummy scheduler response function.
- Allocated ul_config_req initially
2021-06-01 12:09:15 -07:00
Melissa Elkadi
7db52420bf Created new fill_rach function in the NR UE
Also calling the new L1_nsa_prach_procedures()
function after using the nr_ue_scheduler. Added
some error checking in the nr_ue_scheduler. Added
some error checking in the process_nsa_msg in both
the NR and LTE UE
2021-05-28 15:30:56 -07:00
Melissa Elkadi
4fb87f9d08 Filling rach_ind and sending to proxy
Seems to be working at the moment but
may need to add more info in the rach_ind.
Also, need to verify gNB is getting the
rach_ind and starting RA procedure.
2021-05-27 15:46:00 -07:00
Melissa Elkadi
7a15a21980 Fix copy/paste error 2021-05-27 15:27:43 -07:00
Melissa Elkadi
96be5588b4 Ready to fill rach indication.
Had to hack the code to schedule the prach.
Need to verify this is ok because ul_config = NULL.
Also had to change logic for calling fill_schedule_response.
2021-05-27 12:53:27 -07:00
Melissa Elkadi
b32e3f735f This commit breaks in RACH procedure
However, we are not properly calling the
nr_ue_get_rach() function. The RA is being
properly initialized. In the nr_ue_get_rach()
the pRACH is not scheduled. Tried to add in
the scheduling of this, but it crashes here.
The other changes include revering the
nr_ue_get_rach() changes from previous commit.
Also, changed a few log levels and reverted
a previous change in the NR UE RRC layer that
was incorrect.
2021-05-26 14:36:29 -07:00
Melissa Elkadi
eecd5935ee Not working pRACH but starting it 2021-05-25 15:56:08 -07:00
Melissa Elkadi
f3c2a2a659 Changed LOG_As and logic in NR_Cap filling 2021-05-25 15:50:54 -07:00
Melissa Elkadi
005c2e0121 Creating seprate proxy config files 2021-05-25 11:57:33 -07:00
Melissa Elkadi
67cbf77a2b Removing a log 2021-05-24 18:58:17 -07:00
Melissa Elkadi
b2b8d297a0 Memory bug fixes
Several places where memory ownership was changed
and the original owner was not set to NULL. Also,
the transaction_identifier is now based on the
received dl_dcch_msg in the LTE UE. Still need to
fix the t_id for the NR UE. Also added comments for
RACH procedure in NR UE.
2021-05-24 18:55:42 -07:00
Melissa Elkadi
da2873d63c Updating LOG_As for the test script. 2021-05-24 16:19:01 -07:00
Melissa Elkadi
2eacb8666b Filling ctxt in LTE UE RRC layer 2021-05-24 10:25:20 -07:00
Michael Cook
7224adba65 Fix spelling: parced -> parsed 2021-05-23 11:52:03 -04:00
Michael Cook
16ba3194c7 Fix warning about uninitialized variable 2021-05-23 08:20:17 -07:00
Melissa Elkadi
caa3e034b6 Have completed full NSA procedure once.
At the moment, the NSA mode worked once, but shows
unpredictable behavior. Other times it does not work.
In this commit I added several LOG_A messages for NSA
mode. Also removed old comments that were added during
development. Lastly, more comments for all the hacks
have been added.
2021-05-21 11:53:35 -07:00
Melissa Elkadi
30c92c1a22 Debugging why NR elements of RRC_complete arent seen at eNB 2021-05-20 16:38:02 -07:00
Melissa Elkadi
e2c0bd52f0 Successfully encoding RRC_Complete in LTE UE
The eNB may only check for RRC_Complete in EPC
mode. Need to look at this further. Updated how
we pass the RRC_Complete msg from NR UE to LTE UE.
Need to still handle transaction_id from dl_dcch_msg
in the LTE UE and trans_id from nr_dl_msg.
2021-05-20 15:04:33 -07:00
Melissa Elkadi
4129f8c6c9 Attempting to send RRCComplete message to eNB
It is seg faulting at the moment.
2021-05-19 16:42:22 -07:00
Melissa Elkadi
02928ec2b2 Passing RRCConfigComplete to LTE UE success!
However, the NR UE is crashing because it is receiving
a second RRCReconfig message from the LTE UE and it is
having trouble decoding it. Need to understand this.
2021-05-19 15:38:05 -07:00
Melissa Elkadi
b4faa5990e Trying to send last RRC message to NRUE 2021-05-18 16:00:21 -07:00
Melissa Elkadi
a31ee2f051 Checking for nr_r15 configs in RRC message
Also, updated the DCCH decode message to use
the sdu_size not RRC_BUF_SIZE. This was a bug fix.
2021-05-18 14:38:07 -07:00
Melissa Elkadi
3416b84675 Log demotion and size for buffer encoding updated 2021-05-18 12:02:39 -07:00
Melissa Elkadi
09fb68de74 Cleaned up trigger function for meas reports
Also removed several warnings by properly
declaring nr-nFAPI functions and removed
declaration of unused functions. Also, reverted
eNB configuration file changes.
2021-05-18 10:25:04 -07:00
Michael Cook
9ac06d4b3a Fix warning about log message argument type 2021-05-16 05:44:25 -07:00
Melissa
30dfc64592 Merge branch 'episys/david/nfapi_update_in_x2_trigger_nsa' into 'episys/x2_trigger_nsa'
nFAPI library update from IISc

See merge request aburger/openairinterface5g!40
2021-05-13 15:22:11 -07:00
Deokseong "David" Kim
ef56a5dd42 nFAPI library update from IISc 2021-05-13 15:22:11 -07:00
Melissa Elkadi
dc2865f3ba Added logs and updated eNB conf file for EPC if necessary 2021-05-13 15:13:59 -07:00
Melissa Elkadi
bfa5d486e3 Added comments to show MRDC and free() hacks 2021-05-13 13:45:47 -07:00
Melissa Elkadi
bc5677f4c4 Triggering works, not using OAI mechanism
gNB is crashing when setting up the tunnel interface
between the NR UE and itself.
2021-05-13 09:30:30 -07:00
Melissa Elkadi
63ca5f692d Hack to not free measObjs
Also, 12 Frame triggering of MeasurementReport
is still in development and not working.
2021-05-12 16:10:14 -07:00
Melissa Elkadi
e455ae22c8 Added MRDC capabilites in a hacky way 2021-05-11 17:03:35 -07:00
Melissa Elkadi
31e51f3663 Processing NR_UE_Capability_info and sending 2021-05-11 15:40:43 -07:00
Melissa Elkadi
04315e89f5 Reverting acccidental changes. 2021-05-10 17:03:08 -07:00
Melissa Elkadi
a7cbe98fa7 mbms_create_tasks was calling SCTP task again.
This caused the SCTP descriptor to be reset. This
made issues in the X2 interface between gNB and eNB.
Lots of logs added here. Need to fill NR_UE_Capability_Info
properly.
2021-05-10 17:01:12 -07:00
Melissa Elkadi
9009124223 Handling UE_capability_enquiry at NR UE
Now, we are able to fill the UE_Capability_Info that
the LTE UE and eNB are expecting. We then are able to
generate a RRC_DCCH_DATA_COPY_IND to trigger the
processing of the UE_Capability_Info (and sending the
info to the eNB). The info being received at eNB has not
been tested yet.
Also some code clean up.
2021-05-10 11:06:45 -07:00
Melissa Elkadi
5f2d246a8c Added comments and cleaned up the code.
The encode is still  working but now we need to
add in some new functionality to handle NR Capabilites.
2021-05-08 14:52:08 -07:00
Melissa Elkadi
56f2203b1d WIP: Encoding is succeeding. Hacked phy_id. 2021-05-08 09:30:55 -07:00
Melissa Elkadi
997c2e07ad Added rsrp/q back into report. ASN debug on. 2021-05-07 15:19:55 -07:00
Melissa Elkadi
1f3b397043 do_nrMeasReport updated for elements eNB expects
Also updated the generate_nrMeasReport().
The uper_encode_to_buffer is still not working.
2021-05-06 16:54:01 -07:00
Melissa Elkadi
c4d7e11c1c Working on do_nrMeasurementReport 2021-05-05 16:42:22 -07:00
Melissa Elkadi
cee317b73f Removed reportConfig dump funciton
Also removed the [eNB_index + 1] saving/writing
in the process_MeasObj function. This indexing
was incorrect. Also cleaned up the code, fixed
ssRSRB -> ssbRSRP. Lastly, added assertFatals
around indexing in process_measObj function.
2021-05-05 10:07:37 -07:00
Melissa Elkadi
842774254b ReportConfig was being indexed out of bounds
Added check and logs. If we change ind = 1 it
crashes the LTE UE so we log for now. Also cleaned
up a lot of the code. Lastly, we set freed vars to NULL.
2021-05-04 16:20:37 -07:00
Melissa Elkadi
7e339b4610 Currently receiving measurement data from NR UE
This commit has several other changes. The changes
include the following:
1. Changed the port numbers for the NRUE<->Proxy
2. Fixed the send to function in the NR UE
   (Previously only sending buffer not buffer+msg_type)
3. Updated pack/unpack of the SSB PDU (new RSRB field added)
4. Fixed several NR logs
5. Opening socket with NRUE<->Proxy AFTER receving RRC
   measurement request from the LTE UE
2021-05-03 15:31:32 -07:00
Melissa Elkadi
34eeae0874 NR SA thread and sockets have been added.
This commit also removed MAX_NUM_NEIGH_CELLs and
replaced it with MAX_GNB_CELLS. This was a minor change
OAI added. The standalone sockets for the NR UE correctly
connect to the proxy. We are currently receiving dl_tti
messages from the proxy.
2021-05-01 15:05:04 -07:00
Melissa Elkadi
6cace48013 Added in init function in RRC_NSA_NRUE task creation 2021-05-01 12:47:16 -07:00
Melissa Elkadi
539b1b564a Removed commented code in nr-softmodem.c
Also enabled X2 when we are not using the EPC
Added in the case statement for handling the
dl_dcch_msg from the NR UE. Also added in the
proper decoding of that dl_dcch_msg and freeing
2021-05-01 11:48:21 -07:00
Melissa Elkadi
e50ca02957 Chaging NR functions to be properly named
This commit removed all the linking errors
between the NR UE and the LTE UE. This was done by
changing:
-      rrc_data_req_ue
+      rrc_data_req_nr_ue
2021-05-01 11:32:26 -07:00
Melissa Elkadi
e1a77b2d82 Add NSA mode to working dl_tti messages from gNB
This commit is not currently building, but I wanted
to be able to save the changes that I have added.
2021-04-30 13:36:18 -07:00
Melissa Elkadi
f434a8ded9 Updating conf files. DL messages from gNB working.
NR UE is ending early. LTE is not passing at all.
X2 interface is not working either.
2021-04-30 11:03:30 -07:00
David Kim
2c40332482 showing dl_tti msg 2021-04-29 15:10:33 -07:00
David Kim
bdf98b03f5 updating vnf ip and udp port 2021-03-31 22:44:42 -07:00
David Kim
45bd0274c4 Updating gNB tun interface name and adding nsa config file. 2021-03-30 11:54:49 -07:00
David Kim
480ae78df0 adding nr_ue.nfapi.conf file 2021-03-29 11:58:08 -07:00
David Kim
7dbdcc2d34 changing env for test
1. restoring ci test environment.
2. packet drop disabled.
2021-03-23 13:45:24 -07:00
Melissa Elkadi
eb3436c01c Added comment in configs for networking help 2021-03-19 10:54:35 -07:00
Melissa Elkadi
4dad535ef9 Reverted white space changes 2021-03-19 09:58:44 -07:00
Melissa Elkadi
6b0a173007 Updated configuration files 2021-03-19 09:53:30 -07:00
David Kim
58894c58cf resolving conflict 2021-03-18 11:43:10 -07:00
David Kim
7c6e4ed01d adding nfapi_new update 2021-03-18 11:22:06 -07:00
David Kim
aaf50cbb80 revert to previous openair3/S1AP/s1ap_eNB_handlers.c version due to compile error 2021-03-17 23:31:40 -07:00
David Kim
b90c0680ec adding x2c setting with epc 2021-03-17 21:08:41 -07:00
Melissa Elkadi
9f3a2a1a85 Demoted a few error logs 2021-03-17 09:24:19 -07:00
Melissa Elkadi
c08743907a Updated the eNB conf file for EPC 2021-03-16 07:43:56 -07:00
David Kim
2948a2445e Merge branch 'episys/master' into episys/david/episys-merge-2nd-x2c 2021-03-15 11:05:35 -07:00
Michael Cook
8120c7978c Merge branch 'episys-merge-future' into episys/master 2021-03-14 09:17:34 -07:00
Michael Cook
bd0359c3bd Enable assert for RelWithDebInfo builds
assert() statements were enabled for C code but disabled for C++
code.  With this commit, assert() is enabled for both C and C++
for RelWithDebInfo builds.
2021-03-14 09:13:50 -07:00
Michael Cook
176a52f581 pnf.c: Disable some printfs 2021-03-14 08:44:42 -07:00
Michael Cook
39fbe322aa Fix #include 2021-03-14 10:59:05 -04:00
Michael Cook
092caec8ca Merge branch 'episys-merge' into episys/trial-merge-to-master 2021-03-14 10:58:46 -04:00
David Kim
94c9866b7e adding nfapi_nr_develop_new changes 2021-03-13 13:09:34 -08:00
Michael Cook
c5ff3376ef Size asserts for harq_pdu_list, sr_pdu_list, cqi_pdu_list 2021-03-13 11:56:55 -08:00
Michael Cook
6d2590906c Assert NFAPI_CRC_IND_MAX_PDU 2021-03-13 10:58:33 -08:00
Michael Cook
df81c0de14 Add asserts for size of rx_indication_body.rx_pdu_list 2021-03-13 10:26:33 -08:00
Michael Cook
b726053982 find_ulsch: Skip past null uslch[i]
With a small number of runs with 16 UEs, I've seen this
AssertFatal fail twice.

There are many other places in the code that simply skip over
ulsch[i] values that are NULL.
2021-03-13 10:24:00 -08:00
David Kim
c68de3ba8c Merge remote-tracking branch 'eurocom/episys-merge' into episys-merge 2021-03-12 19:24:29 -08:00
Melissa Elkadi
10519da95f Merge remote-tracking branch 'eurecom/develop' into eurecom-episys-merge 2021-03-12 15:30:38 -08:00
David Kim
765f516a9f Merge remote-tracking branch 'eurocom/episys-merge' into episys-merge 2021-03-12 15:17:27 -08:00
Melissa Elkadi
e5b0c26549 Changed sf_ahead based on NFAPI_MODE 2021-03-10 16:20:55 -08:00
Melissa Elkadi
34b53ea9b4 Merge branch 'episys-merge' of https://gitlab.eurecom.fr/oai/openairinterface5g into eurecom-episys-merge 2021-03-10 08:59:22 -08:00
Melissa Elkadi
e3168a7d8c Merge remote-tracking branch 'eurecom/develop' into eurecom-episys-merge 2021-03-03 16:12:04 -08:00
Melissa
47f006d9e0 Update README.md 2021-03-03 17:07:49 +01:00
Melissa Elkadi
9fe1167f29 Remove cppcheck-suppressions that were prev added
These cppcheck errors are occuring in code
that is untouched by this merge request.
2021-03-02 13:10:09 -08:00
Melissa Elkadi
d3891eb108 Merge remote-tracking branch 'eurecom/episys-merge' into origin-episys-merge 2021-03-01 15:22:36 -08:00
Melissa Elkadi
15905c746d Fixing cppcheck issues 2021-03-01 15:13:50 -08:00
Michael Cook
27c40d563f build_oai: Add --sanitize-address option
To enable -fsanitize=address option to the compiler
which enables run-time checks for some kinds of memory
mismanagement.
2021-03-01 09:10:50 -08:00
Michael Cook
8988d8ef8c Revert change that enabled -fsanituze=address 2021-03-01 08:26:59 -08:00
Michael Cook
034d2cfed6 lte-ue.c: Allocate bigger arrays
This code allocates memory from the heap:

```
static void *UE_phy_stub_standalone_pnf_task(void *arg)
{
...
  UL_INFO->crc_ind.crc_indication_body.crc_pdu_list =
  calloc(NB_UE_INST, sizeof(nfapi_crc_indication_pdu_t));
```

I see NB_UE_INST==1.

Then this code:

```
void fill_crc_indication_UE_MAC(int Mod_id,
                                int frame,
                                int subframe,
                                UL_IND_t *UL_INFO,
                                uint8_t crc_flag,
                                int index,
                                uint16_t rnti,
                                nfapi_ul_config_request_t
                                *ul_config_req) {
...
  nfapi_crc_indication_pdu_t *pdu =
      &UL_INFO->crc_ind.crc_indication_body
           .crc_pdu_list[UL_INFO->crc_ind.crc_indication_body.number_of_crcs];
```

used .number_of_crcs to index into .crc_pdu_list without first
checking if .number_of_crcs is in range.

When run with multiple UEs, sometimes .number_of_crcs==1 and then
-fsanitize=address complains.

Change is to use NUMBER_OF_UE_MAX instead of NB_UE_INST.

With this change, -fsanitize=address stopping complaining.
2021-02-28 09:45:31 -08:00
Michael Cook
11270af81e eNB_scheduler_ulsch.c: Range checking on array access
-fsanitize=address complained about this code.
2021-02-28 09:29:29 -08:00
Michael Cook
706f0e4421 pdcp_fifo_flush_sdus: Fix message size calculation
-fsanitize=address detected that we were trying to access bytes
past the end of a block of malloc'ed memory.

Specifically, in this code:

```
    } else if (ENB_NAS_USE_TUN) {
      if( LOG_DEBUGFLAG(DEBUG_PDCP) )
        log_dump(PDCP, pdcpData, sizeToWrite, LOG_DUMP_CHAR,"PDCP
      output to be sent to TUN interface: \n");
      ret = write(nas_sock_fd[0], pdcpData, sizeToWrite);
```

-fsanitize=address said:

```
==80==ERROR: AddressSanitizer: heap-buffer-overflow on address
0x61100004ffdc at pc 0x7f57c5f576a5 bp 0x7f57bb53c240 sp
0x7f57bb53b9e8
READ of size 108 at 0x61100004ffdc thread T7

0x61100004ffdc is located 0 bytes to the right of 220-byte region
[0x61100004ff00,0x61100004ffdc)
```

So, the code was trying to access the first byte after a block of
heap memory.

sizeToWrite was calculated like this:

```
    int sizeToWrite= sizeof (pdcp_data_ind_header_t) +
      pdcpHead->data_size;
```

There were a few other similar invocations of write() in the same
function used the wrong size.  That sizeToWrite calculation
should be used only when the header is being sent, too, which
happens in only one place in this function.

With this commit, our tests pass and -fsanitize=address is happy.
2021-02-28 07:39:33 -08:00
Michael Cook
b6766ee8ae decode_SIB1: Was reading past the end of plmn_data
Found by -fsanitize=address
2021-02-27 09:29:09 -08:00
Michael Cook
d8a7414e48 eNB_scheduler_mch.c: Memory corruption
The global mbms_rab_id was defined as `uint16_t` in
eNB_scheduler_mch.c but `int` in other places.  So, code that
wrotes this global would clobber the two bytes that follow the
variable in memory.

Found by `-fsanitize=address`.
2021-02-27 09:16:27 -08:00
Michael Cook
414d3794fd netlink_init.c: Memory leak
Found by `-fsanitize=address`.
2021-02-27 09:15:38 -08:00
Michael Cook
2520d111da Fix shutdown crashes
In phy_free_lte_eNB in lte_init.c, the lte-uesoftmodem would
crash during shutdown because it was dereferencing null pointers.
This commit adds checks to avoid that.
2021-02-27 07:20:43 -08:00
Melissa Elkadi
8b2b78e477 Fixed remote_addr.sin_port
For some reason the htons invocation got deleted which broke
the VNF P7 interface.

Also fixed some build issues, not sure how these got onto the
develop branch to begin with.
2021-02-26 15:57:35 -08:00
Melissa Elkadi
98c8ddb673 Merge remote-tracking branch 'origin/develop' into episys-merge
Removing references to memcpy_dl_config_req and
memcpy_tx_req because these functions are leaking
memory. For our standalone mode we have created
new/modified memcpy_dl/tx_req functions.
2021-02-24 11:49:17 -08:00
Melissa Elkadi
4dcb32c180 Removed unused memcpy functions and references 2021-02-24 09:12:00 -08:00
Melissa Elkadi
125e0aa186 Updating incorrect logic in phy_stub_ue.c 2021-02-24 07:07:45 -08:00
Melissa Elkadi
2c8aab0671 Included PHY channel parameter handling
Also, updated openairinterface5g_limits.h to match develop branch.
2021-02-17 16:04:00 -08:00
Melissa Elkadi
17ede97029 Changed UE Capabilities log to a LOG_A 2021-02-15 15:27:25 -08:00
Melissa Elkadi
ecaa20ed14 Re-do fix for merge issues 2021-02-15 15:08:46 -08:00
Melissa Elkadi
26e3f32b69 Fixed fill_ul_mutex
Mutexes were not being initialized. In multiple
places they were not being unlocked. In fill rach
it was not being locked or unlocked.
2021-02-15 12:40:32 -08:00
Melissa Elkadi
bc524ea192 Minor fixes and new definitions for build success 2021-02-15 09:00:22 -08:00
Raymond Knopp
a446eb0ebc Merge branch 'episys/master' into episys-merge
Conflicts:
	common/utils/LOG/log.h
	common/utils/ocp_itti/intertask_interface.cpp
	nfapi/oai_integration/nfapi_vnf.c
	nfapi/open-nFAPI/nfapi/src/nfapi.c
	openair2/LAYER2/MAC/main_ue.c
	openair2/LAYER2/PDCP_v10.1.0/pdcp.c
	openair2/LAYER2/PDCP_v10.1.0/pdcp_fifo.c
	openair2/PHY_INTERFACE/phy_stub_UE.c
	openair2/RRC/LTE/rrc_UE.c
	openair2/RRC/LTE/rrc_eNB.c
	openair3/NAS/UE/ESM/esm_ebr_context.c
	targets/COMMON/openairinterface5g_limits.h
	targets/RT/USER/lte-softmodem.c
	targets/RT/USER/lte-uesoftmodem.c
2021-02-13 22:52:33 +01:00
melissa-elkadi
b5ff5516a1 Update README.md 2021-01-13 08:39:42 -08:00
4317 changed files with 1365567 additions and 577949 deletions

View File

@@ -1,190 +0,0 @@
---
Language: Cpp
# BasedOnStyle: Google
AccessModifierOffset: -1
AlignAfterOpenBracket: Align
AlignConsecutiveAssignments: false
AlignConsecutiveDeclarations: false
AlignEscapedNewlines: Left
AlignOperands: true
AlignTrailingComments: false
AllowAllParametersOfDeclarationOnNextLine: false
AllowAllArgumentsOnNextLine: false
AllowShortBlocksOnASingleLine: false
AllowShortCaseLabelsOnASingleLine: false
AllowShortFunctionsOnASingleLine: false
AllowShortIfStatementsOnASingleLine: false
AllowShortLoopsOnASingleLine: false
AlwaysBreakAfterDefinitionReturnType: None
AlwaysBreakAfterReturnType: None
AlwaysBreakBeforeMultilineStrings: true
AlwaysBreakTemplateDeclarations: true
BinPackArguments: false
BinPackParameters: false
BitFieldColonSpacing: After
BraceWrapping:
AfterClass: false
AfterControlStatement: false
AfterEnum: false
AfterFunction: true
AfterNamespace: false
AfterObjCDeclaration: false
AfterStruct: false
AfterUnion: false
AfterExternBlock: false
BeforeCatch: false
BeforeElse: false
IndentBraces: false
SplitEmptyFunction: true
SplitEmptyRecord: true
SplitEmptyNamespace: true
BreakBeforeBinaryOperators: NonAssignment
BreakBeforeBraces: Custom
BreakBeforeInheritanceComma: false
BreakBeforeTernaryOperators: true
BreakConstructorInitializersBeforeComma: false
BreakConstructorInitializers: BeforeColon
BreakStringLiterals: true
ColumnLimit: 132
CommentPragmas: '^ IWYU pragma:'
CompactNamespaces: false
ConstructorInitializerAllOnOneLineOrOnePerLine: true
ConstructorInitializerIndentWidth: 4
ContinuationIndentWidth: 4
Cpp11BracedListStyle: true
DerivePointerAlignment: true
DisableFormat: false
ExperimentalAutoDetectBinPacking: false
FixNamespaceComments: true
ForEachMacros:
- foreach
- Q_FOREACH
- BOOST_FOREACH
- RB_FOREACH
- UE_iterator
IncludeBlocks: Preserve
IncludeCategories:
- Regex: '^<ext/.*\.h>'
Priority: 1
- Regex: '^<.*\.h>'
Priority: 1
- Regex: '^<.*'
Priority: 1
- Regex: '.*'
Priority: 1
IncludeIsMainRegex: '([-_](test|unittest))?$'
IndentCaseLabels: true
IndentPPDirectives: None
IndentWidth: 2
IndentWrappedFunctionNames: false
KeepEmptyLinesAtTheStartOfBlocks: false
MacroBlockBegin: ''
MacroBlockEnd: ''
MaxEmptyLinesToKeep: 1
NamespaceIndentation: None
PenaltyBreakAssignment: 2
PenaltyBreakBeforeFirstCallParameter: 1
PenaltyBreakComment: 300
PenaltyBreakFirstLessLess: 120
PenaltyBreakString: 1000
PenaltyExcessCharacter: 1000000
PenaltyReturnTypeOnItsOwnLine: 200
PointerAlignment: Right
ReflowComments: true
SortIncludes: false
SortUsingDeclarations: false
SpaceAfterCStyleCast: false
SpaceAfterTemplateKeyword: true
SpaceBeforeAssignmentOperators: true
SpaceBeforeParens: ControlStatements
SpaceInEmptyParentheses: false
SpacesBeforeTrailingComments: 1
SpacesInAngles: false
SpacesInContainerLiterals: true
SpacesInCStyleCastParentheses: false
SpacesInParentheses: false
SpacesInSquareBrackets: false
TabWidth: 2
UseTab: Never
---
Language: JavaScript
# BasedOnStyle: Google
AccessModifierOffset: -1
AlignAfterOpenBracket: Align
AlignConsecutiveAssignments: false
AlignConsecutiveDeclarations: false
AlignOperands: true
AlignTrailingComments: false
AllowAllParametersOfDeclarationOnNextLine: false
AllowShortBlocksOnASingleLine: false
AllowShortCaseLabelsOnASingleLine: false
AllowShortFunctionsOnASingleLine: None
AllowShortIfStatementsOnASingleLine: false
AllowShortLoopsOnASingleLine: false
AlwaysBreakAfterDefinitionReturnType: None
AlwaysBreakAfterReturnType: None
AlwaysBreakBeforeMultilineStrings: true
BinPackArguments: false
BinPackParameters: false
BraceWrapping:
AfterClass: false
AfterControlStatement: false
AfterEnum: false
AfterFunction: true
AfterNamespace: false
AfterObjCDeclaration: false
BeforeCatch: false
BeforeElse: false
IndentBraces: false
SplitEmptyFunction: true
SplitEmptyRecord: true
SplitEmptyNamespace: true
BreakBeforeBinaryOperators: NonAssignment
BreakBeforeBraces: Custom
BreakBeforeInheritanceComma: false
BreakBeforeTernaryOperators: true
BreakConstructorInitializersBeforeComma: false
BreakConstructorInitializers: BeforeColon
BreakStringLiterals: true
ColumnLimit: 200
CommentPragmas: '^ IWYU pragma:'
CompactNamespaces: false
ConstructorInitializerAllOnOneLineOrOnePerLine: true
ConstructorInitializerIndentWidth: 4
ContinuationIndentWidth: 4
Cpp11BracedListStyle: true
DisableFormat: false
FixNamespaceComments: true
IndentCaseLabels: true
IndentPPDirectives: None
IndentWidth: 2
IndentWrappedFunctionNames: false
KeepEmptyLinesAtTheStartOfBlocks: false
MaxEmptyLinesToKeep: 1
NamespaceIndentation: None
PenaltyBreakAssignment: 2
PenaltyBreakBeforeFirstCallParameter: 1
PenaltyBreakComment: 300
PenaltyBreakFirstLessLess: 120
PenaltyBreakString: 1000
PenaltyExcessCharacter: 1000000
PenaltyReturnTypeOnItsOwnLine: 200
ReflowComments: true
SortUsingDeclarations: false
SpaceAfterCStyleCast: false
SpaceAfterTemplateKeyword: true
SpaceBeforeAssignmentOperators: true
SpaceBeforeParens: ControlStatements
SpaceInEmptyParentheses: false
SpacesBeforeTrailingComments: 1
SpacesInAngles: false
SpacesInContainerLiterals: true
SpacesInCStyleCastParentheses: false
SpacesInParentheses: false
SpacesInSquareBrackets: false
DeriveLineEnding: true
TabWidth: 2
JavaScriptQuotes: Double
UseTab: Never
...

View File

@@ -5,3 +5,4 @@ common/utils/T/T_IDs.h
common/utils/T/T_messages.txt.h
common/utils/T/genids
common/utils/T/genids.o
targets/bin/

8
.gitignore vendored
View File

@@ -5,14 +5,13 @@
cmake_targets/log/
cmake_targets/*/build/
cmake_targets/ran_build/
cmake_targets/nas_sim_tools/build/
log/
lte_build_oai/
targets/bin/
# IDE files
# vscode
.vscode
.cproject
.project
.settings
# Tags for vim/global
GPATH
@@ -24,4 +23,3 @@ tags
nfapi_nr_interface_scf
*.log
*.out
CMakeUserPresets.json

4
.gitmodules vendored
View File

@@ -1,4 +0,0 @@
[submodule "openair2/E2AP/flexric"]
path = openair2/E2AP/flexric
url = https://gitlab.eurecom.fr/mosaic5g/flexric.git
branch = remotes/origin/service-models-integration

31
.vscode/launch.json vendored Normal file
View File

@@ -0,0 +1,31 @@
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "(gdb) Launch",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceFolder}/cmake_targets/ran_build/build/lte-softmodem",
"args": [
"-O", "../ci-scripts/conf_files/rcc.band7.tm1.nfapi.conf",
"--noS1"
],
"stopAtEntry": false,
"cwd": "${workspaceFolder}/cmake_targets",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"miDebuggerPath": "${workspaceFolder}/cmake_targets/sudo-gdb",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
]
}
]
}

View File

@@ -1,117 +1,5 @@
# RELEASE NOTES: #
## [v2.2.0](https://gitlab.eurecom.fr/oai/openairinterface5g/-/tags/v2.2.0) -> November 2024. ##
General 5G improvements (both gNB and UE):
- Make standalone mode (SA) the default (see [`RUNMODEM.md`](doc/RUNMODEM.md))
- Experimental support for FR2 operation
- Support for GEO NTN and simulation of GEO satellite channel in RFsimulator
(see [`RUNMODEM.md`](doc/RUNMODEM.md))
- Support 2-step RA
- Add optional LTTng logger in logging module (see
[`lttng_logs.md`](common/utils/LOG/DOC/lttng_logs.md))
- Support for YAML-based config files (alongside libconfig) (see
[`gnb.sa.band78.106prb.rfsim.yaml`](ci-scripts/conf_files/gnb.sa.band78.106prb.rfsim.yaml) and
[`nrue.uicc.yaml`](ci-scripts/conf_files/nrue.uicc.yaml))
- Add new L1 scope based on Dear ImGui (see [`readme.md`](openair1/PHY/TOOLS/readme.md))
- Allow cross-compilation on ARM (via SIMDE SIMD emulation library)
- Allow to build and run with clang
- Support/check for Linux capabilities, allow to run without sudo (see
[`tuning_and_security.md`](doc/tuning_and_security.md))
- OAI does not modify CPU frequency and networking stack
([`tuning_and_security.md`](doc/tuning_and_security.md))
- Bugfixes in the entire stack (e.g. #547, #663, #674, #687, #712, #736, #739,
#741, #756, #762, #773, ...)
5G gNB:
- Support for FR2 interoperability with COTS UE (no beam switching supported yet)
- Add 4-layer DL MIMO (experimental)
- Add gNB Neighbour configuration and Mobility over F1 interface (see
[`handover-tutorial.md`](doc/handover-tutorial.md))
- Enhance O-RAN FHI 7.2: (see [`ORAN_FHI7.2_Tutorial.md`](doc/ORAN_FHI7.2_Tutorial.md))
* Support different bandwidths (40/60/80/100MHz) and antenna configs (1x1 up
to 4x4) for Benetel/VVDN/LITEON RUs
* Add support for multi-RU support (single-cell/distributed antenna)
- Support AMD T2 Telco card look-aside L1 accelerator (see
[`LDPC_T2_OFFLOAD_SETUP.md`](doc/LDPC_T2_OFFLOAD_SETUP.md))
- Support Nvidia Aerial/ARC in-line L1 accelerator (see
[`Aerial_FAPI_Split_Tutorial.md`](doc/Aerial_FAPI_Split_Tutorial.md))
- Various fixes for multi-UE operation: by default support of up to 16 UEs concurrently
- Documentation for
- 5G MAC (see [`mac-usage.md`](doc/MAC/mac-usage.md))
- 5G RRC (see [`rrc-usage.md`](doc/RRC/rrc-usage.md))
- E1 (see [`E1-design.md`](doc/E1AP/E1-design.md))
- F1 (see [`F1-design.md`](doc/F1AP/F1-design.md))
5G UE:
- Basic interoperability with COTS gNB (Nokia gNB)
- Implement PHR reporting
- Implement RRC re-establishment
- Implement PUCCH/PUSCH/SRS power control
- Implement UCI on PUSCH and aperiodic CSI reporting
- Support of cell search (within the selected UE bandwidth) (see [`RUNMODEM.md`](doc/RUNMODEM.md))
- Enhance connection control: implement timers, resync
- A lot of internal cleanup
This release also includes many fixes and documentation updates. See
`doc/README.md` in the repository for an overview of documentation.
## [v2.1.0](https://gitlab.eurecom.fr/oai/openairinterface5g/-/tags/v2.1.0) -> February 2024. ##
This release improves existing 5G support and adds various new features.
* 5G gNB
- Add support for O-RAN 7.2 fronthaul interface
(tested with 3 O-RUs: Benetel, LITEON, VVDN)
- Add support for 2-layer UL MIMO
- FDD interoperability with COTS UE
- Compiles on ARM (through SIMDE)
- Introduce E2 agent and basic support for E2SM-KPM and E2SM-RC
- Add support for E1AP
- Add support for multiple DUs and CU-UPs at one CU-CP
- FR2 SA with OAI UE
- Improve computational efficiency
* 5G UE
- Cleanup in MAC and RRC towards support of 3rd-party gNB
- FR2 SA with OAI gNB
- Improve computational efficiency
Overall the stability is improved for the same resource usage.
There is basic FR2 support between OAI gNB and OAI nrUE. COTS UE
interoperability is under testing.
This release also includes many fixes and documentation updates.
## [v2.0.0](https://gitlab.eurecom.fr/oai/openairinterface5g/-/tags/v2.0.0) -> August 2023. ##
This release adds support for 5G and maintains previous features:
* 5G SA in gNB
- PHY, MAC, RLC, PDCP, SDAP, RRC layers
- 2x2 MIMO and 256-QAM for UL/DL
- 15 and 30 kHz subcarrier spacings; 10-100 MHz bandwidths
- Up to 800Mbps throughput or 5ms latency
- F1, basic E1, 5G FAPI (SCF 222.10.02), split 8 split options
- Handling of up to 16 UEs
- RRC procedures for connection setup, multiple PDU sessions, reestablishment
* 5G SA in UE
- PHY, MAC, RLC, PDCP, SDAP, RRC layers
- 2x2 MIMO and 256-QAM for UL/DL
- 15 and 30 kHz subcarrier spacings; 10-100 MHz bandwidths
- Custom FAPI-like MAC/PHY interface
- RRC procedures for connection setup and cell measurement
* Basic 5G NSA in gNB
- X2 sgNB Addition Request between OAI eNB and gNB
* 4G eNB and UE
- Bugfixes in fairRR scheduler (eNB)
- Non-standard F1 midhaul removed (eNB)
- FlexRAN removed (eNB)
- Sync fixes (UE)
* LTE-M supported
* Support for AW2S devices, RFsimulator channel emulation support
For more information on supported features, please refer to the [feature set](doc/FEATURE_SET.md).
## [v1.2.1](https://gitlab.eurecom.fr/oai/openairinterface5g/-/tags/v1.2.1) -> February 2020. ##
* Bug fix for mutex lock for wake-up signal

File diff suppressed because it is too large Load Diff

View File

@@ -1,64 +0,0 @@
{
"version": 3,
"configurePresets": [
{
"name": "default",
"displayName": "Default Config",
"description": "Default build using Ninja generator",
"generator": "Ninja",
"binaryDir": "${sourceDir}/cmake_targets/ran_build/build",
"cacheVariables": {
"CMAKE_BUILD_TYPE": "RelWithDebInfo"
}
},
{
"name": "tests",
"displayName": "Default unit test config",
"inherits": "default",
"binaryDir": "${sourceDir}/cmake_targets/ran_build/build_test",
"cacheVariables": {
"ENABLE_TESTS": "ON",
"SANITIZE_ADDRESS": "ON",
"CMAKE_BUILD_TYPE": "RelWithDebInfo"
}
}
],
"buildPresets": [
{
"name": "5gdefault",
"configurePreset": "default",
"targets": [
"nr-uesoftmodem",
"nr-softmodem",
"rfsimulator",
"dfts",
"ldpc",
"params_libconfig",
"params_yaml"
]
},
{
"name": "default",
"inherits": "5gdefault"
},
{
"name": "4gdefault",
"configurePreset": "default",
"targets": [
"lte-softmodem",
"lte-uesoftmodem",
"dfts",
"coding",
"rfsimulator",
"params_libconfig"
]
},
{
"name": "tests",
"configurePreset": "tests",
"targets": [
"tests"
]
}
]
}

View File

@@ -2,29 +2,21 @@
We want to make contributing to this project as easy and transparent as possible.
Please refer to the steps described on our website: [How to contribute to OAI](https://www.openairinterface.org/?page_id=112).
1. Sign and return a Contributor License Agreement to OAI team.
2. Register on [Eurecom GitLab Server](https://gitlab.eurecom.fr/users/sign_up)
if you do not have any.
- We recommend that you register with a professional or student email address.
- If your email domain (`@domain.com`) is not whitelisted, please contact us
(mailto:contact@openairinterface.org).
- Eurecom GitLab does NOT accept public email domains.
3. Provide the OAI team with the **username** of this account to
(mailto:contact@openairinterface.org) ; we will give you the developer
rights on this repository.
4. The contributing policies are described in the [corresponding documentation
page](doc/code-style-contrib.md).
- PLEASE DO NOT FORK the OAI repository on your own Eurecom GitLab account.
It just eats up space on our servers.
- You can fork onto another hosting system. But we will NOT accept a merge
request from a forked repository.
2. We recommend that you provide us with a professional or student email address
2. Register on [Eurecom GitLab Server](https://gitlab.eurecom.fr/users/sign_in)
3. Provide the OAI team with the **username** of this account to (mailto:contact@openairinterface.org) ; we will give you the developer rights on this repository.
4. The policies are described in these wiki pages: [OAI Policies](https://gitlab.eurecom.fr/oai/openairinterface5g/wikis/oai-policies-home)
- PLEASE DO NOT FORK the OAI repository on your own Eurecom GitLab account. It just eats up space on our servers.
- You can fork onto another hosting system. But we will NOT accept a merge request from a forked repository.
* This decision was made for the license reasons.
* The Continuous Integration will reject your merge request.
- All merge requests SHALL have `develop` branch as target branch.
# License #
## Coding Styles ##
By contributing to OpenAirInterface, you agree that your contributions will be
licensed under the license described in the file [`LICENSE`](./LICENSE) in the
root directory of this source tree.
There are described [here](https://gitlab.eurecom.fr/oai/openairinterface5g/wikis/guidelines/guidelines-home)
## License ##
By contributing to OpenAirInterface, you agree that your contributions will be licensed under the LICENSE file in the root directory of this source tree.

View File

@@ -4,6 +4,15 @@ For more details of the license, refer to [LICENSE](LICENSE) file in the same di
However, the source code also contains third party software that is acknowledged here for reference.
## Credits for LFDS user space source code located in folder openair2/UTILS/LFDS/ ##
See on [liblfds website](https://liblfds.org/) the license section.
<pre>
"There is no license. You are free to use this software in any way, for any purpose. Go forth and create wealth!
If however for legal reasons a licence is required, the license of your choice will be granted."
</pre>
## Credits for source code common/utils/collection/queue.h: ##
The Regents of the University of California: BSD 3-Clause Licence.
@@ -12,6 +21,7 @@ The Regents of the University of California: BSD 3-Clause Licence.
Niels Provos <provos@citi.umich.edu>: BSD 2-Clause Licence.
## Credits for source code openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_decoder_offload.c and nrLDPC_offload.h: ##
## Credits for source code openair3/GTPV1-U/nw-gtpv1u: ##
Amit Chawre <http://www.amitchawre.net/contact.html>: BSD 2-Clause Licence.
Intel Corporation SPDX-License-Identifier: BSD-3-Clause Licence

140
README.md
View File

@@ -4,95 +4,103 @@
<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/22.04/"><img src="https://img.shields.io/badge/OS-Ubuntu22-Green" alt="Supported OS Ubuntu 22"></a>
<a href="https://releases.ubuntu.com/24.04/"><img src="https://img.shields.io/badge/OS-Ubuntu24-Green" alt="Supported OS Ubuntu 24"></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 RHEL9"></a>
<a href="https://getfedora.org/en/workstation/"><img src="https://img.shields.io/badge/OS-Fedore41-Green" alt="Supported OS Fedora 41"></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>
</p>
<p align="center">
<a href="https://gitlab.eurecom.fr/oai/openairinterface5g/-/releases"><img alt="GitLab Release (custom instance)" src="https://img.shields.io/gitlab/v/release/oai/openairinterface5g?gitlab_url=https%3A%2F%2Fgitlab.eurecom.fr&include_prereleases&sort=semver"></a>
<a href="https://jenkins-oai.eurecom.fr/job/RAN-Container-Parent/"><img src="https://img.shields.io/jenkins/build?jobUrl=https%3A%2F%2Fjenkins-oai.eurecom.fr%2Fjob%2FRAN-Container-Parent%2F&label=build%20Images"></a>
</p>
<p align="center">
<a href="https://jenkins-oai.eurecom.fr/job/RAN-Ubuntu18-Image-Builder/"><img src="https://img.shields.io/jenkins/build?jobUrl=https%3A%2F%2Fjenkins-oai.eurecom.fr%2Fjob%2FRAN-Ubuntu18-Image-Builder%2F&label=build-Ubuntu-x86%20Images"></a>
<a href="https://jenkins-oai.eurecom.fr/job/RAN-RHEL8-Cluster-Image-Builder/"><img src="https://img.shields.io/jenkins/build?jobUrl=https%3A%2F%2Fjenkins-oai.eurecom.fr%2Fjob%2FRAN-RHEL8-Cluster-Image-Builder%2F&label=build-UBI-x86%20Images"></a>
<a href="https://jenkins-oai.eurecom.fr/job/RAN-Ubuntu-ARM-Image-Builder/"><img src="https://img.shields.io/jenkins/build?jobUrl=https%3A%2F%2Fjenkins-oai.eurecom.fr%2Fjob%2FRAN-Ubuntu-ARM-Image-Builder%2F&label=build-Ubuntu-ARM%20Images"></a>
</p>
<p align="center">
<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>
<a href="https://hub.docker.com/r/oaisoftwarealliance/oai-nr-cuup"><img alt="Docker Pulls" src="https://img.shields.io/docker/pulls/oaisoftwarealliance/oai-nr-cuup?label=NR-CUUP%20docker%20pulls"></a>
<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>
</p>
# OpenAirInterface License #
* [OAI License Model](http://www.openairinterface.org/?page_id=101)
* [OAI License v1.1 on our website](http://www.openairinterface.org/?page_id=698)
### Included Fixes: ###
- Ease of use of gprof and address sanitizer for debugging purposes
- Updated json files to allow for GDB, real-time debugging capabilities
- Updated logging features to minimally log only key connection milestones. This imroves scalability of multiple UEs.
- Updated logging to include time stamp for timing analysis
- Updated memory allocation procedures to correct size requirements
- Added debugging features to handle signal terminations
- nfapi.c pullarray8 fix invalid pointer math
- Overlapping destination and source memory in memcpy, so updated to memmove to check for this bug
- Advanced error checking mechanisms in critical pack and unpack functions
- Created option for CPU assignment to UE to improve scalability
- Added EPC integration to allow multiple individual UE entities to each have their USIM information parced by the executables
- Updated random value seeds to minimize probability of error in generation of random values
- Enables capability round robin scheduler if desired
- Enables capability real time scheduler if desired
- Added new standalone functions to the UE phy-layer (phy_stub_ue.c) to incorporate individual UE entities
- Updated sending and packing functions in UE (lte_ue.c) to incorporate new standalone changes
- Incorporated semaphores to control timing of incoming downlink packets
- Implemented new queuing system to handle message exchange from UE to eNB and vice versa
- Updated global value in nFAPI for size of subframe
- Updated global value to increase scalability in system
It is distributed under **OAI Public License V1.1**.
The license information is distributed under [LICENSE](LICENSE) file in the same directory.
Please see [NOTICE](NOTICE.md) file for third party software that is included in the sources.
# Where to Start #
* [General overview of documentation](./doc/README.md)
* [The implemented features](./doc/FEATURE_SET.md)
* [System Requirements for Using OAI Stack](./doc/system_requirements.md)
* [How to build](./doc/BUILD.md)
* [How to run the modems](./doc/RUNMODEM.md)
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:
```
find . -iname "readme*"
```
# RAN repository structure #
The OpenAirInterface (OAI) software is composed of the following parts:
```
<pre>
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, 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, ...)
├── 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.
├── maketags : Script to generate emacs tags.
├── nfapi : (n)FAPI code for MAC-PHY interface
├── openair1 : Layer 1 (3GPP LTE Rel-10/12 PHY, NR Rel-15 PHY)
├── openair2 : Layer 2 (3GPP LTE Rel-10 MAC/RLC/PDCP/RRC/X2AP, LTE Rel-14 M2AP, NR Rel-15+ MAC/RLC/PDCP/SDAP/RRC/X2AP/F1AP/E1AP), E2AP
├── openair3 : Layer 3 (3GPP LTE Rel-10 S1AP/GTP, NR Rel-15 NGAP/GTP)
├── openshift : OpenShift helm charts for some deployment options of OAI
├── radio : Drivers for various radios such as USRP, AW2S, RFsim, 7.2 FHI, ...
├── targets : Some configuration files; only historical relevance, and might be deleted in the future
└── tools : Tools for use by the developers/ci machines: code analysis and formatting
```
# How to get support from the OAI Community #
You can ask your question on the [mailing lists](https://gitlab.eurecom.fr/oai/openairinterface5g/-/wikis/MailingList).
Your email should contain below information:
- A clear subject in your email.
- For all the queries there should be [Query\] in the subject of the email and for problems there should be [Problem\].
- In case of a problem, add a small description.
- Do not share any photos unless you want to share a diagram.
- OAI gNB/DU/CU/CU-CP/CU-UP configuration file in `.conf` format only.
- Logs of OAI gNB/DU/CU/CU-CP/CU-UP in `.log` or `.txt` format only.
- In case your question is related to performance, include a small description of the machine (Operating System, Kernel version, CPU, RAM and networking card) and diagram of your testing environment.
- Known/open issues are present on [GitLab](https://gitlab.eurecom.fr/oai/openairinterface5g/-/issues), so keep checking.
Always remember a structured email will help us understand your issues quickly.
├── nfapi : Contains the NFAPI code. A local Readme file provides more details.
├── 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
└── 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.
</pre>

View File

@@ -1,36 +0,0 @@
apiVersion: v1
name: oai-physim
description: A Helm chart for physical simulators network function
# A chart can be either an 'application' or a 'library' chart.
#
# Application charts are a collection of templates that can be packaged into versioned archives
# to be deployed.
#
# Library charts provide useful utilities or functions for the chart developer. They're included as
# a dependency of application charts to inject those utilities and functions into the rendering
# pipeline. Library charts do not define any templates and therefore cannot be deployed.
type: application
icon: http://www.openairinterface.org/wp-content/uploads/2015/06/cropped-oai_final_logo.png
# This is the chart version. This version number should be incremented each time you make changes
# to the chart and its templates, including the app version.
version: 1.0.0
# This is the version number of the application being deployed. This version number should be
# incremented each time you make changes to the application.
appVersion: v1
keywords:
- Physical Simulators
- RAN
- 4G
- 5G
sources:
- https://gitlab.eurecom.fr/oai/openairinterface5g
maintainers:
- name: OPENAIRINTERFACE
email: contact@openairinterface.org

View File

@@ -1,35 +0,0 @@
apiVersion: v1
name: oai-physims-4g
description: A Helm subchart for 4G physims network function
# A chart can be either an 'application' or a 'library' chart.
#
# Application charts are a collection of templates that can be packaged into versioned archives
# to be deployed.
#
# Library charts provide useful utilities or functions for the chart developer. They're included as
# a dependency of application charts to inject those utilities and functions into the rendering
# pipeline. Library charts do not define any templates and therefore cannot be deployed.
type: application
icon: http://www.openairinterface.org/wp-content/uploads/2015/06/cropped-oai_final_logo.png
# This is the chart version. This version number should be incremented each time you make changes
# to the chart and its templates, including the app version.
version: 0.1.1
# This is the version number of the application being deployed. This version number should be
# incremented each time you make changes to the application.
appVersion: v1
keywords:
- Physical Simulator
- RAN
- 4G
sources:
- https://gitlab.eurecom.fr/oai/openairinterface5g
maintainers:
- name: OPENAIRINTERFACE
email: contact@openairinterface.org

View File

@@ -1,63 +0,0 @@
{{/* vim: set filetype=mustache: */}}
{{/*
Expand the name of the chart.
*/}}
{{- define "oai-physims-4g.name" -}}
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{/*
Create a default fully qualified app name.
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
If release name contains chart name it will be used as a full name.
*/}}
{{- define "oai-physims-4g.fullname" -}}
{{- if .Values.fullnameOverride -}}
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}}
{{- else -}}
{{- $name := default .Chart.Name .Values.nameOverride -}}
{{- if contains $name .Release.Name -}}
{{- .Release.Name | trunc 63 | trimSuffix "-" -}}
{{- else -}}
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{- end -}}
{{- end -}}
{{/*
Create chart name and version as used by the chart label.
*/}}
{{- define "oai-physims-4g.chart" -}}
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{/*
Common labels
*/}}
{{- define "oai-physims-4g.labels" -}}
helm.sh/chart: {{ include "oai-physims-4g.chart" . }}
{{ include "oai-physims-4g.selectorLabels" . }}
{{- if .Chart.AppVersion }}
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
{{- end }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
{{- end -}}
{{/*
Selector labels
*/}}
{{- define "oai-physims-4g.selectorLabels" -}}
app.kubernetes.io/name: {{ include "oai-physims-4g.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
{{- end -}}
{{/*
Create the name of the service account to use
*/}}
{{- define "oai-physims-4g.serviceAccountName" -}}
{{- if .Values.serviceAccount.create -}}
{{ default (include "oai-physims-4g.fullname" .) .Values.serviceAccount.name }}
{{- else -}}
{{ default "default" .Values.serviceAccount.name }}
{{- end -}}
{{- end -}}

View File

@@ -1,48 +0,0 @@
apiVersion: batch/v1
kind: Job
metadata:
name: {{ .Chart.Name }}
spec:
template:
metadata:
labels:
app: physim
spec:
securityContext:
{{- toYaml .Values.podSecurityContext | nindent 8 }}
{{- if .Values.imagePullSecrets }}
imagePullSecrets:
{{- toYaml . | nindent 8 }}
{{- end }}
containers:
- name: physim
image: "{{ .Values.global.image.repository }}:{{ .Values.global.image.version }}"
imagePullPolicy: {{ .Values.image.pullPolicy }}
{{- if .Values.global.resources.define}}
resources:
requests:
cpu: {{ .Values.global.resources.requests.cpu | quote }}
{{- end}}
securityContext:
{{- toYaml .Values.securityContext | nindent 12 }}
env:
- name: OPENAIR_DIR
value: /opt/oai-physim
command: ["/bin/sh", "-c"]
args:
- >
ctest -R 4g --show-only=json-v1 >> physims-4g-tests.json &&
ctest -R 4g -j$(nproc) --output-junit physims-4g-run.xml --test-output-size-passed 100000 --test-output-size-failed 100000 ;
echo "FINISHED" && sleep 15
dnsPolicy: ClusterFirst
restartPolicy: Never
schedulerName: default-scheduler
serviceAccountName: {{ .Values.global.serviceAccountName }}
terminationGracePeriodSeconds: 30
{{- if .Values.global.nodeSelector}}
nodeSelector:
{{- toYaml .Values.global.nodeSelector | nindent 12 }}
{{- end }}
{{- if .Values.global.nodeName}}
nodeName: {{ .Values.global.nodeName.physims5g }}
{{- end }}

View File

@@ -1,48 +0,0 @@
# Default values for oai-physims-4g
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.
replicaCount: 1
image:
# pullPolicy: IfNotPresent or Never or Always
pullPolicy: Always
imagePullSecrets: []
nameOverride: ""
fullnameOverride: ""
serviceAccount:
# Specifies whether a service account should be created
create: true
# Annotations to add to the service account
annotations: {}
# The name of the service account to use.
# If not set and create is true, a name is generated using the fullname template
name: "oai-physims-4g"
podSecurityContext:
runAsUser: 0
runAsGroup: 0
securityContext:
privileged: false
resources: {}
# We usually recommend not to specify default resources and to leave this as a conscious
# choice for the user. This also increases chances charts run on environments with little
# resources, such as Minikube. If you do want to specify resources, uncomment the following
# lines, adjust them as necessary, and remove the curly braces after 'resources:'.
# limits:
# cpu: 100m
# memory: 128Mi
# requests:
# cpu: 100m
# memory: 128Mi
nodeSelector: {}
tolerations: []
affinity: {}

View File

@@ -1,26 +0,0 @@
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: {{ .Chart.Name }}-{{ .Release.Namespace }}-role
rules:
- apiGroups:
- security.openshift.io
resourceNames:
- anyuid
resources:
- securitycontextconstraints
verbs:
- use
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: {{ .Chart.Name }}-{{ .Release.Namespace }}-binding
subjects:
- kind: ServiceAccount
name: {{ .Values.global.serviceAccountName }}
namespace: {{ .Release.Namespace }}
roleRef:
kind: Role
name: {{ .Chart.Name }}-{{ .Release.Namespace }}-role
apiGroup: rbac.authorization.k8s.io

View File

@@ -1,4 +0,0 @@
apiVersion: v1
kind: ServiceAccount
metadata:
name: oai-physim-sa #{{ .Values.global.serviceAccountName }}

View File

@@ -1,21 +0,0 @@
# Default values for oai-physim.
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.
global:
serviceAccountName: oai-physim-sa
namespace: "OAICICD_PROJECT"
image:
registry: local
repository: image-registry.openshift-image-registry.svc:5000/oaicicd-core-for-ci-ran/oai-physim
version: TAG
# pullPolicy: IfNotPresent or Never or Always
pullPolicy: Always
# removing the node selector
# will place on two nodes intel 3rd gen and 5th gen with RT kernel
nodeSelector:
type: ran
nodeName: ''
resources:
define: false
requests:
cpu: 1.5

View File

@@ -1,36 +0,0 @@
apiVersion: v1
name: oai-physim
description: A Helm chart for physical simulators network function
# A chart can be either an 'application' or a 'library' chart.
#
# Application charts are a collection of templates that can be packaged into versioned archives
# to be deployed.
#
# Library charts provide useful utilities or functions for the chart developer. They're included as
# a dependency of application charts to inject those utilities and functions into the rendering
# pipeline. Library charts do not define any templates and therefore cannot be deployed.
type: application
icon: http://www.openairinterface.org/wp-content/uploads/2015/06/cropped-oai_final_logo.png
# This is the chart version. This version number should be incremented each time you make changes
# to the chart and its templates, including the app version.
version: 1.0.0
# This is the version number of the application being deployed. This version number should be
# incremented each time you make changes to the application.
appVersion: v1
keywords:
- Physical Simulators
- RAN
- 4G
- 5G
sources:
- https://gitlab.eurecom.fr/oai/openairinterface5g
maintainers:
- name: OPENAIRINTERFACE
email: contact@openairinterface.org

View File

@@ -1,35 +0,0 @@
apiVersion: v1
name: oai-physims-5g
description: A Helm subchart for 5G physims network function
# A chart can be either an 'application' or a 'library' chart.
#
# Application charts are a collection of templates that can be packaged into versioned archives
# to be deployed.
#
# Library charts provide useful utilities or functions for the chart developer. They're included as
# a dependency of application charts to inject those utilities and functions into the rendering
# pipeline. Library charts do not define any templates and therefore cannot be deployed.
type: application
icon: http://www.openairinterface.org/wp-content/uploads/2015/06/cropped-oai_final_logo.png
# This is the chart version. This version number should be incremented each time you make changes
# to the chart and its templates, including the app version.
version: 0.1.1
# This is the version number of the application being deployed. This version number should be
# incremented each time you make changes to the application.
appVersion: v1
keywords:
- Physical Simulator
- RAN
- 5G
sources:
- https://gitlab.eurecom.fr/oai/openairinterface5g
maintainers:
- name: OPENAIRINTERFACE
email: contact@openairinterface.org

View File

@@ -1,63 +0,0 @@
{{/* vim: set filetype=mustache: */}}
{{/*
Expand the name of the chart.
*/}}
{{- define "oai-physims-5g.name" -}}
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{/*
Create a default fully qualified app name.
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
If release name contains chart name it will be used as a full name.
*/}}
{{- define "oai-physims-5g.fullname" -}}
{{- if .Values.fullnameOverride -}}
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}}
{{- else -}}
{{- $name := default .Chart.Name .Values.nameOverride -}}
{{- if contains $name .Release.Name -}}
{{- .Release.Name | trunc 63 | trimSuffix "-" -}}
{{- else -}}
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{- end -}}
{{- end -}}
{{/*
Create chart name and version as used by the chart label.
*/}}
{{- define "oai-physims-5g.chart" -}}
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{/*
Common labels
*/}}
{{- define "oai-physims-5g.labels" -}}
helm.sh/chart: {{ include "oai-physims-5g.chart" . }}
{{ include "oai-physims-5g.selectorLabels" . }}
{{- if .Chart.AppVersion }}
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
{{- end }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
{{- end -}}
{{/*
Selector labels
*/}}
{{- define "oai-physims-5g.selectorLabels" -}}
app.kubernetes.io/name: {{ include "oai-physims-5g.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
{{- end -}}
{{/*
Create the name of the service account to use
*/}}
{{- define "oai-physims-5g.serviceAccountName" -}}
{{- if .Values.serviceAccount.create -}}
{{ default (include "oai-physims-5g.fullname" .) .Values.serviceAccount.name }}
{{- else -}}
{{ default "default" .Values.serviceAccount.name }}
{{- end -}}
{{- end -}}

View File

@@ -1,48 +0,0 @@
apiVersion: batch/v1
kind: Job
metadata:
name: {{ .Chart.Name }}
spec:
template:
metadata:
labels:
app: physim
spec:
securityContext:
{{- toYaml .Values.podSecurityContext | nindent 8 }}
{{- if .Values.imagePullSecrets }}
imagePullSecrets:
{{- toYaml . | nindent 8 }}
{{- end }}
containers:
- name: physim
image: "{{ .Values.global.image.repository }}:{{ .Values.global.image.version }}"
imagePullPolicy: {{ .Values.image.pullPolicy }}
{{- if .Values.global.resources.define}}
resources:
requests:
cpu: {{ .Values.global.resources.requests.cpu | quote }}
{{- end}}
securityContext:
{{- toYaml .Values.securityContext | nindent 12 }}
env:
- name: OPENAIR_DIR
value: /opt/oai-physim
command: ["/bin/sh", "-c"]
args:
- >
ctest -R 5g --show-only=json-v1 >> physims-5g-tests.json &&
ctest -R 5g -j$(nproc) --output-junit physims-5g-run.xml --test-output-size-passed 100000 --test-output-size-failed 100000 ;
echo "FINISHED" && sleep 20
dnsPolicy: ClusterFirst
restartPolicy: Never
schedulerName: default-scheduler
serviceAccountName: {{ .Values.global.serviceAccountName }}
terminationGracePeriodSeconds: 30
{{- if .Values.global.nodeSelector}}
nodeSelector:
{{- toYaml .Values.global.nodeSelector | nindent 12 }}
{{- end }}
{{- if .Values.global.nodeName}}
nodeName: {{ .Values.global.nodeName.physims5g }}
{{- end }}

View File

@@ -1,48 +0,0 @@
# Default values for oai-physims-5g
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.
replicaCount: 1
image:
# pullPolicy: IfNotPresent or Never or Always
pullPolicy: Always
imagePullSecrets: []
nameOverride: ""
fullnameOverride: ""
serviceAccount:
# Specifies whether a service account should be created
create: true
# Annotations to add to the service account
annotations: {}
# The name of the service account to use.
# If not set and create is true, a name is generated using the fullname template
name: "oai-physims-5g"
podSecurityContext:
runAsUser: 0
runAsGroup: 0
securityContext:
privileged: false
resources: {}
# We usually recommend not to specify default resources and to leave this as a conscious
# choice for the user. This also increases chances charts run on environments with little
# resources, such as Minikube. If you do want to specify resources, uncomment the following
# lines, adjust them as necessary, and remove the curly braces after 'resources:'.
# limits:
# cpu: 100m
# memory: 128Mi
# requests:
# cpu: 100m
# memory: 128Mi
nodeSelector: {}
tolerations: []
affinity: {}

View File

@@ -1,26 +0,0 @@
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: {{ .Chart.Name }}-{{ .Release.Namespace }}-role
rules:
- apiGroups:
- security.openshift.io
resourceNames:
- anyuid
resources:
- securitycontextconstraints
verbs:
- use
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: {{ .Chart.Name }}-{{ .Release.Namespace }}-binding
subjects:
- kind: ServiceAccount
name: {{ .Values.global.serviceAccountName }}
namespace: {{ .Release.Namespace }}
roleRef:
kind: Role
name: {{ .Chart.Name }}-{{ .Release.Namespace }}-role
apiGroup: rbac.authorization.k8s.io

View File

@@ -1,4 +0,0 @@
apiVersion: v1
kind: ServiceAccount
metadata:
name: oai-physim-sa #{{ .Values.global.serviceAccountName }}

View File

@@ -1,21 +0,0 @@
# Default values for oai-physim.
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.
global:
serviceAccountName: oai-physim-sa
namespace: "OAICICD_PROJECT"
image:
registry: local
repository: image-registry.openshift-image-registry.svc:5000/oaicicd-core-for-ci-ran/oai-physim
version: TAG
# pullPolicy: IfNotPresent or Never or Always
pullPolicy: Always
# removing the node selector
# will place on two nodes intel 3rd gen and 5th gen with RT kernel
nodeSelector:
type: ran
nodeName: ''
resources:
define: false
requests:
cpu: 1.5

36
charts/physims/Chart.yaml Normal file
View File

@@ -0,0 +1,36 @@
apiVersion: v1
name: oai-physim
description: A Helm chart for physical simulators network function
# A chart can be either an 'application' or a 'library' chart.
#
# Application charts are a collection of templates that can be packaged into versioned archives
# to be deployed.
#
# Library charts provide useful utilities or functions for the chart developer. They're included as
# a dependency of application charts to inject those utilities and functions into the rendering
# pipeline. Library charts do not define any templates and therefore cannot be deployed.
type: application
icon: http://www.openairinterface.org/wp-content/uploads/2015/06/cropped-oai_final_logo.png
# This is the chart version. This version number should be incremented each time you make changes
# to the chart and its templates, including the app version.
version: 0.1.1
# This is the version number of the application being deployed. This version number should be
# incremented each time you make changes to the application.
appVersion: v1
keywords:
- Physical Simulators
- RAN
- 4G
- 5G
sources:
- https://gitlab.eurecom.fr/oai/openairinterface5g
maintainers:
- name: OPENAIRINTERFACE
email: contact@openairinterface.org

View File

@@ -0,0 +1,36 @@
apiVersion: v1
name: oai-dlsim
description: A Helm subchart for dlsim network function
# A chart can be either an 'application' or a 'library' chart.
#
# Application charts are a collection of templates that can be packaged into versioned archives
# to be deployed.
#
# Library charts provide useful utilities or functions for the chart developer. They're included as
# a dependency of application charts to inject those utilities and functions into the rendering
# pipeline. Library charts do not define any templates and therefore cannot be deployed.
type: application
icon: http://www.openairinterface.org/wp-content/uploads/2015/06/cropped-oai_final_logo.png
# This is the chart version. This version number should be incremented each time you make changes
# to the chart and its templates, including the app version.
version: 0.1.1
# This is the version number of the application being deployed. This version number should be
# incremented each time you make changes to the application.
appVersion: v1
keywords:
- Physical Simulator
- dlsim
- RAN
- 4G
sources:
- https://gitlab.eurecom.fr/oai/openairinterface5g
maintainers:
- name: OPENAIRINTERFACE
email: contact@openairinterface.org

View File

@@ -0,0 +1,15 @@
1. Get the application URL by running these commands:
{{- if contains "NodePort" .Values.service.type }}
export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "oai-dlsim.fullname" . }})
export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}")
echo http://$NODE_IP:$NODE_PORT
{{- else if contains "LoadBalancer" .Values.service.type }}
NOTE: It may take a few minutes for the LoadBalancer IP to be available.
You can watch the status of by running 'kubectl get --namespace {{ .Release.Namespace }} svc -w {{ include "oai-dlsim.fullname" . }}'
export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ include "oai-dlsim.fullname" . }} --template "{{"{{ range (index .status.loadBalancer.ingress 0) }}{{.}}{{ end }}"}}")
echo http://$SERVICE_IP:{{ .Values.service.port }}
{{- else if contains "ClusterIP" .Values.service.type }}
export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app.kubernetes.io/name={{ include "oai-dlsim.name" . }},app.kubernetes.io/instance={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}")
echo "Visit http://127.0.0.1:8080 to use your application"
kubectl --namespace {{ .Release.Namespace }} port-forward $POD_NAME 8080:80
{{- end }}

View File

@@ -0,0 +1,63 @@
{{/* vim: set filetype=mustache: */}}
{{/*
Expand the name of the chart.
*/}}
{{- define "oai-dlsim.name" -}}
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{/*
Create a default fully qualified app name.
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
If release name contains chart name it will be used as a full name.
*/}}
{{- define "oai-dlsim.fullname" -}}
{{- if .Values.fullnameOverride -}}
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}}
{{- else -}}
{{- $name := default .Chart.Name .Values.nameOverride -}}
{{- if contains $name .Release.Name -}}
{{- .Release.Name | trunc 63 | trimSuffix "-" -}}
{{- else -}}
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{- end -}}
{{- end -}}
{{/*
Create chart name and version as used by the chart label.
*/}}
{{- define "oai-dlsim.chart" -}}
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{/*
Common labels
*/}}
{{- define "oai-dlsim.labels" -}}
helm.sh/chart: {{ include "oai-dlsim.chart" . }}
{{ include "oai-dlsim.selectorLabels" . }}
{{- if .Chart.AppVersion }}
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
{{- end }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
{{- end -}}
{{/*
Selector labels
*/}}
{{- define "oai-dlsim.selectorLabels" -}}
app.kubernetes.io/name: {{ include "oai-dlsim.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
{{- end -}}
{{/*
Create the name of the service account to use
*/}}
{{- define "oai-dlsim.serviceAccountName" -}}
{{- if .Values.serviceAccount.create -}}
{{ default (include "oai-dlsim.fullname" .) .Values.serviceAccount.name }}
{{- else -}}
{{ default "default" .Values.serviceAccount.name }}
{{- end -}}
{{- end -}}

View File

@@ -0,0 +1,49 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ .Chart.Name }}
labels:
{{- include "oai-dlsim.labels" . | nindent 4 }}
spec:
replicas: {{ .Values.replicaCount }}
selector:
matchLabels:
{{- include "oai-dlsim.selectorLabels" . | nindent 6 }}
strategy:
type: Recreate
template:
metadata:
labels:
{{- include "oai-dlsim.selectorLabels" . | nindent 8 }}
spec:
securityContext:
{{- toYaml .Values.podSecurityContext | nindent 8 }}
{{- if .Values.imagePullSecrets }}
imagePullSecrets:
{{- toYaml . | nindent 8 }}
{{- end }}
containers:
- name: physim
image: "{{ .Values.global.image.repository }}:{{ .Values.global.image.version }}"
imagePullPolicy: {{ .Values.image.pullPolicy }}
securityContext:
{{- toYaml .Values.securityContext | nindent 12 }}
ports:
- containerPort: 80
name: oai-dlsim
# volumeMounts:
# - mountPath: /opt/oai-dlsim/certs
# name: certs
command: ["/bin/sh", "-c"]
args:
- >
export OPENAIR_DIR=/opt/oai-physim &&
cd cmake_targets/autotests &&
./run_exec_autotests.bash -g "015100" -q -np -b &&
echo "FINISHED" &&
sleep infinity
dnsPolicy: ClusterFirst
restartPolicy: Always
schedulerName: default-scheduler
serviceAccountName: {{ .Values.global.serviceAccountName }}
terminationGracePeriodSeconds: 30

View File

@@ -0,0 +1,20 @@
apiVersion: v1
kind: Service
metadata:
name: {{ .Chart.Name }}
labels:
{{- include "oai-dlsim.labels" . | nindent 4 }}
spec:
type: {{ .Values.service.type }}
{{- if contains "ClusterIP" .Values.service.type }}
clusterIP: None
{{- end }}
ports:
- name: oai-dlsim
# Port accessible outside cluster
port: {{ .Values.service.port }}
# Port to forward to inside the pod
targetPort: {{ .Values.service.Port }}
protocol: TCP
selector:
{{- include "oai-dlsim.selectorLabels" . | nindent 4 }}

View File

@@ -0,0 +1,63 @@
# Default values for oai-dlsim.
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.
replicaCount: 1
namespace: "oaicicd-ran-tmp"
image:
registry: local
repository: image-registry.openshift-image-registry.svc:5000/oaicicd-ran-tmp/oai-physim
version: temp
# pullPolicy: IfNotPresent or Never or Always
pullPolicy: Always
imagePullSecrets: []
nameOverride: ""
fullnameOverride: ""
serviceAccount:
# Specifies whether a service account should be created
create: true
# Annotations to add to the service account
annotations: {}
# The name of the service account to use.
# If not set and create is true, a name is generated using the fullname template
name: "oai-dlsim-sa"
podSecurityContext:
runAsUser: 0
runAsGroup: 0
securityContext:
privileged: true
# capabilities:
# drop:
# - ALL
# readOnlyRootFilesystem: true
# runAsNonRoot: true
# runAsUser: 1000
service:
type: ClusterIP
port: 80
resources: {}
# We usually recommend not to specify default resources and to leave this as a conscious
# choice for the user. This also increases chances charts run on environments with little
# resources, such as Minikube. If you do want to specify resources, uncomment the following
# lines, adjust them as necessary, and remove the curly braces after 'resources:'.
# limits:
# cpu: 100m
# memory: 128Mi
# requests:
# cpu: 100m
# memory: 128Mi
nodeSelector: {}
tolerations: []
affinity: {}

View File

@@ -0,0 +1,36 @@
apiVersion: v1
name: oai-ldpctest
description: A Helm subchart for ldpctest network function
# A chart can be either an 'application' or a 'library' chart.
#
# Application charts are a collection of templates that can be packaged into versioned archives
# to be deployed.
#
# Library charts provide useful utilities or functions for the chart developer. They're included as
# a dependency of application charts to inject those utilities and functions into the rendering
# pipeline. Library charts do not define any templates and therefore cannot be deployed.
type: application
icon: http://www.openairinterface.org/wp-content/uploads/2015/06/cropped-oai_final_logo.png
# This is the chart version. This version number should be incremented each time you make changes
# to the chart and its templates, including the app version.
version: 0.1.1
# This is the version number of the application being deployed. This version number should be
# incremented each time you make changes to the application.
appVersion: v1
keywords:
- Physical Simulator
- ldpctest
- RAN
- 5G
sources:
- https://gitlab.eurecom.fr/oai/openairinterface5g
maintainers:
- name: OPENAIRINTERFACE
email: contact@openairinterface.org

View File

@@ -0,0 +1,15 @@
1. Get the application URL by running these commands:
{{- if contains "NodePort" .Values.service.type }}
export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "oai-ldpctest.fullname" . }})
export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}")
echo http://$NODE_IP:$NODE_PORT
{{- else if contains "LoadBalancer" .Values.service.type }}
NOTE: It may take a few minutes for the LoadBalancer IP to be available.
You can watch the status of by running 'kubectl get --namespace {{ .Release.Namespace }} svc -w {{ include "oai-ldpctest.fullname" . }}'
export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ include "oai-ldpctest.fullname" . }} --template "{{"{{ range (index .status.loadBalancer.ingress 0) }}{{.}}{{ end }}"}}")
echo http://$SERVICE_IP:{{ .Values.service.port }}
{{- else if contains "ClusterIP" .Values.service.type }}
export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app.kubernetes.io/name={{ include "oai-ldpctest.name" . }},app.kubernetes.io/instance={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}")
echo "Visit http://127.0.0.1:8080 to use your application"
kubectl --namespace {{ .Release.Namespace }} port-forward $POD_NAME 8080:80
{{- end }}

View File

@@ -0,0 +1,63 @@
{{/* vim: set filetype=mustache: */}}
{{/*
Expand the name of the chart.
*/}}
{{- define "oai-ldpctest.name" -}}
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{/*
Create a default fully qualified app name.
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
If release name contains chart name it will be used as a full name.
*/}}
{{- define "oai-ldpctest.fullname" -}}
{{- if .Values.fullnameOverride -}}
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}}
{{- else -}}
{{- $name := default .Chart.Name .Values.nameOverride -}}
{{- if contains $name .Release.Name -}}
{{- .Release.Name | trunc 63 | trimSuffix "-" -}}
{{- else -}}
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{- end -}}
{{- end -}}
{{/*
Create chart name and version as used by the chart label.
*/}}
{{- define "oai-ldpctest.chart" -}}
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{/*
Common labels
*/}}
{{- define "oai-ldpctest.labels" -}}
helm.sh/chart: {{ include "oai-ldpctest.chart" . }}
{{ include "oai-ldpctest.selectorLabels" . }}
{{- if .Chart.AppVersion }}
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
{{- end }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
{{- end -}}
{{/*
Selector labels
*/}}
{{- define "oai-ldpctest.selectorLabels" -}}
app.kubernetes.io/name: {{ include "oai-ldpctest.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
{{- end -}}
{{/*
Create the name of the service account to use
*/}}
{{- define "oai-ldpctest.serviceAccountName" -}}
{{- if .Values.serviceAccount.create -}}
{{ default (include "oai-ldpctest.fullname" .) .Values.serviceAccount.name }}
{{- else -}}
{{ default "default" .Values.serviceAccount.name }}
{{- end -}}
{{- end -}}

View File

@@ -0,0 +1,49 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ .Chart.Name }}
labels:
{{- include "oai-ldpctest.labels" . | nindent 4 }}
spec:
replicas: {{ .Values.replicaCount }}
selector:
matchLabels:
{{- include "oai-ldpctest.selectorLabels" . | nindent 6 }}
strategy:
type: Recreate
template:
metadata:
labels:
{{- include "oai-ldpctest.selectorLabels" . | nindent 8 }}
spec:
securityContext:
{{- toYaml .Values.podSecurityContext | nindent 8 }}
{{- if .Values.imagePullSecrets }}
imagePullSecrets:
{{- toYaml . | nindent 8 }}
{{- end }}
containers:
- name: physim
image: "{{ .Values.global.image.repository }}:{{ .Values.global.image.version }}"
imagePullPolicy: {{ .Values.image.pullPolicy }}
securityContext:
{{- toYaml .Values.securityContext | nindent 12 }}
ports:
- containerPort: 80
name: oai-ldpctest
# volumeMounts:
# - mountPath: /opt/oai-ldpctest/certs
# name: certs
command: ["/bin/sh", "-c"]
args:
- >
export OPENAIR_DIR=/opt/oai-physim &&
cd cmake_targets/autotests &&
./run_exec_autotests.bash -g "015102" -q -np -b &&
echo "FINISHED" &&
sleep infinity
dnsPolicy: ClusterFirst
restartPolicy: Always
schedulerName: default-scheduler
serviceAccountName: {{ .Values.global.serviceAccountName }}
terminationGracePeriodSeconds: 30

View File

@@ -0,0 +1,20 @@
apiVersion: v1
kind: Service
metadata:
name: {{ .Chart.Name }}
labels:
{{- include "oai-ldpctest.labels" . | nindent 4 }}
spec:
type: {{ .Values.service.type }}
{{- if contains "ClusterIP" .Values.service.type }}
clusterIP: None
{{- end }}
ports:
- name: oai-ldpctest
# Port accessible outside cluster
port: {{ .Values.service.port }}
# Port to forward to inside the pod
targetPort: {{ .Values.service.Port }}
protocol: TCP
selector:
{{- include "oai-ldpctest.selectorLabels" . | nindent 4 }}

View File

@@ -0,0 +1,63 @@
# Default values for oai-ldpctest.
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.
replicaCount: 1
namespace: "oaicicd-ran-tmp"
image:
registry: local
repository: image-registry.openshift-image-registry.svc:5000/oaicicd-ran-tmp/oai-physim
version: temp
# pullPolicy: IfNotPresent or Never or Always
pullPolicy: Always
imagePullSecrets: []
nameOverride: ""
fullnameOverride: ""
serviceAccount:
# Specifies whether a service account should be created
create: true
# Annotations to add to the service account
annotations: {}
# The name of the service account to use.
# If not set and create is true, a name is generated using the fullname template
name: "oai-ldpctest-sa"
podSecurityContext:
runAsUser: 0
runAsGroup: 0
securityContext:
privileged: true
# capabilities:
# drop:
# - ALL
# readOnlyRootFilesystem: true
# runAsNonRoot: true
# runAsUser: 1000
service:
type: ClusterIP
port: 80
resources: {}
# We usually recommend not to specify default resources and to leave this as a conscious
# choice for the user. This also increases chances charts run on environments with little
# resources, such as Minikube. If you do want to specify resources, uncomment the following
# lines, adjust them as necessary, and remove the curly braces after 'resources:'.
# limits:
# cpu: 100m
# memory: 128Mi
# requests:
# cpu: 100m
# memory: 128Mi
nodeSelector: {}
tolerations: []
affinity: {}

View File

@@ -0,0 +1,36 @@
apiVersion: v1
name: oai-nr-dlschsim
description: A Helm subchart for nr-dlschsim network function
# A chart can be either an 'application' or a 'library' chart.
#
# Application charts are a collection of templates that can be packaged into versioned archives
# to be deployed.
#
# Library charts provide useful utilities or functions for the chart developer. They're included as
# a dependency of application charts to inject those utilities and functions into the rendering
# pipeline. Library charts do not define any templates and therefore cannot be deployed.
type: application
icon: http://www.openairinterface.org/wp-content/uploads/2015/06/cropped-oai_final_logo.png
# This is the chart version. This version number should be incremented each time you make changes
# to the chart and its templates, including the app version.
version: 0.1.1
# This is the version number of the application being deployed. This version number should be
# incremented each time you make changes to the application.
appVersion: v1
keywords:
- Physical Simulator
- nr-dlschsim
- RAN
- 5G
sources:
- https://gitlab.eurecom.fr/oai/openairinterface5g
maintainers:
- name: OPENAIRINTERFACE
email: contact@openairinterface.org

View File

@@ -0,0 +1,15 @@
1. Get the application URL by running these commands:
{{- if contains "NodePort" .Values.service.type }}
export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "oai-nr-dlschsim.fullname" . }})
export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}")
echo http://$NODE_IP:$NODE_PORT
{{- else if contains "LoadBalancer" .Values.service.type }}
NOTE: It may take a few minutes for the LoadBalancer IP to be available.
You can watch the status of by running 'kubectl get --namespace {{ .Release.Namespace }} svc -w {{ include "oai-nr-dlschsim.fullname" . }}'
export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ include "oai-nr-dlschsim.fullname" . }} --template "{{"{{ range (index .status.loadBalancer.ingress 0) }}{{.}}{{ end }}"}}")
echo http://$SERVICE_IP:{{ .Values.service.port }}
{{- else if contains "ClusterIP" .Values.service.type }}
export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app.kubernetes.io/name={{ include "oai-nr-dlschsim.name" . }},app.kubernetes.io/instance={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}")
echo "Visit http://127.0.0.1:8080 to use your application"
kubectl --namespace {{ .Release.Namespace }} port-forward $POD_NAME 8080:80
{{- end }}

View File

@@ -0,0 +1,63 @@
{{/* vim: set filetype=mustache: */}}
{{/*
Expand the name of the chart.
*/}}
{{- define "oai-nr-dlschsim.name" -}}
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{/*
Create a default fully qualified app name.
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
If release name contains chart name it will be used as a full name.
*/}}
{{- define "oai-nr-dlschsim.fullname" -}}
{{- if .Values.fullnameOverride -}}
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}}
{{- else -}}
{{- $name := default .Chart.Name .Values.nameOverride -}}
{{- if contains $name .Release.Name -}}
{{- .Release.Name | trunc 63 | trimSuffix "-" -}}
{{- else -}}
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{- end -}}
{{- end -}}
{{/*
Create chart name and version as used by the chart label.
*/}}
{{- define "oai-nr-dlschsim.chart" -}}
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{/*
Common labels
*/}}
{{- define "oai-nr-dlschsim.labels" -}}
helm.sh/chart: {{ include "oai-nr-dlschsim.chart" . }}
{{ include "oai-nr-dlschsim.selectorLabels" . }}
{{- if .Chart.AppVersion }}
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
{{- end }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
{{- end -}}
{{/*
Selector labels
*/}}
{{- define "oai-nr-dlschsim.selectorLabels" -}}
app.kubernetes.io/name: {{ include "oai-nr-dlschsim.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
{{- end -}}
{{/*
Create the name of the service account to use
*/}}
{{- define "oai-nr-dlschsim.serviceAccountName" -}}
{{- if .Values.serviceAccount.create -}}
{{ default (include "oai-nr-dlschsim.fullname" .) .Values.serviceAccount.name }}
{{- else -}}
{{ default "default" .Values.serviceAccount.name }}
{{- end -}}
{{- end -}}

View File

@@ -0,0 +1,49 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ .Chart.Name }}
labels:
{{- include "oai-nr-dlschsim.labels" . | nindent 4 }}
spec:
replicas: {{ .Values.replicaCount }}
selector:
matchLabels:
{{- include "oai-nr-dlschsim.selectorLabels" . | nindent 6 }}
strategy:
type: Recreate
template:
metadata:
labels:
{{- include "oai-nr-dlschsim.selectorLabels" . | nindent 8 }}
spec:
securityContext:
{{- toYaml .Values.podSecurityContext | nindent 8 }}
{{- if .Values.imagePullSecrets }}
imagePullSecrets:
{{- toYaml . | nindent 8 }}
{{- end }}
containers:
- name: physim
image: "{{ .Values.global.image.repository }}:{{ .Values.global.image.version }}"
imagePullPolicy: {{ .Values.image.pullPolicy }}
securityContext:
{{- toYaml .Values.securityContext | nindent 12 }}
ports:
- containerPort: 80
name: oai-nr-dlschsim
# volumeMounts:
# - mountPath: /opt/oai-nr-dlschsim/certs
# name: certs
command: ["/bin/sh", "-c"]
args:
- >
export OPENAIR_DIR=/opt/oai-physim &&
cd cmake_targets/autotests &&
./run_exec_autotests.bash -g "015106" -q -np -b &&
echo "FINISHED" &&
sleep infinity
dnsPolicy: ClusterFirst
restartPolicy: Always
schedulerName: default-scheduler
serviceAccountName: {{ .Values.global.serviceAccountName }}
terminationGracePeriodSeconds: 30

View File

@@ -0,0 +1,20 @@
apiVersion: v1
kind: Service
metadata:
name: {{ .Chart.Name }}
labels:
{{- include "oai-nr-dlschsim.labels" . | nindent 4 }}
spec:
type: {{ .Values.service.type }}
{{- if contains "ClusterIP" .Values.service.type }}
clusterIP: None
{{- end }}
ports:
- name: oai-nr-dlschsim
# Port accessible outside cluster
port: {{ .Values.service.port }}
# Port to forward to inside the pod
targetPort: {{ .Values.service.Port }}
protocol: TCP
selector:
{{- include "oai-nr-dlschsim.selectorLabels" . | nindent 4 }}

View File

@@ -0,0 +1,63 @@
# Default values for oai-nr-dlschsim.
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.
replicaCount: 1
namespace: "oaicicd-ran-tmp"
image:
registry: local
repository: image-registry.openshift-image-registry.svc:5000/oaicicd-ran-tmp/oai-physim
version: temp
# pullPolicy: IfNotPresent or Never or Always
pullPolicy: Always
imagePullSecrets: []
nameOverride: ""
fullnameOverride: ""
serviceAccount:
# Specifies whether a service account should be created
create: true
# Annotations to add to the service account
annotations: {}
# The name of the service account to use.
# If not set and create is true, a name is generated using the fullname template
name: "oai-nr-dlschsim-sa"
podSecurityContext:
runAsUser: 0
runAsGroup: 0
securityContext:
privileged: true
# capabilities:
# drop:
# - ALL
# readOnlyRootFilesystem: true
# runAsNonRoot: true
# runAsUser: 1000
service:
type: ClusterIP
port: 80
resources: {}
# We usually recommend not to specify default resources and to leave this as a conscious
# choice for the user. This also increases chances charts run on environments with little
# resources, such as Minikube. If you do want to specify resources, uncomment the following
# lines, adjust them as necessary, and remove the curly braces after 'resources:'.
# limits:
# cpu: 100m
# memory: 128Mi
# requests:
# cpu: 100m
# memory: 128Mi
nodeSelector: {}
tolerations: []
affinity: {}

View File

@@ -0,0 +1,36 @@
apiVersion: v1
name: oai-nr-dlsim
description: A Helm subchart for nr-dlsim network function
# A chart can be either an 'application' or a 'library' chart.
#
# Application charts are a collection of templates that can be packaged into versioned archives
# to be deployed.
#
# Library charts provide useful utilities or functions for the chart developer. They're included as
# a dependency of application charts to inject those utilities and functions into the rendering
# pipeline. Library charts do not define any templates and therefore cannot be deployed.
type: application
icon: http://www.openairinterface.org/wp-content/uploads/2015/06/cropped-oai_final_logo.png
# This is the chart version. This version number should be incremented each time you make changes
# to the chart and its templates, including the app version.
version: 0.1.1
# This is the version number of the application being deployed. This version number should be
# incremented each time you make changes to the application.
appVersion: v1
keywords:
- Physical Simulator
- nr-dlsim
- RAN
- 5G
sources:
- https://gitlab.eurecom.fr/oai/openairinterface5g
maintainers:
- name: OPENAIRINTERFACE
email: contact@openairinterface.org

View File

@@ -0,0 +1,15 @@
1. Get the application URL by running these commands:
{{- if contains "NodePort" .Values.service.type }}
export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "oai-nr-dlsim.fullname" . }})
export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}")
echo http://$NODE_IP:$NODE_PORT
{{- else if contains "LoadBalancer" .Values.service.type }}
NOTE: It may take a few minutes for the LoadBalancer IP to be available.
You can watch the status of by running 'kubectl get --namespace {{ .Release.Namespace }} svc -w {{ include "oai-nr-dlsim.fullname" . }}'
export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ include "oai-nr-dlsim.fullname" . }} --template "{{"{{ range (index .status.loadBalancer.ingress 0) }}{{.}}{{ end }}"}}")
echo http://$SERVICE_IP:{{ .Values.service.port }}
{{- else if contains "ClusterIP" .Values.service.type }}
export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app.kubernetes.io/name={{ include "oai-nr-dlsim.name" . }},app.kubernetes.io/instance={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}")
echo "Visit http://127.0.0.1:8080 to use your application"
kubectl --namespace {{ .Release.Namespace }} port-forward $POD_NAME 8080:80
{{- end }}

View File

@@ -0,0 +1,63 @@
{{/* vim: set filetype=mustache: */}}
{{/*
Expand the name of the chart.
*/}}
{{- define "oai-nr-dlsim.name" -}}
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{/*
Create a default fully qualified app name.
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
If release name contains chart name it will be used as a full name.
*/}}
{{- define "oai-nr-dlsim.fullname" -}}
{{- if .Values.fullnameOverride -}}
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}}
{{- else -}}
{{- $name := default .Chart.Name .Values.nameOverride -}}
{{- if contains $name .Release.Name -}}
{{- .Release.Name | trunc 63 | trimSuffix "-" -}}
{{- else -}}
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{- end -}}
{{- end -}}
{{/*
Create chart name and version as used by the chart label.
*/}}
{{- define "oai-nr-dlsim.chart" -}}
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{/*
Common labels
*/}}
{{- define "oai-nr-dlsim.labels" -}}
helm.sh/chart: {{ include "oai-nr-dlsim.chart" . }}
{{ include "oai-nr-dlsim.selectorLabels" . }}
{{- if .Chart.AppVersion }}
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
{{- end }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
{{- end -}}
{{/*
Selector labels
*/}}
{{- define "oai-nr-dlsim.selectorLabels" -}}
app.kubernetes.io/name: {{ include "oai-nr-dlsim.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
{{- end -}}
{{/*
Create the name of the service account to use
*/}}
{{- define "oai-nr-dlsim.serviceAccountName" -}}
{{- if .Values.serviceAccount.create -}}
{{ default (include "oai-nr-dlsim.fullname" .) .Values.serviceAccount.name }}
{{- else -}}
{{ default "default" .Values.serviceAccount.name }}
{{- end -}}
{{- end -}}

View File

@@ -0,0 +1,49 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ .Chart.Name }}
labels:
{{- include "oai-nr-dlsim.labels" . | nindent 4 }}
spec:
replicas: {{ .Values.replicaCount }}
selector:
matchLabels:
{{- include "oai-nr-dlsim.selectorLabels" . | nindent 6 }}
strategy:
type: Recreate
template:
metadata:
labels:
{{- include "oai-nr-dlsim.selectorLabels" . | nindent 8 }}
spec:
securityContext:
{{- toYaml .Values.podSecurityContext | nindent 8 }}
{{- if .Values.imagePullSecrets }}
imagePullSecrets:
{{- toYaml . | nindent 8 }}
{{- end }}
containers:
- name: physim
image: "{{ .Values.global.image.repository }}:{{ .Values.global.image.version }}"
imagePullPolicy: {{ .Values.image.pullPolicy }}
securityContext:
{{- toYaml .Values.securityContext | nindent 12 }}
ports:
- containerPort: 80
name: oai-nr-dlsim
# volumeMounts:
# - mountPath: /opt/oai-nr-dlsim/certs
# name: certs
command: ["/bin/sh", "-c"]
args:
- >
export OPENAIR_DIR=/opt/oai-physim &&
cd cmake_targets/autotests &&
./run_exec_autotests.bash -g "015105" -q -np -b &&
echo "FINISHED" &&
sleep infinity
dnsPolicy: ClusterFirst
restartPolicy: Always
schedulerName: default-scheduler
serviceAccountName: {{ .Values.global.serviceAccountName }}
terminationGracePeriodSeconds: 30

View File

@@ -0,0 +1,20 @@
apiVersion: v1
kind: Service
metadata:
name: {{ .Chart.Name }}
labels:
{{- include "oai-nr-dlsim.labels" . | nindent 4 }}
spec:
type: {{ .Values.service.type }}
{{- if contains "ClusterIP" .Values.service.type }}
clusterIP: None
{{- end }}
ports:
- name: oai-nr-dlsim
# Port accessible outside cluster
port: {{ .Values.service.port }}
# Port to forward to inside the pod
targetPort: {{ .Values.service.Port }}
protocol: TCP
selector:
{{- include "oai-nr-dlsim.selectorLabels" . | nindent 4 }}

View File

@@ -0,0 +1,63 @@
# Default values for oai-nr-dlsim.
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.
replicaCount: 1
namespace: "oaicicd-ran-tmp"
image:
registry: local
repository: image-registry.openshift-image-registry.svc:5000/oaicicd-ran-tmp/oai-physim
version: temp
# pullPolicy: IfNotPresent or Never or Always
pullPolicy: Always
imagePullSecrets: []
nameOverride: ""
fullnameOverride: ""
serviceAccount:
# Specifies whether a service account should be created
create: true
# Annotations to add to the service account
annotations: {}
# The name of the service account to use.
# If not set and create is true, a name is generated using the fullname template
name: "oai-nr-dlsim-sa"
podSecurityContext:
runAsUser: 0
runAsGroup: 0
securityContext:
privileged: true
# capabilities:
# drop:
# - ALL
# readOnlyRootFilesystem: true
# runAsNonRoot: true
# runAsUser: 1000
service:
type: ClusterIP
port: 80
resources: {}
# We usually recommend not to specify default resources and to leave this as a conscious
# choice for the user. This also increases chances charts run on environments with little
# resources, such as Minikube. If you do want to specify resources, uncomment the following
# lines, adjust them as necessary, and remove the curly braces after 'resources:'.
# limits:
# cpu: 100m
# memory: 128Mi
# requests:
# cpu: 100m
# memory: 128Mi
nodeSelector: {}
tolerations: []
affinity: {}

View File

@@ -0,0 +1,36 @@
apiVersion: v1
name: oai-nr-pbchsim
description: A Helm subchart for nr-pbchsim network function
# A chart can be either an 'application' or a 'library' chart.
#
# Application charts are a collection of templates that can be packaged into versioned archives
# to be deployed.
#
# Library charts provide useful utilities or functions for the chart developer. They're included as
# a dependency of application charts to inject those utilities and functions into the rendering
# pipeline. Library charts do not define any templates and therefore cannot be deployed.
type: application
icon: http://www.openairinterface.org/wp-content/uploads/2015/06/cropped-oai_final_logo.png
# This is the chart version. This version number should be incremented each time you make changes
# to the chart and its templates, including the app version.
version: 0.1.1
# This is the version number of the application being deployed. This version number should be
# incremented each time you make changes to the application.
appVersion: v1
keywords:
- Physical Simulator
- nr-pbchsim
- RAN
- 5G
sources:
- https://gitlab.eurecom.fr/oai/openairinterface5g
maintainers:
- name: OPENAIRINTERFACE
email: contact@openairinterface.org

View File

@@ -0,0 +1,15 @@
1. Get the application URL by running these commands:
{{- if contains "NodePort" .Values.service.type }}
export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "oai-nr-pbchsim.fullname" . }})
export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}")
echo http://$NODE_IP:$NODE_PORT
{{- else if contains "LoadBalancer" .Values.service.type }}
NOTE: It may take a few minutes for the LoadBalancer IP to be available.
You can watch the status of by running 'kubectl get --namespace {{ .Release.Namespace }} svc -w {{ include "oai-nr-pbchsim.fullname" . }}'
export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ include "oai-nr-pbchsim.fullname" . }} --template "{{"{{ range (index .status.loadBalancer.ingress 0) }}{{.}}{{ end }}"}}")
echo http://$SERVICE_IP:{{ .Values.service.port }}
{{- else if contains "ClusterIP" .Values.service.type }}
export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app.kubernetes.io/name={{ include "oai-nr-pbchsim.name" . }},app.kubernetes.io/instance={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}")
echo "Visit http://127.0.0.1:8080 to use your application"
kubectl --namespace {{ .Release.Namespace }} port-forward $POD_NAME 8080:80
{{- end }}

View File

@@ -0,0 +1,63 @@
{{/* vim: set filetype=mustache: */}}
{{/*
Expand the name of the chart.
*/}}
{{- define "oai-nr-pbchsim.name" -}}
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{/*
Create a default fully qualified app name.
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
If release name contains chart name it will be used as a full name.
*/}}
{{- define "oai-nr-pbchsim.fullname" -}}
{{- if .Values.fullnameOverride -}}
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}}
{{- else -}}
{{- $name := default .Chart.Name .Values.nameOverride -}}
{{- if contains $name .Release.Name -}}
{{- .Release.Name | trunc 63 | trimSuffix "-" -}}
{{- else -}}
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{- end -}}
{{- end -}}
{{/*
Create chart name and version as used by the chart label.
*/}}
{{- define "oai-nr-pbchsim.chart" -}}
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{/*
Common labels
*/}}
{{- define "oai-nr-pbchsim.labels" -}}
helm.sh/chart: {{ include "oai-nr-pbchsim.chart" . }}
{{ include "oai-nr-pbchsim.selectorLabels" . }}
{{- if .Chart.AppVersion }}
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
{{- end }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
{{- end -}}
{{/*
Selector labels
*/}}
{{- define "oai-nr-pbchsim.selectorLabels" -}}
app.kubernetes.io/name: {{ include "oai-nr-pbchsim.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
{{- end -}}
{{/*
Create the name of the service account to use
*/}}
{{- define "oai-nr-pbchsim.serviceAccountName" -}}
{{- if .Values.serviceAccount.create -}}
{{ default (include "oai-nr-pbchsim.fullname" .) .Values.serviceAccount.name }}
{{- else -}}
{{ default "default" .Values.serviceAccount.name }}
{{- end -}}
{{- end -}}

View File

@@ -0,0 +1,49 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ .Chart.Name }}
labels:
{{- include "oai-nr-pbchsim.labels" . | nindent 4 }}
spec:
replicas: {{ .Values.replicaCount }}
selector:
matchLabels:
{{- include "oai-nr-pbchsim.selectorLabels" . | nindent 6 }}
strategy:
type: Recreate
template:
metadata:
labels:
{{- include "oai-nr-pbchsim.selectorLabels" . | nindent 8 }}
spec:
securityContext:
{{- toYaml .Values.podSecurityContext | nindent 8 }}
{{- if .Values.imagePullSecrets }}
imagePullSecrets:
{{- toYaml . | nindent 8 }}
{{- end }}
containers:
- name: physim
image: "{{ .Values.global.image.repository }}:{{ .Values.global.image.version }}"
imagePullPolicy: {{ .Values.image.pullPolicy }}
securityContext:
{{- toYaml .Values.securityContext | nindent 12 }}
ports:
- containerPort: 80
name: oai-nr-pbchsim
# volumeMounts:
# - mountPath: /opt/oai-nr-pbchsim/certs
# name: certs
command: ["/bin/sh", "-c"]
args:
- >
export OPENAIR_DIR=/opt/oai-physim &&
cd cmake_targets/autotests &&
./run_exec_autotests.bash -g "015104" -q -np -b &&
echo "FINISHED" &&
sleep infinity
dnsPolicy: ClusterFirst
restartPolicy: Always
schedulerName: default-scheduler
serviceAccountName: {{ .Values.global.serviceAccountName }}
terminationGracePeriodSeconds: 30

View File

@@ -0,0 +1,20 @@
apiVersion: v1
kind: Service
metadata:
name: {{ .Chart.Name }}
labels:
{{- include "oai-nr-pbchsim.labels" . | nindent 4 }}
spec:
type: {{ .Values.service.type }}
{{- if contains "ClusterIP" .Values.service.type }}
clusterIP: None
{{- end }}
ports:
- name: oai-nr-pbchsim
# Port accessible outside cluster
port: {{ .Values.service.port }}
# Port to forward to inside the pod
targetPort: {{ .Values.service.Port }}
protocol: TCP
selector:
{{- include "oai-nr-pbchsim.selectorLabels" . | nindent 4 }}

View File

@@ -0,0 +1,63 @@
# Default values for oai-nr-pbchsim.
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.
replicaCount: 1
namespace: "oaicicd-ran-tmp"
image:
registry: local
repository: image-registry.openshift-image-registry.svc:5000/oaicicd-ran-tmp/oai-physim
version: temp
# pullPolicy: IfNotPresent or Never or Always
pullPolicy: Always
imagePullSecrets: []
nameOverride: ""
fullnameOverride: ""
serviceAccount:
# Specifies whether a service account should be created
create: true
# Annotations to add to the service account
annotations: {}
# The name of the service account to use.
# If not set and create is true, a name is generated using the fullname template
name: "oai-nr-pbchsim-sa"
podSecurityContext:
runAsUser: 0
runAsGroup: 0
securityContext:
privileged: true
# capabilities:
# drop:
# - ALL
# readOnlyRootFilesystem: true
# runAsNonRoot: true
# runAsUser: 1000
service:
type: ClusterIP
port: 80
resources: {}
# We usually recommend not to specify default resources and to leave this as a conscious
# choice for the user. This also increases chances charts run on environments with little
# resources, such as Minikube. If you do want to specify resources, uncomment the following
# lines, adjust them as necessary, and remove the curly braces after 'resources:'.
# limits:
# cpu: 100m
# memory: 128Mi
# requests:
# cpu: 100m
# memory: 128Mi
nodeSelector: {}
tolerations: []
affinity: {}

View File

@@ -0,0 +1,36 @@
apiVersion: v1
name: oai-nr-prachsim
description: A Helm subchart for nr-prachsim network function
# A chart can be either an 'application' or a 'library' chart.
#
# Application charts are a collection of templates that can be packaged into versioned archives
# to be deployed.
#
# Library charts provide useful utilities or functions for the chart developer. They're included as
# a dependency of application charts to inject those utilities and functions into the rendering
# pipeline. Library charts do not define any templates and therefore cannot be deployed.
type: application
icon: http://www.openairinterface.org/wp-content/uploads/2015/06/cropped-oai_final_logo.png
# This is the chart version. This version number should be incremented each time you make changes
# to the chart and its templates, including the app version.
version: 0.1.1
# This is the version number of the application being deployed. This version number should be
# incremented each time you make changes to the application.
appVersion: v1
keywords:
- Physical Simulator
- nr-prachsim
- RAN
- 5G
sources:
- https://gitlab.eurecom.fr/oai/openairinterface5g
maintainers:
- name: OPENAIRINTERFACE
email: contact@openairinterface.org

View File

@@ -0,0 +1,15 @@
1. Get the application URL by running these commands:
{{- if contains "NodePort" .Values.service.type }}
export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "oai-nr-prachsim.fullname" . }})
export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}")
echo http://$NODE_IP:$NODE_PORT
{{- else if contains "LoadBalancer" .Values.service.type }}
NOTE: It may take a few minutes for the LoadBalancer IP to be available.
You can watch the status of by running 'kubectl get --namespace {{ .Release.Namespace }} svc -w {{ include "oai-nr-prachsim.fullname" . }}'
export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ include "oai-nr-prachsim.fullname" . }} --template "{{"{{ range (index .status.loadBalancer.ingress 0) }}{{.}}{{ end }}"}}")
echo http://$SERVICE_IP:{{ .Values.service.port }}
{{- else if contains "ClusterIP" .Values.service.type }}
export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app.kubernetes.io/name={{ include "oai-nr-prachsim.name" . }},app.kubernetes.io/instance={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}")
echo "Visit http://127.0.0.1:8080 to use your application"
kubectl --namespace {{ .Release.Namespace }} port-forward $POD_NAME 8080:80
{{- end }}

View File

@@ -0,0 +1,63 @@
{{/* vim: set filetype=mustache: */}}
{{/*
Expand the name of the chart.
*/}}
{{- define "oai-nr-prachsim.name" -}}
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{/*
Create a default fully qualified app name.
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
If release name contains chart name it will be used as a full name.
*/}}
{{- define "oai-nr-prachsim.fullname" -}}
{{- if .Values.fullnameOverride -}}
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}}
{{- else -}}
{{- $name := default .Chart.Name .Values.nameOverride -}}
{{- if contains $name .Release.Name -}}
{{- .Release.Name | trunc 63 | trimSuffix "-" -}}
{{- else -}}
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{- end -}}
{{- end -}}
{{/*
Create chart name and version as used by the chart label.
*/}}
{{- define "oai-nr-prachsim.chart" -}}
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{/*
Common labels
*/}}
{{- define "oai-nr-prachsim.labels" -}}
helm.sh/chart: {{ include "oai-nr-prachsim.chart" . }}
{{ include "oai-nr-prachsim.selectorLabels" . }}
{{- if .Chart.AppVersion }}
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
{{- end }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
{{- end -}}
{{/*
Selector labels
*/}}
{{- define "oai-nr-prachsim.selectorLabels" -}}
app.kubernetes.io/name: {{ include "oai-nr-prachsim.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
{{- end -}}
{{/*
Create the name of the service account to use
*/}}
{{- define "oai-nr-prachsim.serviceAccountName" -}}
{{- if .Values.serviceAccount.create -}}
{{ default (include "oai-nr-prachsim.fullname" .) .Values.serviceAccount.name }}
{{- else -}}
{{ default "default" .Values.serviceAccount.name }}
{{- end -}}
{{- end -}}

View File

@@ -0,0 +1,49 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ .Chart.Name }}
labels:
{{- include "oai-nr-prachsim.labels" . | nindent 4 }}
spec:
replicas: {{ .Values.replicaCount }}
selector:
matchLabels:
{{- include "oai-nr-prachsim.selectorLabels" . | nindent 6 }}
strategy:
type: Recreate
template:
metadata:
labels:
{{- include "oai-nr-prachsim.selectorLabels" . | nindent 8 }}
spec:
securityContext:
{{- toYaml .Values.podSecurityContext | nindent 8 }}
{{- if .Values.imagePullSecrets }}
imagePullSecrets:
{{- toYaml . | nindent 8 }}
{{- end }}
containers:
- name: physim
image: "{{ .Values.global.image.repository }}:{{ .Values.global.image.version }}"
imagePullPolicy: {{ .Values.image.pullPolicy }}
securityContext:
{{- toYaml .Values.securityContext | nindent 12 }}
ports:
- containerPort: 80
name: oai-nr-prachsim
# volumeMounts:
# - mountPath: /opt/oai-nr-prachsim/certs
# name: certs
command: ["/bin/sh", "-c"]
args:
- >
export OPENAIR_DIR=/opt/oai-physim &&
cd cmake_targets/autotests &&
./run_exec_autotests.bash -g "015112" -q -np -b &&
echo "FINISHED" &&
sleep infinity
dnsPolicy: ClusterFirst
restartPolicy: Always
schedulerName: default-scheduler
serviceAccountName: {{ .Values.global.serviceAccountName }}
terminationGracePeriodSeconds: 30

View File

@@ -0,0 +1,20 @@
apiVersion: v1
kind: Service
metadata:
name: {{ .Chart.Name }}
labels:
{{- include "oai-nr-prachsim.labels" . | nindent 4 }}
spec:
type: {{ .Values.service.type }}
{{- if contains "ClusterIP" .Values.service.type }}
clusterIP: None
{{- end }}
ports:
- name: oai-nr-prachsim
# Port accessible outside cluster
port: {{ .Values.service.port }}
# Port to forward to inside the pod
targetPort: {{ .Values.service.Port }}
protocol: TCP
selector:
{{- include "oai-nr-prachsim.selectorLabels" . | nindent 4 }}

View File

@@ -0,0 +1,63 @@
# Default values for oai-nr-prachsim.
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.
replicaCount: 1
namespace: "oaicicd-ran-tmp"
image:
registry: local
repository: image-registry.openshift-image-registry.svc:5000/oaicicd-ran-tmp/oai-physim
version: temp
# pullPolicy: IfNotPresent or Never or Always
pullPolicy: Always
imagePullSecrets: []
nameOverride: ""
fullnameOverride: ""
serviceAccount:
# Specifies whether a service account should be created
create: true
# Annotations to add to the service account
annotations: {}
# The name of the service account to use.
# If not set and create is true, a name is generated using the fullname template
name: "oai-nr-prachsim-sa"
podSecurityContext:
runAsUser: 0
runAsGroup: 0
securityContext:
privileged: true
# capabilities:
# drop:
# - ALL
# readOnlyRootFilesystem: true
# runAsNonRoot: true
# runAsUser: 1000
service:
type: ClusterIP
port: 80
resources: {}
# We usually recommend not to specify default resources and to leave this as a conscious
# choice for the user. This also increases chances charts run on environments with little
# resources, such as Minikube. If you do want to specify resources, uncomment the following
# lines, adjust them as necessary, and remove the curly braces after 'resources:'.
# limits:
# cpu: 100m
# memory: 128Mi
# requests:
# cpu: 100m
# memory: 128Mi
nodeSelector: {}
tolerations: []
affinity: {}

View File

@@ -0,0 +1,36 @@
apiVersion: v1
name: oai-nr-pucchsim
description: A Helm subchart for nr-pucchsim network function
# A chart can be either an 'application' or a 'library' chart.
#
# Application charts are a collection of templates that can be packaged into versioned archives
# to be deployed.
#
# Library charts provide useful utilities or functions for the chart developer. They're included as
# a dependency of application charts to inject those utilities and functions into the rendering
# pipeline. Library charts do not define any templates and therefore cannot be deployed.
type: application
icon: http://www.openairinterface.org/wp-content/uploads/2015/06/cropped-oai_final_logo.png
# This is the chart version. This version number should be incremented each time you make changes
# to the chart and its templates, including the app version.
version: 0.1.1
# This is the version number of the application being deployed. This version number should be
# incremented each time you make changes to the application.
appVersion: v1
keywords:
- Physical Simulator
- nr-pucchsim
- RAN
- 5G
sources:
- https://gitlab.eurecom.fr/oai/openairinterface5g
maintainers:
- name: OPENAIRINTERFACE
email: contact@openairinterface.org

View File

@@ -0,0 +1,15 @@
1. Get the application URL by running these commands:
{{- if contains "NodePort" .Values.service.type }}
export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "oai-nr-pucchsim.fullname" . }})
export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}")
echo http://$NODE_IP:$NODE_PORT
{{- else if contains "LoadBalancer" .Values.service.type }}
NOTE: It may take a few minutes for the LoadBalancer IP to be available.
You can watch the status of by running 'kubectl get --namespace {{ .Release.Namespace }} svc -w {{ include "oai-nr-pucchsim.fullname" . }}'
export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ include "oai-nr-pucchsim.fullname" . }} --template "{{"{{ range (index .status.loadBalancer.ingress 0) }}{{.}}{{ end }}"}}")
echo http://$SERVICE_IP:{{ .Values.service.port }}
{{- else if contains "ClusterIP" .Values.service.type }}
export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app.kubernetes.io/name={{ include "oai-nr-pucchsim.name" . }},app.kubernetes.io/instance={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}")
echo "Visit http://127.0.0.1:8080 to use your application"
kubectl --namespace {{ .Release.Namespace }} port-forward $POD_NAME 8080:80
{{- end }}

View File

@@ -0,0 +1,63 @@
{{/* vim: set filetype=mustache: */}}
{{/*
Expand the name of the chart.
*/}}
{{- define "oai-nr-pucchsim.name" -}}
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{/*
Create a default fully qualified app name.
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
If release name contains chart name it will be used as a full name.
*/}}
{{- define "oai-nr-pucchsim.fullname" -}}
{{- if .Values.fullnameOverride -}}
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}}
{{- else -}}
{{- $name := default .Chart.Name .Values.nameOverride -}}
{{- if contains $name .Release.Name -}}
{{- .Release.Name | trunc 63 | trimSuffix "-" -}}
{{- else -}}
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{- end -}}
{{- end -}}
{{/*
Create chart name and version as used by the chart label.
*/}}
{{- define "oai-nr-pucchsim.chart" -}}
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{/*
Common labels
*/}}
{{- define "oai-nr-pucchsim.labels" -}}
helm.sh/chart: {{ include "oai-nr-pucchsim.chart" . }}
{{ include "oai-nr-pucchsim.selectorLabels" . }}
{{- if .Chart.AppVersion }}
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
{{- end }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
{{- end -}}
{{/*
Selector labels
*/}}
{{- define "oai-nr-pucchsim.selectorLabels" -}}
app.kubernetes.io/name: {{ include "oai-nr-pucchsim.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
{{- end -}}
{{/*
Create the name of the service account to use
*/}}
{{- define "oai-nr-pucchsim.serviceAccountName" -}}
{{- if .Values.serviceAccount.create -}}
{{ default (include "oai-nr-pucchsim.fullname" .) .Values.serviceAccount.name }}
{{- else -}}
{{ default "default" .Values.serviceAccount.name }}
{{- end -}}
{{- end -}}

View File

@@ -0,0 +1,49 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ .Chart.Name }}
labels:
{{- include "oai-nr-pucchsim.labels" . | nindent 4 }}
spec:
replicas: {{ .Values.replicaCount }}
selector:
matchLabels:
{{- include "oai-nr-pucchsim.selectorLabels" . | nindent 6 }}
strategy:
type: Recreate
template:
metadata:
labels:
{{- include "oai-nr-pucchsim.selectorLabels" . | nindent 8 }}
spec:
securityContext:
{{- toYaml .Values.podSecurityContext | nindent 8 }}
{{- if .Values.imagePullSecrets }}
imagePullSecrets:
{{- toYaml . | nindent 8 }}
{{- end }}
containers:
- name: physim
image: "{{ .Values.global.image.repository }}:{{ .Values.global.image.version }}"
imagePullPolicy: {{ .Values.image.pullPolicy }}
securityContext:
{{- toYaml .Values.securityContext | nindent 12 }}
ports:
- containerPort: 80
name: oai-nr-pucchsim
# volumeMounts:
# - mountPath: /opt/oai-nr-pucchsim/certs
# name: certs
command: ["/bin/sh", "-c"]
args:
- >
export OPENAIR_DIR=/opt/oai-physim &&
cd cmake_targets/autotests &&
./run_exec_autotests.bash -g "015109" -q -np -b &&
echo "FINISHED" &&
sleep infinity
dnsPolicy: ClusterFirst
restartPolicy: Always
schedulerName: default-scheduler
serviceAccountName: {{ .Values.global.serviceAccountName }}
terminationGracePeriodSeconds: 30

View File

@@ -0,0 +1,20 @@
apiVersion: v1
kind: Service
metadata:
name: {{ .Chart.Name }}
labels:
{{- include "oai-nr-pucchsim.labels" . | nindent 4 }}
spec:
type: {{ .Values.service.type }}
{{- if contains "ClusterIP" .Values.service.type }}
clusterIP: None
{{- end }}
ports:
- name: oai-nr-pucchsim
# Port accessible outside cluster
port: {{ .Values.service.port }}
# Port to forward to inside the pod
targetPort: {{ .Values.service.Port }}
protocol: TCP
selector:
{{- include "oai-nr-pucchsim.selectorLabels" . | nindent 4 }}

View File

@@ -0,0 +1,63 @@
# Default values for oai-nr-pucchsim.
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.
replicaCount: 1
namespace: "oaicicd-ran-tmp"
image:
registry: local
repository: image-registry.openshift-image-registry.svc:5000/oaicicd-ran-tmp/oai-physim
version: temp
# pullPolicy: IfNotPresent or Never or Always
pullPolicy: Always
imagePullSecrets: []
nameOverride: ""
fullnameOverride: ""
serviceAccount:
# Specifies whether a service account should be created
create: true
# Annotations to add to the service account
annotations: {}
# The name of the service account to use.
# If not set and create is true, a name is generated using the fullname template
name: "oai-nr-pucchsim-sa"
podSecurityContext:
runAsUser: 0
runAsGroup: 0
securityContext:
privileged: true
# capabilities:
# drop:
# - ALL
# readOnlyRootFilesystem: true
# runAsNonRoot: true
# runAsUser: 1000
service:
type: ClusterIP
port: 80
resources: {}
# We usually recommend not to specify default resources and to leave this as a conscious
# choice for the user. This also increases chances charts run on environments with little
# resources, such as Minikube. If you do want to specify resources, uncomment the following
# lines, adjust them as necessary, and remove the curly braces after 'resources:'.
# limits:
# cpu: 100m
# memory: 128Mi
# requests:
# cpu: 100m
# memory: 128Mi
nodeSelector: {}
tolerations: []
affinity: {}

View File

@@ -0,0 +1,36 @@
apiVersion: v1
name: oai-nr-ulschsim
description: A Helm subchart for nr-ulschsim network function
# A chart can be either an 'application' or a 'library' chart.
#
# Application charts are a collection of templates that can be packaged into versioned archives
# to be deployed.
#
# Library charts provide useful utilities or functions for the chart developer. They're included as
# a dependency of application charts to inject those utilities and functions into the rendering
# pipeline. Library charts do not define any templates and therefore cannot be deployed.
type: application
icon: http://www.openairinterface.org/wp-content/uploads/2015/06/cropped-oai_final_logo.png
# This is the chart version. This version number should be incremented each time you make changes
# to the chart and its templates, including the app version.
version: 0.1.1
# This is the version number of the application being deployed. This version number should be
# incremented each time you make changes to the application.
appVersion: v1
keywords:
- Physical Simulator
- nr-ulschsim
- RAN
- 5G
sources:
- https://gitlab.eurecom.fr/oai/openairinterface5g
maintainers:
- name: OPENAIRINTERFACE
email: contact@openairinterface.org

View File

@@ -0,0 +1,15 @@
1. Get the application URL by running these commands:
{{- if contains "NodePort" .Values.service.type }}
export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "oai-nr-ulschsim.fullname" . }})
export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}")
echo http://$NODE_IP:$NODE_PORT
{{- else if contains "LoadBalancer" .Values.service.type }}
NOTE: It may take a few minutes for the LoadBalancer IP to be available.
You can watch the status of by running 'kubectl get --namespace {{ .Release.Namespace }} svc -w {{ include "oai-nr-ulschsim.fullname" . }}'
export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ include "oai-nr-ulschsim.fullname" . }} --template "{{"{{ range (index .status.loadBalancer.ingress 0) }}{{.}}{{ end }}"}}")
echo http://$SERVICE_IP:{{ .Values.service.port }}
{{- else if contains "ClusterIP" .Values.service.type }}
export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app.kubernetes.io/name={{ include "oai-nr-ulschsim.name" . }},app.kubernetes.io/instance={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}")
echo "Visit http://127.0.0.1:8080 to use your application"
kubectl --namespace {{ .Release.Namespace }} port-forward $POD_NAME 8080:80
{{- end }}

View File

@@ -0,0 +1,63 @@
{{/* vim: set filetype=mustache: */}}
{{/*
Expand the name of the chart.
*/}}
{{- define "oai-nr-ulschsim.name" -}}
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{/*
Create a default fully qualified app name.
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
If release name contains chart name it will be used as a full name.
*/}}
{{- define "oai-nr-ulschsim.fullname" -}}
{{- if .Values.fullnameOverride -}}
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}}
{{- else -}}
{{- $name := default .Chart.Name .Values.nameOverride -}}
{{- if contains $name .Release.Name -}}
{{- .Release.Name | trunc 63 | trimSuffix "-" -}}
{{- else -}}
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{- end -}}
{{- end -}}
{{/*
Create chart name and version as used by the chart label.
*/}}
{{- define "oai-nr-ulschsim.chart" -}}
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{/*
Common labels
*/}}
{{- define "oai-nr-ulschsim.labels" -}}
helm.sh/chart: {{ include "oai-nr-ulschsim.chart" . }}
{{ include "oai-nr-ulschsim.selectorLabels" . }}
{{- if .Chart.AppVersion }}
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
{{- end }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
{{- end -}}
{{/*
Selector labels
*/}}
{{- define "oai-nr-ulschsim.selectorLabels" -}}
app.kubernetes.io/name: {{ include "oai-nr-ulschsim.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
{{- end -}}
{{/*
Create the name of the service account to use
*/}}
{{- define "oai-nr-ulschsim.serviceAccountName" -}}
{{- if .Values.serviceAccount.create -}}
{{ default (include "oai-nr-ulschsim.fullname" .) .Values.serviceAccount.name }}
{{- else -}}
{{ default "default" .Values.serviceAccount.name }}
{{- end -}}
{{- end -}}

View File

@@ -0,0 +1,49 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ .Chart.Name }}
labels:
{{- include "oai-nr-ulschsim.labels" . | nindent 4 }}
spec:
replicas: {{ .Values.replicaCount }}
selector:
matchLabels:
{{- include "oai-nr-ulschsim.selectorLabels" . | nindent 6 }}
strategy:
type: Recreate
template:
metadata:
labels:
{{- include "oai-nr-ulschsim.selectorLabels" . | nindent 8 }}
spec:
securityContext:
{{- toYaml .Values.podSecurityContext | nindent 8 }}
{{- if .Values.imagePullSecrets }}
imagePullSecrets:
{{- toYaml . | nindent 8 }}
{{- end }}
containers:
- name: physim
image: "{{ .Values.global.image.repository }}:{{ .Values.global.image.version }}"
imagePullPolicy: {{ .Values.image.pullPolicy }}
securityContext:
{{- toYaml .Values.securityContext | nindent 12 }}
ports:
- containerPort: 80
name: oai-nr-ulschsim
# volumeMounts:
# - mountPath: /opt/oai-nr-ulschsim/certs
# name: certs
command: ["/bin/sh", "-c"]
args:
- >
export OPENAIR_DIR=/opt/oai-physim &&
cd cmake_targets/autotests &&
./run_exec_autotests.bash -g "015108" -q -np -b &&
echo "FINISHED" &&
sleep infinity
dnsPolicy: ClusterFirst
restartPolicy: Always
schedulerName: default-scheduler
serviceAccountName: {{ .Values.global.serviceAccountName }}
terminationGracePeriodSeconds: 30

View File

@@ -0,0 +1,20 @@
apiVersion: v1
kind: Service
metadata:
name: {{ .Chart.Name }}
labels:
{{- include "oai-nr-ulschsim.labels" . | nindent 4 }}
spec:
type: {{ .Values.service.type }}
{{- if contains "ClusterIP" .Values.service.type }}
clusterIP: None
{{- end }}
ports:
- name: oai-nr-ulschsim
# Port accessible outside cluster
port: {{ .Values.service.port }}
# Port to forward to inside the pod
targetPort: {{ .Values.service.Port }}
protocol: TCP
selector:
{{- include "oai-nr-ulschsim.selectorLabels" . | nindent 4 }}

View File

@@ -0,0 +1,63 @@
# Default values for oai-nr-ulschsim.
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.
replicaCount: 1
namespace: "oaicicd-ran-tmp"
image:
registry: local
repository: image-registry.openshift-image-registry.svc:5000/oaicicd-ran-tmp/oai-physim
version: temp
# pullPolicy: IfNotPresent or Never or Always
pullPolicy: Always
imagePullSecrets: []
nameOverride: ""
fullnameOverride: ""
serviceAccount:
# Specifies whether a service account should be created
create: true
# Annotations to add to the service account
annotations: {}
# The name of the service account to use.
# If not set and create is true, a name is generated using the fullname template
name: "oai-nr-ulschsim-sa"
podSecurityContext:
runAsUser: 0
runAsGroup: 0
securityContext:
privileged: true
# capabilities:
# drop:
# - ALL
# readOnlyRootFilesystem: true
# runAsNonRoot: true
# runAsUser: 1000
service:
type: ClusterIP
port: 80
resources: {}
# We usually recommend not to specify default resources and to leave this as a conscious
# choice for the user. This also increases chances charts run on environments with little
# resources, such as Minikube. If you do want to specify resources, uncomment the following
# lines, adjust them as necessary, and remove the curly braces after 'resources:'.
# limits:
# cpu: 100m
# memory: 128Mi
# requests:
# cpu: 100m
# memory: 128Mi
nodeSelector: {}
tolerations: []
affinity: {}

View File

@@ -0,0 +1,36 @@
apiVersion: v1
name: oai-nr-ulsim
description: A Helm subchart for nr-ulsim network function
# A chart can be either an 'application' or a 'library' chart.
#
# Application charts are a collection of templates that can be packaged into versioned archives
# to be deployed.
#
# Library charts provide useful utilities or functions for the chart developer. They're included as
# a dependency of application charts to inject those utilities and functions into the rendering
# pipeline. Library charts do not define any templates and therefore cannot be deployed.
type: application
icon: http://www.openairinterface.org/wp-content/uploads/2015/06/cropped-oai_final_logo.png
# This is the chart version. This version number should be incremented each time you make changes
# to the chart and its templates, including the app version.
version: 0.1.1
# This is the version number of the application being deployed. This version number should be
# incremented each time you make changes to the application.
appVersion: v1
keywords:
- Physical Simulator
- nr-ulsim
- RAN
- 5G
sources:
- https://gitlab.eurecom.fr/oai/openairinterface5g
maintainers:
- name: OPENAIRINTERFACE
email: contact@openairinterface.org

View File

@@ -0,0 +1,15 @@
1. Get the application URL by running these commands:
{{- if contains "NodePort" .Values.service.type }}
export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "oai-nr-ulsim.fullname" . }})
export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}")
echo http://$NODE_IP:$NODE_PORT
{{- else if contains "LoadBalancer" .Values.service.type }}
NOTE: It may take a few minutes for the LoadBalancer IP to be available.
You can watch the status of by running 'kubectl get --namespace {{ .Release.Namespace }} svc -w {{ include "oai-nr-ulsim.fullname" . }}'
export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ include "oai-nr-ulsim.fullname" . }} --template "{{"{{ range (index .status.loadBalancer.ingress 0) }}{{.}}{{ end }}"}}")
echo http://$SERVICE_IP:{{ .Values.service.port }}
{{- else if contains "ClusterIP" .Values.service.type }}
export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app.kubernetes.io/name={{ include "oai-nr-ulsim.name" . }},app.kubernetes.io/instance={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}")
echo "Visit http://127.0.0.1:8080 to use your application"
kubectl --namespace {{ .Release.Namespace }} port-forward $POD_NAME 8080:80
{{- end }}

View File

@@ -0,0 +1,63 @@
{{/* vim: set filetype=mustache: */}}
{{/*
Expand the name of the chart.
*/}}
{{- define "oai-nr-ulsim.name" -}}
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{/*
Create a default fully qualified app name.
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
If release name contains chart name it will be used as a full name.
*/}}
{{- define "oai-nr-ulsim.fullname" -}}
{{- if .Values.fullnameOverride -}}
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}}
{{- else -}}
{{- $name := default .Chart.Name .Values.nameOverride -}}
{{- if contains $name .Release.Name -}}
{{- .Release.Name | trunc 63 | trimSuffix "-" -}}
{{- else -}}
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{- end -}}
{{- end -}}
{{/*
Create chart name and version as used by the chart label.
*/}}
{{- define "oai-nr-ulsim.chart" -}}
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{/*
Common labels
*/}}
{{- define "oai-nr-ulsim.labels" -}}
helm.sh/chart: {{ include "oai-nr-ulsim.chart" . }}
{{ include "oai-nr-ulsim.selectorLabels" . }}
{{- if .Chart.AppVersion }}
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
{{- end }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
{{- end -}}
{{/*
Selector labels
*/}}
{{- define "oai-nr-ulsim.selectorLabels" -}}
app.kubernetes.io/name: {{ include "oai-nr-ulsim.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
{{- end -}}
{{/*
Create the name of the service account to use
*/}}
{{- define "oai-nr-ulsim.serviceAccountName" -}}
{{- if .Values.serviceAccount.create -}}
{{ default (include "oai-nr-ulsim.fullname" .) .Values.serviceAccount.name }}
{{- else -}}
{{ default "default" .Values.serviceAccount.name }}
{{- end -}}
{{- end -}}

View File

@@ -0,0 +1,49 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ .Chart.Name }}
labels:
{{- include "oai-nr-ulsim.labels" . | nindent 4 }}
spec:
replicas: {{ .Values.replicaCount }}
selector:
matchLabels:
{{- include "oai-nr-ulsim.selectorLabels" . | nindent 6 }}
strategy:
type: Recreate
template:
metadata:
labels:
{{- include "oai-nr-ulsim.selectorLabels" . | nindent 8 }}
spec:
securityContext:
{{- toYaml .Values.podSecurityContext | nindent 8 }}
{{- if .Values.imagePullSecrets }}
imagePullSecrets:
{{- toYaml . | nindent 8 }}
{{- end }}
containers:
- name: physim
image: "{{ .Values.global.image.repository }}:{{ .Values.global.image.version }}"
imagePullPolicy: {{ .Values.image.pullPolicy }}
securityContext:
{{- toYaml .Values.securityContext | nindent 12 }}
ports:
- containerPort: 80
name: oai-nr-ulsim
# volumeMounts:
# - mountPath: /opt/oai-nr-ulsim/certs
# name: certs
command: ["/bin/sh", "-c"]
args:
- >
export OPENAIR_DIR=/opt/oai-physim &&
cd cmake_targets/autotests &&
./run_exec_autotests.bash -g "015111" -q -np -b &&
echo "FINISHED" &&
sleep infinity
dnsPolicy: ClusterFirst
restartPolicy: Always
schedulerName: default-scheduler
serviceAccountName: {{ .Values.global.serviceAccountName }}
terminationGracePeriodSeconds: 30

View File

@@ -0,0 +1,20 @@
apiVersion: v1
kind: Service
metadata:
name: {{ .Chart.Name }}
labels:
{{- include "oai-nr-ulsim.labels" . | nindent 4 }}
spec:
type: {{ .Values.service.type }}
{{- if contains "ClusterIP" .Values.service.type }}
clusterIP: None
{{- end }}
ports:
- name: oai-nr-ulsim
# Port accessible outside cluster
port: {{ .Values.service.port }}
# Port to forward to inside the pod
targetPort: {{ .Values.service.Port }}
protocol: TCP
selector:
{{- include "oai-nr-ulsim.selectorLabels" . | nindent 4 }}

View File

@@ -0,0 +1,63 @@
# Default values for oai-nr-ulsim.
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.
replicaCount: 1
namespace: "oaicicd-ran-tmp"
image:
registry: local
repository: image-registry.openshift-image-registry.svc:5000/oaicicd-ran-tmp/oai-physim
version: temp
# pullPolicy: IfNotPresent or Never or Always
pullPolicy: Always
imagePullSecrets: []
nameOverride: ""
fullnameOverride: ""
serviceAccount:
# Specifies whether a service account should be created
create: true
# Annotations to add to the service account
annotations: {}
# The name of the service account to use.
# If not set and create is true, a name is generated using the fullname template
name: "oai-nr-ulsim-sa"
podSecurityContext:
runAsUser: 0
runAsGroup: 0
securityContext:
privileged: true
# capabilities:
# drop:
# - ALL
# readOnlyRootFilesystem: true
# runAsNonRoot: true
# runAsUser: 1000
service:
type: ClusterIP
port: 80
resources: {}
# We usually recommend not to specify default resources and to leave this as a conscious
# choice for the user. This also increases chances charts run on environments with little
# resources, such as Minikube. If you do want to specify resources, uncomment the following
# lines, adjust them as necessary, and remove the curly braces after 'resources:'.
# limits:
# cpu: 100m
# memory: 128Mi
# requests:
# cpu: 100m
# memory: 128Mi
nodeSelector: {}
tolerations: []
affinity: {}

View File

@@ -0,0 +1,36 @@
apiVersion: v1
name: oai-polartest
description: A Helm subchart for polartest network function
# A chart can be either an 'application' or a 'library' chart.
#
# Application charts are a collection of templates that can be packaged into versioned archives
# to be deployed.
#
# Library charts provide useful utilities or functions for the chart developer. They're included as
# a dependency of application charts to inject those utilities and functions into the rendering
# pipeline. Library charts do not define any templates and therefore cannot be deployed.
type: application
icon: http://www.openairinterface.org/wp-content/uploads/2015/06/cropped-oai_final_logo.png
# This is the chart version. This version number should be incremented each time you make changes
# to the chart and its templates, including the app version.
version: 0.1.1
# This is the version number of the application being deployed. This version number should be
# incremented each time you make changes to the application.
appVersion: v1
keywords:
- Physical Simulator
- polartest
- RAN
- 4G
sources:
- https://gitlab.eurecom.fr/oai/openairinterface5g
maintainers:
- name: OPENAIRINTERFACE
email: contact@openairinterface.org

View File

@@ -0,0 +1,15 @@
1. Get the application URL by running these commands:
{{- if contains "NodePort" .Values.service.type }}
export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "oai-polartest.fullname" . }})
export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}")
echo http://$NODE_IP:$NODE_PORT
{{- else if contains "LoadBalancer" .Values.service.type }}
NOTE: It may take a few minutes for the LoadBalancer IP to be available.
You can watch the status of by running 'kubectl get --namespace {{ .Release.Namespace }} svc -w {{ include "oai-polartest.fullname" . }}'
export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ include "oai-polartest.fullname" . }} --template "{{"{{ range (index .status.loadBalancer.ingress 0) }}{{.}}{{ end }}"}}")
echo http://$SERVICE_IP:{{ .Values.service.port }}
{{- else if contains "ClusterIP" .Values.service.type }}
export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app.kubernetes.io/name={{ include "oai-polartest.name" . }},app.kubernetes.io/instance={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}")
echo "Visit http://127.0.0.1:8080 to use your application"
kubectl --namespace {{ .Release.Namespace }} port-forward $POD_NAME 8080:80
{{- end }}

View File

@@ -0,0 +1,63 @@
{{/* vim: set filetype=mustache: */}}
{{/*
Expand the name of the chart.
*/}}
{{- define "oai-polartest.name" -}}
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{/*
Create a default fully qualified app name.
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
If release name contains chart name it will be used as a full name.
*/}}
{{- define "oai-polartest.fullname" -}}
{{- if .Values.fullnameOverride -}}
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}}
{{- else -}}
{{- $name := default .Chart.Name .Values.nameOverride -}}
{{- if contains $name .Release.Name -}}
{{- .Release.Name | trunc 63 | trimSuffix "-" -}}
{{- else -}}
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{- end -}}
{{- end -}}
{{/*
Create chart name and version as used by the chart label.
*/}}
{{- define "oai-polartest.chart" -}}
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{/*
Common labels
*/}}
{{- define "oai-polartest.labels" -}}
helm.sh/chart: {{ include "oai-polartest.chart" . }}
{{ include "oai-polartest.selectorLabels" . }}
{{- if .Chart.AppVersion }}
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
{{- end }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
{{- end -}}
{{/*
Selector labels
*/}}
{{- define "oai-polartest.selectorLabels" -}}
app.kubernetes.io/name: {{ include "oai-polartest.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
{{- end -}}
{{/*
Create the name of the service account to use
*/}}
{{- define "oai-polartest.serviceAccountName" -}}
{{- if .Values.serviceAccount.create -}}
{{ default (include "oai-polartest.fullname" .) .Values.serviceAccount.name }}
{{- else -}}
{{ default "default" .Values.serviceAccount.name }}
{{- end -}}
{{- end -}}

View File

@@ -0,0 +1,49 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ .Chart.Name }}
labels:
{{- include "oai-polartest.labels" . | nindent 4 }}
spec:
replicas: {{ .Values.replicaCount }}
selector:
matchLabels:
{{- include "oai-polartest.selectorLabels" . | nindent 6 }}
strategy:
type: Recreate
template:
metadata:
labels:
{{- include "oai-polartest.selectorLabels" . | nindent 8 }}
spec:
securityContext:
{{- toYaml .Values.podSecurityContext | nindent 8 }}
{{- if .Values.imagePullSecrets }}
imagePullSecrets:
{{- toYaml . | nindent 8 }}
{{- end }}
containers:
- name: physim
image: "{{ .Values.global.image.repository }}:{{ .Values.global.image.version }}"
imagePullPolicy: {{ .Values.image.pullPolicy }}
securityContext:
{{- toYaml .Values.securityContext | nindent 12 }}
ports:
- containerPort: 80
name: oai-polartest
# volumeMounts:
# - mountPath: /opt/oai-polartest/certs
# name: certs
command: ["/bin/sh", "-c"]
args:
- >
export OPENAIR_DIR=/opt/oai-physim &&
cd cmake_targets/autotests &&
./run_exec_autotests.bash -g "015103" -q -np -b &&
echo "FINISHED" &&
sleep infinity
dnsPolicy: ClusterFirst
restartPolicy: Always
schedulerName: default-scheduler
serviceAccountName: {{ .Values.global.serviceAccountName }}
terminationGracePeriodSeconds: 30

View File

@@ -0,0 +1,20 @@
apiVersion: v1
kind: Service
metadata:
name: {{ .Chart.Name }}
labels:
{{- include "oai-polartest.labels" . | nindent 4 }}
spec:
type: {{ .Values.service.type }}
{{- if contains "ClusterIP" .Values.service.type }}
clusterIP: None
{{- end }}
ports:
- name: oai-polartest
# Port accessible outside cluster
port: {{ .Values.service.port }}
# Port to forward to inside the pod
targetPort: {{ .Values.service.Port }}
protocol: TCP
selector:
{{- include "oai-polartest.selectorLabels" . | nindent 4 }}

View File

@@ -0,0 +1,63 @@
# Default values for oai-polartest.
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.
replicaCount: 1
namespace: "oaicicd-ran-tmp"
image:
registry: local
repository: image-registry.openshift-image-registry.svc:5000/oaicicd-ran-tmp/oai-physim
version: temp
# pullPolicy: IfNotPresent or Never or Always
pullPolicy: Always
imagePullSecrets: []
nameOverride: ""
fullnameOverride: ""
serviceAccount:
# Specifies whether a service account should be created
create: true
# Annotations to add to the service account
annotations: {}
# The name of the service account to use.
# If not set and create is true, a name is generated using the fullname template
name: "oai-polartest-sa"
podSecurityContext:
runAsUser: 0
runAsGroup: 0
securityContext:
privileged: true
# capabilities:
# drop:
# - ALL
# readOnlyRootFilesystem: true
# runAsNonRoot: true
# runAsUser: 1000
service:
type: ClusterIP
port: 80
resources: {}
# We usually recommend not to specify default resources and to leave this as a conscious
# choice for the user. This also increases chances charts run on environments with little
# resources, such as Minikube. If you do want to specify resources, uncomment the following
# lines, adjust them as necessary, and remove the curly braces after 'resources:'.
# limits:
# cpu: 100m
# memory: 128Mi
# requests:
# cpu: 100m
# memory: 128Mi
nodeSelector: {}
tolerations: []
affinity: {}

View File

@@ -0,0 +1,36 @@
apiVersion: v1
name: oai-smallblocktest
description: A Helm subchart for smallblocktest network function
# A chart can be either an 'application' or a 'library' chart.
#
# Application charts are a collection of templates that can be packaged into versioned archives
# to be deployed.
#
# Library charts provide useful utilities or functions for the chart developer. They're included as
# a dependency of application charts to inject those utilities and functions into the rendering
# pipeline. Library charts do not define any templates and therefore cannot be deployed.
type: application
icon: http://www.openairinterface.org/wp-content/uploads/2015/06/cropped-oai_final_logo.png
# This is the chart version. This version number should be incremented each time you make changes
# to the chart and its templates, including the app version.
version: 0.1.1
# This is the version number of the application being deployed. This version number should be
# incremented each time you make changes to the application.
appVersion: v1
keywords:
- Physical Simulator
- smallblocktest
- RAN
- 4G
sources:
- https://gitlab.eurecom.fr/oai/openairinterface5g
maintainers:
- name: OPENAIRINTERFACE
email: contact@openairinterface.org

View File

@@ -0,0 +1,15 @@
1. Get the application URL by running these commands:
{{- if contains "NodePort" .Values.service.type }}
export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "oai-smallblocktest.fullname" . }})
export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}")
echo http://$NODE_IP:$NODE_PORT
{{- else if contains "LoadBalancer" .Values.service.type }}
NOTE: It may take a few minutes for the LoadBalancer IP to be available.
You can watch the status of by running 'kubectl get --namespace {{ .Release.Namespace }} svc -w {{ include "oai-smallblocktest.fullname" . }}'
export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ include "oai-smallblocktest.fullname" . }} --template "{{"{{ range (index .status.loadBalancer.ingress 0) }}{{.}}{{ end }}"}}")
echo http://$SERVICE_IP:{{ .Values.service.port }}
{{- else if contains "ClusterIP" .Values.service.type }}
export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app.kubernetes.io/name={{ include "oai-smallblocktest.name" . }},app.kubernetes.io/instance={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}")
echo "Visit http://127.0.0.1:8080 to use your application"
kubectl --namespace {{ .Release.Namespace }} port-forward $POD_NAME 8080:80
{{- end }}

View File

@@ -0,0 +1,63 @@
{{/* vim: set filetype=mustache: */}}
{{/*
Expand the name of the chart.
*/}}
{{- define "oai-smallblocktest.name" -}}
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{/*
Create a default fully qualified app name.
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
If release name contains chart name it will be used as a full name.
*/}}
{{- define "oai-smallblocktest.fullname" -}}
{{- if .Values.fullnameOverride -}}
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}}
{{- else -}}
{{- $name := default .Chart.Name .Values.nameOverride -}}
{{- if contains $name .Release.Name -}}
{{- .Release.Name | trunc 63 | trimSuffix "-" -}}
{{- else -}}
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{- end -}}
{{- end -}}
{{/*
Create chart name and version as used by the chart label.
*/}}
{{- define "oai-smallblocktest.chart" -}}
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{/*
Common labels
*/}}
{{- define "oai-smallblocktest.labels" -}}
helm.sh/chart: {{ include "oai-smallblocktest.chart" . }}
{{ include "oai-smallblocktest.selectorLabels" . }}
{{- if .Chart.AppVersion }}
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
{{- end }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
{{- end -}}
{{/*
Selector labels
*/}}
{{- define "oai-smallblocktest.selectorLabels" -}}
app.kubernetes.io/name: {{ include "oai-smallblocktest.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
{{- end -}}
{{/*
Create the name of the service account to use
*/}}
{{- define "oai-smallblocktest.serviceAccountName" -}}
{{- if .Values.serviceAccount.create -}}
{{ default (include "oai-smallblocktest.fullname" .) .Values.serviceAccount.name }}
{{- else -}}
{{ default "default" .Values.serviceAccount.name }}
{{- end -}}
{{- end -}}

View File

@@ -0,0 +1,49 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ .Chart.Name }}
labels:
{{- include "oai-smallblocktest.labels" . | nindent 4 }}
spec:
replicas: {{ .Values.replicaCount }}
selector:
matchLabels:
{{- include "oai-smallblocktest.selectorLabels" . | nindent 6 }}
strategy:
type: Recreate
template:
metadata:
labels:
{{- include "oai-smallblocktest.selectorLabels" . | nindent 8 }}
spec:
securityContext:
{{- toYaml .Values.podSecurityContext | nindent 8 }}
{{- if .Values.imagePullSecrets }}
imagePullSecrets:
{{- toYaml . | nindent 8 }}
{{- end }}
containers:
- name: physim
image: "{{ .Values.global.image.repository }}:{{ .Values.global.image.version }}"
imagePullPolicy: {{ .Values.image.pullPolicy }}
securityContext:
{{- toYaml .Values.securityContext | nindent 12 }}
ports:
- containerPort: 80
name: oai-smallblock
# volumeMounts:
# - mountPath: /opt/oai-smallblocktest/certs
# name: certs
command: ["/bin/sh", "-c"]
args:
- >
export OPENAIR_DIR=/opt/oai-physim &&
cd cmake_targets/autotests &&
./run_exec_autotests.bash -g "015107" -q -np -b &&
echo "FINISHED" &&
sleep infinity
dnsPolicy: ClusterFirst
restartPolicy: Always
schedulerName: default-scheduler
serviceAccountName: {{ .Values.global.serviceAccountName }}
terminationGracePeriodSeconds: 30

View File

@@ -0,0 +1,20 @@
apiVersion: v1
kind: Service
metadata:
name: {{ .Chart.Name }}
labels:
{{- include "oai-smallblocktest.labels" . | nindent 4 }}
spec:
type: {{ .Values.service.type }}
{{- if contains "ClusterIP" .Values.service.type }}
clusterIP: None
{{- end }}
ports:
- name: oai-smallblocktest
# Port accessible outside cluster
port: {{ .Values.service.port }}
# Port to forward to inside the pod
targetPort: {{ .Values.service.Port }}
protocol: TCP
selector:
{{- include "oai-smallblocktest.selectorLabels" . | nindent 4 }}

View File

@@ -0,0 +1,63 @@
# Default values for oai-smallblocktest.
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.
replicaCount: 1
namespace: "oaicicd-ran-tmp"
image:
registry: local
repository: image-registry.openshift-image-registry.svc:5000/oaicicd-ran-tmp/oai-physim
version: temp
# pullPolicy: IfNotPresent or Never or Always
pullPolicy: Always
imagePullSecrets: []
nameOverride: ""
fullnameOverride: ""
serviceAccount:
# Specifies whether a service account should be created
create: true
# Annotations to add to the service account
annotations: {}
# The name of the service account to use.
# If not set and create is true, a name is generated using the fullname template
name: "oai-smallblocktest-sa"
podSecurityContext:
runAsUser: 0
runAsGroup: 0
securityContext:
privileged: true
# capabilities:
# drop:
# - ALL
# readOnlyRootFilesystem: true
# runAsNonRoot: true
# runAsUser: 1000
service:
type: ClusterIP
port: 80
resources: {}
# We usually recommend not to specify default resources and to leave this as a conscious
# choice for the user. This also increases chances charts run on environments with little
# resources, such as Minikube. If you do want to specify resources, uncomment the following
# lines, adjust them as necessary, and remove the curly braces after 'resources:'.
# limits:
# cpu: 100m
# memory: 128Mi
# requests:
# cpu: 100m
# memory: 128Mi
nodeSelector: {}
tolerations: []
affinity: {}

View File

@@ -0,0 +1,36 @@
apiVersion: v1
name: oai-ulsim
description: A Helm subchart for ulsim network function
# A chart can be either an 'application' or a 'library' chart.
#
# Application charts are a collection of templates that can be packaged into versioned archives
# to be deployed.
#
# Library charts provide useful utilities or functions for the chart developer. They're included as
# a dependency of application charts to inject those utilities and functions into the rendering
# pipeline. Library charts do not define any templates and therefore cannot be deployed.
type: application
icon: http://www.openairinterface.org/wp-content/uploads/2015/06/cropped-oai_final_logo.png
# This is the chart version. This version number should be incremented each time you make changes
# to the chart and its templates, including the app version.
version: 0.1.1
# This is the version number of the application being deployed. This version number should be
# incremented each time you make changes to the application.
appVersion: v1
keywords:
- Physical Simulator
- ulsim
- RAN
- 4G
sources:
- https://gitlab.eurecom.fr/oai/openairinterface5g
maintainers:
- name: OPENAIRINTERFACE
email: contact@openairinterface.org

View File

@@ -0,0 +1,15 @@
1. Get the application URL by running these commands:
{{- if contains "NodePort" .Values.service.type }}
export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "oai-ulsim.fullname" . }})
export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}")
echo http://$NODE_IP:$NODE_PORT
{{- else if contains "LoadBalancer" .Values.service.type }}
NOTE: It may take a few minutes for the LoadBalancer IP to be available.
You can watch the status of by running 'kubectl get --namespace {{ .Release.Namespace }} svc -w {{ include "oai-ulsim.fullname" . }}'
export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ include "oai-ulsim.fullname" . }} --template "{{"{{ range (index .status.loadBalancer.ingress 0) }}{{.}}{{ end }}"}}")
echo http://$SERVICE_IP:{{ .Values.service.port }}
{{- else if contains "ClusterIP" .Values.service.type }}
export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app.kubernetes.io/name={{ include "oai-ulsim.name" . }},app.kubernetes.io/instance={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}")
echo "Visit http://127.0.0.1:8080 to use your application"
kubectl --namespace {{ .Release.Namespace }} port-forward $POD_NAME 8080:80
{{- end }}

View File

@@ -0,0 +1,63 @@
{{/* vim: set filetype=mustache: */}}
{{/*
Expand the name of the chart.
*/}}
{{- define "oai-ulsim.name" -}}
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{/*
Create a default fully qualified app name.
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
If release name contains chart name it will be used as a full name.
*/}}
{{- define "oai-ulsim.fullname" -}}
{{- if .Values.fullnameOverride -}}
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}}
{{- else -}}
{{- $name := default .Chart.Name .Values.nameOverride -}}
{{- if contains $name .Release.Name -}}
{{- .Release.Name | trunc 63 | trimSuffix "-" -}}
{{- else -}}
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{- end -}}
{{- end -}}
{{/*
Create chart name and version as used by the chart label.
*/}}
{{- define "oai-ulsim.chart" -}}
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{/*
Common labels
*/}}
{{- define "oai-ulsim.labels" -}}
helm.sh/chart: {{ include "oai-ulsim.chart" . }}
{{ include "oai-ulsim.selectorLabels" . }}
{{- if .Chart.AppVersion }}
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
{{- end }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
{{- end -}}
{{/*
Selector labels
*/}}
{{- define "oai-ulsim.selectorLabels" -}}
app.kubernetes.io/name: {{ include "oai-ulsim.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
{{- end -}}
{{/*
Create the name of the service account to use
*/}}
{{- define "oai-ulsim.serviceAccountName" -}}
{{- if .Values.serviceAccount.create -}}
{{ default (include "oai-ulsim.fullname" .) .Values.serviceAccount.name }}
{{- else -}}
{{ default "default" .Values.serviceAccount.name }}
{{- end -}}
{{- end -}}

View File

@@ -0,0 +1,49 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ .Chart.Name }}
labels:
{{- include "oai-ulsim.labels" . | nindent 4 }}
spec:
replicas: {{ .Values.replicaCount }}
selector:
matchLabels:
{{- include "oai-ulsim.selectorLabels" . | nindent 6 }}
strategy:
type: Recreate
template:
metadata:
labels:
{{- include "oai-ulsim.selectorLabels" . | nindent 8 }}
spec:
securityContext:
{{- toYaml .Values.podSecurityContext | nindent 8 }}
{{- if .Values.imagePullSecrets }}
imagePullSecrets:
{{- toYaml . | nindent 8 }}
{{- end }}
containers:
- name: physim
image: "{{ .Values.global.image.repository }}:{{ .Values.global.image.version }}"
imagePullPolicy: {{ .Values.image.pullPolicy }}
securityContext:
{{- toYaml .Values.securityContext | nindent 12 }}
ports:
- containerPort: 80
name: oai-ulsim
# volumeMounts:
# - mountPath: /opt/oai-ulsim/certs
# name: certs
command: ["/bin/sh", "-c"]
args:
- >
export OPENAIR_DIR=/opt/oai-physim &&
cd cmake_targets/autotests &&
./run_exec_autotests.bash -g "015101" -q -np -b &&
echo "FINISHED" &&
sleep infinity
dnsPolicy: ClusterFirst
restartPolicy: Always
schedulerName: default-scheduler
serviceAccountName: {{ .Values.global.serviceAccountName }}
terminationGracePeriodSeconds: 30

View File

@@ -0,0 +1,20 @@
apiVersion: v1
kind: Service
metadata:
name: {{ .Chart.Name }}
labels:
{{- include "oai-ulsim.labels" . | nindent 4 }}
spec:
type: {{ .Values.service.type }}
{{- if contains "ClusterIP" .Values.service.type }}
clusterIP: None
{{- end }}
ports:
- name: oai-ulsim
# Port accessible outside cluster
port: {{ .Values.service.port }}
# Port to forward to inside the pod
targetPort: {{ .Values.service.Port }}
protocol: TCP
selector:
{{- include "oai-ulsim.selectorLabels" . | nindent 4 }}

View File

@@ -0,0 +1,63 @@
# Default values for oai-ulsim.
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.
replicaCount: 1
namespace: "oaicicd-ran-tmp"
image:
registry: local
repository: image-registry.openshift-image-registry.svc:5000/oaicicd-ran-tmp/oai-physim
version: temp
# pullPolicy: IfNotPresent or Never or Always
pullPolicy: Always
imagePullSecrets: []
nameOverride: ""
fullnameOverride: ""
serviceAccount:
# Specifies whether a service account should be created
create: true
# Annotations to add to the service account
annotations: {}
# The name of the service account to use.
# If not set and create is true, a name is generated using the fullname template
name: "oai-ulsim-sa"
podSecurityContext:
runAsUser: 0
runAsGroup: 0
securityContext:
privileged: true
# capabilities:
# drop:
# - ALL
# readOnlyRootFilesystem: true
# runAsNonRoot: true
# runAsUser: 1000
service:
type: ClusterIP
port: 80
resources: {}
# We usually recommend not to specify default resources and to leave this as a conscious
# choice for the user. This also increases chances charts run on environments with little
# resources, such as Minikube. If you do want to specify resources, uncomment the following
# lines, adjust them as necessary, and remove the curly braces after 'resources:'.
# limits:
# cpu: 100m
# memory: 128Mi
# requests:
# cpu: 100m
# memory: 128Mi
nodeSelector: {}
tolerations: []
affinity: {}

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