From 4d289b92cc7fb62868019acfe7eccd9a8f23c02a Mon Sep 17 00:00:00 2001 From: francescomani Date: Mon, 21 Mar 2022 11:59:31 +0100 Subject: [PATCH] fix xp=1 option and added RUNMODEM description for MIMO configuration --- .../gNB_SA_n78_106PRB.2x2_usrpn310.conf | 2 +- .../gNB_SA_n78_133PRB.2x2_usrpn310.conf | 2 +- .../gnb.band78.nsa_2x2.106PRB.usrpn310.conf | 2 +- .../gnb.band78.sa.fr1.106PRB.2x2.usrpn310.conf | 2 +- .../gnb.band78.sa.fr1.162PRB.2x2.usrpn310.conf | 2 +- doc/RUNMODEM.md | 17 +++++++++++++++++ doc/images/mimo_antenna_ports.png | Bin 0 -> 18753 bytes openair2/LAYER2/NR_MAC_gNB/config.c | 5 +++-- .../LAYER2/NR_MAC_gNB/gNB_scheduler_dlsch.c | 2 +- .../NR_MAC_gNB/gNB_scheduler_primitives.c | 7 ++++--- openair2/LAYER2/NR_MAC_gNB/mac_proto.h | 2 +- openair2/LAYER2/NR_MAC_gNB/nr_mac_gNB.h | 2 +- 12 files changed, 32 insertions(+), 13 deletions(-) create mode 100644 doc/images/mimo_antenna_ports.png diff --git a/ci-scripts/conf_files/gNB_SA_n78_106PRB.2x2_usrpn310.conf b/ci-scripts/conf_files/gNB_SA_n78_106PRB.2x2_usrpn310.conf index 3b08b70ecf..82d665d904 100644 --- a/ci-scripts/conf_files/gNB_SA_n78_106PRB.2x2_usrpn310.conf +++ b/ci-scripts/conf_files/gNB_SA_n78_106PRB.2x2_usrpn310.conf @@ -38,7 +38,7 @@ gNBs = ////////// Physical parameters: ssb_SubcarrierOffset = 0; - pdsch_AntennaPorts_N1 = 2; + pdsch_AntennaPorts_XP = 2; pusch_AntennaPorts = 2; pdcch_ConfigSIB1 = ( diff --git a/ci-scripts/conf_files/gNB_SA_n78_133PRB.2x2_usrpn310.conf b/ci-scripts/conf_files/gNB_SA_n78_133PRB.2x2_usrpn310.conf index 0d9abc275d..937d287d24 100644 --- a/ci-scripts/conf_files/gNB_SA_n78_133PRB.2x2_usrpn310.conf +++ b/ci-scripts/conf_files/gNB_SA_n78_133PRB.2x2_usrpn310.conf @@ -39,7 +39,7 @@ gNBs = ////////// Physical parameters: ssb_SubcarrierOffset = 0; - pdsch_AntennaPorts_N1 = 2; + pdsch_AntennaPorts_XP = 2; pusch_AntennaPorts = 2; pdcch_ConfigSIB1 = ( diff --git a/ci-scripts/conf_files/gnb.band78.nsa_2x2.106PRB.usrpn310.conf b/ci-scripts/conf_files/gnb.band78.nsa_2x2.106PRB.usrpn310.conf index 96bf3debd8..213c166826 100644 --- a/ci-scripts/conf_files/gnb.band78.nsa_2x2.106PRB.usrpn310.conf +++ b/ci-scripts/conf_files/gnb.band78.nsa_2x2.106PRB.usrpn310.conf @@ -20,7 +20,7 @@ gNBs = ////////// Physical parameters: ssb_SubcarrierOffset = 31; //0; - pdsch_AntennaPorts_N1 = 2; + pdsch_AntennaPorts_XP = 2; pusch_AntennaPorts = 2; pusch_TargetSNRx10 = 200; pucch_TargetSNRx10 = 200; diff --git a/ci-scripts/conf_files/gnb.band78.sa.fr1.106PRB.2x2.usrpn310.conf b/ci-scripts/conf_files/gnb.band78.sa.fr1.106PRB.2x2.usrpn310.conf index ff10eee268..7a3afd1127 100644 --- a/ci-scripts/conf_files/gnb.band78.sa.fr1.106PRB.2x2.usrpn310.conf +++ b/ci-scripts/conf_files/gnb.band78.sa.fr1.106PRB.2x2.usrpn310.conf @@ -38,7 +38,7 @@ gNBs = ////////// Physical parameters: ssb_SubcarrierOffset = 0; - pdsch_AntennaPorts_N1 = 2; + pdsch_AntennaPorts_XP = 2; pusch_AntennaPorts = 2; ul_prbblacklist = "51,52,53,54" do_SRS = 1; diff --git a/ci-scripts/conf_files/gnb.band78.sa.fr1.162PRB.2x2.usrpn310.conf b/ci-scripts/conf_files/gnb.band78.sa.fr1.162PRB.2x2.usrpn310.conf index 78b402d064..fbe7e62a23 100644 --- a/ci-scripts/conf_files/gnb.band78.sa.fr1.162PRB.2x2.usrpn310.conf +++ b/ci-scripts/conf_files/gnb.band78.sa.fr1.162PRB.2x2.usrpn310.conf @@ -38,7 +38,7 @@ gNBs = ////////// Physical parameters: ssb_SubcarrierOffset = 0; - pdsch_AntennaPorts_N1 = 2; + pdsch_AntennaPorts_XP = 2; pusch_AntennaPorts = 2; #pusch_TargetSNRx10 = 200; #pucch_TargetSNRx10 = 200; diff --git a/doc/RUNMODEM.md b/doc/RUNMODEM.md index 449859b042..4cc57c2629 100644 --- a/doc/RUNMODEM.md +++ b/doc/RUNMODEM.md @@ -211,7 +211,24 @@ UE on machine 2: `sudo ./nr-uesoftmodem --if_freq 2169080000 --if_freq_off -400000000` +# MIMO configuration + + + + +
+ + +
+ +This image shows an example of gNB 5G MIMO logical antenna port configuration. It has to be noted that logical antenna ports might not directly correspond to physical antenna ports and each logical antenna port might consist of a sub-array of antennas. + +The basic element is a dual-polarized antenna, therefore the minimal DL MIMO setup with two logical antenna ports would consist of two cross-polarized antenna elements. In a single panel configuration, as the one in the picture, this element can be repeated vertiacally and/or horizontally to form an equi-spaced 1D or 2D array. The values N1 and N2 represent the number of antenna ports in the two dimensions and the supported configurations are specified in Section 5.2.2.2.1 of TS 38.214. + +The DL logical antenna port configuration can be selected thorugh configuration file. `pdsch_AntennaPorts_N1` can be used to set N1 parameter, `pdsch_AntennaPorts_N2` to set N2 and `pdsch_AntennaPorts_XP` to set the cross-polarization configuration (1 for single pol, 2 for cross-pol). To be noted that if XP is 1 but N1 and/or N2 are larger than 1, this would result in a non-standard configuration and the PMI selected would be the identity matrix regardless of CSI report. The default value for each of these parameters is 1. + +# Additional links [Selecting an alternative ldpc implementation at run time](../openair1/PHY/CODING/DOC/LDPCImplementation.md) diff --git a/doc/images/mimo_antenna_ports.png b/doc/images/mimo_antenna_ports.png new file mode 100644 index 0000000000000000000000000000000000000000..ef91f4becc80fe6c09b55f202f9d8054368bd88c GIT binary patch literal 18753 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 = pdsch_AntennaPorts.N1 * pdsch_AntennaPorts.N2 * pdsch_AntennaPorts.XP; + int num_pdsch_antenna_ports = pdsch_AntennaPorts.N1 * pdsch_AntennaPorts.N2 * pdsch_AntennaPorts.XP; + RC.nrmac[Mod_idP]->xp_pdsch_antenna_ports = pdsch_AntennaPorts.XP; config_common(Mod_idP, ssb_SubcarrierOffset, - RC.nrmac[Mod_idP]->pdsch_antenna_ports, + num_pdsch_antenna_ports, pusch_AntennaPorts, scc); LOG_D(NR_MAC, "%s() %s:%d RC.nrmac[Mod_idP]->if_inst->NR_PHY_config_req:%p\n", __FUNCTION__, __FILE__, __LINE__, RC.nrmac[Mod_idP]->if_inst->NR_PHY_config_req); diff --git a/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_dlsch.c b/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_dlsch.c index a3bf413b29..3db53ef809 100644 --- a/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_dlsch.c +++ b/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_dlsch.c @@ -1183,7 +1183,7 @@ void nr_schedule_ue_spec(module_id_t module_id, nrOfLayers, csi_report->N1, csi_report->N2, - gNB_mac->pdsch_antenna_ports, + gNB_mac->xp_pdsch_antenna_ports, csi_report->codebook_mode); } diff --git a/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c b/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c index 1eb54ab45c..33390ec637 100644 --- a/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c +++ b/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c @@ -149,12 +149,13 @@ uint8_t set_dl_nrOfLayers(NR_UE_sched_ctrl_t *sched_ctrl) { uint16_t set_pm_index(NR_UE_sched_ctrl_t *sched_ctrl, int layers, int N1, int N2, - int config_file_ant_ports, + int xp_pdsch_antenna_ports, int codebook_mode) { int antenna_ports = (N1*N2)<<1; - if (antenna_ports!=config_file_ant_ports) - return 0; //identity matrix + if (xp_pdsch_antenna_ports == 1 && + antenna_ports>1) + return 0; //identity matrix (basic 5G configuration handled by PMI report is with XP antennas) int x1 = sched_ctrl->CSI_report.cri_ri_li_pmi_cqi_report.pmi_x1; int x2 = sched_ctrl->CSI_report.cri_ri_li_pmi_cqi_report.pmi_x2; diff --git a/openair2/LAYER2/NR_MAC_gNB/mac_proto.h b/openair2/LAYER2/NR_MAC_gNB/mac_proto.h index 455538a361..7ab738b87c 100644 --- a/openair2/LAYER2/NR_MAC_gNB/mac_proto.h +++ b/openair2/LAYER2/NR_MAC_gNB/mac_proto.h @@ -458,7 +458,7 @@ void set_dl_dmrs_ports(NR_pdsch_semi_static_t *ps); uint16_t set_pm_index(NR_UE_sched_ctrl_t *sched_ctrl, int layers, int N1, int N2, - int config_file_ant_ports, + int xp_pdsch_antenna_ports, int codebook_mode); void set_dl_mcs(NR_sched_pdsch_t *sched_pdsch, diff --git a/openair2/LAYER2/NR_MAC_gNB/nr_mac_gNB.h b/openair2/LAYER2/NR_MAC_gNB/nr_mac_gNB.h index 8b685fdd02..ecea3a2bd1 100644 --- a/openair2/LAYER2/NR_MAC_gNB/nr_mac_gNB.h +++ b/openair2/LAYER2/NR_MAC_gNB/nr_mac_gNB.h @@ -806,7 +806,7 @@ typedef struct gNB_MAC_INST_s { uint16_t cset0_bwp_size; NR_Type0_PDCCH_CSS_config_t type0_PDCCH_CSS_config[64]; - int pdsch_antenna_ports; + int xp_pdsch_antenna_ports; bool first_MIB; double dl_bler_target_upper;