update it

This commit is contained in:
Sukchan Lee 2017-08-11 20:25:52 +09:00
parent 114e6927c1
commit 161a67eb20
6 changed files with 21 additions and 17 deletions

View File

@ -71,12 +71,15 @@ status_t esm_build_activate_default_bearer_context(
->protocol_configuration_options;
mme_ue_t *mme_ue = NULL;
mme_sess_t *sess = NULL;
pdn_t *pdn = NULL;
d_assert(bearer, return CORE_ERROR, "Null param");
mme_ue = bearer->mme_ue;
sess = bearer->sess;
d_assert(sess, return CORE_ERROR, "Null param");
mme_ue = sess->mme_ue;
d_assert(mme_ue, return CORE_ERROR, "Null param");
pdn = bearer->pdn;
pdn = sess->pdn;
d_assert(pdn, return CORE_ERROR, "Null param");
memset(&message, 0, sizeof(message));
@ -86,6 +89,7 @@ status_t esm_build_activate_default_bearer_context(
message.esm.h.message_type =
NAS_ACTIVATE_DEFAULT_EPS_BEARER_CONTEXT_REQUEST;
/* FIXNOW */
eps_qos->length = 5;
eps_qos->qci = pdn->qos.qci;
eps_qos->ul_mbr = 0xff;

View File

@ -65,9 +65,9 @@ void esm_handle_information_response(mme_bearer_t *bearer,
if (esm_information_response->presencemask &
NAS_ESM_INFORMATION_RESPONSE_ACCESS_POINT_NAME_PRESENT)
{
bearer->pdn = mme_pdn_find_by_apn(mme_ue,
sess->pdn = mme_pdn_find_by_apn(mme_ue,
esm_information_response->access_point_name.apn);
d_assert(bearer->pdn, return, "No PDN Context[APN:%s])",
d_assert(sess->pdn, return, "No PDN Context[APN:%s])",
esm_information_response->access_point_name.apn);
}

View File

@ -262,16 +262,16 @@ typedef struct _mme_sess_t {
c_uint32_t sgw_s11_teid;
c_uint32_t sgw_s11_addr;
#define MME_SESSION_HAVE_APN(sess) \
((sess) && \
(mme_default_bearer_in_sess(sess)) && \
(mme_default_bearer_in_sess(sess)->pdn))
/* mme_bearer_first(sess) : Default Bearer Context */
list_t bearer_list;
/* Related Context */
mme_sgw_t *sgw;
mme_ue_t *mme_ue;
#define MME_SESSION_HAVE_APN(sess) \
((sess) && ((sess)->pdn))
pdn_t *pdn;
} mme_sess_t;
typedef struct _mme_bearer_t {
@ -296,7 +296,6 @@ typedef struct _mme_bearer_t {
/* Related Context */
mme_ue_t *mme_ue;
mme_sess_t *sess;
pdn_t *pdn;
} mme_bearer_t;
CORE_DECLARE(status_t) mme_context_init(void);

View File

@ -31,7 +31,7 @@ status_t mme_s11_build_create_session_request(pkbuf_t **pkbuf, mme_sess_t *sess)
d_assert(sgw, return CORE_ERROR, "Null param");
bearer = mme_default_bearer_in_sess(sess);
d_assert(bearer, return CORE_ERROR, "Null param");
pdn = bearer->pdn;
pdn = sess->pdn;
d_assert(pdn, return CORE_ERROR, "Null param");
mme_ue = sess->mme_ue;
d_assert(mme_ue, return CORE_ERROR, "Null param");

View File

@ -68,7 +68,7 @@ void mme_s11_handle_create_session_response(
bearer = mme_bearer_find_by_sess_ebi(
sess, rsp->bearer_contexts_created.eps_bearer_id.u8);
d_assert(bearer, return, "No ESM Context");
pdn = bearer->pdn;
pdn = sess->pdn;
d_assert(pdn, return, "No PDN Context");
/* Receive Control Plane(UL) : SGW-S11 */

View File

@ -160,14 +160,17 @@ status_t s1ap_build_initial_context_setup_request(
S1ap_NAS_PDU_t *nasPdu = NULL;
mme_ue_t *mme_ue = NULL;
enb_ue_t *enb_ue = NULL;
mme_sess_t *sess = NULL;
pdn_t *pdn = NULL;
d_assert(bearer, return CORE_ERROR, "Null param");
mme_ue = bearer->mme_ue;
sess = bearer->sess;
d_assert(sess, return CORE_ERROR, "Null param");
mme_ue = sess->mme_ue;
d_assert(mme_ue, return CORE_ERROR, "Null param");
enb_ue = mme_ue->enb_ue;
d_assert(enb_ue, return CORE_ERROR, "Null param");
pdn = bearer->pdn;
pdn = sess->pdn;
d_assert(pdn, return CORE_ERROR, "Null param");
memset(&message, 0, sizeof(s1ap_message_t));
@ -190,11 +193,9 @@ status_t s1ap_build_initial_context_setup_request(
e_rab->e_RABlevelQoSParameters.allocationRetentionPriority.
priorityLevel = pdn->qos.priority_level;
e_rab->e_RABlevelQoSParameters.allocationRetentionPriority.
pre_emptionCapability =
S1ap_Pre_emptionCapability_shall_not_trigger_pre_emption;
pre_emptionCapability = !(pdn->qos.pre_emption_capability);
e_rab->e_RABlevelQoSParameters.allocationRetentionPriority.
pre_emptionVulnerability =
S1ap_Pre_emptionVulnerability_not_pre_emptable;
pre_emptionVulnerability = !(pdn->qos.pre_emption_vulnerability);
gbrQosInformation = core_calloc(1, sizeof(struct S1ap_GBR_QosInformation));
asn_uint642INTEGER(&gbrQosInformation->e_RAB_MaximumBitrateDL, 0);