Skip to content

Commit 75e191b

Browse files
FabianEckermanncodebot
authored andcommitted
ci: add inter du inter frequency ho e2e test
1 parent e8debac commit 75e191b

File tree

3 files changed

+110
-9
lines changed

3 files changed

+110
-9
lines changed

tests/e2e/tests/handover.py

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -173,14 +173,18 @@ def _handover_sequentially(
173173
warning_as_errors: bool = True,
174174
stop_gnb_first: bool = False,
175175
verbose_cu_mac: bool = True,
176+
inter_freq_ho: bool = False,
176177
):
177178
if not gnb_array and not du_array and not cu:
178-
logging.error("Invalid configuration: either gNB(s) or CU and DU(s) are required")
179+
logging.error("Invalid configuration: Either gNB(s) or CU and DU(s) are required")
179180
return
180181

181182
if gnb_array:
182183
if cu or du_array:
183-
logging.error("Invalid configuration: either gNB(s) or CU and DU(s) must be provided, not both")
184+
logging.error("Invalid configuration: Either gNB(s) or CU and DU(s) must be provided, not both")
185+
return
186+
if inter_freq_ho:
187+
logging.error("Invalid configuration: Only Inter-DU inter-frequency handover is supported")
184188
return
185189
else:
186190
if cu and not du_array:
@@ -214,6 +218,7 @@ def _handover_sequentially(
214218
stop_gnb_first=stop_gnb_first,
215219
verbose_cu_mac=verbose_cu_mac,
216220
ue_startup_timeout=ue_startup_timeout,
221+
inter_freq_ho=inter_freq_ho,
217222
) as (ue_attach_info_dict, movements, traffic_seconds):
218223

219224
for ue_stub, ue_attach_info in ue_attach_info_dict.items():
@@ -335,6 +340,7 @@ def _handover_multi_ues(
335340
stop_gnb_first: bool = False,
336341
verbose_cu_mac: bool = True,
337342
ue_startup_timeout: int = UE_STARTUP_TIMEOUT,
343+
inter_freq_ho: bool = False,
338344
) -> Generator[
339345
Tuple[
340346
Dict[UEStub, UEAttachedInfo],
@@ -350,7 +356,7 @@ def _handover_multi_ues(
350356
else:
351357
logging.info("Inter-CU Handover Test (Ping)")
352358
else:
353-
logging.info("Inter-DU Handover Test (Ping)")
359+
logging.info("Inter-DU %sHandover Test (Ping)", "Inter-Frequency " if inter_freq_ho else "")
354360

355361
original_position = (0, 0, 0)
356362

@@ -370,6 +376,7 @@ def _handover_multi_ues(
370376
nof_antennas_dl=nof_antennas_dl,
371377
prach_config_index=prach_config_index,
372378
enable_2gnbs=(gnb_array is not None and len(gnb_array) == 2),
379+
inter_freq_ho=inter_freq_ho,
373380
)
374381

375382
configure_artifacts(

tests/e2e/tests/inter_du_handover.py

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,3 +67,39 @@ def test_zmq_sequentially(
6767
noise_spd=noise_spd,
6868
sleep_between_movement_steps=1,
6969
)
70+
71+
72+
@mark.zmq
73+
@mark.flaky(
74+
reruns=1, only_rerun=["failed to start", "Attach timeout reached", "StatusCode.ABORTED", "StatusCode.UNKNOWN"]
75+
)
76+
# pylint: disable=too-many-arguments,too-many-positional-arguments
77+
def test_zmq_inter_freq_sequentially(
78+
retina_manager: RetinaTestManager,
79+
retina_data: RetinaTestData,
80+
ue_8: UEStub,
81+
fivegc: FiveGCStub,
82+
cu: CUStub,
83+
du_2: DUStub,
84+
metrics_summary: MetricsSummary,
85+
):
86+
"""
87+
ZMQ Inter-DU Handover tests
88+
"""
89+
90+
# _inter_du_inter_frequency_handover_sequentially(
91+
_handover_sequentially(
92+
retina_manager=retina_manager,
93+
retina_data=retina_data,
94+
ue_array=ue_8,
95+
fivegc=fivegc,
96+
cu=cu,
97+
du_array=du_2,
98+
metrics_summary=metrics_summary,
99+
band=3,
100+
common_scs=15,
101+
bandwidth=50,
102+
noise_spd=0,
103+
sleep_between_movement_steps=1,
104+
inter_freq_ho=True,
105+
)

tests/e2e/tests/steps/configuration.py

Lines changed: 64 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -139,6 +139,7 @@ def configure_test_parameters(
139139
ue_sds: Optional[List[str]] = None,
140140
warning_allowlist: Optional[List[str]] = None,
141141
enable_2gnbs: bool = False,
142+
inter_freq_ho: bool = False,
142143
):
143144
"""
144145
Configure test parameters
@@ -163,16 +164,71 @@ def configure_test_parameters(
163164
},
164165
},
165166
]
167+
du_node_list = []
168+
ue_cell_bands = []
169+
if inter_freq_ho:
170+
inter_freq_band = 78
171+
inter_freq_cell_1_dl_arfcn = 649980
172+
inter_freq_cell_2_dl_arfcn = 650000
173+
inter_freq_ssb_nr_arfcn = 649632
174+
inter_freq_scs = 30
175+
inter_freq_bandwidth = 20
176+
177+
du_node_list = [
178+
{
179+
"name": "du0-0",
180+
"parameters": {
181+
"band": inter_freq_band,
182+
"dl_arfcn": inter_freq_cell_1_dl_arfcn,
183+
"common_scs": inter_freq_scs,
184+
"bandwidth": inter_freq_bandwidth,
185+
},
186+
},
187+
{
188+
"name": "du1-0",
189+
"parameters": {
190+
"band": inter_freq_band,
191+
"dl_arfcn": inter_freq_cell_2_dl_arfcn,
192+
"common_scs": inter_freq_scs,
193+
"bandwidth": inter_freq_bandwidth,
194+
},
195+
},
196+
]
197+
198+
ue_cell_bands = [
199+
{
200+
"band": inter_freq_band,
201+
"bandwidth": inter_freq_bandwidth,
202+
"dl_nr_arfcn": inter_freq_cell_1_dl_arfcn,
203+
"ssb_nr_arfcn": inter_freq_ssb_nr_arfcn,
204+
"subcarrier_spacing": inter_freq_scs,
205+
"ssb_subcarrier_spacing": inter_freq_scs,
206+
},
207+
{
208+
"band": inter_freq_band,
209+
"bandwidth": inter_freq_bandwidth,
210+
"dl_nr_arfcn": inter_freq_cell_2_dl_arfcn,
211+
"ssb_nr_arfcn": inter_freq_ssb_nr_arfcn,
212+
"subcarrier_spacing": inter_freq_scs,
213+
"ssb_subcarrier_spacing": inter_freq_scs,
214+
},
215+
]
216+
else:
217+
ue_cell_bands = [
218+
{
219+
"band": band,
220+
"bandwidth": bandwidth,
221+
"dl_nr_arfcn": _get_dl_arfcn(band),
222+
"ssb_nr_arfcn": _get_ssb_arfcn(band, bandwidth),
223+
"subcarrier_spacing": common_scs,
224+
"ssb_subcarrier_spacing": common_scs,
225+
}
226+
for _ in range(num_cells)
227+
]
166228

167229
retina_data.test_config = {
168230
"ue": {
169231
"parameters": {
170-
"band": band,
171-
"dl_arfcn": _get_dl_arfcn(band),
172-
"ssb_arfcn": _get_ssb_arfcn(band, bandwidth),
173-
"common_scs": common_scs,
174-
"ssb_scs": common_scs,
175-
"bandwidth": bandwidth,
176232
"global_timing_advance": global_timing_advance,
177233
"log_ip_level": log_ip_level,
178234
"ul_noise_spd": ul_noise_spd,
@@ -184,6 +240,7 @@ def configure_test_parameters(
184240
"nof_antennas_ul": nof_antennas_ul,
185241
"pdcch_log": pdcch_log,
186242
"ue_sds": ue_sds if ue_sds is not None else [],
243+
"cells": ue_cell_bands,
187244
},
188245
},
189246
"gnb": {
@@ -217,6 +274,7 @@ def configure_test_parameters(
217274
},
218275
},
219276
"du": {
277+
"node_list": du_node_list,
220278
"parameters": {
221279
"band": band,
222280
"dl_arfcn": _get_dl_arfcn(band),

0 commit comments

Comments
 (0)