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},