Skip to content

Commit

Permalink
Added code to send EPS Bearer Context status IE in TAU Accept message… (
Browse files Browse the repository at this point in the history
#504)

Summary:
1. Fix for issue #494  - Added code to send EPS Bearer Context status IE in TAU Accept message
2. Verified sanity with S1 SIM
Pull Request resolved: #504

Reviewed By: ssanadhya

Differential Revision: D16602457

Pulled By: talkhasib

fbshipit-source-id: d2776b15d587f89ddc33d0d56facc7d17806cb04
  • Loading branch information
pruthvihebbani authored and facebook-github-bot committed Aug 7, 2019
1 parent e11a933 commit cec23e9
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 27 deletions.
38 changes: 11 additions & 27 deletions lte/gateway/c/oai/tasks/nas/emm/TrackingAreaUpdate.c
Expand Up @@ -266,32 +266,6 @@ int emm_proc_tracking_area_update_request(
bdestroy_wrapper(&ue_mm_context->ue_radio_capability);
}
}

/*
* Requirement MME24.301R10_5.5.3.2.4_5a
*/
if (ies->eps_bearer_context_status) {
// This IE is not implemented
OAILOG_WARNING(
LOG_NAS_EMM,
"EMM-PROC- Sending Tracking Area Update Reject.EPS Bearer Context Status "
"IE not supported. ue_id=" MME_UE_S1AP_ID_FMT ", cause=%d)\n",
ue_id,
EMM_CAUSE_IE_NOT_IMPLEMENTED);
rc = _emm_tracking_area_update_reject(ue_id, EMM_CAUSE_IE_NOT_IMPLEMENTED);
increment_counter(
"tracking_area_update_req",
1,
2,
"result",
"failure",
"cause",
"eps_bearer_context_status_ie_not_supported");
free_emm_tau_request_ies(&ies);
unlock_ue_contexts(ue_mm_context);
OAILOG_FUNC_RETURN(LOG_NAS_EMM, rc);
}

/*
* Store the mobile station classmark2 information recieved in Tracking Area Update request
* This wil be required for SMS and SGS service request procedure
Expand Down Expand Up @@ -638,8 +612,12 @@ static int _emm_tracking_area_update_accept(nas_emm_tau_proc_t *const tau_proc)
emm_sap.u.emm_as.u.establish.tai_list.numberoflists = 0;
emm_sap.u.emm_as.u.establish.nas_info = EMM_AS_NAS_INFO_TAU;

/*Send eps_bearer_context_status in TAU Accept if received in TAU Req*/
if (tau_proc->ies->eps_bearer_context_status) {
emm_sap.u.emm_as.u.establish.eps_bearer_context_status =
tau_proc->ies->eps_bearer_context_status;
}
// TODO Reminder
emm_sap.u.emm_as.u.establish.eps_bearer_context_status = NULL;
emm_sap.u.emm_as.u.establish.location_area_identification = NULL;
emm_sap.u.emm_as.u.establish.combined_tau_emm_cause = NULL;

Expand Down Expand Up @@ -750,6 +728,12 @@ static int _emm_tracking_area_update_accept(nas_emm_tau_proc_t *const tau_proc)
*/
emm_as->ue_id = tau_proc->ue_id;

/*Send eps_bearer_context_status in TAU Accept if received in TAU Req*/
if (tau_proc->ies->eps_bearer_context_status) {
emm_as->eps_bearer_context_status =
tau_proc->ies->eps_bearer_context_status;
}

/*If CSFB is enabled,store LAI,Mobile Identity and
* Additional Update type to be sent in TAU accept to S1AP
*/
Expand Down
1 change: 1 addition & 0 deletions lte/gateway/c/oai/tasks/nas/emm/sap/emm_asDef.h
Expand Up @@ -271,6 +271,7 @@ typedef struct emm_as_data_s {
ms_identity; /* MS identity This IE may be included to assign or unassign a new TMSI to a UE during a combined TA/LA update. */
uint8_t *additional_update_result; /* TAU Additional update result */
uint32_t *emm_cause; /* EMM failure cause code */
uint16_t *eps_bearer_context_status; /* TAU EPS bearer context status */
uint32_t sgs_loc_updt_status;
uint32_t *sgs_reject_cause;
uint8_t
Expand Down
6 changes: 6 additions & 0 deletions lte/gateway/c/oai/tasks/nas/emm/sap/emm_send.c
Expand Up @@ -1156,6 +1156,12 @@ int emm_send_tracking_area_update_accept_dl_nas(
size += EPS_UPDATE_RESULT_MAXIMUM_LENGTH;
emm_msg->epsupdateresult = EPS_UPDATE_RESULT_TA_UPDATED;

if (msg->eps_bearer_context_status) {
emm_msg->presencemask |=
TRACKING_AREA_UPDATE_ACCEPT_EPS_BEARER_CONTEXT_STATUS_PRESENT;
emm_msg->epsbearercontextstatus = *msg->eps_bearer_context_status;
size += EPS_BEARER_CONTEXT_STATUS_MAXIMUM_LENGTH;
}
/* If CSFB is enabled send LAI,Mobile Identity
* and Additional Update type
*/
Expand Down

0 comments on commit cec23e9

Please sign in to comment.