Commit 82fb9fcc authored by Jaroslava Fiedlerova's avatar Jaroslava Fiedlerova
Browse files

Merge branch 'integration_2025_w11' into 'develop'

Integration: `2025.w11`

Closes #848

See merge request !3309

* !3306 Add a new CI label: nrUE
* !3303 remove wrong assertion for B4 PRACH format
* !3296 fix(nrLDPC_decoder): fix numIter increment
* !3150 Rework of NR UE RA procedures
* !3305 CI: Fix timeout for OC Deployments
* !3307 Add CI UE test for RA with C-RNTI
* !3271 Handle changing N_TA_offset correctly
* !3313 Small fix for jenkins message formatting
parents 11d83dd4 c4551fec
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -65,8 +65,8 @@ pipeline {
              message += " - ~BUILD-ONLY (execute only build stages)\n"
              message += " - ~4G-LTE (perform 4G tests)\n"
              message += " - ~5G-NR (perform 5G tests)\n"
              message += " - ~CI (perform both 4G and 5G tests)\n\n"
              message += " - ~nrUE (perform only 5G-UE related tests including physims excluding LDPC tests)\n"
              message += " - ~CI (perform both 4G and 5G tests)\n"
              message += " - ~nrUE (perform only 5G-UE related tests including physims excluding LDPC tests)\n\n"
              message += "Not performing CI due to lack of labels"
              addGitLabMRComment comment: message
              error('Not performing CI due to lack of labels')
+7 −7
Original line number Diff line number Diff line
@@ -72,8 +72,8 @@ def OC_deploy_CN(cmd, ocUserName, ocPassword, ocNamespace, path):
	succeeded = OC_login(cmd, ocUserName, ocPassword, ocNamespace)
	if not succeeded:
		return False, CONST.OC_LOGIN_FAIL
	cmd.run('helm uninstall oai5gcn --wait --timeout 60s')
	ret = cmd.run(f'helm install --wait --timeout 120s oai5gcn {path}/ci-scripts/charts/oai-5g-basic/.')
	cmd.run(f'helm list -aq -n {ocNamespace} | xargs -r helm uninstall -n {ocNamespace} --wait')
	ret = cmd.run(f'helm install --wait oai5gcn {path}/ci-scripts/charts/oai-5g-basic/.')
	if ret.returncode != 0:
		logging.error('OC OAI CN5G: Deployment failed')
		OC_logout(cmd)
@@ -100,10 +100,10 @@ def OC_undeploy_CN(cmd, ocUserName, ocPassword, ocNamespace, path):
			cmd.run(f'oc logs -f {podName} {ci} &> {path}/logs/{ii}.log &')
	cmd.run(f'cd {path}/logs && zip -r -qq test_logs_CN.zip *.log')
	cmd.copyin(f'{path}/logs/test_logs_CN.zip','test_logs_CN.zip')
	ret = cmd.run('helm uninstall --wait --timeout 60s oai5gcn')
	ret = cmd.run(f'helm list -aq -n {ocNamespace} | xargs -r helm uninstall -n {ocNamespace} --wait')
	if ret.returncode != 0:
		logging.error('OC OAI CN5G: Undeployment failed')
		cmd.run('helm uninstall --wait --timeout 60s oai5gcn')
		cmd.run(f'helm list -aq -n {ocNamespace} | xargs -r helm uninstall -n {ocNamespace} --wait')
		OC_logout(cmd)
		return False, CONST.OC_PROJECT_FAIL
	report = cmd.run('oc get pods')
@@ -330,7 +330,7 @@ class Cluster:
			self._recreate_bc('ran-base', baseTag, 'openshift/ran-base-bc.yaml')
			ranbase_job = self._start_build('ran-base')
			attemptedImages += ['ran-base']
			status = ranbase_job is not None and self._wait_build_end([ranbase_job], 800)
			status = ranbase_job is not None and self._wait_build_end([ranbase_job], 1000)
			if not status: logging.error('failure during build of ran-base')
			self.cmd.run(f'oc logs {ranbase_job} &> cmake_targets/log/ran-base.log') # cannot use cmd.run because of redirect
			# recover logs by mounting image
@@ -392,7 +392,7 @@ class Cluster:
			gnb_aw2s_job = self._start_build('oai-gnb-aw2s')
			attemptedImages += ['oai-gnb-aw2s']

			wait = enb_job is not None and gnb_job is not None and gnb_aw2s_job is not None and self._wait_build_end([enb_job, gnb_job, gnb_aw2s_job], 600)
			wait = enb_job is not None and gnb_job is not None and gnb_aw2s_job is not None and self._wait_build_end([enb_job, gnb_job, gnb_aw2s_job], 800)
			if not wait: logging.error('error during build of eNB/gNB')
			status = status and wait
			# recover logs
@@ -421,7 +421,7 @@ class Cluster:
			nrue_job = self._start_build('oai-nr-ue')
			attemptedImages += ['oai-nr-ue']

			wait = nr_cuup_job is not None and lteue_job is not None and nrue_job is not None and self._wait_build_end([nr_cuup_job, lteue_job, nrue_job], 600)
			wait = nr_cuup_job is not None and lteue_job is not None and nrue_job is not None and self._wait_build_end([nr_cuup_job, lteue_job, nrue_job], 800)
			if not wait: logging.error('error during build of nr-cuup/lteUE/nrUE')
			status = status and wait
			# recover logs
+17 −0
Original line number Diff line number Diff line
@@ -34,6 +34,9 @@
 020002
 030001
 030002
 040001
 000004
 020002
 100001
 222222
        </TestCaseRequestedList>
@@ -76,6 +79,12 @@
                <nodes>cacofonix</nodes>
        </testCase>

        <testCase id="000004">
                <class>IdleSleep</class>
                <desc>Sleep</desc>
                <idle_sleep_time_in_sec>5</idle_sleep_time_in_sec>
        </testCase>

        <testCase id="020001">
                <class>Ping</class>
                <desc>Ping ext-dn from NR-UE</desc>
@@ -118,6 +127,14 @@
                <iperf_bitrate_threshold>90</iperf_bitrate_threshold>
        </testCase>

        <testCase id="040001">
                <class>Custom_Command</class>
                <desc>Force Msg3 C-RNTI RA</desc>
                <node>cacofonix</node>
                <command>echo ciUE force_crnti_ra | nc 192.168.71.150 8091</command>
                <command_fail>yes</command_fail>
        </testCase>

        <testCase id="100001">
                <class>Undeploy_Object</class>
                <always_exec>true</always_exec>
+4 −1
Original line number Diff line number Diff line
@@ -109,7 +109,10 @@ services:
            - NET_ADMIN  # for interface bringup
            - NET_RAW    # for ping
        environment:
            USE_ADDITIONAL_OPTIONS: --rfsim -r 24 --ssb 24 --numerology 1 -C 3604800000 --uicc0.imsi 208990100001100 --rfsimulator.serveraddr 192.168.71.140 --log_config.global_log_options level,nocolor,time
            USE_ADDITIONAL_OPTIONS: --rfsim -r 24 --ssb 24 --numerology 1 -C 3604800000 --uicc0.imsi 208990100001100
                                    --rfsimulator.serveraddr 192.168.71.140 --log_config.global_log_options level,nocolor,time
                                    --telnetsrv --telnetsrv.shrmod ciUE --telnetsrv.listenaddr 192.168.71.150 --telnetsrv.listenport 8091
            ASAN_OPTIONS: detect_leaks=0:detect_odr_violation=0
        depends_on:
            - oai-gnb
        networks:
+9 −2
Original line number Diff line number Diff line
@@ -1380,15 +1380,22 @@ int set_default_nta_offset(frequency_range_t freq_range, uint32_t samples_per_su
void nr_timer_start(NR_timer_t *timer)
{
  timer->active = true;
  timer->suspended = false;
  timer->counter = 0;
}

void nr_timer_stop(NR_timer_t *timer)
{
  timer->active = false;
  timer->suspended = false;
  timer->counter = 0;
}

void nr_timer_suspension(NR_timer_t *timer)
{
  timer->suspended = !timer->suspended;
}

bool nr_timer_is_active(const NR_timer_t *timer)
{
  return timer->active;
@@ -1399,7 +1406,7 @@ bool nr_timer_tick(NR_timer_t *timer)
  bool expired = false;
  if (timer->active) {
    timer->counter += timer->step;
    if (timer->target == UINT_MAX) // infinite target, never expires
    if (timer->target == UINT_MAX || timer->suspended) // infinite target, never expires
      return false;
    expired = nr_timer_expired(timer);
    if (expired)
@@ -1410,7 +1417,7 @@ bool nr_timer_tick(NR_timer_t *timer)

bool nr_timer_expired(const NR_timer_t *timer)
{
  if (timer->target == UINT_MAX) // infinite target, never expires
  if (timer->target == UINT_MAX || timer->suspended) // infinite target, never expires
    return false;
  return timer->counter >= timer->target;
}
Loading