update it
This commit is contained in:
parent
114e6927c1
commit
161a67eb20
|
@ -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;
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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");
|
||||
|
|
|
@ -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 */
|
||||
|
|
|
@ -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);
|
||||
|
|
Loading…
Reference in New Issue