Files
2024-04-15 13:16:09 +02:00

230 lines
13 KiB
C

/*
* 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 openair2/ENB_APP/enb_paramdef_mce.h
* \brief definition of configuration parameters for MCE modules
* \author Javier MORGADE
* \date 2019
* \version 0.1
* \company VICOMTECH Spain
* \email: javier.morgade@ieee.org
* \note
* \warning
*/
#ifndef __ENB_APP_ENB_PARAMDEF_MCE__H__
#define __ENB_APP_ENB_PARAMDEF_MCE__H__
#include "common/config/config_paramdesc.h"
#include "RRC_paramsvalues.h"
/* mce configuration parameters names */
#define MCE_CONFIG_STRING_MCE_ID "MCE_ID"
#define MCE_CONFIG_STRING_MCE_NAME "MCE_name"
#define MCE_CONFIG_STRING_MCE_M2 "enable_mce_m2"
#define MCE_CONFIG_STRING_MCE_M3 "enable_mce_m3"
#define MCE_PARAMS_DESC {\
{MCE_CONFIG_STRING_MCE_ID, NULL, 0, .uptr=NULL, .defintval=0, TYPE_UINT, 0}, \
{MCE_CONFIG_STRING_MCE_NAME, NULL, 0, .strptr=NULL, .defstrval="OAIMCE", TYPE_STRING, 0}, \
{MCE_CONFIG_STRING_MCE_M2, NULL, 0, .strptr=NULL, .defstrval="no", TYPE_STRING, 0}, \
{MCE_CONFIG_STRING_MCE_M3, NULL, 0, .strptr=NULL, .defstrval="no", TYPE_STRING, 0}, \
}
#define MCE_MCE_ID_IDX 0
#define MCE_MCE_NAME_IDX 1
#define MCE_ENABLE_MCE_M2_IDX 2
#define MCE_ENABLE_MCE_M3_IDX 3
#define MCE_PARAMS_CHECK { \
{ .s5 = { NULL } }, \
{ .s5 = { NULL } }, \
{ .s5 = { NULL } }, \
{ .s5 = { NULL } }, \
}
#define MCE_CONFIG_STRING_NETWORK_INTERFACES_CONFIG "NETWORK_INTERFACES"
#define MCE2_IPV4_ADDR_FOR_M2C_IDX 0
#define MCE2_PORT_FOR_M2C_IDX 1
#define MCE2_IPV4_ADDR_FOR_M3C_IDX 2
#define MCE2_PORT_FOR_M3C_IDX 3
/* interface configuration parameters names */
/* M2 interface configuration parameters names */
#define MCE_CONFIG_STRING_MCE_IPV4_ADDRESS_FOR_M2C "MCE_IPV4_ADDRESS_FOR_M2C"
#define MCE_CONFIG_STRING_MCE_PORT_FOR_M2C "MCE_PORT_FOR_M2C"
/* M3 interface configuration parameters names */
#define MCE_CONFIG_STRING_MCE_IPV4_ADDRESS_FOR_M3C "MCE_IPV4_ADDRESS_FOR_M3C"
#define MCE_CONFIG_STRING_MCE_PORT_FOR_M3C "MCE_PORT_FOR_M3C"
#define MCE_NETPARAMS_DESC { \
{MCE_CONFIG_STRING_MCE_IPV4_ADDRESS_FOR_M2C, NULL, 0, .strptr=&mce_ipv4_address_for_m2c, .defstrval=NULL, TYPE_STRING, 0}, \
{MCE_CONFIG_STRING_MCE_PORT_FOR_M2C, NULL, 0, .uptr=&mce_port_for_m2c, .defintval=36443L, TYPE_UINT, 0}, \
{MCE_CONFIG_STRING_MCE_IPV4_ADDRESS_FOR_M3C, NULL, 0, .strptr=&mce_ipv4_address_for_m3c, .defstrval=NULL, TYPE_STRING, 0}, \
{MCE_CONFIG_STRING_MCE_PORT_FOR_M3C, NULL, 0, .uptr=&mce_port_for_m3c, .defintval=36444L, TYPE_UINT, 0}, \
}
/*-------------------------------------------------------------------------------------------------------------------------------------*/
/* M3 configuration parameters */
/* M3 configuration parameters section name */
#define MCE_CONFIG_STRING_TARGET_MME_M3_IP_ADDRESS "target_mme_m3_ip_address"
/* M3 configuration parameters names */
#define MCE_CONFIG_STRING_TARGET_MME_M3_IPV4_ADDRESS "ipv4"
/* optname helpstr paramflags XXXptr defXXXval type numelt */
#define M3PARAMS_DESC { \
{MCE_CONFIG_STRING_TARGET_MME_M3_IPV4_ADDRESS, NULL, 0, .uptr=NULL, .defstrval=NULL, TYPE_STRING, 0}, \
}
#define MCE2_M3_IPV4_ADDRESS_IDX 0
/*-----------------------------------------------------------------------------------------------------------------------------------*/
/* MCCH related BCCH Configuration per MBSFN area configuration parameters */
/* MCCH configuration parameters section */
#define MCE_CONFIG_STRING_MCCH_CONFIG_PER_MBSFN_AREA "mcch_config_per_mbsfn_area"
/* M3 configuration parameters names */
#define MCE_CONFIG_STRING_MCCH_MBSFN_AREA "mbsfn_area"
#define MCE_CONFIG_STRING_MCCH_PDCCH_LENGTH "pdcch_length"
#define MCE_CONFIG_STRING_MCCH_REPETITION_PERIOD "repetition_period"
#define MCE_CONFIG_STRING_MCCH_OFFSET "offset"
#define MCE_CONFIG_STRING_MCCH_MODIFICATION_PERIOD "modification_period"
#define MCE_CONFIG_STRING_MCCH_SF_ALLOCATION_INFO "subframe_allocation_info"
#define MCE_CONFIG_STRING_MCCH_MCS "mcs"
/* optname helpstr paramflags XXXptr defXXXval type numelt */
#define MCCH_PARAMS_DESC { \
{MCE_CONFIG_STRING_MCCH_MBSFN_AREA, NULL, 0, .uptr=NULL, .defuintval=0, TYPE_UINT, 0}, \
{MCE_CONFIG_STRING_MCCH_PDCCH_LENGTH, NULL, 0, .uptr=NULL, .defuintval=0, TYPE_UINT, 0}, \
{MCE_CONFIG_STRING_MCCH_REPETITION_PERIOD, NULL, 0, .uptr=NULL, .defuintval=0, TYPE_UINT, 0}, \
{MCE_CONFIG_STRING_MCCH_OFFSET, NULL, 0, .uptr=NULL, .defuintval=0, TYPE_UINT, 0}, \
{MCE_CONFIG_STRING_MCCH_MODIFICATION_PERIOD,NULL, 0, .uptr=NULL, .defuintval=0, TYPE_UINT, 0}, \
{MCE_CONFIG_STRING_MCCH_SF_ALLOCATION_INFO, NULL, 0, .uptr=NULL, .defuintval=0, TYPE_UINT, 0}, \
{MCE_CONFIG_STRING_MCCH_MCS, NULL, 0, .uptr=NULL, .defuintval=0, TYPE_UINT, 0}, \
}
#define MCCH_MBSFN_AREA_IDX 0
#define MCCH_PDCCH_LENGTH_IDX 1
#define MCCH_REPETITION_PERIOD_IDX 2
#define MCCH_OFFSET_IDX 3
#define MCCH_MODIFICATION_PERIOD_IDX 4
#define MCCH_SF_ALLOCATION_INFO_IDX 5
#define MCCH_MCS_IDX 6
/*-------------------------------------------------------------------------------------------------------------------------------------*/
/* M3 configuration parameters section name */
#define MCE_CONFIG_STRING_PLMN "plnm"
/* M3 configuration parameters names */
#define MCE_CONFIG_STRING_MCC "mcc"
#define MCE_CONFIG_STRING_MNC "mnc"
#define MCE_CONFIG_STRING_MNC_LENGTH "mnc_length"
/* optname helpstr paramflags XXXptr defXXXval type numelt */
#define MCE_PLMN_PARAMS_DESC { \
{MCE_CONFIG_STRING_MCC, NULL, 0, .uptr=NULL, .defuintval=1000, TYPE_UINT, 0}, \
{MCE_CONFIG_STRING_MNC, NULL, 0, .uptr=NULL, .defuintval=1000, TYPE_UINT, 0}, \
{MCE_CONFIG_STRING_MNC_LENGTH, NULL, 0, .uptr=NULL, .defuintval=0, TYPE_UINT, 0}, \
}
#define MCE_CONFIG_STRING_MCC_IDX 0
#define MCE_CONFIG_STRING_MNC_IDX 1
#define MCE_CONFIG_STRING_MNC_LENGTH_IDX 2
/*-------------------------------------------------------------------------------------------------------------------------------------*/
#define MCE_CONFIG_STRING_MBMS_SCHEDULING_INFO "mbms_sched_info"
#define MCE_CONFIG_STRING_MCCH_UPDATE_TIME "mcch_update_time"
#define MCE_MBMS_SCHEDULING_INFO_PARAMS_DESC { \
{MCE_CONFIG_STRING_MCCH_UPDATE_TIME, NULL, 0, .uptr=NULL, .defuintval=0, TYPE_UINT, 0}, \
}
#define MCE_CONFIG_STRING_MCCH_UPDATE_TIME_IDX 0
///*-------------------------------------------------------------------------------------------------------------------------------------*/
#define MCE_CONFIG_STRING_MBMS_AREA_CONFIGURATION_LIST "mbms_area_config_list"
#define MCE_CONFIG_STRING_COMMON_SF_ALLOCATION_PERIOD "common_sf_allocation_period"
#define MCE_CONFIG_STRING_MBMS_AREA_ID "mbms_area_id"
#define MCE_MBMS_AREA_CONFIGURATION_LIST_PARAMS_DESC { \
{MCE_CONFIG_STRING_COMMON_SF_ALLOCATION_PERIOD, NULL, 0, .uptr=NULL, .defuintval=0, TYPE_UINT, 0}, \
{MCE_CONFIG_STRING_MBMS_AREA_ID, NULL, 0, .uptr=NULL, .defuintval=0, TYPE_UINT, 0}, \
}
#define MCE_CONFIG_STRING_COMMON_SF_ALLOCATION_PERIOD_IDX 0
#define MCE_CONFIG_STRING_MBMS_AREA_ID_IDX 1
//
///*-------------------------------------------------------------------------------------------------------------------------------------*/
#define MCE_CONFIG_STRING_PMCH_CONFIGURATION_LIST "pmch_config_list"
#define MCE_CONFIG_STRING_ALLOCATED_SF_END "allocated_sf_end"
#define MCE_CONFIG_STRING_DATA_MCS "data_mcs"
#define MCE_CONFIG_STRING_MCH_SCHEDULING_PERIOD "mch_scheduling_period"
#define MCE_MBMS_PMCH_CONFIGURATION_LIST_PARAMS_DESC { \
{MCE_CONFIG_STRING_ALLOCATED_SF_END, NULL, 0, .uptr=NULL, .defuintval=0, TYPE_UINT, 0}, \
{MCE_CONFIG_STRING_DATA_MCS, NULL, 0, .uptr=NULL, .defuintval=0, TYPE_UINT, 0}, \
{MCE_CONFIG_STRING_MCH_SCHEDULING_PERIOD, NULL, 0, .uptr=NULL, .defuintval=0, TYPE_UINT, 0}, \
}
#define MCE_CONFIG_STRING_ALLOCATED_SF_END_IDX 0
#define MCE_CONFIG_STRING_DATA_MCS_IDX 1
#define MCE_CONFIG_STRING_MCH_SCHEDULING_PERIOD_IDX 2
/*-------------------------------------------------------------------------------------------------------------------------------------*/
#define MCE_CONFIG_STRING_MBMS_SESSION_LIST "mbms_session_list"
#define MCE_CONFIG_STRING_MBMS_SERVICE_ID "service_id"
#define MCE_CONFIG_STRING_MBMS_LCID_ID "lcid_id"
#define MCE_CONFIG_STRING_MBMS_LCID "lcid"
#define MCE_MBMS_MBMS_SESSION_LIST_DESC { \
{MCE_CONFIG_STRING_MBMS_SERVICE_ID, NULL, 0, .uptr=NULL, .defuintval=0, TYPE_UINT32, 0}, \
{MCE_CONFIG_STRING_MBMS_LCID_ID, NULL, 0, .uptr=NULL, .defuintval=0, TYPE_UINT, 0}, \
{MCE_CONFIG_STRING_MBMS_LCID, NULL, 0, .uptr=NULL, .defuintval=0, TYPE_UINT, 0}, \
}
#define MCE_CONFIG_STRING_MBMS_SERVICE_ID_IDX 0
#define MCE_CONFIG_STRING_MBMS_LCID_ID_IDX 1
#define MCE_CONFIG_STRING_MBMS_LCID_IDX 2
/*-------------------------------------------------------------------------------------------------------------------------------------*/
#define MCE_CONFIG_STRING_MBMS_SF_CONFIGURATION_LIST "mbms_sf_config_list"
#define MCE_CONFIG_STRING_RADIOFRAME_ALLOCATION_PERIOD "radioframe_allocation_period"
#define MCE_CONFIG_STRING_RADIOFRAME_ALLOOCATION_OFFSET "radioframe_alloocation_offset"
#define MCE_CONFIG_STRING_NUM_FRAME "num_frame"
#define MCE_CONFIG_STRING_SUBFRAME_ALLOCATION "subframe_allocation"
#define MCE_MBMS_MBMS_SF_CONFIGURATION_LIST_PARAMS_DESC { \
{MCE_CONFIG_STRING_RADIOFRAME_ALLOCATION_PERIOD, NULL, 0, .uptr=NULL, .defintval=0, TYPE_UINT, 0}, \
{MCE_CONFIG_STRING_RADIOFRAME_ALLOOCATION_OFFSET, NULL, 0, .uptr=NULL, .defintval=0, TYPE_UINT, 0}, \
{MCE_CONFIG_STRING_NUM_FRAME, NULL, 0, .strptr=NULL, .defstrval="oneFrame", TYPE_STRING, 0}, \
{MCE_CONFIG_STRING_SUBFRAME_ALLOCATION, NULL, 0, .uptr=NULL, .defintval=0, TYPE_UINT, 0}, \
}
#define MCE_CONFIG_STRING_RADIOFRAME_ALLOCATION_PERIOD_IDX 0
#define MCE_CONFIG_STRING_RADIOFRAME_ALLOOCATION_OFFSET_IDX 1
#define MCE_CONFIG_STRING_NUM_FRAME_IDX 2
#define MCE_CONFIG_STRING_SUBFRAME_ALLOCATION_IDX 3
#endif