Add S1down auto recovery.
(cherry picked from commit 2339972ceaeb75fe18c0b2ae9ea69216dd919668)
This commit is contained in:
committed by
masayuki.harada
parent
7631a1dc1d
commit
46407ca42b
@@ -84,7 +84,7 @@ extern int asn1_xer_print;
|
||||
break; \
|
||||
} \
|
||||
} \
|
||||
if (mandatory) DevAssert(ie != NULL); \
|
||||
/* if (mandatory) DevAssert(ie != NULL); \*/ \
|
||||
} while(0)
|
||||
|
||||
/** \brief Function callback prototype.
|
||||
|
||||
@@ -536,6 +536,14 @@ int x2ap_eNB_handle_x2_setup_response(instance_t instance,
|
||||
return -1;
|
||||
}
|
||||
|
||||
if((x2ap_eNB_data->state == X2AP_ENB_STATE_CONNECTED) ||
|
||||
(x2ap_eNB_data->state == X2AP_ENB_STATE_READY))
|
||||
|
||||
{
|
||||
X2AP_ERROR("Received Unexpexted X2 Setup Response Message\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
X2AP_DEBUG("Received a new X2 setup response\n");
|
||||
|
||||
X2AP_FIND_PROTOCOLIE_BY_ID(X2AP_X2SetupResponse_IEs_t, ie, x2SetupResponse,
|
||||
@@ -662,6 +670,14 @@ int x2ap_eNB_handle_x2_setup_failure(instance_t instance,
|
||||
return -1;
|
||||
}
|
||||
|
||||
if((x2ap_eNB_data->state == X2AP_ENB_STATE_CONNECTED) ||
|
||||
(x2ap_eNB_data->state == X2AP_ENB_STATE_READY))
|
||||
|
||||
{
|
||||
X2AP_ERROR("Received Unexpexted X2 Setup Failure Message\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
X2AP_DEBUG("Received a new X2 setup failure\n");
|
||||
|
||||
X2AP_FIND_PROTOCOLIE_BY_ID(X2AP_X2SetupFailure_IEs_t, ie, x2SetupFailure,
|
||||
@@ -730,6 +746,7 @@ int x2ap_eNB_handle_handover_preparation (instance_t instance,
|
||||
X2AP_ProtocolIE_ID_id_Old_eNB_UE_X2AP_ID, true);
|
||||
if (ie == NULL ) {
|
||||
X2AP_ERROR("%s %d: ie is a NULL pointer \n",__FILE__,__LINE__);
|
||||
itti_free(ITTI_MSG_ORIGIN_ID(msg), msg);
|
||||
return -1;
|
||||
}
|
||||
|
||||
@@ -750,7 +767,11 @@ int x2ap_eNB_handle_handover_preparation (instance_t instance,
|
||||
//measResultListEUTRA.list.array[ncell_index]->physCellId;
|
||||
X2AP_FIND_PROTOCOLIE_BY_ID(X2AP_HandoverRequest_IEs_t, ie, x2HandoverRequest,
|
||||
X2AP_ProtocolIE_ID_id_GUMMEI_ID, true);
|
||||
|
||||
if (ie == NULL ) {
|
||||
X2AP_ERROR("%s %d: ie is a NULL pointer \n",__FILE__,__LINE__);
|
||||
itti_free(ITTI_MSG_ORIGIN_ID(msg), msg);
|
||||
return -1;
|
||||
}
|
||||
TBCD_TO_MCC_MNC(&ie->value.choice.ECGI.pLMN_Identity, X2AP_HANDOVER_REQ(msg).ue_gummei.mcc,
|
||||
X2AP_HANDOVER_REQ(msg).ue_gummei.mnc, X2AP_HANDOVER_REQ(msg).ue_gummei.mnc_len);
|
||||
OCTET_STRING_TO_INT8(&ie->value.choice.GUMMEI.mME_Code, X2AP_HANDOVER_REQ(msg).ue_gummei.mme_code);
|
||||
@@ -761,6 +782,7 @@ int x2ap_eNB_handle_handover_preparation (instance_t instance,
|
||||
|
||||
if (ie == NULL ) {
|
||||
X2AP_ERROR("%s %d: ie is a NULL pointer \n",__FILE__,__LINE__);
|
||||
itti_free(ITTI_MSG_ORIGIN_ID(msg), msg);
|
||||
return -1;
|
||||
}
|
||||
|
||||
@@ -872,6 +894,7 @@ int x2ap_eNB_handle_handover_response (instance_t instance,
|
||||
|
||||
if (ie == NULL ) {
|
||||
X2AP_ERROR("%s %d: ie is a NULL pointer \n",__FILE__,__LINE__);
|
||||
itti_free(ITTI_MSG_ORIGIN_ID(msg), msg);
|
||||
return -1;
|
||||
}
|
||||
|
||||
@@ -882,6 +905,7 @@ int x2ap_eNB_handle_handover_response (instance_t instance,
|
||||
|
||||
if (ie == NULL ) {
|
||||
X2AP_ERROR("%s %d: ie is a NULL pointer \n",__FILE__,__LINE__);
|
||||
itti_free(ITTI_MSG_ORIGIN_ID(msg), msg);
|
||||
return -1;
|
||||
}
|
||||
|
||||
@@ -912,6 +936,7 @@ int x2ap_eNB_handle_handover_response (instance_t instance,
|
||||
|
||||
if (ie == NULL ) {
|
||||
X2AP_ERROR("%s %d: ie is a NULL pointer \n", __FILE__, __LINE__);
|
||||
itti_free(ITTI_MSG_ORIGIN_ID(msg), msg);
|
||||
return -1;
|
||||
}else{
|
||||
if (ie->value.choice.E_RABs_Admitted_List.list.count > 0) {
|
||||
@@ -959,6 +984,12 @@ int x2ap_eNB_handle_handover_response (instance_t instance,
|
||||
X2AP_FIND_PROTOCOLIE_BY_ID(X2AP_HandoverRequestAcknowledge_IEs_t, ie, x2HandoverRequestAck,
|
||||
X2AP_ProtocolIE_ID_id_TargeteNBtoSource_eNBTransparentContainer, true);
|
||||
|
||||
if (ie == NULL ) {
|
||||
X2AP_ERROR("%s %d: ie is a NULL pointer \n",__FILE__,__LINE__);
|
||||
itti_free(ITTI_MSG_ORIGIN_ID(msg), msg);
|
||||
return -1;
|
||||
}
|
||||
|
||||
X2AP_TargeteNBtoSource_eNBTransparentContainer_t *c = &ie->value.choice.TargeteNBtoSource_eNBTransparentContainer;
|
||||
|
||||
if (c->size > 1024 /* TODO: this is the size of rrc_buffer in struct x2ap_handover_req_ack_s */)
|
||||
@@ -1012,6 +1043,7 @@ int x2ap_eNB_handle_ue_context_release (instance_t instance,
|
||||
|
||||
if (ie == NULL ) {
|
||||
X2AP_ERROR("%s %d: ie is a NULL pointer \n",__FILE__,__LINE__);
|
||||
itti_free(ITTI_MSG_ORIGIN_ID(msg), msg);
|
||||
return -1;
|
||||
}
|
||||
|
||||
@@ -1022,6 +1054,7 @@ int x2ap_eNB_handle_ue_context_release (instance_t instance,
|
||||
|
||||
if (ie == NULL ) {
|
||||
X2AP_ERROR("%s %d: ie is a NULL pointer \n",__FILE__,__LINE__);
|
||||
itti_free(ITTI_MSG_ORIGIN_ID(msg), msg);
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user