Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
O
OpenXG-RAN
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
spbro
OpenXG-RAN
Commits
a95dffc8
Commit
a95dffc8
authored
Mar 21, 2024
by
Laurent THOMAS
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
delete dead files
parent
80d4d600
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
22 additions
and
563 deletions
+22
-563
openair1/PHY/MODULATION/nr_modulation.c
openair1/PHY/MODULATION/nr_modulation.c
+2
-2
openair1/PHY/MODULATION/nr_modulation.h
openair1/PHY/MODULATION/nr_modulation.h
+2
-2
openair1/PHY/NR_UE_TRANSPORT/nr_ulsch_ue.c
openair1/PHY/NR_UE_TRANSPORT/nr_ulsch_ue.c
+18
-21
openair1/PHY/NR_UE_TRANSPORT/pbch_nr.c
openair1/PHY/NR_UE_TRANSPORT/pbch_nr.c
+0
-100
openair2/PHY_INTERFACE/UE_MAC_interface.h
openair2/PHY_INTERFACE/UE_MAC_interface.h
+0
-438
No files found.
openair1/PHY/MODULATION/nr_modulation.c
View file @
a95dffc8
...
...
@@ -318,7 +318,7 @@ void nr_layer_mapping(int nbCodes,
}
}
void
nr_ue_layer_mapping
(
const
c16_t
*
mod_symbs
,
const
int
n_layers
,
const
int
n_symbs
,
c16_t
**
tx_layers
)
void
nr_ue_layer_mapping
(
const
c16_t
*
mod_symbs
,
const
int
n_layers
,
const
int
n_symbs
,
int
sz
,
c16_t
tx_layers
[][
sz
]
)
{
for
(
int
i
=
0
;
i
<
n_symbs
/
n_layers
;
i
++
)
{
for
(
int
l
=
0
;
l
<
n_layers
;
l
++
)
{
...
...
@@ -654,7 +654,7 @@ void init_timeshift_rotation(NR_DL_FRAME_PARMS *fp)
}
}
c16_t
nr_layer_precoder
(
c16_t
**
datatx_F_precoding
,
const
char
*
prec_matrix
,
uint8_t
n_layers
,
int32_t
re_offset
)
c16_t
nr_layer_precoder
(
int
sz
,
c16_t
datatx_F_precoding
[][
sz
]
,
const
char
*
prec_matrix
,
uint8_t
n_layers
,
int32_t
re_offset
)
{
c16_t
precodatatx_F
=
{
0
};
...
...
openair1/PHY/MODULATION/nr_modulation.h
View file @
a95dffc8
...
...
@@ -68,7 +68,7 @@ void nr_layer_mapping(int nbCodes,
@param[in] n_symbs, number of modulated symbols
@param[out] tx_layers, modulated symbols for each layer
*/
void
nr_ue_layer_mapping
(
const
c16_t
*
mod_symbs
,
const
int
n_layers
,
const
int
n_symbs
,
c16_t
**
tx_layers
);
void
nr_ue_layer_mapping
(
const
c16_t
*
mod_symbs
,
const
int
n_layers
,
const
int
n_symbs
,
int
sz
,
c16_t
tx_layers
[][
sz
]
);
/*!
\brief This function implements the OFDM front end processor on reception (FEP)
\param frame_parms Pointer to frame parameters
...
...
@@ -131,7 +131,7 @@ void apply_nr_rotation_RX(NR_DL_FRAME_PARMS *frame_parms,
@param[in] prec_matrix, Pointer to precoding matrix
@param[in] n_layers, number of DLSCH layers
*/
c16_t
nr_layer_precoder
(
c16_t
**
datatx_F_precoding
,
const
char
*
prec_matrix
,
uint8_t
n_layers
,
int32_t
re_offset
);
c16_t
nr_layer_precoder
(
int
sz
,
c16_t
datatx_F_precoding
[][
sz
]
,
const
char
*
prec_matrix
,
uint8_t
n_layers
,
int32_t
re_offset
);
c16_t
nr_layer_precoder_cm
(
int
n_layers
,
int
n_symbols
,
...
...
openair1/PHY/NR_UE_TRANSPORT/nr_ulsch_ue.c
View file @
a95dffc8
...
...
@@ -253,12 +253,11 @@ void nr_ue_ulsch_procedures(PHY_VARS_NR_UE *UE,
/////////////////////////ULSCH layer mapping/////////////////////////
///////////
const
int
sz
=
available_bits
/
mod_order
;
c16_t
tx_layers
[
Nl
][
sz
];
memset
(
tx_layers
,
0
,
sizeof
(
tx_layers
));
c16_t
**
tx_layers
=
(
c16_t
**
)
malloc16_clear
(
Nl
*
sizeof
(
c16_t
*
));
for
(
int
nl
=
0
;
nl
<
Nl
;
nl
++
)
tx_layers
[
nl
]
=
malloc16_clear
(
available_bits
/
mod_order
*
sizeof
(
c16_t
));
nr_ue_layer_mapping
(
d_mod
,
Nl
,
available_bits
/
mod_order
,
tx_layers
);
nr_ue_layer_mapping
(
d_mod
,
Nl
,
available_bits
/
mod_order
,
sz
,
tx_layers
);
///////////
////////////////////////////////////////////////////////////////////////
...
...
@@ -340,10 +339,9 @@ void nr_ue_ulsch_procedures(PHY_VARS_NR_UE *UE,
/////////////////////////ULSCH RE mapping/////////////////////////
///////////
int
encoded_length
=
frame_parms
->
N_RB_UL
*
14
*
NR_NB_SC_PER_RB
*
mod_order
*
Nl
;
c16_t
**
tx_precoding
=
malloc16_clear
(
Nl
*
sizeof
(
c16_t
*
));
for
(
int
nl
=
0
;
nl
<
Nl
;
nl
++
)
tx_precoding
[
nl
]
=
malloc16_clear
(
encoded_length
*
sizeof
(
c16_t
));
const
int
encoded_length
=
frame_parms
->
N_RB_UL
*
14
*
NR_NB_SC_PER_RB
*
mod_order
*
Nl
;
c16_t
tx_precoding
[
Nl
][
encoded_length
];
memset
(
tx_precoding
,
0
,
sizeof
(
tx_precoding
));
for
(
int
nl
=
0
;
nl
<
Nl
;
nl
++
)
{
uint8_t
k_prime
=
0
;
...
...
@@ -428,7 +426,14 @@ void nr_ue_ulsch_procedures(PHY_VARS_NR_UE *UE,
#ifdef DEBUG_PUSCH_MAPPING
printf
(
"DMRS: Layer: %d
\t
, dmrs_idx %d
\t
l %d
\t
k %d
\t
k_prime %d
\t
n %d
\t
dmrs: %d %d
\n
"
,
nl
,
dmrs_idx
,
l
,
k
,
k_prime
,
n
,
tx_precoding
[
nl
])[
sample_offsetF
].
r
,
tx_precoding
[
nl
])[
sample_offsetF
].
i
);
nl
,
dmrs_idx
,
l
,
k
,
k_prime
,
n
,
tx_precoding
[
nl
][
sample_offsetF
].
r
,
tx_precoding
[
nl
][
sample_offsetF
].
i
);
#endif
dmrs_idx
++
;
...
...
@@ -453,8 +458,8 @@ void nr_ue_ulsch_procedures(PHY_VARS_NR_UE *UE,
m
,
l
,
k
,
((
int16_t
*
)
tx_precoding
[
nl
])[(
sample_offsetF
)
<<
1
]
,
((
int16_t
*
)
tx_precoding
[
nl
])[((
sample_offsetF
)
<<
1
)
+
1
]
);
tx_precoding
[
nl
][
sample_offsetF
].
r
,
tx_precoding
[
nl
][
sample_offsetF
].
i
);
#endif
m
++
;
...
...
@@ -543,7 +548,7 @@ void nr_ue_ulsch_procedures(PHY_VARS_NR_UE *UE,
for
(
int
i
=
0
;
i
<
NR_NB_SC_PER_RB
;
i
++
)
{
int32_t
re_offset
=
l
*
frame_parms
->
ofdm_symbol_size
+
k
;
txdataF
[
ap
][
re_offset
]
=
nr_layer_precoder
(
tx_precoding
,
W_prec
,
pusch_pdu
->
nrOfLayers
,
re_offset
);
txdataF
[
ap
][
re_offset
]
=
nr_layer_precoder
(
encoded_length
,
tx_precoding
,
W_prec
,
pusch_pdu
->
nrOfLayers
,
re_offset
);
if
(
++
k
>=
frame_parms
->
ofdm_symbol_size
)
{
k
-=
frame_parms
->
ofdm_symbol_size
;
}
...
...
@@ -556,14 +561,6 @@ void nr_ue_ulsch_procedures(PHY_VARS_NR_UE *UE,
NR_UL_UE_HARQ_t
*
harq_process_ulsch
=
NULL
;
harq_process_ulsch
=
&
UE
->
ul_harq_processes
[
harq_pid
];
harq_process_ulsch
->
status
=
SCH_IDLE
;
for
(
int
nl
=
0
;
nl
<
Nl
;
nl
++
)
{
free_and_zero
(
tx_layers
[
nl
]);
free_and_zero
(
tx_precoding
[
nl
]);
}
free_and_zero
(
tx_layers
);
free_and_zero
(
tx_precoding
);
///////////
////////////////////////////////////////////////////////////////////////
}
...
...
openair1/PHY/NR_UE_TRANSPORT/pbch_nr.c
deleted
100644 → 0
View file @
80d4d600
/*
* 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
*/
/**********************************************************************
*
* FILENAME : pbch_nr.c
*
* MODULE : broacast channel
*
* DESCRIPTION : generation of pbch
* 3GPP TS 38.211 7.3.3 Physical broadcast channel
*
************************************************************************/
#include <stdio.h>
#include <assert.h>
#include <errno.h>
#include "PHY/defs.h"
#define DEFINE_VARIABLES_PBCH_NR_H
#include "PHY/NR_REFSIG/pbch_nr.h"
#undef DEFINE_VARIABLES_PBCH_NR_H
/*******************************************************************
*
* NAME : pseudo_random_gold_sequence
*
* PARAMETERS :
*
* RETURN : generate pseudo-random sequence which is a length-31 Gold sequence
*
* DESCRIPTION : 3GPP TS 38.211 5.2.1 Pseudo-random sequence generation
* Sequence generation
*
*********************************************************************/
#define NC (1600)
#define GOLD_LENGTH (31)
uint32_t
*
pseudo_random_gold_sequence
(
length
M_PN
,
uint32_t
cinit
)
{
int
size
=
M_PN
*
sizeof
(
uint32_t
);
int
size_x
=
sizeof
(
int
)
*
M_PN
+
size
;
int
*
x1
=
malloc
(
size_x
);
int
*
x2
=
malloc
(
size_x
);
if
((
x1
==
NULL
)
||
(
x2
==
NULL
))
{
msg
(
"Fatal memory allocation problem
\n
"
);
assert
(
0
);
}
else
{
bzero
(
x1
,
size_x
);
bzero
(
x2
,
size_x
);
}
x1
[
0
]
=
1
;
for
(
n
=
0
;
n
<
31
;
n
++
)
{
x2
[
n
]
=
(
cinit
>>
n
)
&
0x1
;
}
for
(
int
n
=
0
;
n
<
(
NC
+
M_PN
);
n
++
)
{
x1
(
n
+
31
)
=
(
x1
(
n
+
3
)
+
x1
(
n
))
%
2
;
x2
(
n
+
31
)
=
(
x2
(
n
+
3
)
+
x2
(
n
+
2
)
+
x2
(
n
+
1
)
+
x2
(
n
))
%
2
;
}
int
*
c
=
calloc
(
size
);
if
(
c
!=
NULL
)
{
bzero
(
c
,
size
);
}
else
{
msg
(
"Fatal memory allocation problem
\n
"
);
assert
(
0
);
}
for
(
int
n
=
0
;
n
<
M_PN
;
n
++
)
{
c
(
i
)
=
(
x1
(
n
+
NC
)
+
x2
(
n
+
NC
))
%
2
;
}
return
c
;
}
openair2/PHY_INTERFACE/UE_MAC_interface.h
deleted
100644 → 0
View file @
80d4d600
/*
* 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
*/
/* This is the interface module between PHY
* Provided the FAPI style interface structures for P7.
*/
/*! \file openair2/PHY_INTERFACE/IF_Module.h
* \brief data structures for PHY/MAC interface modules
* \author EURECOM/NTUST
* \date 2017
* \version 0.1
* \company Eurecom
* \email: raymond.knopp@eurecom.fr
* \note
* \warning
*/
#ifndef __UE_MAC_INTERFACE__H__
#define __UE_MAC_INTERFACE__H__
#include "nfapi_interface.h"
#include "openair1/PHY/defs_RU.h"
#include "common/openairinterface5g_limits.h"
#define MAX_NUM_DL_PDU 100
#define MAX_NUM_UL_PDU 100
#define MAX_NUM_HI_DCI0_PDU 100
#define MAX_NUM_TX_REQUEST_PDU 100
#define MAX_NUM_HARQ_IND 100
#define MAX_NUM_CRC_IND 100
#define MAX_NUM_SR_IND 100
#define MAX_NUM_CQI_IND 100
#define MAX_NUM_RACH_IND 100
#define MAX_NUM_SRS_IND 100
// UE_MAC enums
typedef
enum
{
UE_MAC_DL_IND_PDSCH_PDU_TYPE
=
0
,
UE_MAC_DL_IND_SI_PDSCH_PDU_TYPE
,
UE_MAC_DL_IND_P_PDSCH_PDU_TYPE
,
UE_MAC_DL_IND_DLSCH_RAR_PDU_TYPE
}
UE_MAC_dl_ind_pdu_type_e
;
// UE_MAC enums
typedef
enum
{
UE_MAC_Tx_IND_Msg1_TYPE
=
0
,
UE_MAC_Tx_IND_Msg3_TYPE
}
UE_MAC_Tx_ind_type_e
;
// *** UE_Tx.request related structures
typedef
struct
{
uint16_t
pdu_length
;
uint16_t
pdu_index
;
uint8_t
num_segments
;
struct
{
uint32_t
segment_length
;
uint8_t
*
segment_data
;
}
segments
[
NFAPI_TX_MAX_SEGMENTS
];
}
UE_MAC_tx_request_pdu_t
;
typedef
struct
{
nfapi_tl_t
tl
;
uint16_t
number_of_pdus
;
UE_MAC_tx_request_pdu_t
*
ue_tx_pdu_list
;
}
UE_MAC_tx_request_body_t
;
typedef
struct
{
//nfapi_p7_message_header_t header;
uint16_t
sfn_sf
;
UE_MAC_tx_request_body_t
ue_tx_request_body
;
}
UE_MAC_tx_request_t
;
typedef
struct
{
}
UE_MAC_sl_config_request_Tx_t
;
typedef
struct
{
}
UE_MAC_sl_config_request_Rx_t
;
typedef
struct
{
}
UE_MAC_sl_tx_request_t
;
// *** UE_DL.indication related structures
typedef
struct
{
unsigned
char
eNB_index
;
uint8_t
first_sync
;
//boolean 0 or 1
uint8_t
sync
;
// boolean 0 or 1 to indicate whether rrc_out_of_sync_ind() or dl_phy_sync_success()
// should be called from the handler function of the interface respectively.
}
UE_MAC_bch_indication_pdu_t
;
typedef
struct
{
nfapi_tl_t
tl
;
UE_MAC_bch_indication_pdu_t
*
bch_ind_list
;
}
UE_MAC_BCH_indication_body_t
;
// Corresponding to inputs of MAC functions: ue_send_sdu(), ue_decode_si(), ue_decode_p().
typedef
struct
{
uint8_t
*
data
;
uint16_t
data_len
;
}
UE_MAC_dlsch_pdu
;
// Corresponding to inputs of MAC function: process_rar().
typedef
struct
{
rnti_t
ra_rnti
;
uint8_t
*
rar_input_buffer
;
// Originating from PHY
rnti_t
*
t_crnti
;
uint8_t
preamble_index
;
uint8_t
*
rar_output_buffer
;
//should be returned to PHY: dlsch0->harq_processes[0]->b
}
UE_MAC_dlsch_rar_pdu
;
typedef
struct
{
uint8_t
pdu_type
;
uint8_t
eNB_index
;
union
{
UE_MAC_dlsch_pdu
dlsch_pdu_ind
;
UE_MAC_dlsch_rar_pdu
dlsch_rar_pdu_ind
;
};
}
UE_MAC_dlsch_indication_pdu_t
;
typedef
struct
{
nfapi_tl_t
tl
;
uint16_t
number_of_pdus
;
UE_MAC_dlsch_indication_pdu_t
*
dlsch_ind_list
;
}
UE_MAC_DLSCH_indication_body_t
;
// *** UE_SL.indication related structures
typedef
struct
{
}
ue_sci_indication_body_t
;
typedef
struct
{
}
ue_SLSCH_indication_body_t
;
typedef
struct
{
}
ue_SLDCH_indication_body_t
;
typedef
struct
{
}
ue_SLBCH_indication_body_t
;
// *** UE_Config_common.request related structures
typedef
struct
{
uint8_t
subframeAssignment
;
uint8_t
specialSubframePatterns
;
}
UE_PHY_tdd_frame_structure_t
;
typedef
struct
{
uint16_t
rootSequenceIndex
;
uint8_t
prach_Config_enabled
;
uint8_t
prach_ConfigIndex
;
uint8_t
highSpeedFlag
;
uint8_t
zeroCorrelationZoneConfig
;
uint8_t
prach_FreqOffset
;
}
UE_PHY_prach_config_t
;
typedef
struct
{
uint8_t
deltaPUCCH_Shift
;
uint8_t
nRB_CQI
;
uint8_t
nCS_AN
;
uint16_t
n1PUCCH_AN
;
}
UE_PHY_pucch_config_t
;
typedef
struct
{
int8_t
referenceSignalPower
;
uint8_t
p_b
;
}
UE_PHY_pdsch_config_t
;
typedef
struct
{
uint8_t
n_SB
;
PUSCH_HOPPING_t
hoppingMode
;
uint8_t
pusch_HoppingOffset
;
uint8_t
enable64QAM
;
uint8_t
groupHoppingEnabled
;
uint8_t
groupAssignmentPUSCH
;
uint8_t
sequenceHoppingEnabled
;
uint8_t
cyclicShift
;
}
UE_PHY_pusch_config_t
;
typedef
struct
{
uint8_t
enabled_flag
;
uint8_t
srs_BandwidthConfig
;
uint8_t
srs_SubframeConfig
;
uint8_t
ackNackSRS_SimultaneousTransmission
;
uint8_t
srs_MaxUpPts
;
}
UE_PHY_SRS_config_t
;
typedef
struct
{
int8_t
p0_NominalPUSCH
;
PUSCH_alpha_t
alpha
;
int8_t
p0_NominalPUCCH
;
int8_t
deltaPreambleMsg3
;
long
deltaF_PUCCH_Format1
;
long
deltaF_PUCCH_Format1b
;
long
deltaF_PUCCH_Format2
;
long
deltaF_PUCCH_Format2a
;
long
deltaF_PUCCH_Format2b
;
}
UE_PHY_UL_power_control_config_t
;
typedef
struct
{
uint8_t
maxHARQ_Msg3Tx
;
}
UE_PHY_HARQ_Msg3_config_t
;
typedef
struct
{
uint8_t
nb_antennas_tx
;
}
UE_PHY_antenna_config_t
;
typedef
struct
{
PHICH_RESOURCE_t
phich_resource
;
PHICH_DURATION_t
phich_duration
;
}
UE_PHY_phich_config_t
;
typedef
struct
{
UE_PHY_tdd_frame_structure_t
ue_tdd_frame_structure_config
;
UE_PHY_prach_config_t
ue_prach_config
;
UE_PHY_pucch_config_t
ue_pucch_config
;
UE_PHY_pdsch_config_t
ue_pdsch_config
;
UE_PHY_pusch_config_t
ue_pusch_config
;
UE_PHY_SRS_config_t
ue_srs_config
;
UE_PHY_UL_power_control_config_t
ue_ul_pow_cntl_config
;
UE_PHY_HARQ_Msg3_config_t
ue_harq_msg3_config
;
/* Where can we find the types and values of the configuration for the PCH?
UE_MAC_pusch_config_t ue_pch_config
radioResourceConfigCommon->pcch_Config.defaultPagingCycle, radioResourceConfigCommon->pcch_Config.nB*/
UE_PHY_antenna_config_t
ue_ant_config
;
UE_PHY_phich_config_t
ue_phich_config
;
/* MBSFN?*/
}
UE_PHY_config_common_request_t
;
// *** UE_Config_dedicated. request related structures
typedef
struct
{
PA_t
p_a
;
}
UE_PHY_pdsch_config_dedicated_t
;
typedef
struct
{
uint8_t
ackNackRepetition
;
ANFBmode_t
tdd_AckNackFeedbackMode
;
//ACKNAKREP_t repetitionFactor;
//uint16_t n1PUCCH_AN_Rep;
}
UE_PHY_pucch_config_dedicated_t
;
typedef
struct
{
uint16_t
betaOffset_ACK_Index
;
uint16_t
betaOffset_RI_Index
;
uint16_t
betaOffset_CQI_Index
;
}
UE_PHY_pusch_config_dedicated_t
;
typedef
struct
{
int8_t
p0_UE_PUSCH
;
uint8_t
deltaMCS_Enabled
;
uint8_t
accumulationEnabled
;
int8_t
p0_UE_PUCCH
;
int8_t
pSRS_Offset
;
uint8_t
filterCoefficient
;
}
UE_PHY_ul_power_control_config_dedicated_t
;
typedef
struct
{
uint16_t
sr_PUCCH_ResourceIndex
;
uint8_t
sr_ConfigIndex
;
DSR_TRANSMAX_t
dsr_TransMax
;
}
UE_PHY_SR_config_dedicated_t
;
typedef
struct
{
uint8_t
srsConfigDedicatedSetup
;
uint8_t
duration
;
uint8_t
cyclicShift
;
uint8_t
freqDomainPosition
;
uint8_t
srs_Bandwidth
;
uint16_t
srs_ConfigIndex
;
uint8_t
srs_HoppingBandwidth
;
uint8_t
transmissionComb
;
//uint8_t srsCellSubframe;
//uint8_t srsUeSubframe;
}
UE_PHY_srs_ul_config_dedicated_t
;
typedef
struct
{
CQI_REPORTMODEAPERIODIC
cqi_ReportModeAperiodic
;
CQI_REPORTPERIODIC
CQI_ReportPeriodic
;
//int8_t nomPDSCH_RS_EPRE_Offset;
}
UE_PHY_cqi_report_config_dedicated_t
;
typedef
struct
{
uint8_t
transmission_mode
[
NUMBER_OF_CONNECTED_eNB_MAX
];
UE_PHY_pdsch_config_dedicated_t
ue_pdsch_config
;
UE_PHY_pucch_config_dedicated_t
ue_pucch_config
;
UE_PHY_pusch_config_dedicated_t
ue_pusch_config
;
UE_PHY_ul_power_control_config_dedicated_t
ue_ul_pow_cntrl_config
;
UE_PHY_SR_config_dedicated_t
ue_SR_config
;
UE_PHY_srs_ul_config_dedicated_t
ue_srs_ul_config
;
UE_PHY_cqi_report_config_dedicated_t
ue_cqi_report_config
;
}
UE_PHY_config_dedicated_request_t
;
#endif
/*
typedef struct {
nfapi_p4_p5_message_header_t header;
uint8_t num_tlv;
nfapi_subframe_config_t subframe_config;
nfapi_rf_config_t rf_config;
nfapi_phich_config_t phich_config;
nfapi_sch_config_t sch_config;
nfapi_prach_config_t prach_config;
nfapi_pusch_config_t pusch_config;
nfapi_pucch_config_t pucch_config;
nfapi_srs_config_t srs_config;
nfapi_uplink_reference_signal_config_t uplink_reference_signal_config;
nfapi_laa_config_t laa_config;
nfapi_emtc_config_t emtc_config;
nfapi_tdd_frame_structure_t tdd_frame_structure_config;
nfapi_l23_config_t l23_config;
nfapi_nb_iot_config_t nb_iot_config;
// addition nfapi tlvs as per table 2-16 in idle or configure
nfapi_nfapi_t nfapi_config;
nfapi_vendor_extension_tlv_t vendor_extension;
} nfapi_config_request_t;
typedef struct {
nfapi_tl_t tl;
uint8_t dci_format;
uint8_t cce_index;
uint8_t aggregation_level;
uint16_t rnti;
uint8_t resource_block_start;
uint8_t number_of_resource_block;
uint8_t mcs_1;
uint8_t cyclic_shift_2_for_drms;
uint8_t frequency_hopping_enabled_flag;
uint8_t frequency_hopping_bits;
uint8_t new_data_indication_1;
uint8_t ue_tx_antenna_seleciton;
uint8_t tpc;
uint8_t cqi_csi_request;
uint8_t ul_index;
uint8_t dl_assignment_index;
uint32_t tpc_bitmap;
uint16_t transmission_power;
} nfapi_hi_dci0_dci_pdu_rel8_t;
*/
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