modify dedicated bearer is done
This commit is contained in:
parent
fffd654391
commit
131fb3ac79
|
@ -217,11 +217,10 @@ void esm_state_active(fsm_t *s, event_t *e)
|
|||
d_trace(3, "[NAS] Modify EPS bearer context accept : "
|
||||
"UE[%s] --> ESM[EBI:%d] in ACTIVE state\n",
|
||||
mme_ue->imsi_bcd, bearer->ebi);
|
||||
#if 0
|
||||
|
||||
rv = mme_gtp_send_update_bearer_response(bearer);
|
||||
d_assert(rv == CORE_OK, return,
|
||||
"mme_gtp_send_delete_session_request error");
|
||||
#endif
|
||||
"mme_gtp_send_update_session_request error");
|
||||
break;
|
||||
}
|
||||
case NAS_DEACTIVATE_EPS_BEARER_CONTEXT_ACCEPT:
|
||||
|
|
|
@ -259,6 +259,38 @@ status_t mme_gtp_send_create_bearer_response(mme_bearer_t *bearer)
|
|||
return CORE_OK;
|
||||
}
|
||||
|
||||
status_t mme_gtp_send_update_bearer_response(mme_bearer_t *bearer)
|
||||
{
|
||||
status_t rv;
|
||||
|
||||
gtp_xact_t *xact = NULL;
|
||||
mme_ue_t *mme_ue = NULL;
|
||||
|
||||
gtp_header_t h;
|
||||
pkbuf_t *pkbuf = NULL;
|
||||
|
||||
d_assert(bearer, return CORE_ERROR, "Null param");
|
||||
mme_ue = bearer->mme_ue;
|
||||
d_assert(mme_ue, return CORE_ERROR, "Null param");
|
||||
xact = bearer->xact;
|
||||
d_assert(xact, return CORE_ERROR, "Null param");
|
||||
|
||||
memset(&h, 0, sizeof(gtp_header_t));
|
||||
h.type = GTP_UPDATE_BEARER_RESPONSE_TYPE;
|
||||
h.teid = mme_ue->sgw_s11_teid;
|
||||
|
||||
rv = mme_s11_build_update_bearer_response(&pkbuf, h.type, bearer);
|
||||
d_assert(rv == CORE_OK, return CORE_ERROR, "S11 build error");
|
||||
|
||||
rv = gtp_xact_update_tx(xact, &h, pkbuf);
|
||||
d_assert(xact, return CORE_ERROR, "Null param");
|
||||
|
||||
rv = gtp_xact_commit(xact);
|
||||
d_assert(rv == CORE_OK, return CORE_ERROR, "xact_commit error");
|
||||
|
||||
return CORE_OK;
|
||||
}
|
||||
|
||||
status_t mme_gtp_send_delete_bearer_response(mme_bearer_t *bearer)
|
||||
{
|
||||
status_t rv;
|
||||
|
|
|
@ -17,18 +17,14 @@ CORE_DECLARE(status_t) mme_gtp_send_modify_bearer_request(
|
|||
mme_bearer_t *bearer, int uli_presence);
|
||||
CORE_DECLARE(status_t) mme_gtp_send_delete_session_request(mme_sess_t *sess);
|
||||
CORE_DECLARE(status_t) mme_gtp_send_delete_all_sessions(mme_ue_t *mme_ue);
|
||||
CORE_DECLARE(status_t) mme_gtp_send_create_bearer_response(
|
||||
mme_bearer_t *bearer);
|
||||
CORE_DECLARE(status_t) mme_gtp_send_delete_bearer_response(
|
||||
mme_bearer_t *bearer);
|
||||
CORE_DECLARE(status_t) mme_gtp_send_release_access_bearers_request(
|
||||
mme_ue_t *mme_ue);
|
||||
CORE_DECLARE(status_t) mme_gtp_send_create_bearer_response(mme_bearer_t *bearer);
|
||||
CORE_DECLARE(status_t) mme_gtp_send_update_bearer_response(mme_bearer_t *bearer);
|
||||
CORE_DECLARE(status_t) mme_gtp_send_delete_bearer_response(mme_bearer_t *bearer);
|
||||
CORE_DECLARE(status_t) mme_gtp_send_release_access_bearers_request(mme_ue_t *mme_ue);
|
||||
|
||||
CORE_DECLARE(status_t)
|
||||
mme_gtp_send_create_indirect_data_forwarding_tunnel_request(
|
||||
CORE_DECLARE(status_t) mme_gtp_send_create_indirect_data_forwarding_tunnel_request(
|
||||
mme_ue_t *mme_ue);
|
||||
CORE_DECLARE(status_t)
|
||||
mme_gtp_send_delete_indirect_data_forwarding_tunnel_request(
|
||||
CORE_DECLARE(status_t) mme_gtp_send_delete_indirect_data_forwarding_tunnel_request(
|
||||
mme_ue_t *mme_ue);
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
|
|
@ -428,6 +428,79 @@ status_t mme_s11_build_create_bearer_response(
|
|||
return CORE_OK;
|
||||
}
|
||||
|
||||
status_t mme_s11_build_update_bearer_response(
|
||||
pkbuf_t **pkbuf, c_uint8_t type, mme_bearer_t *bearer)
|
||||
{
|
||||
status_t rv;
|
||||
gtp_message_t gtp_message;
|
||||
gtp_update_bearer_response_t *rsp = >p_message.update_bearer_response;
|
||||
|
||||
gtp_cause_t cause;
|
||||
gtp_uli_t uli;
|
||||
char uli_buf[GTP_MAX_ULI_LEN];
|
||||
gtp_ue_timezone_t ue_timezone;
|
||||
time_exp_t time_exp;
|
||||
|
||||
mme_ue_t *mme_ue = NULL;
|
||||
|
||||
d_assert(bearer, return CORE_ERROR, "Null param");
|
||||
mme_ue = bearer->mme_ue;
|
||||
d_assert(mme_ue, return CORE_ERROR, "Null param");
|
||||
|
||||
memset(>p_message, 0, sizeof(gtp_message_t));
|
||||
|
||||
/* Set Cause */
|
||||
memset(&cause, 0, sizeof(cause));
|
||||
cause.value = GTP_CAUSE_REQUEST_ACCEPTED;
|
||||
rsp->cause.presence = 1;
|
||||
rsp->cause.len = sizeof(cause);
|
||||
rsp->cause.data = &cause;
|
||||
|
||||
/* Bearer Context : EBI */
|
||||
rsp->bearer_contexts.presence = 1;
|
||||
rsp->bearer_contexts.eps_bearer_id.presence = 1;
|
||||
rsp->bearer_contexts.eps_bearer_id.u8 = bearer->ebi;
|
||||
|
||||
/* Bearer Context : Cause */
|
||||
rsp->bearer_contexts.cause.presence = 1;
|
||||
rsp->bearer_contexts.cause.len = sizeof(cause);
|
||||
rsp->bearer_contexts.cause.data = &cause;
|
||||
|
||||
/* User Location Information(ULI) */
|
||||
memset(&uli, 0, sizeof(gtp_uli_t));
|
||||
uli.flags.e_cgi = 1;
|
||||
uli.flags.tai = 1;
|
||||
memcpy(&uli.tai.plmn_id, &mme_ue->tai.plmn_id, sizeof(uli.tai.plmn_id));
|
||||
uli.tai.tac = mme_ue->tai.tac;
|
||||
memcpy(&uli.e_cgi.plmn_id, &mme_ue->e_cgi.plmn_id,
|
||||
sizeof(uli.e_cgi.plmn_id));
|
||||
uli.e_cgi.cell_id = mme_ue->e_cgi.cell_id;
|
||||
rsp->user_location_information.presence = 1;
|
||||
gtp_build_uli(&rsp->user_location_information, &uli,
|
||||
uli_buf, GTP_MAX_ULI_LEN);
|
||||
|
||||
/* UE Time Zone */
|
||||
memset(&ue_timezone, 0, sizeof(ue_timezone));
|
||||
time_exp_lt(&time_exp, time_now());
|
||||
if (time_exp.tm_gmtoff > 0)
|
||||
ue_timezone.sign = 0;
|
||||
else
|
||||
ue_timezone.sign = 1;
|
||||
/* quarters of an hour */
|
||||
ue_timezone.gmtoff = GTP_TIME_TO_BCD(time_exp.tm_gmtoff / 900);
|
||||
ue_timezone.daylight_saving_time =
|
||||
GTP_UE_TIME_ZONE_NO_ADJUSTMENT_FOR_DAYLIGHT_SAVING_TIME;
|
||||
rsp->ue_time_zone.presence = 1;
|
||||
rsp->ue_time_zone.data = &ue_timezone;
|
||||
rsp->ue_time_zone.len = sizeof(ue_timezone);
|
||||
|
||||
gtp_message.h.type = type;
|
||||
rv = gtp_build_msg(pkbuf, >p_message);
|
||||
d_assert(rv == CORE_OK, return CORE_ERROR, "gtp build failed");
|
||||
|
||||
return CORE_OK;
|
||||
}
|
||||
|
||||
status_t mme_s11_build_delete_bearer_response(
|
||||
pkbuf_t **pkbuf, c_uint8_t type, mme_bearer_t *bearer)
|
||||
{
|
||||
|
|
|
@ -15,6 +15,8 @@ CORE_DECLARE(status_t) mme_s11_build_delete_session_request(
|
|||
pkbuf_t **pkbuf, c_uint8_t type, mme_sess_t *sess);
|
||||
CORE_DECLARE(status_t) mme_s11_build_create_bearer_response(
|
||||
pkbuf_t **pkbuf, c_uint8_t type, mme_bearer_t *bearer);
|
||||
CORE_DECLARE(status_t) mme_s11_build_update_bearer_response(
|
||||
pkbuf_t **pkbuf, c_uint8_t type, mme_bearer_t *bearer);
|
||||
CORE_DECLARE(status_t) mme_s11_build_delete_bearer_response(
|
||||
pkbuf_t **pkbuf, c_uint8_t type, mme_bearer_t *bearer);
|
||||
CORE_DECLARE(status_t) mme_s11_build_release_access_bearers_request(
|
||||
|
|
|
@ -414,13 +414,11 @@ void mme_s11_handle_update_bearer_request(
|
|||
}
|
||||
else
|
||||
{
|
||||
d_warn("ignore Update Bearer Request : "
|
||||
d_warn("[IGNORE] Update Bearer Request : "
|
||||
"Both QoS and TFT is NULL");
|
||||
#if 0
|
||||
rv = mme_gtp_send_update_bearer_response(bearer);
|
||||
d_assert(rv == CORE_OK, return,
|
||||
"mme_gtp_send_delete_session_request error");
|
||||
#endif
|
||||
}
|
||||
}
|
||||
else
|
||||
|
|
|
@ -198,6 +198,33 @@ void pgw_s5c_handle_create_bearer_response(
|
|||
sess->sgw_s5c_teid, sess->pgw_s5c_teid);
|
||||
}
|
||||
|
||||
void pgw_s5c_handle_update_bearer_response(
|
||||
pgw_sess_t *sess, gtp_xact_t *xact, gtp_update_bearer_response_t *req)
|
||||
{
|
||||
status_t rv;
|
||||
|
||||
d_assert(xact, return, "Null param");
|
||||
d_assert(sess, return, "Null param");
|
||||
d_assert(req, return, "Null param");
|
||||
|
||||
if (req->bearer_contexts.presence == 0)
|
||||
{
|
||||
d_error("No Bearer");
|
||||
return;
|
||||
}
|
||||
if (req->bearer_contexts.eps_bearer_id.presence == 0)
|
||||
{
|
||||
d_error("No EPS Bearer ID");
|
||||
return;
|
||||
}
|
||||
|
||||
rv = gtp_xact_commit(xact);
|
||||
d_assert(rv == CORE_OK, return, "xact_commit error");
|
||||
|
||||
d_trace(3, "[PGW] Update Bearer Response : SGW[0x%x] --> PGW[0x%x]\n",
|
||||
sess->sgw_s5c_teid, sess->pgw_s5c_teid);
|
||||
}
|
||||
|
||||
void pgw_s5c_handle_delete_bearer_response(
|
||||
pgw_sess_t *sess, gtp_xact_t *xact, gtp_delete_bearer_response_t *req)
|
||||
{
|
||||
|
|
|
@ -15,6 +15,8 @@ CORE_DECLARE(void) pgw_s5c_handle_delete_session_request(
|
|||
pgw_sess_t *sess, gtp_xact_t *xact, gtp_delete_session_request_t *req);
|
||||
CORE_DECLARE(void) pgw_s5c_handle_create_bearer_response(
|
||||
pgw_sess_t *sess, gtp_xact_t *xact, gtp_create_bearer_response_t *req);
|
||||
CORE_DECLARE(void) pgw_s5c_handle_update_bearer_response(
|
||||
pgw_sess_t *sess, gtp_xact_t *xact, gtp_update_bearer_response_t *req);
|
||||
CORE_DECLARE(void) pgw_s5c_handle_delete_bearer_response(
|
||||
pgw_sess_t *sess, gtp_xact_t *xact, gtp_delete_bearer_response_t *req);
|
||||
|
||||
|
|
|
@ -126,6 +126,11 @@ void pgw_state_operational(fsm_t *s, event_t *e)
|
|||
sess, xact, &message->create_bearer_response);
|
||||
pkbuf_free(copybuf);
|
||||
break;
|
||||
case GTP_UPDATE_BEARER_RESPONSE_TYPE:
|
||||
pgw_s5c_handle_update_bearer_response(
|
||||
sess, xact, &message->update_bearer_response);
|
||||
pkbuf_free(copybuf);
|
||||
break;
|
||||
case GTP_DELETE_BEARER_RESPONSE_TYPE:
|
||||
pgw_s5c_handle_delete_bearer_response(
|
||||
sess, xact, &message->delete_bearer_response);
|
||||
|
|
|
@ -459,6 +459,59 @@ void sgw_s11_handle_create_bearer_response(gtp_xact_t *s11_xact,
|
|||
sess->sgw_s5c_teid, sess->pgw_s5c_teid);
|
||||
}
|
||||
|
||||
void sgw_s11_handle_update_bearer_response(gtp_xact_t *s11_xact,
|
||||
sgw_ue_t *sgw_ue, gtp_message_t *gtp_message)
|
||||
{
|
||||
status_t rv;
|
||||
pkbuf_t *pkbuf = NULL;
|
||||
gtp_xact_t *s5c_xact = NULL;
|
||||
sgw_sess_t *sess = NULL;
|
||||
sgw_bearer_t *bearer = NULL;
|
||||
gtp_update_bearer_response_t *req = NULL;
|
||||
|
||||
d_assert(s11_xact, return, "Null param");
|
||||
d_assert(sgw_ue, return, "Null param");
|
||||
d_assert(gtp_message, return, "Null param");
|
||||
s5c_xact = s11_xact->assoc_xact;
|
||||
d_assert(s5c_xact, return, "Null param");
|
||||
|
||||
req = >p_message->update_bearer_response;
|
||||
d_assert(req, return, "Null param");
|
||||
|
||||
if (req->bearer_contexts.presence == 0)
|
||||
{
|
||||
d_error("No Bearer");
|
||||
return;
|
||||
}
|
||||
if (req->bearer_contexts.eps_bearer_id.presence == 0)
|
||||
{
|
||||
d_error("No EPS Bearer ID");
|
||||
return;
|
||||
}
|
||||
|
||||
bearer = sgw_bearer_find_by_ue_ebi(
|
||||
sgw_ue, req->bearer_contexts.eps_bearer_id.u8);
|
||||
d_assert(bearer, return, "No Bearer Context[EBI:%d]",
|
||||
req->bearer_contexts.eps_bearer_id);
|
||||
sess = bearer->sess;
|
||||
d_assert(sess, return, "Null param");
|
||||
|
||||
gtp_message->h.type = GTP_UPDATE_BEARER_RESPONSE_TYPE;
|
||||
gtp_message->h.teid = sess->pgw_s5c_teid;
|
||||
|
||||
rv = gtp_build_msg(&pkbuf, gtp_message);
|
||||
d_assert(rv == CORE_OK, return, "gtp build failed");
|
||||
|
||||
rv = gtp_xact_update_tx(s5c_xact, >p_message->h, pkbuf);
|
||||
d_assert(s5c_xact, return, "Null param");
|
||||
|
||||
rv = gtp_xact_commit(s5c_xact);
|
||||
d_assert(rv == CORE_OK, return, "xact_commit error");
|
||||
|
||||
d_trace(3, "[SGW] Update Bearer Response : SGW[0x%x] --> PGW[0x%x]\n",
|
||||
sess->sgw_s5c_teid, sess->pgw_s5c_teid);
|
||||
}
|
||||
|
||||
void sgw_s11_handle_delete_bearer_response(gtp_xact_t *s11_xact,
|
||||
sgw_ue_t *sgw_ue, gtp_message_t *gtp_message)
|
||||
{
|
||||
|
|
|
@ -17,6 +17,8 @@ CORE_DECLARE(void) sgw_s11_handle_delete_session_request(gtp_xact_t *s11_xact,
|
|||
sgw_ue_t *sgw_ue, gtp_message_t *gtp_message);
|
||||
CORE_DECLARE(void) sgw_s11_handle_create_bearer_response(gtp_xact_t *s11_xact,
|
||||
sgw_ue_t *sgw_ue, gtp_message_t *gtp_message);
|
||||
CORE_DECLARE(void) sgw_s11_handle_update_bearer_response(gtp_xact_t *s11_xact,
|
||||
sgw_ue_t *sgw_ue, gtp_message_t *gtp_message);
|
||||
CORE_DECLARE(void) sgw_s11_handle_delete_bearer_response(gtp_xact_t *s11_xact,
|
||||
sgw_ue_t *sgw_ue, gtp_message_t *gtp_message);
|
||||
|
||||
|
|
|
@ -106,6 +106,10 @@ void sgw_state_operational(fsm_t *s, event_t *e)
|
|||
sgw_s11_handle_create_bearer_response(xact, sgw_ue,
|
||||
&message);
|
||||
break;
|
||||
case GTP_UPDATE_BEARER_RESPONSE_TYPE:
|
||||
sgw_s11_handle_update_bearer_response(xact, sgw_ue,
|
||||
&message);
|
||||
break;
|
||||
case GTP_DELETE_BEARER_RESPONSE_TYPE:
|
||||
sgw_s11_handle_delete_bearer_response(xact, sgw_ue,
|
||||
&message);
|
||||
|
|
|
@ -1348,7 +1348,7 @@ status_t tests1ap_build_deactivate_bearer_accept(
|
|||
"0500000005c00000 0001000800030001 00001a000a09274c b2ebbd056200ce00"
|
||||
"6440080055f50100 19d0100043400600 55f5011022",
|
||||
"000d40370000"
|
||||
"0500000005c00000 0001000800030001 00001a000a09273e c7610a057200ce00"
|
||||
"0500000005c00000 0001000800030001 00001a000a0927a9 a1b2bd057200ce00"
|
||||
"6440080055f50100 19d0100043400600 55f5011022",
|
||||
"",
|
||||
|
||||
|
|
|
@ -288,7 +288,6 @@ static void volte_test1(abts_case *tc, void *data)
|
|||
|
||||
core_sleep(time_from_msec(1000));
|
||||
|
||||
#if 0
|
||||
/* Send Session-Termination-Request */
|
||||
pcscf_rx_send_str(rx_sid);
|
||||
|
||||
|
@ -315,6 +314,7 @@ static void volte_test1(abts_case *tc, void *data)
|
|||
|
||||
core_sleep(time_from_msec(300));
|
||||
|
||||
#if 0
|
||||
/* Send PDN disconnectivity request */
|
||||
rv = tests1ap_build_pdn_disconnectivity_request(&sendbuf, msgindex);
|
||||
ABTS_INT_EQUAL(tc, CORE_OK, rv);
|
||||
|
|
|
@ -1104,6 +1104,48 @@ status_t tests1ap_build_e_rab_setup_response(
|
|||
return CORE_OK;
|
||||
}
|
||||
|
||||
status_t tests1ap_build_e_rab_modify_response(pkbuf_t **pkbuf, int i)
|
||||
{
|
||||
char *payload[TESTS1AP_MAX_MESSAGE] = {
|
||||
"2006"
|
||||
"001b000003000040 0480000001000840 020001001f400600 002500010e",
|
||||
"",
|
||||
"",
|
||||
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
|
||||
};
|
||||
c_uint16_t len[TESTS1AP_MAX_MESSAGE] = {
|
||||
31,
|
||||
0,
|
||||
0,
|
||||
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
};
|
||||
char hexbuf[MAX_SDU_LEN];
|
||||
|
||||
*pkbuf = pkbuf_alloc(0, MAX_SDU_LEN);
|
||||
if (!(*pkbuf)) return CORE_ERROR;
|
||||
|
||||
(*pkbuf)->len = len[i];
|
||||
memcpy((*pkbuf)->payload, CORE_HEX(payload[i], strlen(payload[i]), hexbuf),
|
||||
(*pkbuf)->len);
|
||||
|
||||
return CORE_OK;
|
||||
}
|
||||
|
||||
status_t tests1ap_build_e_rab_release_response(pkbuf_t **pkbuf, int i)
|
||||
{
|
||||
char *payload[TESTS1AP_MAX_MESSAGE] = {
|
||||
|
@ -1247,6 +1289,57 @@ status_t tests1ap_build_activate_dedicated_bearer_accept(
|
|||
return CORE_OK;
|
||||
}
|
||||
|
||||
status_t tests1ap_build_modify_bearer_accept(
|
||||
pkbuf_t **pkbuf, int i)
|
||||
{
|
||||
char *payload[TESTS1AP_MAX_MESSAGE] = {
|
||||
"000d"
|
||||
"4035000005000000 0480000001000800 020001001a000a09 27a5c0d564067200"
|
||||
"ca006440080064f0 430020a000004340 060064f043020a",
|
||||
"",
|
||||
"",
|
||||
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
};
|
||||
c_uint16_t len[TESTS1AP_MAX_MESSAGE] = {
|
||||
57,
|
||||
0,
|
||||
0,
|
||||
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
};
|
||||
char hexbuf[MAX_SDU_LEN];
|
||||
|
||||
*pkbuf = pkbuf_alloc(0, MAX_SDU_LEN);
|
||||
if (!(*pkbuf)) return CORE_ERROR;
|
||||
|
||||
(*pkbuf)->len = len[i];
|
||||
memcpy((*pkbuf)->payload, CORE_HEX(payload[i], strlen(payload[i]), hexbuf),
|
||||
(*pkbuf)->len);
|
||||
|
||||
return CORE_OK;
|
||||
}
|
||||
|
||||
status_t tests1ap_build_deactivate_bearer_accept(
|
||||
pkbuf_t **pkbuf, int i)
|
||||
{
|
||||
|
@ -1255,7 +1348,7 @@ status_t tests1ap_build_deactivate_bearer_accept(
|
|||
"0500000005c00000 0001000800030001 00001a000a09274c b2ebbd056200ce00"
|
||||
"6440080055f50100 19d0100043400600 55f5011022",
|
||||
"000d40370000"
|
||||
"0500000005c00000 0001000800030001 00001a000a09273e c7610a057200ce00"
|
||||
"0500000005c00000 0001000800030001 00001a000a0927a9 a1b2bd057200ce00"
|
||||
"6440080055f50100 19d0100043400600 55f5011022",
|
||||
"",
|
||||
|
||||
|
|
|
@ -53,12 +53,16 @@ CORE_DECLARE(status_t) tests1ap_build_e_rab_setup_response(
|
|||
pkbuf_t **pkbuf,
|
||||
c_uint32_t mme_ue_s1ap_id, c_uint32_t enb_ue_s1ap_id,
|
||||
c_uint8_t ebi, c_uint32_t teid);
|
||||
CORE_DECLARE(status_t) tests1ap_build_e_rab_modify_response(
|
||||
pkbuf_t **pkbuf, int i);
|
||||
CORE_DECLARE(status_t) tests1ap_build_e_rab_release_response(
|
||||
pkbuf_t **pkbuf, int i);
|
||||
CORE_DECLARE(status_t) tests1ap_build_activate_default_bearer_accept(
|
||||
pkbuf_t **pkbuf, int i);
|
||||
CORE_DECLARE(status_t) tests1ap_build_activate_dedicated_bearer_accept(
|
||||
pkbuf_t **pkbuf, int i);
|
||||
CORE_DECLARE(status_t) tests1ap_build_modify_bearer_accept(
|
||||
pkbuf_t **pkbuf, int i);
|
||||
CORE_DECLARE(status_t) tests1ap_build_deactivate_bearer_accept(
|
||||
pkbuf_t **pkbuf, int i);
|
||||
CORE_DECLARE(status_t) tests1ap_build_path_switch_request(
|
||||
|
|
Loading…
Reference in New Issue