Cleanup rrc_gNB_process_GTPV1U_CREATE_TUNNEL_RESP(): pass UE context directly
This commit is contained in:
@@ -44,13 +44,6 @@ rrc_eNB_process_GTPV1U_CREATE_TUNNEL_RESP(
|
|||||||
uint8_t *inde_list
|
uint8_t *inde_list
|
||||||
);
|
);
|
||||||
|
|
||||||
int
|
|
||||||
rrc_gNB_process_GTPV1U_CREATE_TUNNEL_RESP(
|
|
||||||
const protocol_ctxt_t *const ctxt_pP,
|
|
||||||
const gtpv1u_enb_create_tunnel_resp_t *const create_tunnel_resp_pP,
|
|
||||||
uint8_t *inde_list
|
|
||||||
);
|
|
||||||
|
|
||||||
/*! \fn rrc_eNB_send_GTPV1U_ENB_DELETE_TUNNEL_REQ(module_id_t enb_mod_idP, const rrc_eNB_ue_context_t* const ue_context_pP)
|
/*! \fn rrc_eNB_send_GTPV1U_ENB_DELETE_TUNNEL_REQ(module_id_t enb_mod_idP, const rrc_eNB_ue_context_t* const ue_context_pP)
|
||||||
*\brief Send GTPV1U_ENB_DELETE_TUNNEL_REQ message to GTPV1U to destroy all UE-related tunnels.
|
*\brief Send GTPV1U_ENB_DELETE_TUNNEL_REQ message to GTPV1U to destroy all UE-related tunnels.
|
||||||
*\param module_id Instance ID of eNB.
|
*\param module_id Instance ID of eNB.
|
||||||
|
|||||||
@@ -44,29 +44,25 @@
|
|||||||
|
|
||||||
extern RAN_CONTEXT_t RC;
|
extern RAN_CONTEXT_t RC;
|
||||||
|
|
||||||
int rrc_gNB_process_GTPV1U_CREATE_TUNNEL_RESP(const protocol_ctxt_t *const ctxt_pP, const gtpv1u_enb_create_tunnel_resp_t *const create_tunnel_resp_pP, uint8_t *inde_list)
|
int rrc_gNB_process_GTPV1U_CREATE_TUNNEL_RESP(gNB_RRC_UE_t *ue,
|
||||||
|
const gtpv1u_enb_create_tunnel_resp_t *const create_tunnel_resp_pP,
|
||||||
|
uint8_t *inde_list)
|
||||||
{
|
{
|
||||||
if (!create_tunnel_resp_pP) {
|
if (!create_tunnel_resp_pP) {
|
||||||
LOG_E(NR_RRC, "create_tunnel_resp_pP error\n");
|
LOG_E(NR_RRC, "create_tunnel_resp_pP error\n");
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
LOG_D(RRC, PROTOCOL_RRC_CTXT_UE_FMT " RX CREATE_TUNNEL_RESP num tunnels %u \n", PROTOCOL_RRC_CTXT_UE_ARGS(ctxt_pP), create_tunnel_resp_pP->num_tunnels);
|
|
||||||
/* we look up by CU UE ID! Do NOT change back to RNTI! */
|
|
||||||
rrc_gNB_ue_context_t *ue_context_p = rrc_gNB_get_ue_context(RC.nrrrc[ctxt_pP->module_id], ctxt_pP->rntiMaybeUEid);
|
|
||||||
if (!ue_context_p) {
|
|
||||||
LOG_E(NR_RRC, "UE table error\n");
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
for (int i = 0; i < create_tunnel_resp_pP->num_tunnels; i++) {
|
for (int i = 0; i < create_tunnel_resp_pP->num_tunnels; i++) {
|
||||||
ue_context_p->ue_context.nsa_gtp_teid[inde_list[i]] = create_tunnel_resp_pP->enb_S1u_teid[i];
|
ue->nsa_gtp_teid[inde_list[i]] = create_tunnel_resp_pP->enb_S1u_teid[i];
|
||||||
ue_context_p->ue_context.nsa_gtp_addrs[inde_list[i]] = create_tunnel_resp_pP->enb_addr;
|
ue->nsa_gtp_addrs[inde_list[i]] = create_tunnel_resp_pP->enb_addr;
|
||||||
ue_context_p->ue_context.nsa_gtp_ebi[inde_list[i]] = create_tunnel_resp_pP->eps_bearer_id[i];
|
ue->nsa_gtp_ebi[inde_list[i]] = create_tunnel_resp_pP->eps_bearer_id[i];
|
||||||
LOG_I(RRC,
|
LOG_I(RRC,
|
||||||
PROTOCOL_RRC_CTXT_UE_FMT " rrc_eNB_process_GTPV1U_CREATE_TUNNEL_RESP tunnel (%u, %u) bearer UE context index %u, msg index %u, id %u, gtp addr len %d \n",
|
"UE %d: rrc_eNB_process_GTPV1U_CREATE_TUNNEL_RESP tunnel (%u, %u) bearer UE context index %u, msg index %u, id %u, gtp "
|
||||||
PROTOCOL_RRC_CTXT_UE_ARGS(ctxt_pP),
|
"addr len %d \n",
|
||||||
|
ue->rrc_ue_id,
|
||||||
create_tunnel_resp_pP->enb_S1u_teid[i],
|
create_tunnel_resp_pP->enb_S1u_teid[i],
|
||||||
ue_context_p->ue_context.nsa_gtp_teid[inde_list[i]],
|
ue->nsa_gtp_teid[inde_list[i]],
|
||||||
inde_list[i],
|
inde_list[i],
|
||||||
i,
|
i,
|
||||||
create_tunnel_resp_pP->eps_bearer_id[i],
|
create_tunnel_resp_pP->eps_bearer_id[i],
|
||||||
|
|||||||
@@ -30,12 +30,8 @@
|
|||||||
#ifndef RRC_GNB_GTPV1U_H_
|
#ifndef RRC_GNB_GTPV1U_H_
|
||||||
#define RRC_GNB_GTPV1U_H_
|
#define RRC_GNB_GTPV1U_H_
|
||||||
|
|
||||||
|
int rrc_gNB_process_GTPV1U_CREATE_TUNNEL_RESP(gNB_RRC_UE_t *ue,
|
||||||
int
|
const gtpv1u_enb_create_tunnel_resp_t *const create_tunnel_resp_pP,
|
||||||
rrc_gNB_process_GTPV1U_CREATE_TUNNEL_RESP(
|
uint8_t *inde_list);
|
||||||
const protocol_ctxt_t *const ctxt_pP,
|
|
||||||
const gtpv1u_enb_create_tunnel_resp_t *const create_tunnel_resp_pP,
|
|
||||||
uint8_t *inde_list
|
|
||||||
);
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -40,7 +40,7 @@
|
|||||||
#include "uper_decoder.h"
|
#include "uper_decoder.h"
|
||||||
#include "openair2/LAYER2/NR_MAC_gNB/mac_proto.h"
|
#include "openair2/LAYER2/NR_MAC_gNB/mac_proto.h"
|
||||||
#include "openair2/LAYER2/nr_rlc/nr_rlc_oai_api.h"
|
#include "openair2/LAYER2/nr_rlc/nr_rlc_oai_api.h"
|
||||||
#include "openair2/RRC/LTE/rrc_eNB_GTPV1U.h"
|
#include "openair2/RRC/NR/rrc_gNB_GTPV1U.h"
|
||||||
#include "openair2/F1AP/f1ap_ids.h"
|
#include "openair2/F1AP/f1ap_ids.h"
|
||||||
#include "executables/softmodem-common.h"
|
#include "executables/softmodem-common.h"
|
||||||
#include "executables/nr-softmodem.h"
|
#include "executables/nr-softmodem.h"
|
||||||
@@ -282,15 +282,11 @@ void rrc_add_nsa_user(gNB_RRC_INST *rrc, rrc_gNB_ue_context_t *ue_context_p, x2a
|
|||||||
create_tunnel_req.rnti = ue_context_p->ue_context.rrc_ue_id;
|
create_tunnel_req.rnti = ue_context_p->ue_context.rrc_ue_id;
|
||||||
create_tunnel_req.num_tunnels = m->nb_e_rabs_tobeadded;
|
create_tunnel_req.num_tunnels = m->nb_e_rabs_tobeadded;
|
||||||
RB_INSERT(rrc_nr_ue_tree_s, &RC.nrrrc[rrc->module_id]->rrc_ue_head, ue_context_p);
|
RB_INSERT(rrc_nr_ue_tree_s, &RC.nrrrc[rrc->module_id]->rrc_ue_head, ue_context_p);
|
||||||
PROTOCOL_CTXT_SET_BY_MODULE_ID(&ctxt, rrc->module_id, GNB_FLAG_YES, ue_context_p->ue_context.rnti, 0, 0, rrc->module_id);
|
|
||||||
memset(&create_tunnel_resp, 0, sizeof(create_tunnel_resp));
|
memset(&create_tunnel_resp, 0, sizeof(create_tunnel_resp));
|
||||||
if (!IS_SOFTMODEM_NOS1) {
|
if (!IS_SOFTMODEM_NOS1) {
|
||||||
LOG_D(RRC, "Calling gtpv1u_create_s1u_tunnel()\n");
|
LOG_D(RRC, "Calling gtpv1u_create_s1u_tunnel()\n");
|
||||||
gtpv1u_create_s1u_tunnel(ctxt.instance, &create_tunnel_req, &create_tunnel_resp, nr_pdcp_data_req_drb);
|
gtpv1u_create_s1u_tunnel(rrc->module_id, &create_tunnel_req, &create_tunnel_resp, nr_pdcp_data_req_drb);
|
||||||
rrc_gNB_process_GTPV1U_CREATE_TUNNEL_RESP(
|
rrc_gNB_process_GTPV1U_CREATE_TUNNEL_RESP(&ue_context_p->ue_context, &create_tunnel_resp, &inde_list[0]);
|
||||||
&ctxt,
|
|
||||||
&create_tunnel_resp,
|
|
||||||
&inde_list[0]);
|
|
||||||
}
|
}
|
||||||
X2AP_ENDC_SGNB_ADDITION_REQ_ACK(msg).nb_e_rabs_admitted_tobeadded = m->nb_e_rabs_tobeadded;
|
X2AP_ENDC_SGNB_ADDITION_REQ_ACK(msg).nb_e_rabs_admitted_tobeadded = m->nb_e_rabs_tobeadded;
|
||||||
X2AP_ENDC_SGNB_ADDITION_REQ_ACK(msg).target_assoc_id = m->target_assoc_id;
|
X2AP_ENDC_SGNB_ADDITION_REQ_ACK(msg).target_assoc_id = m->target_assoc_id;
|
||||||
|
|||||||
Reference in New Issue
Block a user