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).
This commit is contained in:
committed by
Robert Schmidt
parent
2cc63bf195
commit
0bbd446478
@@ -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>
|
||||
|
||||
@@ -89,6 +89,9 @@ services:
|
||||
- ALL
|
||||
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);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user