141 lines
11 KiB
C
141 lines
11 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 prs_nr_paramdef.h
|
|
* \brief definition of configuration parameters for PRS
|
|
* \author
|
|
* \date 2022
|
|
* \version 0.1
|
|
* \company EURECOM
|
|
* \email:
|
|
* \note
|
|
* \warning
|
|
*/
|
|
|
|
#ifndef __PRS_NR_PARAMDEF__H__
|
|
#define __PRS_NR_PARAMDEF__H__
|
|
|
|
/*-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------*/
|
|
|
|
/* PRS configuration section names */
|
|
#define CONFIG_STRING_PRS_LIST "PRSs"
|
|
#define CONFIG_STRING_PRS_CONFIG "prs_config"
|
|
|
|
|
|
/* Global parameters */
|
|
#define CONFIG_STRING_ACTIVE_GNBs "Active_gNBs"
|
|
#define HELP_STRING_ACTIVE_GNBs "Number of active gNBs simultaneously transmitting PRS signal to a UE\n"
|
|
/*----------------------------------------------------------------------------------------------------------------------------------------------------*/
|
|
/* PRS configuration parameters */
|
|
/* optname helpstr paramflags XXXptr defXXXval type numelt */
|
|
/*----------------------------------------------------------------------------------------------------------------------------------------------------*/
|
|
// clang-format off
|
|
#define PRS_GLOBAL_PARAMS_DESC { \
|
|
{CONFIG_STRING_ACTIVE_GNBs, HELP_STRING_ACTIVE_GNBs, 0, .uptr=NULL, .defuintval=0, TYPE_UINT, 0} \
|
|
}
|
|
// clang-format on
|
|
|
|
#define PRS_ACTIVE_GNBS_IDX 0
|
|
/*----------------------------------------------------------------------------------------------------------------------------------------------------*/
|
|
|
|
/* PRS configuration parameters names */
|
|
#define CONFIG_STRING_GNB_ID "gNB_id"
|
|
#define CONFIG_STRING_NUM_PRS_RESOURCES "NumPRSResources"
|
|
#define CONFIG_STRING_PRS_RESOURCE_SET_PERIOD_LIST "PRSResourceSetPeriod"
|
|
#define CONFIG_STRING_PRS_SYMBOL_START_LIST "SymbolStart"
|
|
#define CONFIG_STRING_PRS_NUM_SYMBOLS_LIST "NumPRSSymbols"
|
|
#define CONFIG_STRING_PRS_NUM_RB "NumRB"
|
|
#define CONFIG_STRING_PRS_RB_OFFSET "RBOffset"
|
|
#define CONFIG_STRING_PRS_COMB_SIZE "CombSize"
|
|
#define CONFIG_STRING_PRS_RE_OFFSET_LIST "REOffset"
|
|
#define CONFIG_STRING_PRS_RESOURCE_OFFSET_LIST "PRSResourceOffset"
|
|
#define CONFIG_STRING_PRS_RESOURCE_REPETITION "PRSResourceRepetition"
|
|
#define CONFIG_STRING_PRS_RESOURCE_TIME_GAP "PRSResourceTimeGap"
|
|
#define CONFIG_STRING_PRS_ID_LIST "NPRS_ID"
|
|
#define CONFIG_STRING_PRS_MUTING_PATTERN1_LIST "MutingPattern1"
|
|
#define CONFIG_STRING_PRS_MUTING_PATTERN2_LIST "MutingPattern2"
|
|
#define CONFIG_STRING_PRS_MUTING_BIT_REPETITION "MutingBitRepetition"
|
|
|
|
/* Help string for PRS parameters */
|
|
#define HELP_STRING_GNB_ID "gNB index for UE (<= CombSize)\n"
|
|
#define HELP_STRING_NUM_PRS_RESOURCES "Number of PRS resources in a PRS resource set\n"
|
|
#define HELP_STRING_PRS_RESOURCE_SET_PERIOD_LIST "[slot period, slot offset] of a PRS resource set\n"
|
|
#define HELP_STRING_PRS_SYMBOL_START_LIST "Starting OFDM symbol of each PRS resource in a PRS resource set\n"
|
|
#define HELP_STRING_PRS_NUM_SYMBOLS_LIST "Number of OFDM symbols in a slot for each PRS resource in a PRS resource set\n"
|
|
#define HELP_STRING_PRS_NUM_RB "Number of PRBs allocated to all PRS resources in a PRS resource set (<= 272 and multiples of 4)\n"
|
|
#define HELP_STRING_PRS_RB_OFFSET "Starting PRB index of all PRS resources in a PRS resource set\n"
|
|
#define HELP_STRING_PRS_COMB_SIZE "RE density of all PRS resources in a PRS resource set (2, 4, 6, 12)\n"
|
|
#define HELP_STRING_PRS_RE_OFFSET_LIST "Starting RE offset in the first OFDM symbol of each PRS resource in a PRS resource set\n"
|
|
#define HELP_STRING_PRS_RESOURCE_OFFSET_LIST "Slot offset of each PRS resource defined relative to the slot offset of the PRS resource set (0...511)\n"
|
|
#define HELP_STRING_PRS_RESOURCE_REPETITION "Repetition factor for all PRS resources in resource set (1 /*default*/, 2, 4, 6, 8, 16, 32)\n"
|
|
#define HELP_STRING_PRS_RESOURCE_TIME_GAP "Slot offset between two consecutive repetition indices of all PRS resources in a PRS resource set (1 /*default*/, 2, 4, 6, 8, 16, 32)\n"
|
|
#define HELP_STRING_PRS_ID_LIST "Sequence identity of each PRS resource in a PRS resource set, specified in the range [0, 4095]\n"
|
|
#define HELP_STRING_PRS_MUTING_PATTERN1_LIST "Muting bit pattern option-1, specified as [] or a binary-valued vector of length 2, 4, 6, 8, 16, or 32\n"
|
|
#define HELP_STRING_PRS_MUTING_PATTERN2_LIST "Muting bit pattern option-2, specified as [] or a binary-valued vector of length 2, 4, 6, 8, 16, or 32\n"
|
|
#define HELP_STRING_PRS_MUTING_BIT_REPETITION "Muting bit repetition factor, specified as 1, 2, 4, or 8\n"
|
|
|
|
|
|
/*----------------------------------------------------------------------------------------------------------------------------------------------------------------*/
|
|
/* PRS configuration parameters */
|
|
/* optname helpstr paramflags XXXptr defXXXval type numelt */
|
|
/*----------------------------------------------------------------------------------------------------------------------------------------------------------------*/
|
|
// clang-format off
|
|
#define PRS_PARAMS_DESC { \
|
|
{CONFIG_STRING_GNB_ID, HELP_STRING_GNB_ID, 0, .uptr=NULL, .defuintval=0, TYPE_UINT, 0}, \
|
|
{CONFIG_STRING_NUM_PRS_RESOURCES, HELP_STRING_NUM_PRS_RESOURCES, 0, .uptr=NULL, .defuintval=0, TYPE_UINT, 0}, \
|
|
{CONFIG_STRING_PRS_RESOURCE_SET_PERIOD_LIST, HELP_STRING_PRS_RESOURCE_SET_PERIOD_LIST, 0, .uptr=NULL, .defintarrayval=0, TYPE_UINTARRAY, 0}, \
|
|
{CONFIG_STRING_PRS_SYMBOL_START_LIST, HELP_STRING_PRS_SYMBOL_START_LIST, 0, .uptr=NULL, .defintarrayval=0, TYPE_UINTARRAY, 0}, \
|
|
{CONFIG_STRING_PRS_NUM_SYMBOLS_LIST, HELP_STRING_PRS_NUM_SYMBOLS_LIST, 0, .uptr=NULL, .defintarrayval=0, TYPE_UINTARRAY, 0}, \
|
|
{CONFIG_STRING_PRS_NUM_RB, HELP_STRING_PRS_NUM_RB, 0, .uptr=NULL, .defuintval=0, TYPE_UINT, 0}, \
|
|
{CONFIG_STRING_PRS_RB_OFFSET, HELP_STRING_PRS_RB_OFFSET, 0, .uptr=NULL, .defuintval=0, TYPE_UINT, 0}, \
|
|
{CONFIG_STRING_PRS_COMB_SIZE, HELP_STRING_PRS_COMB_SIZE, 0, .uptr=NULL, .defuintval=0, TYPE_UINT, 0}, \
|
|
{CONFIG_STRING_PRS_RE_OFFSET_LIST, HELP_STRING_PRS_RE_OFFSET_LIST, 0, .uptr=NULL, .defintarrayval=0, TYPE_UINTARRAY, 0}, \
|
|
{CONFIG_STRING_PRS_RESOURCE_OFFSET_LIST, HELP_STRING_PRS_RESOURCE_OFFSET_LIST, 0, .uptr=NULL, .defintarrayval=0, TYPE_UINTARRAY, 0}, \
|
|
{CONFIG_STRING_PRS_RESOURCE_REPETITION, HELP_STRING_PRS_RESOURCE_REPETITION, 0, .uptr=NULL, .defuintval=0, TYPE_UINT, 0}, \
|
|
{CONFIG_STRING_PRS_RESOURCE_TIME_GAP, HELP_STRING_PRS_RESOURCE_TIME_GAP, 0, .uptr=NULL, .defuintval=0, TYPE_UINT, 0}, \
|
|
{CONFIG_STRING_PRS_ID_LIST, HELP_STRING_PRS_ID_LIST, 0, .uptr=NULL, .defintarrayval=0, TYPE_UINTARRAY, 0}, \
|
|
{CONFIG_STRING_PRS_MUTING_PATTERN1_LIST, HELP_STRING_PRS_MUTING_PATTERN1_LIST, 0, .uptr=NULL, .defintarrayval=0, TYPE_UINTARRAY, 0}, \
|
|
{CONFIG_STRING_PRS_MUTING_PATTERN2_LIST, HELP_STRING_PRS_MUTING_PATTERN2_LIST, 0, .uptr=NULL, .defintarrayval=0, TYPE_UINTARRAY, 0}, \
|
|
{CONFIG_STRING_PRS_MUTING_BIT_REPETITION, HELP_STRING_PRS_MUTING_BIT_REPETITION, 0, .uptr=NULL, .defuintval=0, TYPE_UINT, 0} \
|
|
}
|
|
// clang-format on
|
|
|
|
#define PRS_GNB_ID 0
|
|
#define NUM_PRS_RESOURCES 1
|
|
#define PRS_RESOURCE_SET_PERIOD_LIST 2
|
|
#define PRS_SYMBOL_START_LIST 3
|
|
#define PRS_NUM_SYMBOLS_LIST 4
|
|
#define PRS_NUM_RB 5
|
|
#define PRS_RB_OFFSET 6
|
|
#define PRS_COMB_SIZE 7
|
|
#define PRS_RE_OFFSET_LIST 8
|
|
#define PRS_RESOURCE_OFFSET_LIST 9
|
|
#define PRS_RESOURCE_REPETITION 10
|
|
#define PRS_RESOURCE_TIME_GAP 11
|
|
#define PRS_ID_LIST 12
|
|
#define PRS_MUTING_PATTERN1_LIST 13
|
|
#define PRS_MUTING_PATTERN2_LIST 14
|
|
#define PRS_MUTING_BIT_REPETITION 15
|
|
|
|
/*----------------------------------------------------------------------------------------------------------------------------------------------------*/
|
|
|
|
#endif
|