diff --git a/ci-scripts/conf_files/gnb-du.sa.band78.106prb.usrpb200.conf b/ci-scripts/conf_files/gnb-du.sa.band78.106prb.usrpb200.conf
index 4daf7c62fd..58ba62696a 100644
--- a/ci-scripts/conf_files/gnb-du.sa.band78.106prb.usrpb200.conf
+++ b/ci-scripts/conf_files/gnb-du.sa.band78.106prb.usrpb200.conf
@@ -146,7 +146,11 @@ gNBs =
);
first_active_bwp = 1;
- bwp_list = ({ scs = 1; bwpStart = 0; bwpSize = 106;});
+ bwp_list = (
+ { scs = 1; bwpStart = 0; bwpSize = 106;},
+ { scs = 1; bwpStart = 0; bwpSize = 36;},
+ { scs = 1; bwpStart = 36; bwpSize = 70;}
+ );
# ------- SCTP definitions
SCTP :
diff --git a/ci-scripts/xml_files/container_sa_e1_b200_quectel.xml b/ci-scripts/xml_files/container_sa_e1_b200_quectel.xml
index 89a5ebfd6c..836143431a 100644
--- a/ci-scripts/xml_files/container_sa_e1_b200_quectel.xml
+++ b/ci-scripts/xml_files/container_sa_e1_b200_quectel.xml
@@ -30,20 +30,28 @@
310000
800813
330101
- 330102
- 330103
310001
400001
350000
- 370001
- 370000
- 370002
370003
370004
+ 370002
360001
100002
360002
350000
+ 410002
+ 370012
+ 400002
+ 410003
+ 370013
+ 400003
+ 410000
+ 350000
+ 400000
+ 410001
+ 350000
+ 400001
310011
310002
330201
@@ -88,24 +96,10 @@
Deploy_Object
- Deploy gNB-CU-CP in a container
+ Deploy gNB-CU-CP/gNB-CU-UP/gNB-DU (TDD/n76/40MHz/B200)
ofqot
ci-scripts/yaml_files/sa_e1_b200_gnb
- gnb_cucp
-
-
- Deploy_Object
- Deploy gNB-CU-UP in a container
- ofqot
- ci-scripts/yaml_files/sa_e1_b200_gnb
- gnb_cuup
-
-
- Deploy_Object
- Deploy gNB-DU (TDD/Band78/40MHz/B200) in a container
- ofqot
- ci-scripts/yaml_files/sa_e1_b200_gnb
- gnb_du_tdd
+ gnb_cucp gnb_cuup gnb_du_tdd
@@ -132,16 +126,6 @@
25
-
- Iperf
- iperf (DL/80Mbps/UDP)(30 sec)
- -u -b 80M -t 30 -R
- idefix
- sabox-nepes
- 10
- 95
-
-
Custom_Command
Check UE is on dedicated BWP ID 1
@@ -149,19 +133,76 @@
echo ci get_current_bwp | nc -N 127.0.0.1 9091 | grep 'DL BWP ID 1 (dedicated) UL BWP ID 1 (dedicated)'
-
+
+ Custom_Command
+ Switch to dedicated BWP ID 1
+ ofqot
+ echo ci trigger_bwp_switch 1 | nc -N 127.0.0.1 9091 | grep 'triggered BWP switch to BWP ID 1 for UE'
+
+
+
+ Custom_Command
+ Check UE is on initial BWP ID 0
+ ofqot
+ echo ci get_current_bwp | nc -N 127.0.0.1 9091 | grep 'DL BWP ID 0 (initial) UL BWP ID 0 (initial)'
+
+
+
+ Custom_Command
+ Switch to dedicated BWP ID 2
+ ofqot
+ echo ci trigger_bwp_switch 2 | nc -N 127.0.0.1 9091 | grep 'triggered BWP switch to BWP ID 2 for UE'
+
+
+
Iperf
- iperf (UL/8Mbps/UDP)(30 sec)
- -u -b 8M -t 30
+ iperf (DL/TCP)(10 sec)(single-ue profile)
+ -t 10 -R
idefix
sabox-nepes
- 1
- 95
+ 35
+
+
+
+ Custom_Command
+ Check UE is on dedicated BWP ID 2
+ ofqot
+ echo ci get_current_bwp | nc -N 127.0.0.1 9091 | grep 'DL BWP ID 2 (dedicated) UL BWP ID 2 (dedicated)'
+
+
+
+ Custom_Command
+ Switch to dedicated BWP ID 3
+ ofqot
+ echo ci trigger_bwp_switch 3 | nc -N 127.0.0.1 9091 | grep 'triggered BWP switch to BWP ID 3 for UE'
+
+
+
+ Iperf
+ iperf (DL/TCP)(10 sec)(single-ue profile)
+ -t 10 -R
+ idefix
+ sabox-nepes
+ 85
+
+
+
+ Custom_Command
+ Check UE is on dedicated BWP ID 3
+ ofqot
+ echo ci get_current_bwp | nc -N 127.0.0.1 9091 | grep 'DL BWP ID 3 (dedicated) UL BWP ID 3 (dedicated)'
+
+
+
+ Custom_Command
+ Switch to initial BWP ID 0
+ ofqot
+ echo ci trigger_bwp_switch 0 | nc -N 127.0.0.1 9091 | grep 'triggered BWP switch to BWP ID 0 for UE'
Iperf
- iperf (BIDIR TCP)(10 sec)(single-ue profile)
+ iperf (BIDIR TCP)(20 sec)(single-ue profile)
-t 20 --bidir
idefix
sabox-nepes
@@ -169,17 +210,17 @@
Iperf
- iperf (DL/TCP)(30 sec)(single-ue profile)
- -t 30 -R
+ iperf (DL/TCP)(20 sec)(single-ue profile)
+ -t 20 -R
idefix
sabox-nepes
- 30
+ 140
Iperf
- iperf (UL/TCP)(30 sec)(single-ue profile)
- -t 30
+ iperf (UL/TCP)(20 sec)(single-ue profile)
+ -t 20
idefix
sabox-nepes
15
diff --git a/common/utils/telnetsrv/telnetsrv_ci.c b/common/utils/telnetsrv/telnetsrv_ci.c
index 8b00d529c5..11c8ce5dc1 100644
--- a/common/utils/telnetsrv/telnetsrv_ci.c
+++ b/common/utils/telnetsrv/telnetsrv_ci.c
@@ -38,6 +38,7 @@
#include "openair2/LAYER2/nr_rlc/nr_rlc_ue_manager.h"
#include "openair2/LAYER2/nr_rlc/nr_rlc_entity_am.h"
#include "openair2/LAYER2/NR_MAC_gNB/mac_proto.h"
+#include "openair2/LAYER2/NR_MAC_gNB/mac_config.h"
#include "openair2/RRC/NR/rrc_gNB_mobility.h"
#include "openair3/NGAP/ngap_gNB_ue_context.h"
@@ -276,6 +277,8 @@ static int get_current_bwp(char *buf, int debug, telnet_printfunc_t prnt)
if (rnti < 0)
ERROR_MSG_RET("could not identify UE (no UE, no such RNTI, or multiple UEs)\n");
NR_UE_info_t *UE = find_nr_UE(&RC.nrmac[0]->UE_info, rnti);
+ if (!UE)
+ ERROR_MSG_RET("could not find UE with RNTI %04x\n", rnti);
int dl_bwp = UE->current_DL_BWP.bwp_id;
const char *dl_bwp_text = dl_bwp > 0 ? "dedicated" : "initial";
int ul_bwp = UE->current_UL_BWP.bwp_id;
@@ -365,6 +368,24 @@ static int trigger_ngap_pdu_session_release(char *buf, int debug, telnet_printfu
return 0;
}
+static int trigger_bwp_switch(char *buf, int debug, telnet_printfunc_t prnt)
+{
+ char *sbwpId = strtok(buf, " ");
+ int bwpId = atoi(sbwpId);
+ char *srnti = strtok(NULL, " ");
+ prnt("bwpId %d rnti %s\n", bwpId, srnti);
+ int rnti = fetch_rnti(srnti, prnt);
+ if (rnti < 0)
+ ERROR_MSG_RET("could not identify UE (no UE, no such RNTI, or multiple UEs)\n");
+ if (!nr_trigger_bwp_switch(rnti, bwpId)) {
+ prnt("failed trigger BWP switch for UE %04x BWP ID %d\n", rnti, bwpId);
+ return -1;
+ } else {
+ prnt("triggered BWP switch to BWP ID %d for UE %04x\n", bwpId, rnti);
+ return 0;
+ }
+}
+
static telnetshell_cmddef_t cicmds[] = {
{"get_single_rnti", "", get_single_rnti},
{"force_reestab", "[rnti(hex,opt)]", trigger_reestab},
@@ -374,6 +395,7 @@ static telnetshell_cmddef_t cicmds[] = {
{"trigger_f1_ho", "[rrc_ue_id(int,opt)]", rrc_gNB_trigger_f1_ho},
{"fetch_du_by_ue_id", "[rrc_ue_id(int,opt)]", fetch_du_by_ue_id},
{"get_current_bwp", "[rnti(hex,opt)]", get_current_bwp},
+ {"trigger_bwp_switch", "newBWPId [rnti(hex,opt)]", trigger_bwp_switch},
{"trigger_n2_ho", "[neighbour_pci(uint32_t),ueId(uint32_t)]", rrc_gNB_trigger_n2_ho},
{"pdu_session_release", "[gNB_ue_ngap_id(int,opt)]", trigger_ngap_pdu_session_release},
{"", "", NULL},