Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
O
OpenXG UE
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Michael Black
OpenXG UE
Commits
69fe7173
Commit
69fe7173
authored
Jun 14, 2018
by
Guy De Souza
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Nfapi extension from nr-rrc-additions
parent
ce88e9b1
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
534 additions
and
28 deletions
+534
-28
nfapi/open-nFAPI/nfapi/public_inc/nfapi_interface_nr_extension.h
...pen-nFAPI/nfapi/public_inc/nfapi_interface_nr_extension.h
+0
-26
nfapi/open-nFAPI/nfapi/public_inc/nfapi_nr_interface.h
nfapi/open-nFAPI/nfapi/public_inc/nfapi_nr_interface.h
+273
-0
openair1/PHY/NR_TRANSPORT/nr_dci.c
openair1/PHY/NR_TRANSPORT/nr_dci.c
+132
-0
openair1/PHY/NR_TRANSPORT/nr_dci.h
openair1/PHY/NR_TRANSPORT/nr_dci.h
+74
-0
openair1/PHY/NR_TRANSPORT/nr_pdcch.c
openair1/PHY/NR_TRANSPORT/nr_pdcch.c
+35
-0
openair1/PHY/defs_gNB.h
openair1/PHY/defs_gNB.h
+1
-1
openair1/PHY/defs_nr_common.h
openair1/PHY/defs_nr_common.h
+19
-1
No files found.
nfapi/open-nFAPI/nfapi/public_inc/nfapi_interface_nr_extension.h
deleted
100644 → 0
View file @
ce88e9b1
/*
* Copyright 2017 Cisco Systems, Inc.
*
* Licensed under the Apache License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0
*
* 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.
*/
#ifndef _NFAPI_INTERFACE_NR_EXTENSION_H_
#define _NFAPI_INTERFACE_NR_EXTENSION_H_
#include "stddef.h"
#include "nfapi_interface.h"
#endif
/* _NFAPI_INTERFACE_NR_EXTENSION_H_ */
nfapi/open-nFAPI/nfapi/public_inc/nfapi_nr_interface.h
0 → 100644
View file @
69fe7173
#ifndef _NFAPI_INTERFACE_NR_H_
#define _NFAPI_INTERFACE_NR_H_
#include "nfapi_interface.h"
//These TLVs are used exclusively by nFAPI
typedef
struct
{
// These TLVs are used to setup the transport connection between VNF and PNF
// nfapi_ipv4_address_t p7_vnf_address_ipv4;
// nfapi_ipv6_address_t p7_vnf_address_ipv6;
// nfapi_uint16_tlv_t p7_vnf_port;
// nfapi_ipv4_address_t p7_pnf_address_ipv4;
// nfapi_ipv6_address_t p7_pnf_address_ipv6;
// nfapi_uint16_tlv_t p7_pnf_port;
// // These TLVs are used to setup the transport connection between VNF and PNF
// nfapi_uint8_tlv_t dl_ue_per_sf;
// nfapi_uint8_tlv_t ul_ue_per_sf;
// These TLVs are used by PNF to report its RF capabilities to the VNF software
nfapi_rf_bands_t
rf_bands
;
// These TLVs are used by the VNF to configure the synchronization with the PNF.
// nfapi_uint8_tlv_t timing_window;
// nfapi_uint8_tlv_t timing_info_mode;
// nfapi_uint8_tlv_t timing_info_period;
// These TLVs are used by the VNF to configure the RF in the PNF
// nfapi_uint16_tlv_t max_transmit_power;
nfapi_uint16_tlv_t
earfcn
;
// nfapi_nmm_frequency_bands_t nmm_gsm_frequency_bands;
// nfapi_nmm_frequency_bands_t nmm_umts_frequency_bands;
// nfapi_nmm_frequency_bands_t nmm_lte_frequency_bands;
// nfapi_uint8_tlv_t nmm_uplink_rssi_supported;
}
nfapi_nr_nfapi_t
;
#define NFAPI_NR_NFAPI_P7_VNF_ADDRESS_IPV4_TAG 0x5100
#define NFAPI_NR_NFAPI_P7_VNF_ADDRESS_IPV6_TAG 0x5101
#define NFAPI_NR_NFAPI_P7_VNF_PORT_TAG 0x5102
#define NFAPI_NR_NFAPI_P7_PNF_ADDRESS_IPV4_TAG 0x5103
#define NFAPI_NR_NFAPI_P7_PNF_ADDRESS_IPV6_TAG 0x5104
#define NFAPI_NR_NFAPI_P7_PNF_PORT_TAG 0x5105
#define NFAPI_NR_NFAPI_DOWNLINK_UES_PER_SUBFRAME_TAG 0x510A
#define NFAPI_NR_NFAPI_UPLINK_UES_PER_SUBFRAME_TAG 0x510B
#define NFAPI_NR_NFAPI_RF_BANDS_TAG 0x5114
#define NFAPI_NR_NFAPI_TIMING_WINDOW_TAG 0x511E
#define NFAPI_NR_NFAPI_TIMING_INFO_MODE_TAG 0x511F
#define NFAPI_NR_NFAPI_TIMING_INFO_PERIOD_TAG 0x5120
#define NFAPI_NR_NFAPI_MAXIMUM_TRANSMIT_POWER_TAG 0x5128
#define NFAPI_NR_NFAPI_EARFCN_TAG 0x5129
#define NFAPI_NR_NFAPI_NMM_GSM_FREQUENCY_BANDS_TAG 0x5130
#define NFAPI_NR_NFAPI_NMM_UMTS_FREQUENCY_BANDS_TAG 0x5131
#define NFAPI_NR_NFAPI_NMM_LTE_FREQUENCY_BANDS_TAG 0x5132
#define NFAPI_NR_NFAPI_NMM_UPLINK_RSSI_SUPPORTED_TAG 0x5133
// P5 Message Structures
typedef
struct
{
nfapi_uint16_tlv_t
numerology_index_mu
;
nfapi_uint16_tlv_t
duplex_mode
;
}
nfapi_nr_subframe_config_t
;
#define NFAPI_NR_SUBFRAME_CONFIG_DUPLEX_MODE_TAG 0x5001
#define NFAPI_NR_SUBFRAME_CONFIG_PCFICH_POWER_OFFSET_TAG 0x5002
#define NFAPI_NR_SUBFRAME_CONFIG_PB_TAG 0x5003
#define NFAPI_NR_SUBFRAME_CONFIG_DL_CYCLIC_PREFIX_TYPE_TAG 0x5004
#define NFAPI_NR_SUBFRAME_CONFIG_UL_CYCLIC_PREFIX_TYPE_TAG 0x5005
#define NFAPI_NR_SUBFRAME_CONFIG_NUMEROLOGY_INDEX_MU_TAG 0x5006
typedef
struct
{
nfapi_uint16_tlv_t
tx_antenna_ports
;
nfapi_uint16_tlv_t
rx_antenna_ports
;
}
nfapi_nr_rf_config_t
;
#define NFAPI_NR_RF_CONFIG_DL_CHANNEL_BANDWIDTH_TAG 0x500A
#define NFAPI_NR_RF_CONFIG_UL_CHANNEL_BANDWIDTH_TAG 0x500B
#define NFAPI_NR_RF_CONFIG_REFERENCE_SIGNAL_POWER_TAG 0x500C
#define NFAPI_NR_RF_CONFIG_TX_ANTENNA_PORTS_TAG 0x500D
#define NFAPI_NR_RF_CONFIG_RX_ANTENNA_PORTS_TAG 0x500E
typedef
struct
{
nfapi_uint16_tlv_t
physical_cell_id
;
nfapi_uint16_tlv_t
half_frame_index
;
nfapi_uint16_tlv_t
ssb_subcarrier_offset
;
nfapi_uint16_tlv_t
ssb_position_in_burst
;
nfapi_uint16_tlv_t
ssb_periodicity
;
nfapi_uint16_tlv_t
ss_pbch_block_power
;
nfapi_uint16_tlv_t
n_ssb_crb
;
}
nfapi_nr_sch_config_t
;
#define NFAPI_NR_SCH_CONFIG_PHYSICAL_CELL_ID_TAG 0x501E
#define NFAPI_NR_SCH_CONFIG_HALF_FRAME_INDEX_TAG 0x501F
#define NFAPI_NR_SCH_CONFIG_SSB_SUBCARRIER_OFFSET_TAG 0x5020
#define NFAPI_NR_SCH_CONFIG_SSB_POSITION_IN_BURST 0x5021
#define NFAPI_NR_SCH_CONFIG_SSB_PERIODICITY 0x5022
#define NFAPI_NR_SCH_CONFIG_SS_PBCH_BLOCK_POWER 0x5023
#define NFAPI_NR_SCH_CONFIG_N_SSB_CRB 0x5024
typedef
struct
{
nfapi_uint16_tlv_t
prach_RootSequenceIndex
;
///// L1 parameter 'PRACHRootSequenceIndex'
nfapi_uint16_tlv_t
prach_msg1_SubcarrierSpacing
;
///// L1 parameter 'prach-Msg1SubcarrierSpacing'
nfapi_uint16_tlv_t
restrictedSetConfig
;
nfapi_uint16_tlv_t
msg3_transformPrecoding
;
///// L1 parameter 'msg3-tp'
/////////////////--------------------NR RACH-ConfigGeneric--------------------/////////////////
nfapi_uint16_tlv_t
prach_ConfigurationIndex
;
///// L1 parameter 'PRACHConfigurationIndex'
nfapi_uint16_tlv_t
prach_msg1_FDM
;
///// L1 parameter 'prach-FDM'
nfapi_uint16_tlv_t
prach_msg1_FrequencyStart
;
///// L1 parameter 'prach-frequency-start'
nfapi_uint16_tlv_t
zeroCorrelationZoneConfig
;
nfapi_uint16_tlv_t
preambleReceivedTargetPower
;
}
nfapi_nr_rach_config_t
;
typedef
struct
{
//NR FrequencyInfoDL
nfapi_uint16_tlv_t
absoluteFrequencySSB
;
nfapi_uint16_tlv_t
ssb_SubcarrierOffset
;
///// L1 parameter 'kssb'
nfapi_uint16_tlv_t
DL_FreqBandIndicatorNR
;
nfapi_uint16_tlv_t
DL_absoluteFrequencyPointA
;
///// L1 parameter 'offset-ref-low-scs-ref-PRB'
//NR DL SCS-SpecificCarrier ///// L1 parameter 'offset-pointA-set'
nfapi_uint16_tlv_t
DL_offsetToCarrier
;
///// L1 parameter 'offset-pointA-low-scs '
nfapi_uint16_tlv_t
DL_SCS_SubcarrierSpacing
;
///// L1 parameter 'ref-scs'
nfapi_uint16_tlv_t
DL_SCS_SpecificCarrier_k0
;
///// L1 parameter 'k0'
nfapi_uint16_tlv_t
DL_carrierBandwidth
;
///// L1 parameter 'BW'
}
nfapi_nr_dl_frequencyinfo_t
;
typedef
struct
{
//NR BWP-DownlinkCommon
nfapi_uint16_tlv_t
DL_locationAndBandwidth
;
///// L1 parameter 'DL-BWP-loc'
nfapi_uint16_tlv_t
DL_BWP_SubcarrierSpacing
;
///// Corresponds to subcarrier spacing according to 38.211, Table 4.2-1
nfapi_uint16_tlv_t
DL_BWP_prefix_type
;
}
nfapi_nr_bwp_dl_t
;
typedef
struct
{
//NR FrequencyInfoUL
nfapi_uint16_tlv_t
UL_FreqBandIndicatorNR
;
nfapi_uint16_tlv_t
UL_absoluteFrequencyPointA
;
///// L1 parameter 'offset-ref-low-scs-ref-PRB'
nfapi_uint16_tlv_t
UL_additionalSpectrumEmission
;
nfapi_uint16_tlv_t
UL_p_Max
;
nfapi_uint16_tlv_t
UL_frequencyShift7p5khz
;
//NR UL SCS-SpecificCarrier ///// L1 parameter 'offset-pointA-set'
nfapi_uint16_tlv_t
UL_offsetToCarrier
;
///// L1 parameter 'offset-pointA-low-scs '
nfapi_uint16_tlv_t
UL_SCS_SubcarrierSpacing
;
///// L1 parameter 'ref-scs'
nfapi_uint16_tlv_t
UL_SCS_SpecificCarrier_k0
;
///// L1 parameter 'k0'
nfapi_uint16_tlv_t
UL_carrierBandwidth
;
///// L1 parameter 'BW'
}
nfapi_nr_ul_frequencyinfo_t
;
typedef
struct
{
//NR BWP-UplinkCommon ///// L1 parameter 'initial-UL-BWP'
nfapi_uint16_tlv_t
UL_locationAndBandwidth
;
///// L1 parameter 'DL-BWP-loc'
nfapi_uint16_tlv_t
UL_BWP_SubcarrierSpacing
;
///// Corresponds to subcarrier spacing according to 38.211, Table 4.2-1
nfapi_uint16_tlv_t
UL_BWP_prefix_type
;
}
nfapi_nr_bwp_ul_t
;
typedef
struct
{
nfapi_uint16_tlv_t
groupHoppingEnabledTransformPrecoding
;
///// L1 parameter 'Group-hopping-enabled-Transform-precoding'
nfapi_uint16_tlv_t
msg3_DeltaPreamble
;
///// L1 parameter 'Delta-preamble-msg3'
nfapi_uint16_tlv_t
p0_NominalWithGrant
;
///// L1 parameter 'p0-nominal-pusch-withgrant'
nfapi_uint16_tlv_t
TimeDomainResourceAllocation_k2
;
///// L1 parameter 'K2'
nfapi_uint16_tlv_t
TimeDomainResourceAllocation_mappingType
;
///// L1 parameter 'Mapping-type'
}
nfapi_nr_pusch_config_t
;
typedef
struct
{
nfapi_uint16_tlv_t
pucch_GroupHopping
;
///// L1 parameter 'PUCCH-GroupHopping'
nfapi_uint16_tlv_t
p0_nominal
;
///// L1 parameter 'p0-nominal-pucch'
}
nfapi_nr_pucch_config_t
;
typedef
struct
{
nfapi_uint16_tlv_t
TimeDomainResourceAllocation_k0
;
///// L1 parameter 'K0'
nfapi_uint16_tlv_t
TimeDomainResourceAllocation_mappingType
;
///// L1 parameter 'Mapping-type'
}
nfapi_nr_pdsch_config_t
;
typedef
struct
{
nfapi_uint16_tlv_t
searchSpaceSIB1
;
///// L1 parameter 'rmsi-SearchSpace'
nfapi_uint16_tlv_t
searchSpaceOtherSystemInformation
;
///// L1 parameter 'osi-SearchSpace'
nfapi_uint16_tlv_t
pagingSearchSpace
;
///// L1 parameter 'paging-SearchSpace'
nfapi_uint16_tlv_t
ra_SearchSpace
;
///// L1 parameter 'ra-SearchSpace'
nfapi_uint16_tlv_t
rach_ra_ControlResourceSet
;
///// L1 parameter 'rach-coreset-configuration'
nfapi_uint16_tlv_t
common_controlResourceSetId
;
///// L1 parameter 'CORESET-ID
nfapi_uint16_tlv_t
common_ControlResourceSet_duration
;
///// L1 parameter 'CORESET-time-duration'
nfapi_uint16_tlv_t
cce_REG_MappingType
;
///// L1 parameter 'CORESET-CCE-REG-mapping-type'
nfapi_uint16_tlv_t
reg_BundleSize
;
///// L1 parameter 'CORESET-REG-bundle-size'
nfapi_uint16_tlv_t
interleaverSize
;
///// L1 parameter 'CORESET-interleaver-size'
nfapi_uint16_tlv_t
shiftIndex
;
///// L1 parameter 'CORESET-shift-index'
nfapi_uint16_tlv_t
precoderGranularity
;
///// L1 parameter 'CORESET-precoder-granuality'
nfapi_uint16_tlv_t
TCI_StateId
;
///// L1 parameter 'TCI-StatesPDCCH'
nfapi_uint16_tlv_t
tci_PresentInDCI
;
///// L1 parameter 'TCI-PresentInDCI'
nfapi_uint16_tlv_t
SearchSpaceId
;
nfapi_uint16_tlv_t
commonSearchSpaces_controlResourceSetId
;
nfapi_uint16_tlv_t
SearchSpace_monitoringSlotPeriodicityAndOffset
;
///// L1 parameters 'Montoring-periodicity-PDCCH-slot'
nfapi_uint16_tlv_t
SearchSpace_nrofCandidates_aggregationLevel1
;
///// L1 parameter 'Aggregation-level-1'
nfapi_uint16_tlv_t
SearchSpace_nrofCandidates_aggregationLevel2
;
///// L1 parameter 'Aggregation-level-2'
nfapi_uint16_tlv_t
SearchSpace_nrofCandidates_aggregationLevel4
;
///// L1 parameter 'Aggregation-level-4'
nfapi_uint16_tlv_t
SearchSpace_nrofCandidates_aggregationLevel8
;
///// L1 parameter 'Aggregation-level-8'
nfapi_uint16_tlv_t
SearchSpace_nrofCandidates_aggregationLevel16
;
///// L1 parameter 'Aggregation-level-16'
nfapi_uint16_tlv_t
Common_dci_Format2_0_nrofCandidates_SFI_And_aggregationLevel
;
///// L1 parameters 'SFI-Num-PDCCH-cand' and 'SFI-Aggregation-Level'
nfapi_uint16_tlv_t
Common_dci_Format2_3_monitoringPeriodicity
;
///// L1 parameter 'SRS-monitoring-periodicity'
nfapi_uint16_tlv_t
Common_dci_Format2_3_nrofPDCCH_Candidates
;
///// L1 parameter 'SRS-Num-PDCCH-cand'
nfapi_uint16_tlv_t
ue_Specific__dci_Formats
;
}
nfapi_nr_pdcch_config_t
;
typedef
struct
{
nfapi_uint16_tlv_t
ssb_PositionsInBurst_PR
;
///// L1 parameter 'SSB-Transmitted
nfapi_uint16_tlv_t
ssb_periodicityServingCell
;
nfapi_uint16_tlv_t
dmrs_TypeA_Position
;
///// Position of (first) DL DM-RS
nfapi_uint16_tlv_t
NIA_SubcarrierSpacing
;
///// Used only for non-initial access (e.g. SCells, PCell of SCG)
nfapi_uint16_tlv_t
ss_PBCH_BlockPower
;
}
nfapi_nr_servingcellconfigcommon_t
;
typedef
struct
{
//NR TDD-UL-DL-ConfigCommon ///// L1 parameter 'UL-DL-configuration-common'
nfapi_uint16_tlv_t
referenceSubcarrierSpacing
;
///// L1 parameter 'reference-SCS'
nfapi_uint16_tlv_t
dl_UL_TransmissionPeriodicity
;
///// L1 parameter 'DL-UL-transmission-periodicity'
nfapi_uint16_tlv_t
nrofDownlinkSlots
;
///// L1 parameter 'number-of-DL-slots'
nfapi_uint16_tlv_t
nrofDownlinkSymbols
;
///// L1 parameter 'number-of-DL-symbols-common'
nfapi_uint16_tlv_t
nrofUplinkSlots
;
///// L1 parameter 'number-of-UL-slots'
nfapi_uint16_tlv_t
nrofUplinkSymbols
;
///// L1 parameter 'number-of-UL-symbols-common'
}
nfapi_nr_tdd_ul_dl_config_t
;
typedef
struct
{
//RateMatchPattern is used to configure one rate matching pattern for PDSCH ///// L1 parameter 'Resource-set-cekk'
nfapi_uint16_tlv_t
rateMatchPatternId
;
nfapi_uint16_tlv_t
RateMatchPattern_patternType
;
nfapi_uint16_tlv_t
symbolsInResourceBlock
;
///// L1 parameter 'rate-match-PDSCH-bitmap2
nfapi_uint16_tlv_t
periodicityAndPattern
;
///// L1 parameter 'rate-match-PDSCH-bitmap3'
nfapi_uint16_tlv_t
RateMatchPattern_controlResourceSet
;
nfapi_uint16_tlv_t
RateMatchPattern_subcarrierSpacing
;
///// L1 parameter 'resource-pattern-scs'
nfapi_uint16_tlv_t
RateMatchPattern_mode
;
}
nfapi_nr_ratematchpattern_t
;
typedef
struct
{
//NR RateMatchPatternLTE-CRS
nfapi_uint16_tlv_t
RateMatchPatternLTE_CRS_carrierFreqDL
;
///// L1 parameter 'center-subcarrier-location'
nfapi_uint16_tlv_t
RateMatchPatternLTE_CRS_carrierBandwidthDL
;
///// L1 parameter 'BW'
nfapi_uint16_tlv_t
RateMatchPatternLTE_CRS_nrofCRS_Ports
;
///// L1 parameter 'rate-match-resources-numb-LTE-CRS-antenna-port'
nfapi_uint16_tlv_t
RateMatchPatternLTE_CRS_v_Shift
;
///// L1 parameter 'rate-match-resources-LTE-CRS-v-shift'
nfapi_uint16_tlv_t
RateMatchPatternLTE_CRS_radioframeAllocationPeriod
;
nfapi_uint16_tlv_t
RateMatchPatternLTE_CRS_radioframeAllocationOffset
;
nfapi_uint16_tlv_t
RateMatchPatternLTE_CRS_subframeAllocation_choice
;
}
nfapi_nr_ratematchpattern_lte_crs_t
;
typedef
struct
{
nfapi_p4_p5_message_header_t
header
;
uint8_t
num_tlv
;
nfapi_nr_subframe_config_t
subframe_config
;
nfapi_nr_rf_config_t
rf_config
;
nfapi_nr_sch_config_t
sch_config
;
nfapi_nr_rach_config_t
rach_config
;
nfapi_nr_dl_frequencyinfo_t
dl_frequencyinfo
;
nfapi_nr_bwp_dl_t
bwp_dl
;
nfapi_nr_ul_frequencyinfo_t
ul_frequencyinfo
;
nfapi_nr_bwp_ul_t
bwp_ul
;
nfapi_nr_pusch_config_t
pusch_config
;
nfapi_nr_pucch_config_t
pucch_config
;
nfapi_nr_pdsch_config_t
pdsch_config
;
nfapi_nr_pucch_config_t
pdcch_config
;
nfapi_nr_servingcellconfigcommon_t
servingcellconfigcommon
;
nfapi_nr_tdd_ul_dl_config_t
tdd_ul_dl_config
;
nfapi_nr_ratematchpattern_t
ratematchpattern
;
nfapi_nr_ratematchpattern_lte_crs_t
ratematchpattern_lte_crs
;
nfapi_nr_nfapi_t
nfapi_config
;
nfapi_vendor_extension_tlv_t
vendor_extension
;
}
nfapi_nr_config_request_t
;
#endif
openair1/PHY/NR_TRANSPORT/nr_dci.c
0 → 100644
View file @
69fe7173
/*
* 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 PHY/NR_TRANSPORT/nr_dci.c
* \brief Implements DCI encoding/decoding (38.212/38.213/38.214). Current NR compliance V15.1 2018-06.
* \author Guy De Souza
* \date 2018
* \version 0.1
* \company Eurecom
* \email: desouza@eurecom.fr
* \note
* \warning
*/
#include "nr_dci.h"
uint8_t
nr_get_dci_size
(
nr_dci_format_e
format
,
nr_rnti_type_e
rnti
,
NR_BWP_PARMS
*
bwp
,
nfapi_nr_config_request_t
*
config
)
{
uint8_t
size
=
0
;
uint16_t
N_RB
=
bwp
->
N_RB
;
switch
(
format
)
{
case
nr_dci_format_0_0
:
/// fixed: Format identifier 1, Hop flag 1, MCS 5, NDI 1, RV 2, HARQ PID 4, PUSCH TPC 2 --16
size
+=
16
;
size
+=
ceil
(
log2
(
(
N_RB
*
(
N_RB
+
1
))
>>
2
)
);
// Freq domain assignment -- hopping scenario to be updated
// Time domain assignment
// UL/SUL indicator
break
;
case
nr_dci_format_0_1
:
/// fixed: Format identifier 1, MCS 5, NDI 1, RV 2, HARQ PID 4, PUSCH TPC 2, SRS request 2 --17
size
+=
17
;
// Carrier indicator
// UL/SUL indicator
// BWP Indicator
// Freq domain assignment
// Time domain assignment
// VRB to PRB mapping
// Frequency Hopping flag
// 1st DAI
// 2nd DAI
// SRS resource indicator
// Precoding info and number of layers
// Antenna ports
// CSI request
// CBGTI
// PTRS - DMRS association
// beta offset indicator
// DMRS sequence init
break
;
case
nr_dci_format_1_0
:
/// fixed: Format identifier 1, VRB2PRB 1, MCS 5, NDI 1, RV 2, HARQ PID 4, DAI 2, PUCCH TPC 2, PUCCH RInd 3, PDSCH to HARQ TInd 3 --24
size
+=
24
;
size
+=
ceil
(
log2
(
(
N_RB
*
(
N_RB
+
1
))
>>
2
)
);
// Freq domain assignment
// Time domain assignment
break
;
case
nr_dci_format_1_1
:
// Carrier indicator
size
+=
1
;
// Format identifier
// BWP Indicator
// Freq domain assignment
// Time domain assignment
// VRB to PRB mapping
// PRB bundling size indicator
// Rate matching indicator
// ZP CSI-RS trigger
/// TB1- MCS 5, NDI 1, RV 2
size
+=
8
;
// TB2
size
+=
4
;
// HARQ PID
// DAI
size
+=
2
;
// TPC PUCCH
size
+=
3
;
// PUCCH resource indicator
size
+=
3
;
// PDSCH to HARQ timing indicator
// Antenna ports
// Tx Config Indication
size
+=
2
;
// SRS request
// CBGTI
// CBGFI
size
+=
1
;
// DMRS sequence init
break
;
case
nr_dci_format_2_0
:
break
;
case
nr_dci_format_2_1
:
break
;
case
nr_dci_format_2_2
:
break
;
case
nr_dci_format_2_3
:
break
;
default:
AssertFatal
(
1
==
0
,
"Invalid NR DCI format %d
\n
"
,
format
);
}
return
size
;
}
uint8_t
nr_generate_dci_top
()
{
return
0
;
}
openair1/PHY/NR_TRANSPORT/nr_dci.h
0 → 100644
View file @
69fe7173
/*
* 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
*/
#ifndef __PHY_NR_TRANSPORT_DCI__H
#define __PHY_NR_TRANSPORT_DCI__H
#include "defs_gNB.h"
typedef
enum
{
nr_dci_format_0_0
=
0
,
nr_dci_format_0_1
,
nr_dci_format_1_0
,
nr_dci_format_1_1
,
nr_dci_format_2_0
,
nr_dci_format_2_1
,
nr_dci_format_2_2
,
nr_dci_format_2_3
}
nr_dci_format_e
;
typedef
enum
{
nr_rnti_type_SI_RNTI
=
0
,
nr_rnti_type_RA_RNTI
,
nr_rnti_type_C_RNTI
,
nr_rnti_type_TC_RNTI
,
nr_rnti_type_CS_RNTI
,
nr_rnti_type_P_RNTI
}
nr_rnti_type_e
;
typedef
struct
{
/// Length of DCI in bits
uint8_t
size
;
/// Aggregation level
uint8_t
L
;
/// Position of first CCE of the dci
int
firstCCE
;
/// flag to indicate that this is a RA response
boolean_t
ra_flag
;
/// rnti
nr_rnti_type_e
rnti
;
/// Format
DCI_format_t
format
;
/// DCI pdu
uint8_t
dci_pdu
[
8
];
}
NR_DCI_ALLOC_t
;
uint8_t
nr_get_dci_size
(
nr_dci_format_e
format
,
nr_rnti_type_e
rnti
,
NR_BWP_PARMS
bwp
,
nfapi_nr_config_request_t
*
config
);
uint8_t
nr_generate_dci_top
();
#endif //__PHY_NR_TRANSPORT_DCI__H
openair1/PHY/NR_TRANSPORT/nr_pdcch.c
0 → 100644
View file @
69fe7173
/*
* 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 PHY/NR_TRANSPORT/nr_pdcch.c
* \brief Implements PDCCH physical channel TX/RX procedures (38.211). Current NR compliance V15.1 2018-06.
* \author Guy De Souza
* \date 2018
* \version 0.1
* \company Eurecom
* \email: desouza@eurecom.fr
* \note
* \warning
*/
#include "nr_dci.h"
openair1/PHY/defs_gNB.h
View file @
69fe7173
...
...
@@ -320,7 +320,7 @@ typedef struct PHY_VARS_gNB_s {
/// counter to average prach energh over first 100 prach opportunities
int
prach_energy_counter
;
// PDSCH Var
ai
bles
// PDSCH Var
ia
bles
PDSCH_CONFIG_DEDICATED
pdsch_config_dedicated
[
NUMBER_OF_UE_MAX
];
// PUSCH Varaibles
...
...
openair1/PHY/defs_nr_common.h
View file @
69fe7173
...
...
@@ -34,7 +34,7 @@
#define __PHY_DEFS_NR_COMMON__H__
#include "defs_common.h"
#include "nfapi_
interface_nr_extension
.h"
#include "nfapi_
nr_interface
.h"
#include "impl_defs_nr.h"
#include "PHY/CODING/nrPolar_tools/nr_polar_defs.h"
...
...
@@ -57,6 +57,8 @@
#define NR_PBCH_DMRS_LENGTH 144
#define NR_PBCH_DMRS_LENGTH_DWORD 5 // roundup(NR_PBCH_DMRS_LENGTH/32)
#define NR_MAX_NUM_BWP 4
typedef
enum
{
NR_MU_0
=
0
,
NR_MU_1
,
...
...
@@ -74,6 +76,17 @@ typedef enum{
nr_ssb_type_E
}
nr_ssb_type_e
;
typedef
struct
NR_BWP_PARMS
{
/// Associated numerology index
uint8_t
numerology_index
;
/// Freq domain location
uint8_t
location
;
/// Bandwidth in PRB
uint16_t
N_RB
;
/// Size of FFT/IFFT
uint16_t
ofdm_symbol_size
;
}
NR_BWP_PARMS
;
typedef
struct
NR_DL_FRAME_PARMS
{
/// Number of resource blocks (RB) in DL
uint8_t
N_RB_DL
;
...
...
@@ -166,6 +179,11 @@ typedef struct NR_DL_FRAME_PARMS {
/// PBCH polar encoder params
t_nrPolar_params
pbch_polar_params
;
//BWP params
NR_BWP_PARMS
initial_bwp_params_dl
;
NR_BWP_PARMS
initial_bwp_params_ul
;
}
NR_DL_FRAME_PARMS
;
#endif
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment