Merge branch 'develop-sib1' of https://gitlab.eurecom.fr/oai/openairinterface5g into develop-sib1
Conflicts: ci-scripts/conf_files/gnb.band78.tm1.106PRB.usrpn300.conf openair1/SCHED_NR_UE/phy_procedures_nr_ue.c openair2/LAYER2/NR_MAC_gNB/gNB_scheduler.c openair2/LAYER2/NR_MAC_gNB/mac_proto.h openair2/RRC/NR/rrc_gNB_reconfig.c openair2/RRC/NR_UE/rrc_defs.h
This commit is contained in:
@@ -678,11 +678,14 @@ int32_t nr_rx_pdcch(PHY_VARS_NR_UE *ue,
|
|||||||
uint8_t log2_maxh, aarx;
|
uint8_t log2_maxh, aarx;
|
||||||
int32_t avgs;
|
int32_t avgs;
|
||||||
int32_t avgP[4];
|
int32_t avgP[4];
|
||||||
|
|
||||||
for (int i=0;i<pdcch_vars->nb_search_space;i++) {
|
for (int i=0;i<pdcch_vars->nb_search_space;i++) {
|
||||||
|
|
||||||
rel15 = &pdcch_vars->pdcch_config[i];
|
rel15 = &pdcch_vars->pdcch_config[i];
|
||||||
int n_rb,rb_offset;
|
int n_rb,rb_offset;
|
||||||
|
|
||||||
get_coreset_rballoc(rel15->coreset.frequency_domain_resource,&n_rb,&rb_offset);
|
get_coreset_rballoc(rel15->coreset.frequency_domain_resource,&n_rb,&rb_offset);
|
||||||
|
|
||||||
for (int s=rel15->coreset.StartSymbolIndex; s<(rel15->coreset.StartSymbolIndex+rel15->coreset.duration); s++) {
|
for (int s=rel15->coreset.StartSymbolIndex; s<(rel15->coreset.StartSymbolIndex+rel15->coreset.duration); s++) {
|
||||||
LOG_D(PHY,"in nr_pdcch_extract_rbs_single(rxdataF -> rxdataF_ext || dl_ch_estimates -> dl_ch_estimates_ext)\n");
|
LOG_D(PHY,"in nr_pdcch_extract_rbs_single(rxdataF -> rxdataF_ext || dl_ch_estimates -> dl_ch_estimates_ext)\n");
|
||||||
|
|
||||||
@@ -875,7 +878,7 @@ uint8_t nr_dci_decoding_procedure(PHY_VARS_NR_UE *ue,
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
uint16_t crc = polar_decoder_int16(tmp_e,
|
uint16_t crc = polar_decoder_int16(tmp_e,
|
||||||
dci_estimation,
|
dci_estimation,
|
||||||
1,
|
1,
|
||||||
currentPtrDCI);
|
currentPtrDCI);
|
||||||
|
|
||||||
|
|||||||
@@ -984,13 +984,9 @@ void NRRCConfig(void) {
|
|||||||
paramdef_t GNBSParams[] = GNBSPARAMS_DESC;
|
paramdef_t GNBSParams[] = GNBSPARAMS_DESC;
|
||||||
|
|
||||||
/* get global parameters, defined outside any section in the config file */
|
/* get global parameters, defined outside any section in the config file */
|
||||||
|
|
||||||
LOG_I(GNB_APP, "Getting GNBSParams\n");
|
LOG_I(GNB_APP, "Getting GNBSParams\n");
|
||||||
|
|
||||||
config_get( GNBSParams,sizeof(GNBSParams)/sizeof(paramdef_t),NULL);
|
config_get( GNBSParams,sizeof(GNBSParams)/sizeof(paramdef_t),NULL);
|
||||||
RC.nb_nr_inst = GNBSParams[GNB_ACTIVE_GNBS_IDX].numelt;
|
RC.nb_nr_inst = GNBSParams[GNB_ACTIVE_GNBS_IDX].numelt;
|
||||||
|
|
||||||
|
|
||||||
// Get num MACRLC instances
|
// Get num MACRLC instances
|
||||||
config_getlist( &MACRLCParamList,NULL,0, NULL);
|
config_getlist( &MACRLCParamList,NULL,0, NULL);
|
||||||
RC.nb_macrlc_inst = MACRLCParamList.numelt;
|
RC.nb_macrlc_inst = MACRLCParamList.numelt;
|
||||||
|
|||||||
@@ -79,7 +79,6 @@ typedef enum {
|
|||||||
#define GNB_CONFIG_STRING_ASN1_VERBOSITY_ANNOYING "annoying"
|
#define GNB_CONFIG_STRING_ASN1_VERBOSITY_ANNOYING "annoying"
|
||||||
#define GNB_CONFIG_STRING_ASN1_VERBOSITY_INFO "info"
|
#define GNB_CONFIG_STRING_ASN1_VERBOSITY_INFO "info"
|
||||||
|
|
||||||
|
|
||||||
/* global parameters, not under a specific section */
|
/* global parameters, not under a specific section */
|
||||||
#define GNB_CONFIG_STRING_ASN1_VERBOSITY "Asn1_verbosity"
|
#define GNB_CONFIG_STRING_ASN1_VERBOSITY "Asn1_verbosity"
|
||||||
#define GNB_CONFIG_STRING_ACTIVE_GNBS "Active_gNBs"
|
#define GNB_CONFIG_STRING_ACTIVE_GNBS "Active_gNBs"
|
||||||
|
|||||||
@@ -2570,7 +2570,7 @@ uint16_t nr_dci_size(NR_ServingCellConfigCommon_t *scc,
|
|||||||
|
|
||||||
case NR_DL_DCI_FORMAT_1_0:
|
case NR_DL_DCI_FORMAT_1_0:
|
||||||
/// fixed: Format identifier 1, VRB2PRB 1, MCS 5, NDI 1, RV 2, HARQ PID 4, DAI 2, PUCCH TPC 2, PUCCH RInd 3, PDSCH to HARQ TInd 3 Time Domain assgnmt 4 -- 28
|
/// fixed: Format identifier 1, VRB2PRB 1, MCS 5, NDI 1, RV 2, HARQ PID 4, DAI 2, PUCCH TPC 2, PUCCH RInd 3, PDSCH to HARQ TInd 3 Time Domain assgnmt 4 -- 28
|
||||||
size += 28;
|
size = 28;
|
||||||
size += (uint8_t)ceil( log2( (N_RB*(N_RB+1))>>1 ) ); // Freq domain assignment
|
size += (uint8_t)ceil( log2( (N_RB*(N_RB+1))>>1 ) ); // Freq domain assignment
|
||||||
|
|
||||||
dci_pdu->frequency_domain_assignment.nbits = (int)ceil( log2( (N_RB*(N_RB+1))>>1 ) );
|
dci_pdu->frequency_domain_assignment.nbits = (int)ceil( log2( (N_RB*(N_RB+1))>>1 ) );
|
||||||
|
|||||||
@@ -97,6 +97,7 @@ void config_dci_pdu(NR_UE_MAC_INST_t *mac, fapi_nr_dl_config_dci_dl_pdu_rel15_t
|
|||||||
}
|
}
|
||||||
|
|
||||||
rel15->coreset.duration = coreset->duration;
|
rel15->coreset.duration = coreset->duration;
|
||||||
|
|
||||||
for (int i = 0; i < 6; i++)
|
for (int i = 0; i < 6; i++)
|
||||||
rel15->coreset.frequency_domain_resource[i] = coreset->frequencyDomainResources.buf[i];
|
rel15->coreset.frequency_domain_resource[i] = coreset->frequencyDomainResources.buf[i];
|
||||||
rel15->coreset.CceRegMappingType = coreset->cce_REG_MappingType.present == NR_ControlResourceSet__cce_REG_MappingType_PR_interleaved ? FAPI_NR_CCE_REG_MAPPING_TYPE_INTERLEAVED : FAPI_NR_CCE_REG_MAPPING_TYPE_NON_INTERLEAVED;
|
rel15->coreset.CceRegMappingType = coreset->cce_REG_MappingType.present == NR_ControlResourceSet__cce_REG_MappingType_PR_interleaved ? FAPI_NR_CCE_REG_MAPPING_TYPE_INTERLEAVED : FAPI_NR_CCE_REG_MAPPING_TYPE_NON_INTERLEAVED;
|
||||||
|
|||||||
@@ -957,6 +957,10 @@ int8_t nr_ue_decode_mib(module_id_t module_id,
|
|||||||
|
|
||||||
NR_UE_MAC_INST_t *mac = get_mac_inst(module_id);
|
NR_UE_MAC_INST_t *mac = get_mac_inst(module_id);
|
||||||
|
|
||||||
|
// fill in the elements in config request inside P5 message
|
||||||
|
mac->phy_config.Mod_id = module_id;
|
||||||
|
mac->phy_config.CC_id = cc_id;
|
||||||
|
|
||||||
nr_mac_rrc_data_ind_ue( module_id, cc_id, gNB_index, NR_BCCH_BCH, (uint8_t *) pduP, 3 ); // fixed 3 bytes MIB PDU
|
nr_mac_rrc_data_ind_ue( module_id, cc_id, gNB_index, NR_BCCH_BCH, (uint8_t *) pduP, 3 ); // fixed 3 bytes MIB PDU
|
||||||
|
|
||||||
AssertFatal(mac->mib != NULL, "nr_ue_decode_mib() mac->mib == NULL\n");
|
AssertFatal(mac->mib != NULL, "nr_ue_decode_mib() mac->mib == NULL\n");
|
||||||
@@ -1174,6 +1178,9 @@ NR_UE_L2_STATE_t nr_ue_scheduler(nr_downlink_indication_t *dl_info, nr_uplink_in
|
|||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fapi_nr_dl_config_dci_dl_pdu_rel15_t dci_config_rel15 = dl_config->dl_config_list[dl_config->number_pdus].dci_config_pdu.dci_config_rel15;
|
||||||
|
|
||||||
} else if (ul_info) {
|
} else if (ul_info) {
|
||||||
|
|
||||||
// ULSCH is handled only in phy-test mode (consistently with OAI gNB)
|
// ULSCH is handled only in phy-test mode (consistently with OAI gNB)
|
||||||
@@ -3729,7 +3736,7 @@ int get_n_rb(NR_UE_MAC_INST_t *mac, int rnti_type){
|
|||||||
N_RB = mac->type0_PDCCH_CSS_config.num_rbs;
|
N_RB = mac->type0_PDCCH_CSS_config.num_rbs;
|
||||||
break;
|
break;
|
||||||
case NR_RNTI_C:
|
case NR_RNTI_C:
|
||||||
N_RB = NRRIV2BW(mac->DLbwp[0]->bwp_Common->genericParameters.locationAndBandwidth, 275);
|
N_RB = NRRIV2BW(mac->DLbwp[0]->bwp_Common->genericParameters.locationAndBandwidth, 275);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
return N_RB;
|
return N_RB;
|
||||||
@@ -4314,7 +4321,7 @@ int nr_extract_dci_info(NR_UE_MAC_INST_t *mac,
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
return dci_format;
|
return dci_format;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -213,6 +213,7 @@ void schedule_nr_mib(module_id_t module_idP, frame_t frameP, sub_frame_t slotP,
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void schedule_nr_SI(module_id_t module_idP, frame_t frameP, sub_frame_t subframeP) {
|
void schedule_nr_SI(module_id_t module_idP, frame_t frameP, sub_frame_t subframeP) {
|
||||||
//----------------------------------------
|
//----------------------------------------
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -628,7 +628,8 @@ void nr_schedule_ue_spec(module_id_t module_id,
|
|||||||
gNB_MAC_INST *gNB_mac = RC.nrmac[module_id];
|
gNB_MAC_INST *gNB_mac = RC.nrmac[module_id];
|
||||||
|
|
||||||
/* PREPROCESSOR */
|
/* PREPROCESSOR */
|
||||||
gNB_mac->pre_processor_dl(module_id, frame, slot, num_slots_per_tdd);
|
//gNB_mac->pre_processor_dl(module_id, frame, slot, num_slots_per_tdd);
|
||||||
|
nr_simple_dlsch_preprocessor(module_id, frame, slot, num_slots_per_tdd); // FIXME: gNB_mac->pre_processor_dl(module_id, frame, slot, num_slots_per_tdd); - Exit by assert
|
||||||
|
|
||||||
NR_UE_info_t *UE_info = &gNB_mac->UE_info;
|
NR_UE_info_t *UE_info = &gNB_mac->UE_info;
|
||||||
|
|
||||||
|
|||||||
@@ -63,6 +63,7 @@
|
|||||||
#define ENABLE_MAC_PAYLOAD_DEBUG
|
#define ENABLE_MAC_PAYLOAD_DEBUG
|
||||||
#define DEBUG_gNB_SCHEDULER 1
|
#define DEBUG_gNB_SCHEDULER 1
|
||||||
|
|
||||||
|
|
||||||
#include "common/ran_context.h"
|
#include "common/ran_context.h"
|
||||||
|
|
||||||
extern RAN_CONTEXT_t RC;
|
extern RAN_CONTEXT_t RC;
|
||||||
|
|||||||
@@ -183,7 +183,7 @@ static void init_NR_SI(gNB_RRC_INST *rrc, gNB_RrcConfigurationReq *configuration
|
|||||||
LOG_D(RRC,"%s()\n\n\n\n",__FUNCTION__);
|
LOG_D(RRC,"%s()\n\n\n\n",__FUNCTION__);
|
||||||
rrc->carrier.MIB = (uint8_t *) malloc16(4);
|
rrc->carrier.MIB = (uint8_t *) malloc16(4);
|
||||||
rrc->carrier.sizeof_MIB = do_MIB_NR(rrc,0);
|
rrc->carrier.sizeof_MIB = do_MIB_NR(rrc,0);
|
||||||
rrc->carrier.sizeof_SIB1 = do_SIB1_NR(&rrc->carrier,configuration);
|
rrc->carrier.sizeof_SIB1 = do_SIB1_NR(&rrc->carrier,configuration);
|
||||||
LOG_I(NR_RRC,"Done init_NR_SI\n");
|
LOG_I(NR_RRC,"Done init_NR_SI\n");
|
||||||
rrc_mac_config_req_gNB(rrc->module_id,
|
rrc_mac_config_req_gNB(rrc->module_id,
|
||||||
rrc->carrier.ssb_SubcarrierOffset,
|
rrc->carrier.ssb_SubcarrierOffset,
|
||||||
|
|||||||
Reference in New Issue
Block a user