Introduce new UE context status state at the eNB for the NSA procedure
- UE context status enters RRC_NR_NSA_RECONFIGURED state, after the eNB receives an RRCConnectionReconfigurationComplete message including the scg_ConfigResponseNR_r15 container. - Use this state to avoid triggering sGNB Addition Request multiple times
This commit is contained in:
@@ -271,6 +271,7 @@ typedef enum UE_STATE_e {
|
|||||||
RRC_RECONFIGURED,
|
RRC_RECONFIGURED,
|
||||||
RRC_HO_EXECUTION,
|
RRC_HO_EXECUTION,
|
||||||
RRC_NR_NSA,
|
RRC_NR_NSA,
|
||||||
|
RRC_NR_NSA_RECONFIGURED
|
||||||
} UE_STATE_t;
|
} UE_STATE_t;
|
||||||
|
|
||||||
typedef enum HO_STATE_e {
|
typedef enum HO_STATE_e {
|
||||||
|
|||||||
+15
-18
@@ -4613,7 +4613,7 @@ rrc_eNB_process_MeasurementReport(
|
|||||||
|
|
||||||
/* TODO: improve NR triggering */
|
/* TODO: improve NR triggering */
|
||||||
if (measResults2->measId == 7) {
|
if (measResults2->measId == 7) {
|
||||||
if (ue_context_pP->ue_context.Status != RRC_NR_NSA) {
|
if ((ue_context_pP->ue_context.Status != RRC_NR_NSA) && (ue_context_pP->ue_context.Status != RRC_NR_NSA_RECONFIGURED)) {
|
||||||
MessageDef *msg;
|
MessageDef *msg;
|
||||||
ue_context_pP->ue_context.Status = RRC_NR_NSA;
|
ue_context_pP->ue_context.Status = RRC_NR_NSA;
|
||||||
|
|
||||||
@@ -7773,25 +7773,10 @@ rrc_eNB_decode_dcch(
|
|||||||
LOG_I(RRC,
|
LOG_I(RRC,
|
||||||
PROTOCOL_RRC_CTXT_UE_FMT" UE State = RRC_HO_EXECUTION (xid %ld)\n",
|
PROTOCOL_RRC_CTXT_UE_FMT" UE State = RRC_HO_EXECUTION (xid %ld)\n",
|
||||||
PROTOCOL_RRC_CTXT_UE_ARGS(ctxt_pP),ul_dcch_msg->message.choice.c1.choice.rrcConnectionReconfigurationComplete.rrc_TransactionIdentifier);
|
PROTOCOL_RRC_CTXT_UE_ARGS(ctxt_pP),ul_dcch_msg->message.choice.c1.choice.rrcConnectionReconfigurationComplete.rrc_TransactionIdentifier);
|
||||||
} else {
|
|
||||||
dedicated_DRB = 0;
|
|
||||||
ue_context_p->ue_context.Status = RRC_RECONFIGURED;
|
|
||||||
LOG_I(RRC,
|
|
||||||
PROTOCOL_RRC_CTXT_UE_FMT" UE State = RRC_RECONFIGURED (default DRB, xid %ld)\n",
|
|
||||||
PROTOCOL_RRC_CTXT_UE_ARGS(ctxt_pP),ul_dcch_msg->message.choice.c1.choice.rrcConnectionReconfigurationComplete.rrc_TransactionIdentifier);
|
|
||||||
}
|
}
|
||||||
|
else if(ue_context_p->ue_context.Status == RRC_NR_NSA){
|
||||||
ue_context_p->ue_context.reestablishment_xid = -1;
|
|
||||||
|
|
||||||
//Looking for a condition to trigger S1AP E-RAB-Modification-indication, based on the reception of RRCConnectionReconfigurationComplete
|
//Looking for a condition to trigger S1AP E-RAB-Modification-indication, based on the reception of RRCConnectionReconfigurationComplete
|
||||||
//including NR specific elements. Not sure if this is the correct one and the correct placement
|
//including NR specific elements.
|
||||||
/*if(ul_dcch_msg->message.choice.c1.choice.rrcConnectionReconfigurationComplete.criticalExtensions.choice.rrcConnectionReconfigurationComplete_r8.
|
|
||||||
nonCriticalExtension->nonCriticalExtension->nonCriticalExtension->nonCriticalExtension->nonCriticalExtension->nonCriticalExtension->
|
|
||||||
scg_ConfigResponseNR_r15->buf!=NULL){
|
|
||||||
//Trigger E-RAB Modification Indication
|
|
||||||
rrc_eNB_send_E_RAB_Modification_Indication(ctxt_pP, ue_context_p);
|
|
||||||
}*/
|
|
||||||
|
|
||||||
if(ul_dcch_msg->message.choice.c1.choice.rrcConnectionReconfigurationComplete.criticalExtensions.choice.rrcConnectionReconfigurationComplete_r8.
|
if(ul_dcch_msg->message.choice.c1.choice.rrcConnectionReconfigurationComplete.criticalExtensions.choice.rrcConnectionReconfigurationComplete_r8.
|
||||||
nonCriticalExtension!=NULL) {
|
nonCriticalExtension!=NULL) {
|
||||||
if(ul_dcch_msg->message.choice.c1.choice.rrcConnectionReconfigurationComplete.criticalExtensions.choice.rrcConnectionReconfigurationComplete_r8.
|
if(ul_dcch_msg->message.choice.c1.choice.rrcConnectionReconfigurationComplete.criticalExtensions.choice.rrcConnectionReconfigurationComplete_r8.
|
||||||
@@ -7807,6 +7792,7 @@ rrc_eNB_decode_dcch(
|
|||||||
if(ul_dcch_msg->message.choice.c1.choice.rrcConnectionReconfigurationComplete.criticalExtensions.choice.rrcConnectionReconfigurationComplete_r8.
|
if(ul_dcch_msg->message.choice.c1.choice.rrcConnectionReconfigurationComplete.criticalExtensions.choice.rrcConnectionReconfigurationComplete_r8.
|
||||||
nonCriticalExtension->nonCriticalExtension->nonCriticalExtension->nonCriticalExtension->nonCriticalExtension->nonCriticalExtension
|
nonCriticalExtension->nonCriticalExtension->nonCriticalExtension->nonCriticalExtension->nonCriticalExtension->nonCriticalExtension
|
||||||
->scg_ConfigResponseNR_r15!=NULL) {
|
->scg_ConfigResponseNR_r15!=NULL) {
|
||||||
|
ue_context_p->ue_context.Status = RRC_NR_NSA_RECONFIGURED;
|
||||||
/*Trigger E-RAB Modification Indication */
|
/*Trigger E-RAB Modification Indication */
|
||||||
rrc_eNB_send_E_RAB_Modification_Indication(ctxt_pP, ue_context_p);
|
rrc_eNB_send_E_RAB_Modification_Indication(ctxt_pP, ue_context_p);
|
||||||
}
|
}
|
||||||
@@ -7816,6 +7802,17 @@ rrc_eNB_decode_dcch(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
dedicated_DRB = 0;
|
||||||
|
ue_context_p->ue_context.Status = RRC_RECONFIGURED;
|
||||||
|
LOG_I(RRC,
|
||||||
|
PROTOCOL_RRC_CTXT_UE_FMT" UE State = RRC_RECONFIGURED (default DRB, xid %ld)\n",
|
||||||
|
PROTOCOL_RRC_CTXT_UE_ARGS(ctxt_pP),ul_dcch_msg->message.choice.c1.choice.rrcConnectionReconfigurationComplete.rrc_TransactionIdentifier);
|
||||||
|
}
|
||||||
|
|
||||||
|
ue_context_p->ue_context.reestablishment_xid = -1;
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
dedicated_DRB = 1;
|
dedicated_DRB = 1;
|
||||||
ue_context_p->ue_context.Status = RRC_RECONFIGURED;
|
ue_context_p->ue_context.Status = RRC_RECONFIGURED;
|
||||||
|
|||||||
Reference in New Issue
Block a user