NR RRC - RRCReestablishment - Fix MultiplePDU Regression
Simplify RRCReestablishmentComplete procedure with respective function, removed the block that frees all the NAS PDUs and created a function for this.
This commit is contained in:
@@ -1284,6 +1284,20 @@ void rrc_gNB_generate_RRCReestablishment(const protocol_ctxt_t *ctxt_pP,
|
|||||||
* Handle RRC Reestablishment Complete Functions
|
* Handle RRC Reestablishment Complete Functions
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
/// @brief Function used in RRCReestablishmentComplete procedure to Free all the NAS PDU buffers.
|
||||||
|
void RRCReestablishmentComplete_nas_pdu_free(rrc_gNB_ue_context_t *ue_context_pP)
|
||||||
|
{
|
||||||
|
gNB_RRC_UE_t *ue_p = &ue_context_pP->ue_context;
|
||||||
|
/* Free all NAS PDUs */
|
||||||
|
for (int i = 0; i < ue_p->nb_of_pdusessions; i++) {
|
||||||
|
if (ue_p->pduSession[i].param.nas_pdu.buffer != NULL) {
|
||||||
|
/* Free the NAS PDU buffer and invalidate it */
|
||||||
|
free(ue_p->pduSession[i].param.nas_pdu.buffer);
|
||||||
|
ue_p->pduSession[i].param.nas_pdu.buffer = NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// @brief Function tha processes RRCReestablishmentComplete message sent by the UE, after RRCReestasblishment request.
|
/// @brief Function tha processes RRCReestablishmentComplete message sent by the UE, after RRCReestasblishment request.
|
||||||
/// @param ctxt_pP Protocol context containing information regarding the UE and gNB
|
/// @param ctxt_pP Protocol context containing information regarding the UE and gNB
|
||||||
/// @param reestablish_rnti is the old C-RNTI
|
/// @param reestablish_rnti is the old C-RNTI
|
||||||
@@ -1475,14 +1489,7 @@ cellGroupConfig->physicalCellGroupConfig = ue_p->masterCellGroup->physicalCellGr
|
|||||||
|
|
||||||
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");
|
||||||
|
|
||||||
/* Free all NAS PDUs */
|
RRCReestablishmentComplete_nas_pdu_free(ue_context_pP);
|
||||||
for (i = 0; i < ue_p->nb_of_pdusessions; i++) {
|
|
||||||
if (ue_p->pduSession[i].param.nas_pdu.buffer != NULL) {
|
|
||||||
/* Free the NAS PDU buffer and invalidate it */
|
|
||||||
free(ue_p->pduSession[i].param.nas_pdu.buffer);
|
|
||||||
ue_p->pduSession[i].param.nas_pdu.buffer = NULL;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (size < 0) {
|
if (size < 0) {
|
||||||
LOG_E(NR_RRC, "RRC decode err!!! do_RRCReconfiguration\n");
|
LOG_E(NR_RRC, "RRC decode err!!! do_RRCReconfiguration\n");
|
||||||
|
|||||||
Reference in New Issue
Block a user