UE/EMM: add nas_user_t parameter to emm_sap_send
Surprisingly, it touches every part of openair3, and most of the prototype. Moreover, a special attention have been put to callback review. However, there are still places to fix or review indicated by FIXME
This commit is contained in:
@@ -104,13 +104,13 @@ Description Defines the dedicated EPS bearer context activation ESM
|
||||
** Others: None **
|
||||
** **
|
||||
***************************************************************************/
|
||||
int esm_proc_dedicated_eps_bearer_context_request(esm_data_t *esm_data, int ebi, int default_ebi,
|
||||
int esm_proc_dedicated_eps_bearer_context_request(nas_user_t *user, int ebi, int default_ebi,
|
||||
const esm_proc_qos_t *qos,
|
||||
const esm_proc_tft_t *tft,
|
||||
int *esm_cause)
|
||||
{
|
||||
LOG_FUNC_IN;
|
||||
|
||||
esm_data_t *esm_data = _esm_data;
|
||||
int rc = RETURNerror;
|
||||
|
||||
LOG_TRACE(INFO, "ESM-PROC - Dedicated EPS bearer context activation "
|
||||
@@ -141,7 +141,7 @@ int esm_proc_dedicated_eps_bearer_context_request(esm_data_t *esm_data, int ebi,
|
||||
int old_pid, old_bid;
|
||||
/* Locally deactivate the existing EPS bearer context and proceed
|
||||
* with the requested dedicated EPS bearer context activation */
|
||||
rc = esm_proc_eps_bearer_context_deactivate(esm_data, TRUE, ebi,
|
||||
rc = esm_proc_eps_bearer_context_deactivate(user, TRUE, ebi,
|
||||
&old_pid, &old_bid);
|
||||
|
||||
if (rc != RETURNok) {
|
||||
@@ -206,7 +206,7 @@ int esm_proc_dedicated_eps_bearer_context_request(esm_data_t *esm_data, int ebi,
|
||||
** Others: None **
|
||||
** **
|
||||
***************************************************************************/
|
||||
int esm_proc_dedicated_eps_bearer_context_accept(int is_standalone, int ebi,
|
||||
int esm_proc_dedicated_eps_bearer_context_accept(nas_user_t *user, int is_standalone, int ebi,
|
||||
OctetString *msg, int ue_triggered)
|
||||
{
|
||||
LOG_FUNC_IN;
|
||||
@@ -225,7 +225,7 @@ int esm_proc_dedicated_eps_bearer_context_accept(int is_standalone, int ebi,
|
||||
emm_sap.u.emm_esm.ueid = 0;
|
||||
emm_esm->msg.length = msg->length;
|
||||
emm_esm->msg.value = msg->value;
|
||||
rc = emm_sap_send(&emm_sap);
|
||||
rc = emm_sap_send(user, &emm_sap);
|
||||
|
||||
if (rc != RETURNerror) {
|
||||
/* Set the EPS bearer context state to ACTIVE */
|
||||
@@ -266,7 +266,7 @@ int esm_proc_dedicated_eps_bearer_context_accept(int is_standalone, int ebi,
|
||||
** Others: None **
|
||||
** **
|
||||
***************************************************************************/
|
||||
int esm_proc_dedicated_eps_bearer_context_reject(int is_standalone, int ebi,
|
||||
int esm_proc_dedicated_eps_bearer_context_reject(nas_user_t *user, int is_standalone, int ebi,
|
||||
OctetString *msg, int ue_triggered)
|
||||
{
|
||||
LOG_FUNC_IN;
|
||||
@@ -293,7 +293,7 @@ int esm_proc_dedicated_eps_bearer_context_reject(int is_standalone, int ebi,
|
||||
emm_sap.u.emm_esm.ueid = 0;
|
||||
emm_esm->msg.length = msg->length;
|
||||
emm_esm->msg.value = msg->value;
|
||||
rc = emm_sap_send(&emm_sap);
|
||||
rc = emm_sap_send(user, &emm_sap);
|
||||
}
|
||||
|
||||
LOG_FUNC_RETURN (rc);
|
||||
|
||||
@@ -104,12 +104,12 @@ static struct {
|
||||
** Others: _default_eps_bearer_context_data **
|
||||
** **
|
||||
***************************************************************************/
|
||||
int esm_proc_default_eps_bearer_context_request(esm_data_t *esm_data, int pid, int ebi,
|
||||
int esm_proc_default_eps_bearer_context_request(nas_user_t *user, int pid, int ebi,
|
||||
const esm_proc_qos_t *qos,
|
||||
int *esm_cause)
|
||||
{
|
||||
LOG_FUNC_IN;
|
||||
|
||||
esm_data_t *esm_data = _esm_data;
|
||||
int rc = RETURNerror;
|
||||
|
||||
LOG_TRACE(INFO, "ESM-PROC - Default EPS bearer context activation "
|
||||
@@ -126,7 +126,7 @@ int esm_proc_default_eps_bearer_context_request(esm_data_t *esm_data, int pid, i
|
||||
int old_pid, old_bid;
|
||||
/* Locally deactivate the existing EPS bearer context and proceed
|
||||
* with the requested default EPS bearer context activation */
|
||||
rc = esm_proc_eps_bearer_context_deactivate(esm_data, TRUE, ebi,
|
||||
rc = esm_proc_eps_bearer_context_deactivate(user, TRUE, ebi,
|
||||
&old_pid, &old_bid);
|
||||
|
||||
if (rc != RETURNok) {
|
||||
@@ -188,7 +188,7 @@ int esm_proc_default_eps_bearer_context_request(esm_data_t *esm_data, int pid, i
|
||||
** Others: None **
|
||||
** **
|
||||
***************************************************************************/
|
||||
int esm_proc_default_eps_bearer_context_accept(int is_standalone, int ebi,
|
||||
int esm_proc_default_eps_bearer_context_accept(nas_user_t *user, int is_standalone, int ebi,
|
||||
OctetString *msg, int ue_triggered)
|
||||
{
|
||||
LOG_FUNC_IN;
|
||||
@@ -208,7 +208,7 @@ int esm_proc_default_eps_bearer_context_accept(int is_standalone, int ebi,
|
||||
emm_sap.u.emm_esm.ueid = 0;
|
||||
emm_esm->msg.length = msg->length;
|
||||
emm_esm->msg.value = msg->value;
|
||||
rc = emm_sap_send(&emm_sap);
|
||||
rc = emm_sap_send(user, &emm_sap);
|
||||
}
|
||||
|
||||
if (rc != RETURNerror) {
|
||||
@@ -256,7 +256,7 @@ int esm_proc_default_eps_bearer_context_accept(int is_standalone, int ebi,
|
||||
** Others: None **
|
||||
** **
|
||||
***************************************************************************/
|
||||
int esm_proc_default_eps_bearer_context_reject(int is_standalone, int ebi,
|
||||
int esm_proc_default_eps_bearer_context_reject(nas_user_t *user, int is_standalone, int ebi,
|
||||
OctetString *msg, int ue_triggered)
|
||||
{
|
||||
LOG_FUNC_IN;
|
||||
@@ -283,7 +283,7 @@ int esm_proc_default_eps_bearer_context_reject(int is_standalone, int ebi,
|
||||
emm_sap.u.emm_esm.ueid = 0;
|
||||
emm_esm->msg.length = msg->length;
|
||||
emm_esm->msg.value = msg->value;
|
||||
rc = emm_sap_send(&emm_sap);
|
||||
rc = emm_sap_send(user, &emm_sap);
|
||||
} else {
|
||||
/* An error is returned to notify EMM that the default EPS bearer
|
||||
* activation procedure initiated as part of the initial attach
|
||||
@@ -346,7 +346,7 @@ int esm_proc_default_eps_bearer_context_complete(void)
|
||||
** Others: _default_eps_bearer_context_data **
|
||||
** **
|
||||
***************************************************************************/
|
||||
int esm_proc_default_eps_bearer_context_failure(esm_data_t *esm_data)
|
||||
int esm_proc_default_eps_bearer_context_failure(nas_user_t *user)
|
||||
{
|
||||
LOG_FUNC_IN;
|
||||
|
||||
@@ -357,7 +357,7 @@ int esm_proc_default_eps_bearer_context_failure(esm_data_t *esm_data)
|
||||
"ESM-PROC - Default EPS bearer context activation failure");
|
||||
|
||||
/* Release the default EPS bearer context and enter state INACTIVE */
|
||||
int rc = esm_proc_eps_bearer_context_deactivate(esm_data, TRUE, ebi, &pid, &bid);
|
||||
int rc = esm_proc_eps_bearer_context_deactivate(user, TRUE, ebi, &pid, &bid);
|
||||
|
||||
if (rc != RETURNerror) {
|
||||
/* Reset default EPS bearer context internal data */
|
||||
|
||||
@@ -74,7 +74,7 @@ Description Defines the EPS bearer context deactivation ESM procedure
|
||||
* in the UE
|
||||
* --------------------------------------------------------------------------
|
||||
*/
|
||||
static int _eps_bearer_release(esm_data_t *esm_data, int ebi, int *pid, int *bid);
|
||||
static int _eps_bearer_release(nas_user_t *user, int ebi, int *pid, int *bid);
|
||||
|
||||
|
||||
/****************************************************************************/
|
||||
@@ -112,25 +112,25 @@ static int _eps_bearer_release(esm_data_t *esm_data, int ebi, int *pid, int *bid
|
||||
** Others: None **
|
||||
** **
|
||||
***************************************************************************/
|
||||
int esm_proc_eps_bearer_context_deactivate(esm_data_t *esm_data, int is_local, int ebi,
|
||||
int esm_proc_eps_bearer_context_deactivate(nas_user_t *user, int is_local, int ebi,
|
||||
int *pid, int *bid)
|
||||
{
|
||||
LOG_FUNC_IN;
|
||||
|
||||
int rc = RETURNerror;
|
||||
int i;
|
||||
|
||||
esm_data_t *esm_data = _esm_data;
|
||||
if (is_local) {
|
||||
if (ebi != ESM_SAP_ALL_EBI) {
|
||||
/* Locally release the EPS bearer context */
|
||||
rc = _eps_bearer_release(esm_data, ebi, pid, bid);
|
||||
rc = _eps_bearer_release(user, ebi, pid, bid);
|
||||
} else {
|
||||
/* Locally release all the EPS bearer contexts */
|
||||
*bid = 0;
|
||||
|
||||
for (*pid = 0; *pid < ESM_DATA_PDN_MAX; (*pid)++) {
|
||||
if (esm_data->pdn[*pid].data) {
|
||||
rc = _eps_bearer_release(esm_data, ESM_EBI_UNASSIGNED, pid, bid);
|
||||
rc = _eps_bearer_release(user, ESM_EBI_UNASSIGNED, pid, bid);
|
||||
|
||||
if (rc != RETURNok) {
|
||||
break;
|
||||
@@ -189,18 +189,19 @@ int esm_proc_eps_bearer_context_deactivate(esm_data_t *esm_data, int is_local, i
|
||||
** Others: None **
|
||||
** **
|
||||
***************************************************************************/
|
||||
int esm_proc_eps_bearer_context_deactivate_request(esm_data_t *esm_data, int ebi, int *esm_cause)
|
||||
int esm_proc_eps_bearer_context_deactivate_request(nas_user_t *user, int ebi, int *esm_cause)
|
||||
{
|
||||
LOG_FUNC_IN;
|
||||
|
||||
int pid, bid;
|
||||
int rc = RETURNok;
|
||||
esm_data_t *esm_data = _esm_data;
|
||||
|
||||
LOG_TRACE(INFO, "ESM-PROC - EPS bearer context deactivation "
|
||||
"requested by the network (ebi=%d)", ebi);
|
||||
|
||||
/* Release the EPS bearer context entry */
|
||||
if (esm_ebr_context_release(esm_data, ebi, &pid, &bid) == ESM_EBI_UNASSIGNED) {
|
||||
if (esm_ebr_context_release(user, ebi, &pid, &bid) == ESM_EBI_UNASSIGNED) {
|
||||
LOG_TRACE(WARNING, "ESM-PROC - Failed to release EPS bearer context");
|
||||
*esm_cause = ESM_CAUSE_PROTOCOL_ERROR;
|
||||
LOG_FUNC_RETURN (RETURNerror);
|
||||
@@ -243,7 +244,7 @@ int esm_proc_eps_bearer_context_deactivate_request(esm_data_t *esm_data, int ebi
|
||||
esm_sap.is_standalone = TRUE;
|
||||
esm_sap.data.pdn_connect.is_defined = TRUE;
|
||||
esm_sap.data.pdn_connect.cid = pid + 1;
|
||||
rc = esm_sap_send(&esm_sap);
|
||||
rc = esm_sap_send(user, &esm_sap);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -275,7 +276,7 @@ int esm_proc_eps_bearer_context_deactivate_request(esm_data_t *esm_data, int ebi
|
||||
** Others: None **
|
||||
** **
|
||||
***************************************************************************/
|
||||
int esm_proc_eps_bearer_context_deactivate_accept(int is_standalone, int ebi,
|
||||
int esm_proc_eps_bearer_context_deactivate_accept(nas_user_t *user, int is_standalone, int ebi,
|
||||
OctetString *msg, int ue_triggered)
|
||||
{
|
||||
LOG_FUNC_IN;
|
||||
@@ -293,7 +294,7 @@ int esm_proc_eps_bearer_context_deactivate_accept(int is_standalone, int ebi,
|
||||
emm_sap.u.emm_esm.ueid = 0;
|
||||
emm_sap.u.emm_esm.u.data.msg.length = msg->length;
|
||||
emm_sap.u.emm_esm.u.data.msg.value = msg->value;
|
||||
rc = emm_sap_send(&emm_sap);
|
||||
rc = emm_sap_send(user, &emm_sap);
|
||||
}
|
||||
|
||||
if (rc != RETURNerror) {
|
||||
@@ -352,14 +353,14 @@ int esm_proc_eps_bearer_context_deactivate_accept(int is_standalone, int ebi,
|
||||
** Others: None **
|
||||
** **
|
||||
***************************************************************************/
|
||||
static int _eps_bearer_release(esm_data_t *esm_data, int ebi, int *pid, int *bid)
|
||||
static int _eps_bearer_release(nas_user_t *user, int ebi, int *pid, int *bid)
|
||||
{
|
||||
LOG_FUNC_IN;
|
||||
|
||||
int rc = RETURNerror;
|
||||
|
||||
/* Release the EPS bearer context entry */
|
||||
ebi = esm_ebr_context_release(esm_data, ebi, pid, bid);
|
||||
ebi = esm_ebr_context_release(user, ebi, pid, bid);
|
||||
|
||||
if (ebi == ESM_EBI_UNASSIGNED) {
|
||||
LOG_TRACE(WARNING, "ESM-PROC - Failed to release EPS bearer context");
|
||||
|
||||
@@ -161,7 +161,7 @@ int esm_proc_status_ind(
|
||||
** Others: None **
|
||||
** **
|
||||
***************************************************************************/
|
||||
int esm_proc_status(int is_standalone,
|
||||
int esm_proc_status(nas_user_t *user, int is_standalone,
|
||||
int ebi, OctetString *msg,
|
||||
int ue_triggered)
|
||||
{
|
||||
@@ -179,7 +179,7 @@ int esm_proc_status(int is_standalone,
|
||||
emm_sap.u.emm_esm.ueid = 0;
|
||||
emm_sap.u.emm_esm.u.data.msg.length = msg->length;
|
||||
emm_sap.u.emm_esm.u.data.msg.value = msg->value;
|
||||
rc = emm_sap_send(&emm_sap);
|
||||
rc = emm_sap_send(user, &emm_sap);
|
||||
|
||||
LOG_FUNC_RETURN (rc);
|
||||
}
|
||||
|
||||
@@ -279,7 +279,7 @@ int esm_proc_pdn_connectivity(esm_data_t *esm_data, int cid, int is_to_define,
|
||||
** Others: None **
|
||||
** **
|
||||
***************************************************************************/
|
||||
int esm_proc_pdn_connectivity_request(int is_standalone, int pti,
|
||||
int esm_proc_pdn_connectivity_request(nas_user_t *user, int is_standalone, int pti,
|
||||
OctetString *msg, int sent_by_ue)
|
||||
{
|
||||
LOG_FUNC_IN;
|
||||
@@ -298,7 +298,7 @@ int esm_proc_pdn_connectivity_request(int is_standalone, int pti,
|
||||
emm_sap.u.emm_esm.ueid = 0;
|
||||
emm_esm->msg.length = msg->length;
|
||||
emm_esm->msg.value = msg->value;
|
||||
rc = emm_sap_send(&emm_sap);
|
||||
rc = emm_sap_send(user, &emm_sap);
|
||||
|
||||
if (rc != RETURNerror) {
|
||||
/* Start T3482 retransmission timer */
|
||||
@@ -346,12 +346,12 @@ int esm_proc_pdn_connectivity_request(int is_standalone, int pti,
|
||||
** Others: None **
|
||||
** **
|
||||
***************************************************************************/
|
||||
int esm_proc_pdn_connectivity_accept(esm_data_t *esm_data, int pti, esm_proc_pdn_type_t pdn_type,
|
||||
int esm_proc_pdn_connectivity_accept(nas_user_t *user, int pti, esm_proc_pdn_type_t pdn_type,
|
||||
const OctetString *pdn_addr,
|
||||
const OctetString *apn, int *esm_cause)
|
||||
{
|
||||
LOG_FUNC_IN;
|
||||
|
||||
esm_data_t *esm_data = _esm_data;
|
||||
int rc;
|
||||
int pid = RETURNerror;
|
||||
char apn_first_char[4];
|
||||
@@ -438,7 +438,7 @@ int esm_proc_pdn_connectivity_accept(esm_data_t *esm_data, int pti, esm_proc_pdn
|
||||
** Others: None **
|
||||
** **
|
||||
***************************************************************************/
|
||||
int esm_proc_pdn_connectivity_reject(int pti, int *esm_cause)
|
||||
int esm_proc_pdn_connectivity_reject(nas_user_t *user, int pti, int *esm_cause)
|
||||
{
|
||||
LOG_FUNC_IN;
|
||||
|
||||
@@ -489,7 +489,7 @@ int esm_proc_pdn_connectivity_reject(int pti, int *esm_cause)
|
||||
** Others: None **
|
||||
** **
|
||||
***************************************************************************/
|
||||
int esm_proc_pdn_connectivity_complete(void)
|
||||
int esm_proc_pdn_connectivity_complete(nas_user_t *user)
|
||||
{
|
||||
LOG_FUNC_IN;
|
||||
|
||||
@@ -530,7 +530,7 @@ int esm_proc_pdn_connectivity_complete(void)
|
||||
** Others: None **
|
||||
** **
|
||||
***************************************************************************/
|
||||
int esm_proc_pdn_connectivity_failure(int is_pending)
|
||||
int esm_proc_pdn_connectivity_failure(nas_user_t *user, int is_pending)
|
||||
{
|
||||
LOG_FUNC_IN;
|
||||
|
||||
@@ -603,6 +603,7 @@ int esm_proc_pdn_connectivity_failure(int is_pending)
|
||||
** Others: None **
|
||||
** **
|
||||
***************************************************************************/
|
||||
// FIXME
|
||||
static void *_pdn_connectivity_t3482_handler(void *args)
|
||||
{
|
||||
LOG_FUNC_IN;
|
||||
@@ -610,7 +611,8 @@ static void *_pdn_connectivity_t3482_handler(void *args)
|
||||
int rc;
|
||||
|
||||
/* Get retransmission timer parameters data */
|
||||
esm_pt_timer_data_t *data = (esm_pt_timer_data_t *)(args);
|
||||
esm_pt_timer_data_t *data = args;
|
||||
nas_user_t *user = data->user;
|
||||
|
||||
/* Increment the retransmission counter */
|
||||
data->count += 1;
|
||||
@@ -629,7 +631,7 @@ static void *_pdn_connectivity_t3482_handler(void *args)
|
||||
emm_sap.u.emm_esm.ueid = 0;
|
||||
emm_esm->msg.length = data->msg.length;
|
||||
emm_esm->msg.value = data->msg.value;
|
||||
rc = emm_sap_send(&emm_sap);
|
||||
rc = emm_sap_send(user, &emm_sap);
|
||||
|
||||
if (rc != RETURNerror) {
|
||||
/* Restart the timer T3482 */
|
||||
|
||||
@@ -168,7 +168,7 @@ int esm_proc_pdn_disconnect(esm_data_t *esm_data, int cid, unsigned int *pti, un
|
||||
** Others: None **
|
||||
** **
|
||||
***************************************************************************/
|
||||
int esm_proc_pdn_disconnect_request(int is_standalone, int pti,
|
||||
int esm_proc_pdn_disconnect_request(nas_user_t *user, int is_standalone, int pti,
|
||||
OctetString *msg, int sent_by_ue)
|
||||
{
|
||||
LOG_FUNC_IN;
|
||||
@@ -187,7 +187,7 @@ int esm_proc_pdn_disconnect_request(int is_standalone, int pti,
|
||||
emm_sap.u.emm_esm.ueid = 0;
|
||||
emm_esm->msg.length = msg->length;
|
||||
emm_esm->msg.value = msg->value;
|
||||
rc = emm_sap_send(&emm_sap);
|
||||
rc = emm_sap_send(user, &emm_sap);
|
||||
|
||||
if (rc != RETURNerror) {
|
||||
/* Start T3482 retransmission timer */
|
||||
@@ -284,10 +284,10 @@ int esm_proc_pdn_disconnect_accept(int pti, int *esm_cause)
|
||||
** Others: None **
|
||||
** **
|
||||
***************************************************************************/
|
||||
int esm_proc_pdn_disconnect_reject(esm_data_t *esm_data, int pti, int *esm_cause)
|
||||
int esm_proc_pdn_disconnect_reject(nas_user_t *user, int pti, int *esm_cause)
|
||||
{
|
||||
LOG_FUNC_IN;
|
||||
|
||||
esm_data_t *esm_data = _esm_data;
|
||||
int rc;
|
||||
|
||||
LOG_TRACE(WARNING, "ESM-PROC - PDN disconnection rejected by the network "
|
||||
@@ -331,7 +331,7 @@ int esm_proc_pdn_disconnect_reject(esm_data_t *esm_data, int pti, int *esm_cause
|
||||
esm_sap.recv = NULL;
|
||||
esm_sap.send.length = 0;
|
||||
esm_sap.data.eps_bearer_context_deactivate.ebi = ebi;
|
||||
rc = esm_sap_send(&esm_sap);
|
||||
rc = esm_sap_send(user, &esm_sap);
|
||||
|
||||
if (rc != RETURNok) {
|
||||
*esm_cause = ESM_CAUSE_PROTOCOL_ERROR;
|
||||
@@ -383,7 +383,8 @@ static void *_pdn_disconnect_t3492_handler(void *args)
|
||||
{
|
||||
LOG_FUNC_IN;
|
||||
// FIXME check callback call
|
||||
esm_data_t *esm_data = args;;
|
||||
nas_user_t *user = args;
|
||||
esm_data_t *esm_data = _esm_data;;
|
||||
int rc;
|
||||
|
||||
/* Get retransmission timer parameters data */
|
||||
@@ -406,7 +407,7 @@ static void *_pdn_disconnect_t3492_handler(void *args)
|
||||
emm_sap.u.emm_esm.ueid = 0;
|
||||
emm_esm->msg.length = data->msg.length;
|
||||
emm_esm->msg.value = data->msg.value;
|
||||
rc = emm_sap_send(&emm_sap);
|
||||
rc = emm_sap_send(user, &emm_sap);
|
||||
|
||||
if (rc != RETURNerror) {
|
||||
/* Restart the timer T3492 */
|
||||
@@ -449,7 +450,7 @@ static void *_pdn_disconnect_t3492_handler(void *args)
|
||||
esm_sap.recv = NULL;
|
||||
esm_sap.send.length = 0;
|
||||
esm_sap.data.eps_bearer_context_deactivate.ebi = ebi;
|
||||
rc = esm_sap_send(&esm_sap);
|
||||
rc = esm_sap_send(user, &esm_sap);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -135,7 +135,7 @@ int esm_recv_status(int pti, int ebi, const esm_status_msg *msg)
|
||||
** Others: None **
|
||||
** **
|
||||
***************************************************************************/
|
||||
int esm_recv_pdn_connectivity_reject(esm_data_t *esm_data, int pti, int ebi,
|
||||
int esm_recv_pdn_connectivity_reject(nas_user_t *user, int pti, int ebi,
|
||||
const pdn_connectivity_reject_msg *msg)
|
||||
{
|
||||
LOG_FUNC_IN;
|
||||
@@ -179,7 +179,7 @@ int esm_recv_pdn_connectivity_reject(esm_data_t *esm_data, int pti, int ebi,
|
||||
esm_cause = msg->esmcause;
|
||||
|
||||
/* Execute the PDN connectivity procedure not accepted by the network */
|
||||
int rc = esm_proc_pdn_connectivity_reject(pti, &esm_cause);
|
||||
int rc = esm_proc_pdn_connectivity_reject(user, pti, &esm_cause);
|
||||
|
||||
if (rc != RETURNerror) {
|
||||
esm_cause = ESM_CAUSE_SUCCESS;
|
||||
@@ -206,7 +206,7 @@ int esm_recv_pdn_connectivity_reject(esm_data_t *esm_data, int pti, int ebi,
|
||||
** Others: None **
|
||||
** **
|
||||
***************************************************************************/
|
||||
int esm_recv_pdn_disconnect_reject(esm_data_t *esm_data, int pti, int ebi,
|
||||
int esm_recv_pdn_disconnect_reject(nas_user_t *user, int pti, int ebi,
|
||||
const pdn_disconnect_reject_msg *msg)
|
||||
{
|
||||
LOG_FUNC_IN;
|
||||
@@ -250,7 +250,7 @@ int esm_recv_pdn_disconnect_reject(esm_data_t *esm_data, int pti, int ebi,
|
||||
esm_cause = msg->esmcause;
|
||||
|
||||
/* Execute the PDN disconnect procedure not accepted by the network */
|
||||
int rc = esm_proc_pdn_disconnect_reject(esm_data, pti, &esm_cause);
|
||||
int rc = esm_proc_pdn_disconnect_reject(user, pti, &esm_cause);
|
||||
|
||||
if (rc != RETURNerror) {
|
||||
esm_cause = ESM_CAUSE_SUCCESS;
|
||||
@@ -278,11 +278,10 @@ int esm_recv_pdn_disconnect_reject(esm_data_t *esm_data, int pti, int ebi,
|
||||
** Others: None **
|
||||
** **
|
||||
***************************************************************************/
|
||||
int esm_recv_activate_default_eps_bearer_context_request(esm_data_t *esm_data, int pti, int ebi,
|
||||
int esm_recv_activate_default_eps_bearer_context_request(nas_user_t *user, int pti, int ebi,
|
||||
const activate_default_eps_bearer_context_request_msg *msg)
|
||||
{
|
||||
LOG_FUNC_IN;
|
||||
|
||||
int esm_cause = ESM_CAUSE_SUCCESS;
|
||||
|
||||
LOG_TRACE(INFO, "ESM-SAP - Received Activate Default EPS Bearer Context "
|
||||
@@ -369,14 +368,14 @@ int esm_recv_activate_default_eps_bearer_context_request(esm_data_t *esm_data, i
|
||||
}
|
||||
|
||||
/* Execute the PDN connectivity procedure accepted by the network */
|
||||
int pid = esm_proc_pdn_connectivity_accept(esm_data, pti, pdn_type,
|
||||
int pid = esm_proc_pdn_connectivity_accept(user, pti, pdn_type,
|
||||
&msg->pdnaddress.pdnaddressinformation,
|
||||
&msg->accesspointname.accesspointnamevalue,
|
||||
&esm_cause);
|
||||
|
||||
if (pid != RETURNerror) {
|
||||
/* Create local default EPS bearer context */
|
||||
int rc = esm_proc_default_eps_bearer_context_request(esm_data, pid, ebi, &qos,
|
||||
int rc = esm_proc_default_eps_bearer_context_request(user, pid, ebi, &qos,
|
||||
&esm_cause);
|
||||
|
||||
if (rc != RETURNerror) {
|
||||
@@ -406,7 +405,7 @@ int esm_recv_activate_default_eps_bearer_context_request(esm_data_t *esm_data, i
|
||||
** Others: None **
|
||||
** **
|
||||
***************************************************************************/
|
||||
int esm_recv_activate_dedicated_eps_bearer_context_request(esm_data_t *esm_data, int pti, int ebi,
|
||||
int esm_recv_activate_dedicated_eps_bearer_context_request(nas_user_t *user, int pti, int ebi,
|
||||
const activate_dedicated_eps_bearer_context_request_msg *msg)
|
||||
{
|
||||
LOG_FUNC_IN;
|
||||
@@ -580,7 +579,7 @@ int esm_recv_activate_dedicated_eps_bearer_context_request(esm_data_t *esm_data,
|
||||
}
|
||||
|
||||
/* Execute the dedicated EPS bearer context activation procedure */
|
||||
int rc = esm_proc_dedicated_eps_bearer_context_request(esm_data, ebi,
|
||||
int rc = esm_proc_dedicated_eps_bearer_context_request(user, ebi,
|
||||
msg->linkedepsbeareridentity,
|
||||
&qos, &tft, &esm_cause);
|
||||
|
||||
@@ -614,7 +613,7 @@ int esm_recv_activate_dedicated_eps_bearer_context_request(esm_data_t *esm_data,
|
||||
** Others: None **
|
||||
** **
|
||||
***************************************************************************/
|
||||
int esm_recv_deactivate_eps_bearer_context_request(esm_data_t *esm_data, int pti, int ebi,
|
||||
int esm_recv_deactivate_eps_bearer_context_request(nas_user_t *user, int pti, int ebi,
|
||||
const deactivate_eps_bearer_context_request_msg *msg)
|
||||
{
|
||||
LOG_FUNC_IN;
|
||||
@@ -670,7 +669,7 @@ int esm_recv_deactivate_eps_bearer_context_request(esm_data_t *esm_data, int pti
|
||||
|
||||
if (rc != RETURNerror) {
|
||||
/* Execute the EPS bearer context deactivation procedure */
|
||||
rc = esm_proc_eps_bearer_context_deactivate_request(esm_data, ebi, &esm_cause);
|
||||
rc = esm_proc_eps_bearer_context_deactivate_request(user, ebi, &esm_cause);
|
||||
|
||||
if (rc != RETURNerror) {
|
||||
esm_cause = ESM_CAUSE_SUCCESS;
|
||||
|
||||
@@ -42,6 +42,7 @@ Description Defines functions executed at the ESM Service Access
|
||||
|
||||
#include "EsmStatus.h"
|
||||
#include "emmData.h"
|
||||
#include "user_defs.h"
|
||||
|
||||
#include "PdnConnectivityReject.h"
|
||||
#include "PdnDisconnectReject.h"
|
||||
@@ -88,23 +89,23 @@ int esm_recv_status(int pti, int ebi, const esm_status_msg *msg);
|
||||
* Transaction related messages
|
||||
* ----------------------------
|
||||
*/
|
||||
int esm_recv_pdn_connectivity_reject(esm_data_t *esm_data, int pti, int ebi,
|
||||
int esm_recv_pdn_connectivity_reject(nas_user_t *user, int pti, int ebi,
|
||||
const pdn_connectivity_reject_msg *msg);
|
||||
|
||||
int esm_recv_pdn_disconnect_reject(esm_data_t *esm_data, int pti, int ebi,
|
||||
int esm_recv_pdn_disconnect_reject(nas_user_t *user, int pti, int ebi,
|
||||
const pdn_disconnect_reject_msg *msg);
|
||||
|
||||
/*
|
||||
* Messages related to EPS bearer contexts
|
||||
* ---------------------------------------
|
||||
*/
|
||||
int esm_recv_activate_default_eps_bearer_context_request(esm_data_t *esm_data, int pti, int ebi,
|
||||
int esm_recv_activate_default_eps_bearer_context_request(nas_user_t *user, int pti, int ebi,
|
||||
const activate_default_eps_bearer_context_request_msg *msg);
|
||||
|
||||
int esm_recv_activate_dedicated_eps_bearer_context_request(esm_data_t *esm_data, int pti, int ebi,
|
||||
int esm_recv_activate_dedicated_eps_bearer_context_request(nas_user_t *user, int pti, int ebi,
|
||||
const activate_dedicated_eps_bearer_context_request_msg *msg);
|
||||
|
||||
int esm_recv_deactivate_eps_bearer_context_request(esm_data_t *esm_data, int pti, int ebi,
|
||||
int esm_recv_deactivate_eps_bearer_context_request(nas_user_t *user, int pti, int ebi,
|
||||
const deactivate_eps_bearer_context_request_msg *msg);
|
||||
|
||||
|
||||
|
||||
@@ -63,10 +63,9 @@ Description Defines the ESM Service Access Points at which the EPS
|
||||
/******************* L O C A L D E F I N I T I O N S *******************/
|
||||
/****************************************************************************/
|
||||
|
||||
// FIXME NOT SURE FOR THIS ONE
|
||||
static int _esm_sap_recv(esm_data_t *esm_data, int msg_type, int is_standalone,
|
||||
static int _esm_sap_recv(nas_user_t *user, int msg_type, int is_standalone,
|
||||
const OctetString *req, OctetString *rsp, esm_sap_error_t *err);
|
||||
static int _esm_sap_send(int msg_type, int is_standalone, int pti, int ebi,
|
||||
static int _esm_sap_send(nas_user_t *user, int msg_type, int is_standalone, int pti, int ebi,
|
||||
const esm_sap_data_t *data, OctetString *rsp);
|
||||
|
||||
|
||||
@@ -145,7 +144,7 @@ void esm_sap_initialize(void)
|
||||
** Others: None **
|
||||
** **
|
||||
***************************************************************************/
|
||||
int esm_sap_send(esm_sap_t *msg)
|
||||
int esm_sap_send(nas_user_t *user, esm_sap_t *msg)
|
||||
{
|
||||
LOG_FUNC_IN;
|
||||
// FIXME
|
||||
@@ -193,7 +192,7 @@ int esm_sap_send(esm_sap_t *msg)
|
||||
|
||||
if (rc != RETURNerror) {
|
||||
/* Send PDN connectivity request */
|
||||
rc = _esm_sap_send(PDN_CONNECTIVITY_REQUEST,
|
||||
rc = _esm_sap_send(user, PDN_CONNECTIVITY_REQUEST,
|
||||
msg->is_standalone,
|
||||
pti, EPS_BEARER_IDENTITY_UNASSIGNED,
|
||||
&msg->data, &msg->send);
|
||||
@@ -214,11 +213,11 @@ int esm_sap_send(esm_sap_t *msg)
|
||||
pdn_connect->is_emergency, NULL);
|
||||
} else if (msg->recv != NULL) {
|
||||
/* The UE received a PDN connectivity reject message */
|
||||
rc = _esm_sap_recv(esm_data, PDN_CONNECTIVITY_REJECT, msg->is_standalone,
|
||||
rc = _esm_sap_recv(user, PDN_CONNECTIVITY_REJECT, msg->is_standalone,
|
||||
msg->recv, &msg->send, &msg->err);
|
||||
} else {
|
||||
/* The PDN connectivity procedure locally failed */
|
||||
rc = esm_proc_pdn_connectivity_failure(TRUE);
|
||||
rc = esm_proc_pdn_connectivity_failure(user, TRUE);
|
||||
}
|
||||
}
|
||||
break;
|
||||
@@ -234,7 +233,7 @@ int esm_sap_send(esm_sap_t *msg)
|
||||
|
||||
if (rc != RETURNerror) {
|
||||
/* Send PDN disconnect request */
|
||||
rc = _esm_sap_send(PDN_DISCONNECT_REQUEST, TRUE, pti, ebi,
|
||||
rc = _esm_sap_send(user, PDN_DISCONNECT_REQUEST, TRUE, pti, ebi,
|
||||
&msg->data, &msg->send);
|
||||
}
|
||||
}
|
||||
@@ -257,7 +256,7 @@ int esm_sap_send(esm_sap_t *msg)
|
||||
|
||||
case ESM_DEFAULT_EPS_BEARER_CONTEXT_ACTIVATE_REQ:
|
||||
/* The UE received activate default ESP bearer context request */
|
||||
rc = _esm_sap_recv(esm_data, ACTIVATE_DEFAULT_EPS_BEARER_CONTEXT_REQUEST,
|
||||
rc = _esm_sap_recv(user, ACTIVATE_DEFAULT_EPS_BEARER_CONTEXT_REQUEST,
|
||||
msg->is_standalone,
|
||||
msg->recv, &msg->send, &msg->err);
|
||||
break;
|
||||
@@ -270,7 +269,7 @@ int esm_sap_send(esm_sap_t *msg)
|
||||
rc = esm_proc_default_eps_bearer_context_complete();
|
||||
|
||||
if (rc != RETURNerror) {
|
||||
rc = esm_proc_pdn_connectivity_complete();
|
||||
rc = esm_proc_pdn_connectivity_complete(user);
|
||||
}
|
||||
|
||||
break;
|
||||
@@ -279,10 +278,10 @@ int esm_sap_send(esm_sap_t *msg)
|
||||
/*
|
||||
* Default ESP bearer context activation procedure locally failed
|
||||
*/
|
||||
rc = esm_proc_default_eps_bearer_context_failure(esm_data);
|
||||
rc = esm_proc_default_eps_bearer_context_failure(user);
|
||||
|
||||
if (rc != RETURNerror) {
|
||||
rc = esm_proc_pdn_connectivity_failure(FALSE);
|
||||
rc = esm_proc_pdn_connectivity_failure(user, FALSE);
|
||||
}
|
||||
|
||||
break;
|
||||
@@ -310,7 +309,7 @@ int esm_sap_send(esm_sap_t *msg)
|
||||
/*
|
||||
* Locally deactivate EPS bearer context
|
||||
*/
|
||||
rc = esm_proc_eps_bearer_context_deactivate(esm_data, TRUE,
|
||||
rc = esm_proc_eps_bearer_context_deactivate(user, TRUE,
|
||||
msg->data.eps_bearer_context_deactivate.ebi, &pid, &bid);
|
||||
}
|
||||
break;
|
||||
@@ -319,7 +318,7 @@ int esm_sap_send(esm_sap_t *msg)
|
||||
break;
|
||||
|
||||
case ESM_UNITDATA_IND:
|
||||
rc = _esm_sap_recv(esm_data, -1, msg->is_standalone, msg->recv,
|
||||
rc = _esm_sap_recv(user, -1, msg->is_standalone, msg->recv,
|
||||
&msg->send, &msg->err);
|
||||
break;
|
||||
|
||||
@@ -364,7 +363,7 @@ int esm_sap_send(esm_sap_t *msg)
|
||||
** Others: _esm_sap_buffer **
|
||||
** **
|
||||
***************************************************************************/
|
||||
static int _esm_sap_recv(esm_data_t *esm_data, int msg_type, int is_standalone,
|
||||
static int _esm_sap_recv(nas_user_t *user, int msg_type, int is_standalone,
|
||||
const OctetString *req, OctetString *rsp,
|
||||
esm_sap_error_t *err)
|
||||
{
|
||||
@@ -442,7 +441,7 @@ static int _esm_sap_recv(esm_data_t *esm_data, int msg_type, int is_standalone,
|
||||
* received from the MME
|
||||
*/
|
||||
esm_cause = esm_recv_activate_default_eps_bearer_context_request(
|
||||
esm_data, pti, ebi,
|
||||
user, pti, ebi,
|
||||
&esm_msg.activate_default_eps_bearer_context_request);
|
||||
|
||||
if ( (esm_cause == ESM_CAUSE_SUCCESS) ||
|
||||
@@ -480,7 +479,7 @@ static int _esm_sap_recv(esm_data_t *esm_data, int msg_type, int is_standalone,
|
||||
* received from the MME
|
||||
*/
|
||||
esm_cause = esm_recv_activate_dedicated_eps_bearer_context_request(
|
||||
esm_data, pti, ebi,
|
||||
user, pti, ebi,
|
||||
&esm_msg.activate_dedicated_eps_bearer_context_request);
|
||||
|
||||
if ( (esm_cause == ESM_CAUSE_SUCCESS) ||
|
||||
@@ -520,7 +519,7 @@ static int _esm_sap_recv(esm_data_t *esm_data, int msg_type, int is_standalone,
|
||||
* Process deactivate EPS bearer context request message
|
||||
* received from the MME
|
||||
*/
|
||||
esm_cause = esm_recv_deactivate_eps_bearer_context_request(esm_data, pti, ebi,
|
||||
esm_cause = esm_recv_deactivate_eps_bearer_context_request(user, pti, ebi,
|
||||
&esm_msg.deactivate_eps_bearer_context_request);
|
||||
|
||||
if ( (esm_cause == ESM_CAUSE_INVALID_PTI_VALUE) ||
|
||||
@@ -556,7 +555,7 @@ static int _esm_sap_recv(esm_data_t *esm_data, int msg_type, int is_standalone,
|
||||
/*
|
||||
* Process PDN connectivity reject message received from the MME
|
||||
*/
|
||||
esm_cause = esm_recv_pdn_connectivity_reject(esm_data, pti, ebi,
|
||||
esm_cause = esm_recv_pdn_connectivity_reject(user, pti, ebi,
|
||||
&esm_msg.pdn_connectivity_reject);
|
||||
|
||||
if ( (esm_cause == ESM_CAUSE_INVALID_PTI_VALUE) ||
|
||||
@@ -579,7 +578,7 @@ static int _esm_sap_recv(esm_data_t *esm_data, int msg_type, int is_standalone,
|
||||
/*
|
||||
* Process PDN disconnect reject message received from the MME
|
||||
*/
|
||||
esm_cause = esm_recv_pdn_disconnect_reject(esm_data, pti, ebi,
|
||||
esm_cause = esm_recv_pdn_disconnect_reject(user, pti, ebi,
|
||||
&esm_msg.pdn_disconnect_reject);
|
||||
|
||||
if ( (esm_cause == ESM_CAUSE_INVALID_PTI_VALUE) ||
|
||||
@@ -653,7 +652,7 @@ static int _esm_sap_recv(esm_data_t *esm_data, int msg_type, int is_standalone,
|
||||
}
|
||||
|
||||
/* Complete the relevant ESM procedure */
|
||||
rc = (*esm_procedure)(is_standalone, ebi, rsp, triggered_by_ue);
|
||||
rc = (*esm_procedure)(user, is_standalone, ebi, rsp, triggered_by_ue);
|
||||
|
||||
if (is_discarded) {
|
||||
/* Return indication that received message has been discarded */
|
||||
@@ -696,7 +695,7 @@ static int _esm_sap_recv(esm_data_t *esm_data, int msg_type, int is_standalone,
|
||||
** Others: _esm_sap_buffer **
|
||||
** **
|
||||
***************************************************************************/
|
||||
static int _esm_sap_send(int msg_type, int is_standalone,
|
||||
static int _esm_sap_send(nas_user_t *user, int msg_type, int is_standalone,
|
||||
int pti, int ebi, const esm_sap_data_t *data,
|
||||
OctetString *rsp)
|
||||
{
|
||||
@@ -784,7 +783,7 @@ static int _esm_sap_send(int msg_type, int is_standalone,
|
||||
|
||||
/* Execute the relevant ESM procedure */
|
||||
if (esm_procedure) {
|
||||
rc = (*esm_procedure)(is_standalone, pti, rsp, sent_by_ue);
|
||||
rc = (*esm_procedure)(user, is_standalone, pti, rsp, sent_by_ue);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -41,6 +41,7 @@ Description Defines the ESM Service Access Points at which the EPS
|
||||
#define __ESM_SAP_H__
|
||||
|
||||
#include "esm_sapDef.h"
|
||||
#include "user_defs.h"
|
||||
|
||||
/****************************************************************************/
|
||||
/********************* G L O B A L C O N S T A N T S *******************/
|
||||
@@ -60,6 +61,6 @@ Description Defines the ESM Service Access Points at which the EPS
|
||||
|
||||
void esm_sap_initialize(void);
|
||||
|
||||
int esm_sap_send(esm_sap_t *msg);
|
||||
int esm_sap_send(nas_user_t *user, esm_sap_t *msg);
|
||||
|
||||
#endif /* __ESM_SAP_H__*/
|
||||
|
||||
@@ -330,8 +330,7 @@ int esm_ebr_context_create(
|
||||
** Others: _esm_data **
|
||||
** **
|
||||
***************************************************************************/
|
||||
int esm_ebr_context_release(
|
||||
esm_data_t *esm_data,
|
||||
int esm_ebr_context_release(nas_user_t *user,
|
||||
int ebi, int *pid, int *bid)
|
||||
{
|
||||
int found = FALSE;
|
||||
@@ -342,7 +341,7 @@ int esm_ebr_context_release(
|
||||
|
||||
LOG_FUNC_IN;
|
||||
|
||||
esm_ctx = esm_data;
|
||||
esm_ctx = _esm_data;
|
||||
|
||||
if (ebi != ESM_EBI_UNASSIGNED) {
|
||||
/*
|
||||
@@ -492,7 +491,7 @@ int esm_ebr_context_release(
|
||||
emm_sap_t emm_sap;
|
||||
emm_sap.primitive = EMMESM_ESTABLISH_CNF;
|
||||
emm_sap.u.emm_esm.u.establish.is_attached = FALSE;
|
||||
(void) emm_sap_send(&emm_sap);
|
||||
(void) emm_sap_send(user, &emm_sap);
|
||||
}
|
||||
/* 3GPP TS 24.301, section 6.4.4.3, 6.4.4.6
|
||||
* If due to the EPS bearer context deactivation only the PDN
|
||||
@@ -505,7 +504,7 @@ int esm_ebr_context_release(
|
||||
emm_sap.primitive = EMMESM_ESTABLISH_CNF;
|
||||
emm_sap.u.emm_esm.u.establish.is_attached = TRUE;
|
||||
emm_sap.u.emm_esm.u.establish.is_emergency = TRUE;
|
||||
(void) emm_sap_send(&emm_sap);
|
||||
(void) emm_sap_send(user, &emm_sap);
|
||||
}
|
||||
|
||||
LOG_FUNC_RETURN (ebi);
|
||||
|
||||
@@ -39,6 +39,7 @@ Description Defines functions used to handle EPS bearer contexts.
|
||||
#define __ESM_EBR_CONTEXT_H__
|
||||
|
||||
#include "networkDef.h"
|
||||
#include "user_defs.h"
|
||||
|
||||
/****************************************************************************/
|
||||
/********************* G L O B A L C O N S T A N T S *******************/
|
||||
@@ -68,7 +69,7 @@ typedef enum {
|
||||
int esm_ebr_context_create(esm_data_t *esm_data, int pid, int ebi, int is_default,
|
||||
const network_qos_t *qos, const network_tft_t *tft);
|
||||
|
||||
int esm_ebr_context_release(esm_data_t *esm_data, int ebi, int *pid, int *bid);
|
||||
int esm_ebr_context_release(nas_user_t *user, int ebi, int *pid, int *bid);
|
||||
|
||||
int esm_ebr_context_get_pid(esm_data_t *esm_data, int ebi);
|
||||
|
||||
|
||||
@@ -43,6 +43,7 @@ Description Defines the EPS Session Management procedures executed at
|
||||
#include "OctetString.h"
|
||||
#include "emmData.h"
|
||||
#include "ProtocolConfigurationOptions.h"
|
||||
#include "user_defs.h"
|
||||
|
||||
/****************************************************************************/
|
||||
/********************* G L O B A L C O N S T A N T S *******************/
|
||||
@@ -78,7 +79,7 @@ typedef enum {
|
||||
* Type of the ESM procedure callback executed when requested by the UE
|
||||
* or initiated by the network
|
||||
*/
|
||||
typedef int (*esm_proc_procedure_t) (int, int, OctetString *, int);
|
||||
typedef int (*esm_proc_procedure_t) (nas_user_t *user, int, int, OctetString *, int);
|
||||
|
||||
/* EPS bearer level QoS parameters */
|
||||
typedef network_qos_t esm_proc_qos_t;
|
||||
@@ -112,7 +113,7 @@ typedef struct {
|
||||
* --------------------------------------------------------------------------
|
||||
*/
|
||||
int esm_proc_status_ind(int pti, int ebi, int *esm_cause);
|
||||
int esm_proc_status(int is_standalone, int pti, OctetString *msg,
|
||||
int esm_proc_status(nas_user_t *user, int is_standalone, int pti, OctetString *msg,
|
||||
int sent_by_ue);
|
||||
|
||||
|
||||
@@ -124,13 +125,13 @@ int esm_proc_status(int is_standalone, int pti, OctetString *msg,
|
||||
int esm_proc_pdn_connectivity(esm_data_t *esm_data, int cid, int to_define,
|
||||
esm_proc_pdn_type_t pdn_type, const OctetString *apn, int is_emergency,
|
||||
unsigned int *pti);
|
||||
int esm_proc_pdn_connectivity_request(int is_standalone, int pti,
|
||||
int esm_proc_pdn_connectivity_request(nas_user_t *user, int is_standalone, int pti,
|
||||
OctetString *msg, int sent_by_ue);
|
||||
int esm_proc_pdn_connectivity_accept(esm_data_t *esm_data, int pti, esm_proc_pdn_type_t pdn_type,
|
||||
int esm_proc_pdn_connectivity_accept(nas_user_t *user, int pti, esm_proc_pdn_type_t pdn_type,
|
||||
const OctetString *pdn_address, const OctetString *apn, int *esm_cause);
|
||||
int esm_proc_pdn_connectivity_reject(int pti, int *esm_cause);
|
||||
int esm_proc_pdn_connectivity_complete(void);
|
||||
int esm_proc_pdn_connectivity_failure(int is_pending);
|
||||
int esm_proc_pdn_connectivity_reject(nas_user_t *user, int pti, int *esm_cause);
|
||||
int esm_proc_pdn_connectivity_complete(nas_user_t *user);
|
||||
int esm_proc_pdn_connectivity_failure(nas_user_t *user, int is_pending);
|
||||
|
||||
|
||||
/*
|
||||
@@ -139,11 +140,11 @@ int esm_proc_pdn_connectivity_failure(int is_pending);
|
||||
* --------------------------------------------------------------------------
|
||||
*/
|
||||
int esm_proc_pdn_disconnect(esm_data_t *esm_data, int cid, unsigned int *pti, unsigned int *ebi);
|
||||
int esm_proc_pdn_disconnect_request(int is_standalone, int pti,
|
||||
int esm_proc_pdn_disconnect_request(nas_user_t *user, int is_standalone, int pti,
|
||||
OctetString *msg, int sent_by_ue);
|
||||
|
||||
int esm_proc_pdn_disconnect_accept(int pti, int *esm_cause);
|
||||
int esm_proc_pdn_disconnect_reject(esm_data_t *esm_data, int pti, int *esm_cause);
|
||||
int esm_proc_pdn_disconnect_reject(nas_user_t *user, int pti, int *esm_cause);
|
||||
|
||||
/*
|
||||
* --------------------------------------------------------------------------
|
||||
@@ -151,14 +152,14 @@ int esm_proc_pdn_disconnect_reject(esm_data_t *esm_data, int pti, int *esm_cause
|
||||
* --------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
int esm_proc_default_eps_bearer_context_request(esm_data_t *esm_data, int pid, int ebi,
|
||||
int esm_proc_default_eps_bearer_context_request(nas_user_t *user, int pid, int ebi,
|
||||
const esm_proc_qos_t *esm_qos, int *esm_cause);
|
||||
int esm_proc_default_eps_bearer_context_complete(void);
|
||||
int esm_proc_default_eps_bearer_context_failure(esm_data_t *esm_data);
|
||||
int esm_proc_default_eps_bearer_context_failure(nas_user_t *user);
|
||||
|
||||
int esm_proc_default_eps_bearer_context_accept(int is_standalone, int ebi,
|
||||
int esm_proc_default_eps_bearer_context_accept(nas_user_t *user, int is_standalone, int ebi,
|
||||
OctetString *msg, int ue_triggered);
|
||||
int esm_proc_default_eps_bearer_context_reject(int is_standalone, int ebi,
|
||||
int esm_proc_default_eps_bearer_context_reject(nas_user_t *user, int is_standalone, int ebi,
|
||||
OctetString *msg, int ue_triggered);
|
||||
|
||||
/*
|
||||
@@ -167,12 +168,12 @@ int esm_proc_default_eps_bearer_context_reject(int is_standalone, int ebi,
|
||||
* --------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
int esm_proc_dedicated_eps_bearer_context_request(esm_data_t *esm_data, int ebi, int default_ebi,
|
||||
int esm_proc_dedicated_eps_bearer_context_request(nas_user_t *user, int ebi, int default_ebi,
|
||||
const esm_proc_qos_t *qos, const esm_proc_tft_t *tft, int *esm_cause);
|
||||
|
||||
int esm_proc_dedicated_eps_bearer_context_accept(int is_standalone, int ebi,
|
||||
int esm_proc_dedicated_eps_bearer_context_accept(nas_user_t *user, int is_standalone, int ebi,
|
||||
OctetString *msg, int ue_triggered);
|
||||
int esm_proc_dedicated_eps_bearer_context_reject(int is_standalone, int ebi,
|
||||
int esm_proc_dedicated_eps_bearer_context_reject(nas_user_t *user, int is_standalone, int ebi,
|
||||
OctetString *msg, int ue_triggered);
|
||||
|
||||
/*
|
||||
@@ -181,11 +182,11 @@ int esm_proc_dedicated_eps_bearer_context_reject(int is_standalone, int ebi,
|
||||
* --------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
int esm_proc_eps_bearer_context_deactivate(esm_data_t *esm_data, int is_local, int ebi, int *pid,
|
||||
int esm_proc_eps_bearer_context_deactivate(nas_user_t *user, int is_local, int ebi, int *pid,
|
||||
int *bid);
|
||||
int esm_proc_eps_bearer_context_deactivate_request(esm_data_t *esm_data, int ebi, int *esm_cause);
|
||||
int esm_proc_eps_bearer_context_deactivate_request(nas_user_t *user, int ebi, int *esm_cause);
|
||||
|
||||
int esm_proc_eps_bearer_context_deactivate_accept(int is_standalone, int ebi,
|
||||
int esm_proc_eps_bearer_context_deactivate_accept(nas_user_t *user, int is_standalone, int ebi,
|
||||
OctetString *msg, int ue_triggered);
|
||||
|
||||
#endif /* __ESM_PROC_H__*/
|
||||
|
||||
@@ -308,6 +308,7 @@ int esm_pt_start_timer(int pti, const OctetString *msg,
|
||||
* time interval */
|
||||
ctx->timer.id = nas_timer_start(sec, cb, ctx->args);
|
||||
ctx->timer.sec = sec;
|
||||
// FIXME add user
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -40,6 +40,7 @@ Description Defines functions used to handle ESM procedure transactions.
|
||||
|
||||
#include "OctetString.h"
|
||||
#include "nas_timer.h"
|
||||
#include "user_defs.h"
|
||||
|
||||
#include "ProcedureTransactionIdentity.h"
|
||||
|
||||
@@ -67,6 +68,7 @@ typedef struct {
|
||||
unsigned char pti; /* Procedure transaction identity */
|
||||
unsigned int count; /* Retransmission counter */
|
||||
OctetString msg; /* Encoded ESM message to re-transmit */
|
||||
nas_user_t *user; /* user reference */
|
||||
} esm_pt_timer_data_t;
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
Reference in New Issue
Block a user