Commit 0bbd4464 authored by Guido Casati's avatar Guido Casati Committed by Robert Schmidt

Add test to trigger re-establishment to RFSIM F1 CI

* trigger re-establshemnt on DU: reset RLC counters on DRB 1
  for OAI UE, since SRB 1 does not work for lack of periodic
  measurements reports
* how is the re-establishment triggered?
  * a transmission on DRB 1 occurs
  * detection of a mismatch of RLC counters at the UE side
  * max number of RLC retransmissions reached
  * RLF detection
* verify re-establishment on CU: we ping the core from the UE; this
  sends packets on DRB, and because the sequence number mismatches, will
  trigger a reestablishment. We accept in the ping that a couple of
  packets might be lost; after ping is over, reestablishment must be
  done as well (else the ping will already fail).
parent 2cc63bf1
......@@ -34,6 +34,11 @@
030020
030021
030022
040001
020022
040002
030021
030022
100021
222222
</TestCaseRequestedList>
......@@ -117,6 +122,31 @@
<iperf_bitrate_threshold>90</iperf_bitrate_threshold>
</testCase>
<testCase id="040001">
<class>Custom_Command</class>
<desc>Trigger Reestablishment</desc>
<node>cacofonix</node>
<command>echo ci force_reestab | nc 192.168.71.171 9090 | grep -E 'Reset RLC counters of UE RNTI [0-9a-f]{4} to trigger reestablishment'</command>
<command_fail>yes</command_fail>
</testCase>
<testCase id="020022">
<class>Ping</class>
<desc>Ping ext-dn from all NR-UEs</desc>
<id>rfsim5g_ue</id>
<nodes>cacofonix</nodes>
<ping_args> -c 20 192.168.72.135 -i0.5 -w25</ping_args>
<ping_packetloss_threshold>80</ping_packetloss_threshold>
</testCase>
<testCase id="040002">
<class>Custom_Command</class>
<desc>Verify Reestablishment</desc>
<node>cacofonix</node>
<command>echo ci get_reestab_count | nc 192.168.71.150 9090 | grep -E 'UE RNTI [0-9a-f]{4} reestab 1'</command>
<command_fail>yes</command_fail>
</testCase>
<testCase id="040021">
<class>Custom_Command</class>
<desc>Simulate a disruption of DL radio channel (ploss 55)(5 sec)</desc>
......
......@@ -87,8 +87,11 @@ services:
container_name: rfsim5g-oai-cu
cap_drop:
- ALL
environment:
environment:
USE_ADDITIONAL_OPTIONS: --log_config.global_log_options level,nocolor,time
--rfsimulator.options chanmod
--telnetsrv --telnetsrv.listenaddr 192.168.71.150
--telnetsrv.shrmod ci
ASAN_OPTIONS: detect_leaks=0
depends_on:
- oai-ext-dn
......@@ -113,6 +116,7 @@ services:
--log_config.global_log_options level,nocolor,time
--rfsimulator.options chanmod
--telnetsrv --telnetsrv.listenaddr 192.168.71.171
--telnetsrv.shrmod ci
ASAN_OPTIONS: detect_leaks=0:detect_odr_violation=0
depends_on:
- oai-cu
......
......@@ -1096,8 +1096,14 @@ bool nr_rlc_update_id(int from_id, int to_id)
return true;
}
/* This function is for testing purposes. At least on a COTS UE, it will
* trigger a reestablishment. */
/**
* @brief This function is for testing purposes.
* Re-establishment is triggered by resetting RLC counters of the bearer,
* which leads to UE reaching maximum RLC retransmissions, RLF detection
* and RRC triggering re-sync. It is assumed that there is ongoing traffic on the bearer.
* - With COTS UEs, triggers re-establishment on SRB 1, where periodical measurement reports are sent.
* - With OAI UE, triggers re-establishment on DRB 1, assuming there is ongoing data traffic.
*/
void nr_rlc_test_trigger_reestablishment(int ue_id)
{
nr_rlc_manager_lock(nr_rlc_ue_manager);
......@@ -1111,6 +1117,9 @@ void nr_rlc_test_trigger_reestablishment(int ue_id)
* as the UE context is created. */
nr_rlc_entity_t *ent = ue->srb[0];
ent->reestablishment(ent);
/* Trigger re-establishment on OAI UE */
nr_rlc_entity_t *drb = ue->drb[0];
drb->reestablishment(drb);
nr_rlc_manager_unlock(nr_rlc_ue_manager);
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment