ENDC path switch S1-U: Modifications to avoid linking errors for lte-softmodem
This commit is contained in:
@@ -1880,6 +1880,19 @@ set (GTPV1U_SRC
|
|||||||
add_library(GTPV1U ${GTPV1U_SRC})
|
add_library(GTPV1U ${GTPV1U_SRC})
|
||||||
add_dependencies(GTPV1U rrc_flag)
|
add_dependencies(GTPV1U rrc_flag)
|
||||||
|
|
||||||
|
#NR case
|
||||||
|
set (NR_GTPV1U_SRC
|
||||||
|
${NR_RRC_DIR}/rrc_gNB_GTPV1U.c
|
||||||
|
${RRC_DIR}/rrc_eNB_GTPV1U.c
|
||||||
|
${GTPV1U_DIR}/nw-gtpv1u/src/NwGtpv1uTunnelEndPoint.c
|
||||||
|
${GTPV1U_DIR}/nw-gtpv1u/src/NwGtpv1uTrxn.c
|
||||||
|
${GTPV1U_DIR}/nw-gtpv1u/src/NwGtpv1uMsg.c
|
||||||
|
${GTPV1U_DIR}/nw-gtpv1u/src/NwGtpv1u.c
|
||||||
|
${GTPV1U_DIR}/gtpv1u_teid_pool.c
|
||||||
|
)
|
||||||
|
add_library(NR_GTPV1U ${NR_GTPV1U_SRC})
|
||||||
|
add_dependencies(NR_GTPV1U rrc_flag)
|
||||||
|
|
||||||
set (MME_APP_SRC
|
set (MME_APP_SRC
|
||||||
${OPENAIR3_DIR}/MME_APP/mme_app.c
|
${OPENAIR3_DIR}/MME_APP/mme_app.c
|
||||||
${OPENAIR3_DIR}/MME_APP/mme_config.c
|
${OPENAIR3_DIR}/MME_APP/mme_config.c
|
||||||
@@ -2597,7 +2610,7 @@ add_executable(nr-softmodem
|
|||||||
|
|
||||||
target_link_libraries (nr-softmodem
|
target_link_libraries (nr-softmodem
|
||||||
-Wl,--start-group
|
-Wl,--start-group
|
||||||
UTIL HASHTABLE SCTP_CLIENT UDP SCHED_LIB SCHED_RU_LIB SCHED_NR_LIB PHY_NR PHY PHY_COMMON PHY_NR_COMMON PHY_RU LFDS GTPV1U SECU_CN SECU_OSA
|
UTIL HASHTABLE SCTP_CLIENT UDP SCHED_LIB SCHED_RU_LIB SCHED_NR_LIB PHY_NR PHY PHY_COMMON PHY_NR_COMMON PHY_RU LFDS NR_GTPV1U SECU_CN SECU_OSA
|
||||||
${ITTI_LIB} ${FLPT_MSG_LIB} ${ASYNC_IF_LIB} ${FLEXRAN_AGENT_LIB} LFDS7 ${MSC_LIB} ${RAL_LIB} ${NAS_UE_LIB} RRC_LIB NR_RRC_LIB
|
${ITTI_LIB} ${FLPT_MSG_LIB} ${ASYNC_IF_LIB} ${FLEXRAN_AGENT_LIB} LFDS7 ${MSC_LIB} ${RAL_LIB} ${NAS_UE_LIB} RRC_LIB NR_RRC_LIB
|
||||||
S1AP_LIB S1AP_ENB L2 L2_LTE L2_NR MAC_NR_COMMON NFAPI_COMMON_LIB NFAPI_LIB NFAPI_VNF_LIB NFAPI_PNF_LIB NFAPI_USER_LIB
|
S1AP_LIB S1AP_ENB L2 L2_LTE L2_NR MAC_NR_COMMON NFAPI_COMMON_LIB NFAPI_LIB NFAPI_VNF_LIB NFAPI_PNF_LIB NFAPI_USER_LIB
|
||||||
X2AP_LIB X2AP_ENB F1AP_LIB F1AP M2AP_LIB M2AP_ENB M3AP_LIB M3AP_ENB ${PROTO_AGENT_LIB} ${FSPT_MSG_LIB}
|
X2AP_LIB X2AP_ENB F1AP_LIB F1AP M2AP_LIB M2AP_ENB M3AP_LIB M3AP_ENB ${PROTO_AGENT_LIB} ${FSPT_MSG_LIB}
|
||||||
|
|||||||
@@ -94,55 +94,6 @@ rrc_eNB_process_GTPV1U_CREATE_TUNNEL_RESP(
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
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
|
|
||||||
) {
|
|
||||||
rnti_t rnti;
|
|
||||||
int i;
|
|
||||||
struct rrc_gNB_ue_context_s *ue_context_p = NULL;
|
|
||||||
|
|
||||||
if (create_tunnel_resp_pP) {
|
|
||||||
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);
|
|
||||||
rnti = create_tunnel_resp_pP->rnti;
|
|
||||||
ue_context_p = rrc_gNB_get_ue_context(
|
|
||||||
RC.nrrrc[ctxt_pP->module_id],
|
|
||||||
ctxt_pP->rnti);
|
|
||||||
|
|
||||||
for (i = 0; i < create_tunnel_resp_pP->num_tunnels; i++) {
|
|
||||||
ue_context_p->ue_context.gnb_gtp_teid[inde_list[i]] = create_tunnel_resp_pP->enb_S1u_teid[i];
|
|
||||||
ue_context_p->ue_context.gnb_gtp_addrs[inde_list[i]] = create_tunnel_resp_pP->enb_addr;
|
|
||||||
ue_context_p->ue_context.gnb_gtp_ebi[inde_list[i]] = create_tunnel_resp_pP->eps_bearer_id[i];
|
|
||||||
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",
|
|
||||||
PROTOCOL_RRC_CTXT_UE_ARGS(ctxt_pP),
|
|
||||||
create_tunnel_resp_pP->enb_S1u_teid[i],
|
|
||||||
ue_context_p->ue_context.gnb_gtp_teid[inde_list[i]],
|
|
||||||
inde_list[i],
|
|
||||||
i,
|
|
||||||
create_tunnel_resp_pP->eps_bearer_id[i],
|
|
||||||
create_tunnel_resp_pP->enb_addr.length);
|
|
||||||
}
|
|
||||||
|
|
||||||
MSC_LOG_RX_MESSAGE(
|
|
||||||
MSC_RRC_ENB,
|
|
||||||
MSC_GTPU_ENB,
|
|
||||||
NULL,0,
|
|
||||||
MSC_AS_TIME_FMT" CREATE_TUNNEL_RESP RNTI %"PRIx16" ntuns %u ebid %u enb-s1u teid %u",
|
|
||||||
0,0,rnti,
|
|
||||||
create_tunnel_resp_pP->num_tunnels,
|
|
||||||
ue_context_p->ue_context.gnb_gtp_ebi[0],
|
|
||||||
ue_context_p->ue_context.gnb_gtp_teid[0]);
|
|
||||||
(void)rnti; /* avoid gcc warning "set but not used" */
|
|
||||||
return 0;
|
|
||||||
} else {
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
boolean_t
|
boolean_t
|
||||||
gtpv_data_req(
|
gtpv_data_req(
|
||||||
|
|||||||
@@ -0,0 +1,64 @@
|
|||||||
|
# include "rrc_defs.h"
|
||||||
|
# include "rrc_extern.h"
|
||||||
|
# include "RRC/LTE/MESSAGES/asn1_msg.h"
|
||||||
|
# include "rrc_eNB_GTPV1U.h"
|
||||||
|
# include "rrc_eNB_UE_context.h"
|
||||||
|
# include "msc.h"
|
||||||
|
|
||||||
|
//# if defined(ENABLE_ITTI)
|
||||||
|
# include "asn1_conversions.h"
|
||||||
|
# include "intertask_interface.h"
|
||||||
|
//#endif
|
||||||
|
|
||||||
|
# include "common/ran_context.h"
|
||||||
|
|
||||||
|
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
|
||||||
|
) {
|
||||||
|
rnti_t rnti;
|
||||||
|
int i;
|
||||||
|
struct rrc_gNB_ue_context_s *ue_context_p = NULL;
|
||||||
|
|
||||||
|
if (create_tunnel_resp_pP) {
|
||||||
|
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);
|
||||||
|
rnti = create_tunnel_resp_pP->rnti;
|
||||||
|
ue_context_p = rrc_gNB_get_ue_context(
|
||||||
|
RC.nrrrc[ctxt_pP->module_id],
|
||||||
|
ctxt_pP->rnti);
|
||||||
|
|
||||||
|
for (i = 0; i < create_tunnel_resp_pP->num_tunnels; i++) {
|
||||||
|
ue_context_p->ue_context.gnb_gtp_teid[inde_list[i]] = create_tunnel_resp_pP->enb_S1u_teid[i];
|
||||||
|
ue_context_p->ue_context.gnb_gtp_addrs[inde_list[i]] = create_tunnel_resp_pP->enb_addr;
|
||||||
|
ue_context_p->ue_context.gnb_gtp_ebi[inde_list[i]] = create_tunnel_resp_pP->eps_bearer_id[i];
|
||||||
|
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",
|
||||||
|
PROTOCOL_RRC_CTXT_UE_ARGS(ctxt_pP),
|
||||||
|
create_tunnel_resp_pP->enb_S1u_teid[i],
|
||||||
|
ue_context_p->ue_context.gnb_gtp_teid[inde_list[i]],
|
||||||
|
inde_list[i],
|
||||||
|
i,
|
||||||
|
create_tunnel_resp_pP->eps_bearer_id[i],
|
||||||
|
create_tunnel_resp_pP->enb_addr.length);
|
||||||
|
}
|
||||||
|
|
||||||
|
MSC_LOG_RX_MESSAGE(
|
||||||
|
MSC_RRC_ENB,
|
||||||
|
MSC_GTPU_ENB,
|
||||||
|
NULL,0,
|
||||||
|
MSC_AS_TIME_FMT" CREATE_TUNNEL_RESP RNTI %"PRIx16" ntuns %u ebid %u enb-s1u teid %u",
|
||||||
|
0,0,rnti,
|
||||||
|
create_tunnel_resp_pP->num_tunnels,
|
||||||
|
ue_context_p->ue_context.gnb_gtp_ebi[0],
|
||||||
|
ue_context_p->ue_context.gnb_gtp_teid[0]);
|
||||||
|
(void)rnti; /* avoid gcc warning "set but not used" */
|
||||||
|
return 0;
|
||||||
|
} else {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,39 @@
|
|||||||
|
/*
|
||||||
|
* Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
|
||||||
|
* contributor license agreements. See the NOTICE file distributed with
|
||||||
|
* this work for additional information regarding copyright ownership.
|
||||||
|
* The OpenAirInterface Software Alliance licenses this file to You under
|
||||||
|
* the OAI Public License, Version 1.1 (the "License"); you may not use this file
|
||||||
|
* except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.openairinterface.org/?page_id=698
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*-------------------------------------------------------------------------------
|
||||||
|
* For more information about the OpenAirInterface (OAI) Software Alliance:
|
||||||
|
* contact@openairinterface.org
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*! \file rrc_eNB_GTPV1U.h
|
||||||
|
* \brief rrc GTPV1U procedures for eNB
|
||||||
|
* \author Lionel GAUTHIER
|
||||||
|
* \version 1.0
|
||||||
|
* \company Eurecom
|
||||||
|
* \email: lionel.gauthier@eurecom.fr
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef RRC_GNB_GTPV1U_H_
|
||||||
|
#define RRC_GNB_GTPV1U_H_
|
||||||
|
|
||||||
|
|
||||||
|
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
|
||||||
|
);
|
||||||
Reference in New Issue
Block a user