Commit 14c81b11 authored by Raymond Knopp's avatar Raymond Knopp

further changes after merge with develop

parent 318140f6
...@@ -46,7 +46,6 @@ include_directories(${CONFIG_INCLUDE_DIRS}) ...@@ -46,7 +46,6 @@ include_directories(${CONFIG_INCLUDE_DIRS})
pkg_search_module(CRYPTO libcrypto REQUIRED) pkg_search_module(CRYPTO libcrypto REQUIRED)
include_directories(${CRYPTO_INCLUDE_DIRS}) include_directories(${CRYPTO_INCLUDE_DIRS})
<<<<<<< HEAD
add_list2_option(TP_PROTO "None" "Ethernet" "benetel4g" "benetel5g" "oran_fhlib_5g") add_list2_option(TP_PROTO "None" "Ethernet" "benetel4g" "benetel5g" "oran_fhlib_5g")
if (${TP_PROTO} STREQUAL "oran_fhlib_5g") if (${TP_PROTO} STREQUAL "oran_fhlib_5g")
if(DEFINED ENV{RTE_SDK}) if(DEFINED ENV{RTE_SDK})
...@@ -61,7 +60,6 @@ if (${TP_PROTO} STREQUAL "oran_fhlib_5g") ...@@ -61,7 +60,6 @@ if (${TP_PROTO} STREQUAL "oran_fhlib_5g")
message(FATAL_ERROR "RTE_TARGET is NOT defined") message(FATAL_ERROR "RTE_TARGET is NOT defined")
endif() endif()
endif() endif()
=======
# Check if asn1c is installed, and check if it supports all options we need # Check if asn1c is installed, and check if it supports all options we need
# a user can provide ASN1C_EXEC to override an asn1c to use (e.g., parallel # a user can provide ASN1C_EXEC to override an asn1c to use (e.g., parallel
# installation) # installation)
...@@ -79,7 +77,6 @@ check_option(${ASN1C_EXEC} -no-gen-UPER ASN1C_EXEC) ...@@ -79,7 +77,6 @@ check_option(${ASN1C_EXEC} -no-gen-UPER ASN1C_EXEC)
check_option(${ASN1C_EXEC} -no-gen-JER ASN1C_EXEC) check_option(${ASN1C_EXEC} -no-gen-JER ASN1C_EXEC)
check_option(${ASN1C_EXEC} -no-gen-BER ASN1C_EXEC) check_option(${ASN1C_EXEC} -no-gen-BER ASN1C_EXEC)
check_option(${ASN1C_EXEC} -no-gen-OER ASN1C_EXEC) check_option(${ASN1C_EXEC} -no-gen-OER ASN1C_EXEC)
>>>>>>> origin/develop
#uhd 4.0 and iris installs by default in /usr/local #uhd 4.0 and iris installs by default in /usr/local
include_directories("/usr/local/include/") include_directories("/usr/local/include/")
...@@ -634,7 +631,7 @@ target_link_libraries(benetel_5g PRIVATE pthread dl rt m numa) ...@@ -634,7 +631,7 @@ target_link_libraries(benetel_5g PRIVATE pthread dl rt m numa)
# ORAN 5G library # ORAN 5G library
###################################################################### ######################################################################
add_boolean_option(ORAN_BRONZE ON "Build support for Bronze version of ORAN FHI") add_boolean_option(ORAN_BRONZE ON "Build support for Bronze version of ORAN FHI" ON)
if (ORAN_BRONZE) if (ORAN_BRONZE)
set(ORAN_FHLIB_5G_SOURCE set(ORAN_FHLIB_5G_SOURCE
${OPENAIR_DIR}/radio/ETHERNET/oran/5g/sample-app-bronze.c ${OPENAIR_DIR}/radio/ETHERNET/oran/5g/sample-app-bronze.c
......
...@@ -631,7 +631,7 @@ function main() { ...@@ -631,7 +631,7 @@ function main() {
echo_info "liboai_transpro.so is linked to BENETEL4G transport" echo_info "liboai_transpro.so is linked to BENETEL4G transport"
fi fi
if [ "$TP" == "oran_fhlib_5g" ]; then if [ "$TP" == "oran_fhlib_5g" ]; then
compilations $BUILD_DIR oran_fhlib_5g compilations $BUILD_DIR oran_fhlib_5g.txt oran_fhlib_5g
ln -sf liboran_fhlib_5g.so liboai_transpro.so ln -sf liboran_fhlib_5g.so liboai_transpro.so
ORAN_BRONZE=1 ORAN_BRONZE=1
echo_info "liboai_transpro.so is linked to oran_fhlib_5G transport" echo_info "liboai_transpro.so is linked to oran_fhlib_5G transport"
......
...@@ -118,7 +118,7 @@ static uint32_t prnt_crc_cnt = 0; ...@@ -118,7 +118,7 @@ static uint32_t prnt_crc_cnt = 0;
#endif #endif
void nr_processULSegment(void *arg) void nr_processULSegment(void *arg)
{
ldpcDecode_t *rdata = (ldpcDecode_t *)arg; ldpcDecode_t *rdata = (ldpcDecode_t *)arg;
PHY_VARS_gNB *phy_vars_gNB = rdata->gNB; PHY_VARS_gNB *phy_vars_gNB = rdata->gNB;
NR_UL_gNB_HARQ_t *ulsch_harq = rdata->ulsch_harq; NR_UL_gNB_HARQ_t *ulsch_harq = rdata->ulsch_harq;
...@@ -250,15 +250,11 @@ void nr_processULSegment(void *arg) ...@@ -250,15 +250,11 @@ void nr_processULSegment(void *arg)
#endif #endif
rdata->decodeIterations = no_iteration_ldpc; rdata->decodeIterations = no_iteration_ldpc;
if (rdata->decodeIterations > p_decoderParms->numMaxIter) rdata->decodeIterations--; if (rdata->decodeIterations > p_decoderParms->numMaxIter) rdata->decodeIterations--;
/* remember that the data is ok to not decode it again in case of retransmission */
ulsch_harq->crc_ok[r] = true;
} else { } else {
#ifdef PRINT_CRC_CHECK #ifdef PRINT_CRC_CHECK
LOG_I(PHY,"CRC NOK\n"); LOG_I(PHY,"CRC NOK\n");
#endif #endif
rdata->decodeIterations = max_ldpc_iterations + 1; rdata->decodeIterations = max_ldpc_iterations + 1;
/* set skip_ldpc_decoding to 1 to indicate to remaining threads that they shall not run LDPC decoding */
__atomic_store_n(&ulsch_harq->skip_ldpc_decoding, 1, __ATOMIC_SEQ_CST);
} }
for (int m=0; m < Kr>>3; m ++) { for (int m=0; m < Kr>>3; m ++) {
...@@ -570,8 +566,6 @@ uint32_t nr_ulsch_decoding(PHY_VARS_gNB *phy_vars_gNB, ...@@ -570,8 +566,6 @@ uint32_t nr_ulsch_decoding(PHY_VARS_gNB *phy_vars_gNB,
else { else {
dtx_det = 0; dtx_det = 0;
/* tell to the threads that LDPC decoding has to be done */
__atomic_store_n(&harq_process->skip_ldpc_decoding, 0, __ATOMIC_SEQ_CST);
for (int r = 0; r < harq_process->C; r++) { for (int r = 0; r < harq_process->C; r++) {
int E = nr_get_E(G, harq_process->C, Qm, n_layers, r); int E = nr_get_E(G, harq_process->C, Qm, n_layers, r);
...@@ -597,9 +591,6 @@ uint32_t nr_ulsch_decoding(PHY_VARS_gNB *phy_vars_gNB, ...@@ -597,9 +591,6 @@ uint32_t nr_ulsch_decoding(PHY_VARS_gNB *phy_vars_gNB,
rdata->ulsch = ulsch; rdata->ulsch = ulsch;
rdata->ulsch_id = ULSCH_id; rdata->ulsch_id = ULSCH_id;
rdata->tbslbrm = pusch_pdu->maintenance_parms_v3.tbSizeLbrmBytes; rdata->tbslbrm = pusch_pdu->maintenance_parms_v3.tbSizeLbrmBytes;
/* in case of a new rx, tell nr_processULSegment() to process the data, so set crc_ok[r] to false */
if (harq_process->new_rx)
harq_process->crc_ok[r] = false;
pushTpool(&phy_vars_gNB->threadPool, req); pushTpool(&phy_vars_gNB->threadPool, req);
phy_vars_gNB->nbDecode++; phy_vars_gNB->nbDecode++;
LOG_D(PHY, "Added a block to decode, in pipe: %d\n", phy_vars_gNB->nbDecode); LOG_D(PHY, "Added a block to decode, in pipe: %d\n", phy_vars_gNB->nbDecode);
......
...@@ -220,12 +220,13 @@ void phy_procedures_gNB_TX(processingData_L1tx_t *msgTx, ...@@ -220,12 +220,13 @@ void phy_procedures_gNB_TX(processingData_L1tx_t *msgTx,
// if ((frame&127) == 0) dump_pdsch_stats(gNB); // if ((frame&127) == 0) dump_pdsch_stats(gNB);
//apply the OFDM symbol rotation here //apply the OFDM symbol rotation here
for (aa=0; aa<cfg->carrier_config.num_tx_ant.value; aa++) { if(1/*(gNB->num_RU == 1) && (gNB->RU_list[0]->if_south != REMOTE_IF4p5)*/) {
apply_nr_rotation(fp, &gNB->common_vars.txdataF[aa][txdataF_offset], slot, 0, fp->Ncp == EXTENDED ? 12 : 14); for (aa=0; aa<cfg->carrier_config.num_tx_ant.value; aa++) {
apply_nr_rotation(fp, &gNB->common_vars.txdataF[aa][txdataF_offset], slot, 0, fp->Ncp == EXTENDED ? 12 : 14);
T(T_GNB_PHY_DL_OUTPUT_SIGNAL, T_INT(0), T(T_GNB_PHY_DL_OUTPUT_SIGNAL, T_INT(0),
T_INT(frame), T_INT(slot), T_INT(frame), T_INT(slot),
T_INT(aa), T_BUFFER(&gNB->common_vars.txdataF[aa][txdataF_offset], fp->samples_per_slot_wCP*sizeof(int32_t))); T_INT(aa), T_BUFFER(&gNB->common_vars.txdataF[aa][txdataF_offset], fp->samples_per_slot_wCP*sizeof(int32_t)));
} }
} }
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_gNB_TX+offset,0); VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_gNB_TX+offset,0);
...@@ -237,10 +238,8 @@ void nr_postDecode(PHY_VARS_gNB *gNB, notifiedFIFO_elt_t *req) ...@@ -237,10 +238,8 @@ void nr_postDecode(PHY_VARS_gNB *gNB, notifiedFIFO_elt_t *req)
NR_UL_gNB_HARQ_t *ulsch_harq = rdata->ulsch_harq; NR_UL_gNB_HARQ_t *ulsch_harq = rdata->ulsch_harq;
NR_gNB_ULSCH_t *ulsch = rdata->ulsch; NR_gNB_ULSCH_t *ulsch = rdata->ulsch;
int r = rdata->segment_r; int r = rdata->segment_r;
nfapi_nr_pusch_pdu_t *pusch_pdu = &gNB->ulsch[rdata->ulsch_id].harq_process->ulsch_pdu; nfapi_nr_pusch_pdu_t *pusch_pdu = &gNB->ulsch[rdata->ulsch_id].harq_process->ulsch_pdu;
bool decodeSuccess = (rdata->decodeIterations <= rdata->decoderParms.numMaxIter); bool decodeSuccess = (rdata->decodeIterations <= rdata->decoderParms.numMaxIter);
if (decodeSuccess)
(*decodeSuccessCount)++;
ulsch_harq->processedSegments++; ulsch_harq->processedSegments++;
LOG_D(PHY, "processing result of segment: %d, processed %d/%d\n", LOG_D(PHY, "processing result of segment: %d, processed %d/%d\n",
rdata->segment_r, ulsch_harq->processedSegments, rdata->nbSegments); rdata->segment_r, ulsch_harq->processedSegments, rdata->nbSegments);
...@@ -251,17 +250,24 @@ void nr_postDecode(PHY_VARS_gNB *gNB, notifiedFIFO_elt_t *req) ...@@ -251,17 +250,24 @@ void nr_postDecode(PHY_VARS_gNB *gNB, notifiedFIFO_elt_t *req)
ulsch_harq->c[r], ulsch_harq->c[r],
rdata->Kr_bytes - (ulsch_harq->F>>3) -((ulsch_harq->C>1)?3:0)); rdata->Kr_bytes - (ulsch_harq->F>>3) -((ulsch_harq->C>1)?3:0));
} else { } else {
LOG_D(PHY,"uplink segment error %d/%d\n",rdata->segment_r,rdata->nbSegments); if ( rdata->nbSegments != ulsch_harq->processedSegments ) {
LOG_D(PHY, "ULSCH %d in error\n",rdata->ulsch_id); int nb = abortTpoolJob(&gNB->threadPool, req->key);
nb += abortNotifiedFIFOJob(&gNB->respDecode, req->key);
gNB->nbDecode-=nb;
LOG_D(PHY,"uplink segment error %d/%d, aborted %d segments\n",rdata->segment_r,rdata->nbSegments, nb);
LOG_D(PHY, "ULSCH %d in error\n",rdata->ulsch_id);
AssertFatal(ulsch_harq->processedSegments+nb == rdata->nbSegments,"processed: %d, aborted: %d , total %d\n", ulsch_harq->processedSegments, nb, rdata->nbSegments);
ulsch_harq->processedSegments=rdata->nbSegments;
}
} }
//int dumpsig=0; //int dumpsig=0;
// if all segments are done // if all segments are done
if (rdata->nbSegments == ulsch_harq->processedSegments) { if (rdata->nbSegments == ulsch_harq->processedSegments) {
if (decodeSuccess && !gNB->pusch_vars[rdata->ulsch_id].DTX) { if (decodeSuccess && !gNB->pusch_vars[rdata->ulsch_id].DTX) {
LOG_D(PHY, LOG_D(PHY,
"[gNB %d] ULSCH: Setting ACK for SFN/SF %d.%d (rnti %x, pid %d, ndi %d, status %d, round %d, TBS %d, Max interation " "[gNB %d] ULSCH: Setting ACK for SFN/SF %d.%d (rnti %x, pid %d, ndi %d, status %d, roun d %d, TBS %d, Max interation "
"(all seg) %d)\n", "(all seg) %d)\n",
gNB->Mod_id, gNB->Mod_id,
ulsch->frame, ulsch->frame,
ulsch->slot, ulsch->slot,
...@@ -405,7 +411,7 @@ void nr_ulsch_procedures(PHY_VARS_gNB *gNB, int frame_rx, int slot_rx, int ULSCH ...@@ -405,7 +411,7 @@ void nr_ulsch_procedures(PHY_VARS_gNB *gNB, int frame_rx, int slot_rx, int ULSCH
notifiedFIFO_elt_t *req = pullTpool(&gNB->respDecode, &gNB->threadPool); notifiedFIFO_elt_t *req = pullTpool(&gNB->respDecode, &gNB->threadPool);
if (req == NULL) if (req == NULL)
break; // Tpool has been stopped break; // Tpool has been stopped
nr_postDecode(gNB, req, &decodeSuccessCount); nr_postDecode(gNB, req);
delNotifiedFIFO_elt(req); delNotifiedFIFO_elt(req);
} }
} }
......
...@@ -176,7 +176,7 @@ void schedule_nr_mib(module_id_t module_idP, frame_t frameP, sub_frame_t slotP, ...@@ -176,7 +176,7 @@ void schedule_nr_mib(module_id_t module_idP, frame_t frameP, sub_frame_t slotP,
if ((ssb_start_symbol/14) == rel_slot){ if ((ssb_start_symbol/14) == rel_slot){
const int prb_offset = offset_pointa >> scs; const int prb_offset = offset_pointa >> scs;
schedule_ssb(frameP, slotP, scc, dl_req, i_ssb, ssbSubcarrierOffset, offset_pointa, (*(uint32_t*)cc->MIB_pdu.payload) & ((1<<24)-1)); schedule_ssb(frameP, slotP, scc, dl_req, i_ssb, ssbSubcarrierOffset, offset_pointa, (*(uint32_t*)cc->MIB_pdu.payload) & ((1<<24)-1));
fill_ssb_vrb_map(cc, prb_offset, ssbSubcarrierOffset, ssb_start_symbol % NR_SYMBOLS_PER_SLOT, CC_id); fill_ssb_vrb_map(cc, prb_offset, ssbSubcarrierOffset, ssb_start_symbol, CC_id);
if (get_softmodem_params()->sa == 1) { if (get_softmodem_params()->sa == 1) {
get_type0_PDCCH_CSS_config_parameters(&gNB->type0_PDCCH_CSS_config[i_ssb], get_type0_PDCCH_CSS_config_parameters(&gNB->type0_PDCCH_CSS_config[i_ssb],
frameP, frameP,
...@@ -205,7 +205,7 @@ void schedule_nr_mib(module_id_t module_idP, frame_t frameP, sub_frame_t slotP, ...@@ -205,7 +205,7 @@ void schedule_nr_mib(module_id_t module_idP, frame_t frameP, sub_frame_t slotP,
if ((ssb_start_symbol/14) == rel_slot){ if ((ssb_start_symbol/14) == rel_slot){
const int prb_offset = offset_pointa >> scs; const int prb_offset = offset_pointa >> scs;
schedule_ssb(frameP, slotP, scc, dl_req, i_ssb, ssbSubcarrierOffset, offset_pointa, (*(uint32_t*)cc->MIB_pdu.payload) & ((1<<24)-1)); schedule_ssb(frameP, slotP, scc, dl_req, i_ssb, ssbSubcarrierOffset, offset_pointa, (*(uint32_t*)cc->MIB_pdu.payload) & ((1<<24)-1));
fill_ssb_vrb_map(cc, prb_offset, ssbSubcarrierOffset, ssb_start_symbol % NR_SYMBOLS_PER_SLOT, CC_id); fill_ssb_vrb_map(cc, prb_offset, ssbSubcarrierOffset, ssb_start_symbol, CC_id);
if (get_softmodem_params()->sa == 1) { if (get_softmodem_params()->sa == 1) {
get_type0_PDCCH_CSS_config_parameters(&gNB->type0_PDCCH_CSS_config[i_ssb], get_type0_PDCCH_CSS_config_parameters(&gNB->type0_PDCCH_CSS_config[i_ssb],
frameP, frameP,
......
...@@ -385,43 +385,6 @@ static void match_crc_rx_pdu(nfapi_nr_rx_data_indication_t *rx_ind, nfapi_nr_crc ...@@ -385,43 +385,6 @@ static void match_crc_rx_pdu(nfapi_nr_rx_data_indication_t *rx_ind, nfapi_nr_crc
} }
} }
void scheduler(module_id_t module_id,int CC_id,int frame,int slot) {
NR_IF_Module_t *ifi = nr_if_inst[module_id];
gNB_MAC_INST *mac = RC.nrmac[module_id];
NR_Sched_Rsp_t *sched_info = &NR_Sched_INFO[module_id][CC_id];
gNB_dlsch_ulsch_scheduler(module_id,frame,slot);
ifi->CC_mask = 0;
sched_info->module_id = module_id;
sched_info->CC_id = CC_id;
sched_info->frame = frame;
sched_info->slot = slot;
sched_info->DL_req = &mac->DL_req[CC_id];
sched_info->UL_dci_req = &mac->UL_dci_req[CC_id];
sched_info->UL_tti_req = mac->UL_tti_req[CC_id];
sched_info->TX_req = &mac->TX_req[CC_id];
#ifdef DUMP_FAPI
dump_dl(sched_info);
#endif
AssertFatal(ifi->NR_Schedule_response!=NULL,
"nr_schedule_response is null (mod %d, cc %d)\n",
module_id,
CC_id);
ifi->NR_Schedule_response(sched_info);
LOG_D(NR_PHY,"NR_Schedule_response: SFN SLOT:%d %d dl_pdus:%d\n",
sched_info->frame,
sched_info->slot,
sched_info->DL_req->dl_tti_request_body.nPDUs);
}
void NR_UL_indication(NR_UL_IND_t *UL_info) { void NR_UL_indication(NR_UL_IND_t *UL_info) {
AssertFatal(UL_info!=NULL,"UL_info is null\n"); AssertFatal(UL_info!=NULL,"UL_info is null\n");
module_id_t module_id = UL_info->module_id; module_id_t module_id = UL_info->module_id;
...@@ -546,7 +509,6 @@ NR_IF_Module_t *NR_IF_Module_init(int Mod_id) { ...@@ -546,7 +509,6 @@ NR_IF_Module_t *NR_IF_Module_init(int Mod_id) {
nr_if_inst[Mod_id]->CC_mask=0; nr_if_inst[Mod_id]->CC_mask=0;
nr_if_inst[Mod_id]->NR_UL_indication = NR_UL_indication; nr_if_inst[Mod_id]->NR_UL_indication = NR_UL_indication;
nr_if_inst[Mod_id]->NR_mac_scheduler = scheduler;
AssertFatal(pthread_mutex_init(&nr_if_inst[Mod_id]->if_mutex,NULL)==0, AssertFatal(pthread_mutex_init(&nr_if_inst[Mod_id]->if_mutex,NULL)==0,
"allocation of nr_if_inst[%d]->if_mutex fails\n",Mod_id); "allocation of nr_if_inst[%d]->if_mutex fails\n",Mod_id);
} }
......
...@@ -113,7 +113,6 @@ typedef struct NR_IF_Module_s { ...@@ -113,7 +113,6 @@ typedef struct NR_IF_Module_s {
//define the function pointer //define the function pointer
void (*NR_UL_indication)(NR_UL_IND_t *UL_INFO); void (*NR_UL_indication)(NR_UL_IND_t *UL_INFO);
void (*NR_Schedule_response)(NR_Sched_Rsp_t *Sched_INFO); void (*NR_Schedule_response)(NR_Sched_Rsp_t *Sched_INFO);
void (*NR_mac_scheduler)(module_id_t module_idP,int CC_id,int frame,int slot);
void (*NR_PHY_config_req)(NR_PHY_Config_t *config_INFO); void (*NR_PHY_config_req)(NR_PHY_Config_t *config_INFO);
uint32_t CC_mask; uint32_t CC_mask;
uint16_t current_frame; uint16_t current_frame;
......
...@@ -107,15 +107,6 @@ ...@@ -107,15 +107,6 @@
extern RAN_CONTEXT_t RC; extern RAN_CONTEXT_t RC;
extern void pdcp_config_set_security(const protocol_ctxt_t *const ctxt_pP,
pdcp_t *const pdcp_pP,
const rb_id_t rb_idP,
const uint16_t lc_idP,
const uint8_t security_modeP,
uint8_t *const kRRCenc,
uint8_t *const kRRCint,
uint8_t *const kUPenc);
static inline uint64_t bitStr_to_uint64(BIT_STRING_t *asn); static inline uint64_t bitStr_to_uint64(BIT_STRING_t *asn);
mui_t rrc_gNB_mui = 0; mui_t rrc_gNB_mui = 0;
...@@ -358,27 +349,6 @@ void apply_macrlc_config_reest(gNB_RRC_INST *rrc, rrc_gNB_ue_context_t *const ue ...@@ -358,27 +349,6 @@ void apply_macrlc_config_reest(gNB_RRC_INST *rrc, rrc_gNB_ue_context_t *const ue
nr_rrc_addmod_srbs(ctxt_pP->rntiMaybeUEid, ue_p->Srb, maxSRBs, ue_p->masterCellGroup->rlc_BearerToAddModList); nr_rrc_addmod_srbs(ctxt_pP->rntiMaybeUEid, ue_p->Srb, maxSRBs, ue_p->masterCellGroup->rlc_BearerToAddModList);
} }
void apply_macrlc_config_reest(gNB_RRC_INST *rrc, rrc_gNB_ue_context_t *const ue_context_pP, const protocol_ctxt_t *const ctxt_pP, ue_id_t ue_id)
{
rrc_mac_config_req_gNB(rrc->module_id,
rrc->configuration.pdsch_AntennaPorts,
rrc->configuration.pusch_AntennaPorts,
rrc->configuration.sib1_tda,
rrc->configuration.minRXTXTIME,
NULL,
NULL,
NULL,
0,
ue_id,
get_softmodem_params()->sa ? ue_context_pP->ue_context.masterCellGroup : NULL);
nr_rrc_rlc_config_asn1_req(ctxt_pP,
ue_context_pP->ue_context.SRB_configList,
NULL,
NULL,
get_softmodem_params()->sa ? ue_context_pP->ue_context.masterCellGroup->rlc_BearerToAddModList : NULL);
}
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
static void rrc_gNB_generate_RRCSetup(instance_t instance, static void rrc_gNB_generate_RRCSetup(instance_t instance,
rnti_t rnti, rnti_t rnti,
...@@ -1007,8 +977,6 @@ rrc_gNB_generate_dedicatedRRCReconfiguration_release( ...@@ -1007,8 +977,6 @@ rrc_gNB_generate_dedicatedRRCReconfiguration_release(
NULL); NULL);
LOG_DUMPMSG(NR_RRC,DEBUG_RRC,(char *)buffer,size, "[MSG] RRC Reconfiguration\n"); LOG_DUMPMSG(NR_RRC,DEBUG_RRC,(char *)buffer,size, "[MSG] RRC Reconfiguration\n");
ue_context_pP->ue_context.pdu_session_release_command_flag = 1;
/* Free all NAS PDUs */ /* Free all NAS PDUs */
if (nas_length > 0) { if (nas_length > 0) {
/* Free the NAS PDU buffer and invalidate it */ /* Free the NAS PDU buffer and invalidate it */
...@@ -2176,6 +2144,7 @@ int rrc_gNB_decode_dcch(const protocol_ctxt_t *const ctxt_pP, ...@@ -2176,6 +2144,7 @@ int rrc_gNB_decode_dcch(const protocol_ctxt_t *const ctxt_pP,
== -1) == -1)
return -1; return -1;
break; break;
default: default:
break; break;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment