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
1
Merge Requests
1
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
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
OpenXG
OpenXG-RAN
Commits
0c286a6c
Commit
0c286a6c
authored
Mar 21, 2024
by
Laurent THOMAS
Committed by
sagar arora
May 22, 2024
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
delete dead files
parent
209b7389
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 @
0c286a6c
...
...
@@ -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 @
0c286a6c
...
...
@@ -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 @
0c286a6c
...
...
@@ -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 @
209b7389
/*
* 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 @
209b7389
/*
* 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