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
OpenXG
OpenXG UE
Commits
b9032848
Commit
b9032848
authored
Jan 15, 2020
by
Raphael Defosseux
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
NR-UE: fix temporarly the build. Quite dirty.
Signed-off-by:
Raphael Defosseux
<
raphael.defosseux@eurecom.fr
>
parent
80da2af2
Changes
16
Show whitespace changes
Inline
Side-by-side
Showing
16 changed files
with
147 additions
and
75 deletions
+147
-75
cmake_targets/CMakeLists.txt
cmake_targets/CMakeLists.txt
+4
-1
executables/nr-ue.c
executables/nr-ue.c
+16
-0
executables/nr-uesoftmodem.c
executables/nr-uesoftmodem.c
+10
-0
openair1/PHY/INIT/nr_init_ue.c
openair1/PHY/INIT/nr_init_ue.c
+2
-0
openair1/PHY/NR_UE_ESTIMATION/nr_estimation.h
openair1/PHY/NR_UE_ESTIMATION/nr_estimation.h
+7
-0
openair1/PHY/NR_UE_ESTIMATION/nr_ue_measurements.c
openair1/PHY/NR_UE_ESTIMATION/nr_ue_measurements.c
+7
-3
openair1/PHY/NR_UE_TRANSPORT/dci_nr.c
openair1/PHY/NR_UE_TRANSPORT/dci_nr.c
+11
-9
openair1/PHY/NR_UE_TRANSPORT/nr_dlsch_llr_computation.c
openair1/PHY/NR_UE_TRANSPORT/nr_dlsch_llr_computation.c
+23
-21
openair1/PHY/NR_UE_TRANSPORT/nr_transport_proto_ue.h
openair1/PHY/NR_UE_TRANSPORT/nr_transport_proto_ue.h
+8
-8
openair1/PHY/phy_vars_nr_ue.h
openair1/PHY/phy_vars_nr_ue.h
+2
-0
openair1/SCHED_NR_UE/defs.h
openair1/SCHED_NR_UE/defs.h
+1
-1
openair1/SCHED_NR_UE/phy_procedures_nr_ue.c
openair1/SCHED_NR_UE/phy_procedures_nr_ue.c
+28
-24
openair1/SCHED_NR_UE/pucch_power_control_ue_nr.c
openair1/SCHED_NR_UE/pucch_power_control_ue_nr.c
+2
-1
openair1/SCHED_NR_UE/pucch_uci_ue_nr.c
openair1/SCHED_NR_UE/pucch_uci_ue_nr.c
+6
-5
openair2/LAYER2/NR_MAC_UE/nr_ue_procedures.c
openair2/LAYER2/NR_MAC_UE/nr_ue_procedures.c
+2
-2
openair2/LAYER2/nr_rlc/nr_rlc_oai_api.c
openair2/LAYER2/nr_rlc/nr_rlc_oai_api.c
+18
-0
No files found.
cmake_targets/CMakeLists.txt
View file @
b9032848
...
...
@@ -1722,6 +1722,7 @@ set(NR_L2_SRC_UE
${
NR_UE_RRC_DIR
}
/L2_interface_ue.c
${
NR_UE_RRC_DIR
}
/main_ue.c
${
NR_UE_RRC_DIR
}
/rrc_UE.c
${
LTE_RLC_SRC
}
)
set
(
MAC_SRC
...
...
@@ -2612,6 +2613,7 @@ add_executable(nr-uesoftmodem
${
OPENAIR1_DIR
}
/SIMULATION/TOOLS/taus.c
${
OPENAIR_TARGETS
}
/ARCH/COMMON/common_lib.c
${
OPENAIR2_DIR
}
/RRC/NAS/nas_config.c
${
OPENAIR2_DIR
}
/RRC/NAS/rb_config.c
${
OPENAIR1_DIR
}
/SIMULATION/ETH_TRANSPORT/netlink_init.c
${
OPENAIR3_DIR
}
/NAS/UE/nas_ue_task.c
${
OPENAIR_DIR
}
/common/utils/utils.c
...
...
@@ -2627,7 +2629,8 @@ target_link_libraries (nr-uesoftmodem
-Wl,--start-group
RRC_LIB NR_RRC_LIB SECU_CN SECU_OSA UTIL HASHTABLE SCTP_CLIENT UDP SCHED_RU_LIB SCHED_UE_LIB SCHED_NR_UE_LIB
${
MSC_LIB
}
${
RAL_LIB
}
${
NAS_UE_LIB
}
${
ITTI_LIB
}
${
FLPT_MSG_LIB
}
${
ASYNC_IF_LIB
}
LFDS7
${
ATLAS_LIBRARIES
}
PHY_COMMON PHY_NR_UE PHY_RU LFDS L2_UE NR_L2_UE MAC_NR_COMMON NFAPI_USER_LIB S1AP_LIB S1AP_ENB
PHY_COMMON PHY_UE PHY_NR_UE PHY_RU LFDS L2_UE NR_L2_UE MAC_NR_COMMON S1AP_LIB S1AP_ENB
NFAPI_COMMON_LIB NFAPI_LIB NFAPI_PNF_LIB NFAPI_USER_LIB
-Wl,--end-group z dl
)
target_link_libraries
(
nr-uesoftmodem
${
LIBXML2_LIBRARIES
}
)
...
...
executables/nr-ue.c
View file @
b9032848
...
...
@@ -55,6 +55,9 @@
extern
char
do_forms
;
#endif
// Missing stuff?
int
next_ra_frame
=
0
;
module_id_t
next_Mod_id
=
0
;
extern
double
cpuf
;
//static nfapi_nr_config_request_t config_t;
...
...
@@ -845,3 +848,16 @@ void init_NR_UE(int nb_inst) {
printf
(
"UE threads created by %ld
\n
"
,
gettid
());
}
/* HACK: this function is needed to compile the UE
* fix it somehow
*/
int8_t
find_dlsch
(
uint16_t
rnti
,
PHY_VARS_eNB
*
eNB
,
find_type_t
type
)
{
printf
(
"you cannot read this
\n
"
);
abort
();
}
void
multicast_link_write_sock
(
int
groupP
,
char
*
dataP
,
uint32_t
sizeP
)
{}
executables/nr-uesoftmodem.c
View file @
b9032848
...
...
@@ -111,6 +111,16 @@ static pthread_t forms_thread; //xforms
#include "executables/softmodem-common.h"
#include "executables/thread-common.h"
// Raphael : missing
pthread_cond_t
nfapi_sync_cond
;
pthread_mutex_t
nfapi_sync_mutex
;
int
nfapi_sync_var
=-
1
;
//!< protected by mutex \ref nfapi_sync_mutex
uint16_t
sf_ahead
=
6
;
//??? value ???
pthread_cond_t
sync_cond
;
pthread_mutex_t
sync_mutex
;
int
sync_var
=-
1
;
//!< protected by mutex \ref sync_mutex.
int
config_sync_var
=-
1
;
RAN_CONTEXT_t
RC
;
volatile
int
start_eNB
=
0
;
volatile
int
start_UE
=
0
;
...
...
openair1/PHY/INIT/nr_init_ue.c
View file @
b9032848
...
...
@@ -357,6 +357,7 @@ void phy_config_dedicated_scell_ue(uint8_t Mod_id,
}
#endif
#if 0
void phy_config_harq_ue(module_id_t Mod_id,
int CC_id,
uint8_t eNB_id,
...
...
@@ -368,6 +369,7 @@ void phy_config_harq_ue(module_id_t Mod_id,
for (num_of_code_words=0; num_of_code_words<NR_MAX_NB_CODEWORDS; num_of_code_words++)
phy_vars_ue->ulsch[num_of_threads][eNB_id][num_of_code_words]->Mlimit = max_harq_tx;
}
#endif
extern
uint16_t
beta_cqi
[
16
];
...
...
openair1/PHY/NR_UE_ESTIMATION/nr_estimation.h
View file @
b9032848
...
...
@@ -90,4 +90,11 @@ void phy_adjust_gain_nr(PHY_VARS_NR_UE *ue,
uint32_t
rx_power_fil_dB
,
uint8_t
eNB_id
);
/*! \brief Function to return the path-loss based on the UE cell-specific reference signal strength and transmission power of eNB
@param Mod_id Module ID for UE
@param eNB_index Index of eNB on which to act
@returns Path loss in dB
*/
int16_t
nr_get_PL
(
module_id_t
Mod_id
,
uint8_t
CC_id
,
uint8_t
eNB_index
);
#endif
openair1/PHY/NR_UE_ESTIMATION/nr_ue_measurements.c
View file @
b9032848
...
...
@@ -34,6 +34,7 @@
//#define DEBUG_MEAS_UE
//#define DEBUG_RANK_EST
#if 0
int16_t cond_num_threshold = 0;
void print_shorts(char *s,short *x)
...
...
@@ -54,8 +55,9 @@ void print_ints(char *s,int *x)
);
}
#endif
int16_t
get_PL
(
module_id_t
Mod_id
,
uint8_t
CC_id
,
uint8_t
eNB_index
)
int16_t
nr_
get_PL
(
module_id_t
Mod_id
,
uint8_t
CC_id
,
uint8_t
eNB_index
)
{
PHY_VARS_NR_UE
*
ue
=
PHY_vars_UE_g
[
Mod_id
][
CC_id
];
...
...
@@ -69,7 +71,7 @@ int16_t get_PL(module_id_t Mod_id,uint8_t CC_id,uint8_t eNB_index)
RSoffset = 3;
*/
/* LOG_D(PHY,"get_PL : rsrp %f dBm/RE (%f), eNB power %d dBm/RE\n",
/* LOG_D(PHY,"
nr_
get_PL : rsrp %f dBm/RE (%f), eNB power %d dBm/RE\n",
(1.0*dB_fixed_times10(ue->measurements.rsrp[eNB_index])-(10.0*ue->rx_total_gain_dB))/10.0,
10*log10((double)ue->measurements.rsrp[eNB_index]),
ue->frame_parms.pdsch_config_common.referenceSignalPower);*/
...
...
@@ -79,9 +81,9 @@ int16_t get_PL(module_id_t Mod_id,uint8_t CC_id,uint8_t eNB_index)
// dB_fixed_times10(RSoffset*12*ue_g[Mod_id][CC_id]->frame_parms.N_RB_DL) +
//(ue->frame_parms.pdsch_config_common.referenceSignalPower*10))/10));
}
#if 0
#if 0
uint8_t get_n_adj_cells (module_id_t Mod_id,uint8_t CC_id)
{
...
...
@@ -456,6 +458,7 @@ void ue_rrc_measurements(PHY_VARS_UE *ue,
}
#endif
#if 0
void conjch0_mult_ch1(int *ch0,
int *ch1,
int32_t *ch0conj_ch1,
...
...
@@ -696,6 +699,7 @@ void numer(int32_t *Hh_h_00_sq,
_m_empty();
}
#endif
void
nr_ue_measurements
(
PHY_VARS_NR_UE
*
ue
,
unsigned
int
subframe_offset
,
...
...
openair1/PHY/NR_UE_TRANSPORT/dci_nr.c
View file @
b9032848
...
...
@@ -197,7 +197,7 @@ int32_t nr_pdcch_llr(NR_DL_FRAME_PARMS *frame_parms, int32_t **rxdataF_comp,
#endif
#if 0
int32_t pdcch_llr(NR_DL_FRAME_PARMS *frame_parms,
int32_t **rxdataF_comp,
char *pdcch_llr,
...
...
@@ -229,11 +229,12 @@ int32_t pdcch_llr(NR_DL_FRAME_PARMS *frame_parms,
return(0);
}
#endif
//__m128i avg128P;
//compute average channel_level on each (TX,RX) antenna pair
void
pdcch_channel_level
(
int32_t
**
dl_ch_estimates_ext
,
void
nr_
pdcch_channel_level
(
int32_t
**
dl_ch_estimates_ext
,
NR_DL_FRAME_PARMS
*
frame_parms
,
int32_t
*
avg
,
uint8_t
nb_rb
)
{
...
...
@@ -651,7 +652,7 @@ void nr_pdcch_channel_compensation(int32_t **rxdataF_ext,
}
void
pdcch_detection_mrc
(
NR_DL_FRAME_PARMS
*
frame_parms
,
void
nr_
pdcch_detection_mrc
(
NR_DL_FRAME_PARMS
*
frame_parms
,
int32_t
**
rxdataF_comp
,
uint8_t
symbol
)
{
#if defined(__x86_64__) || defined(__i386__)
...
...
@@ -686,6 +687,7 @@ void pdcch_detection_mrc(NR_DL_FRAME_PARMS *frame_parms,
#endif
}
#if 0
void pdcch_siso(NR_DL_FRAME_PARMS *frame_parms,
int32_t **rxdataF_comp,
uint8_t l) {
...
...
@@ -700,7 +702,7 @@ void pdcch_siso(NR_DL_FRAME_PARMS *frame_parms,
}
}
}
#endif
...
...
@@ -812,10 +814,10 @@ int32_t nr_rx_pdcch(PHY_VARS_NR_UE *ue,
coreset_freq_dom
,
coreset_nbr_rb
,
n_rb_offset
);
LOG_DD
(
"we enter pdcch_channel_level(avgP=%d) => compute channel level based on ofdm symbol 0, pdcch_vars[eNB_id]->dl_ch_estimates_ext
\n
"
,
*
avgP
);
LOG_DD
(
"in pdcch_channel_level(dl_ch_estimates_ext -> dl_ch_estimates_ext)
\n
"
);
LOG_DD
(
"we enter
nr_
pdcch_channel_level(avgP=%d) => compute channel level based on ofdm symbol 0, pdcch_vars[eNB_id]->dl_ch_estimates_ext
\n
"
,
*
avgP
);
LOG_DD
(
"in
nr_
pdcch_channel_level(dl_ch_estimates_ext -> dl_ch_estimates_ext)
\n
"
);
// compute channel level based on ofdm symbol 0
pdcch_channel_level
(
pdcch_vars
[
eNB_id
]
->
dl_ch_estimates_ext
,
nr_
pdcch_channel_level
(
pdcch_vars
[
eNB_id
]
->
dl_ch_estimates_ext
,
frame_parms
,
avgP
,
coreset_nbr_rb
);
...
...
@@ -851,9 +853,9 @@ int32_t nr_rx_pdcch(PHY_VARS_NR_UE *ue,
#endif
if
(
frame_parms
->
nb_antennas_rx
>
1
)
{
LOG_DD
(
"we enter pdcch_detection_mrc(frame_parms->nb_antennas_rx=%d)
\n
"
,
LOG_DD
(
"we enter
nr_
pdcch_detection_mrc(frame_parms->nb_antennas_rx=%d)
\n
"
,
frame_parms
->
nb_antennas_rx
);
pdcch_detection_mrc
(
frame_parms
,
pdcch_vars
[
eNB_id
]
->
rxdataF_comp
,
s
);
nr_
pdcch_detection_mrc
(
frame_parms
,
pdcch_vars
[
eNB_id
]
->
rxdataF_comp
,
s
);
}
LOG_DD
(
"we enter nr_pdcch_llr(for symbol %d), pdcch_vars[eNB_id]->rxdataF_comp ---> pdcch_vars[eNB_id]->llr
\n
"
,
s
);
...
...
openair1/PHY/NR_UE_TRANSPORT/nr_dlsch_llr_computation.c
View file @
b9032848
...
...
@@ -39,8 +39,8 @@
//#define DEBUG_LLR_SIC
int16_t
zeros
[
8
]
__attribute__
((
aligned
(
16
)))
=
{
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
};
int16_t
ones
[
8
]
__attribute__
((
aligned
(
16
)))
=
{
0xffff
,
0xffff
,
0xffff
,
0xffff
,
0xffff
,
0xffff
,
0xffff
,
0xffff
};
int16_t
nr_
zeros
[
8
]
__attribute__
((
aligned
(
16
)))
=
{
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
};
int16_t
nr_
ones
[
8
]
__attribute__
((
aligned
(
16
)))
=
{
0xffff
,
0xffff
,
0xffff
,
0xffff
,
0xffff
,
0xffff
,
0xffff
,
0xffff
};
#if defined(__x86_64__) || defined(__i386__)
__m128i
rho_rpi
__attribute__
((
aligned
(
16
)));
__m128i
rho_rmi
__attribute__
((
aligned
(
16
)));
...
...
@@ -604,11 +604,11 @@ __m128i tmp_result4 __attribute__ ((aligned(16)));
#define prodsum_psi_a_epi16(psi_r,a_r,psi_i,a_i,psi_a) tmp_result = _mm_mulhi_epi16(psi_r,a_r); tmp_result = _mm_slli_epi16(tmp_result,1); tmp_result2 = _mm_mulhi_epi16(psi_i,a_i); tmp_result2 = _mm_slli_epi16(tmp_result2,1); psi_a = _mm_adds_epi16(tmp_result,tmp_result2);
// calculate interference magnitude
#define interference_abs_epi16(psi,int_ch_mag,int_mag,c1,c2) tmp_result = _mm_cmplt_epi16(psi,int_ch_mag); tmp_result2 = _mm_xor_si128(tmp_result,(*(__m128i*)&ones[0])); tmp_result = _mm_and_si128(tmp_result,c1); tmp_result2 = _mm_and_si128(tmp_result2,c2); int_mag = _mm_or_si128(tmp_result,tmp_result2);
#define interference_abs_epi16(psi,int_ch_mag,int_mag,c1,c2) tmp_result = _mm_cmplt_epi16(psi,int_ch_mag); tmp_result2 = _mm_xor_si128(tmp_result,(*(__m128i*)&
nr_
ones[0])); tmp_result = _mm_and_si128(tmp_result,c1); tmp_result2 = _mm_and_si128(tmp_result2,c2); int_mag = _mm_or_si128(tmp_result,tmp_result2);
// calculate interference magnitude
// tmp_result = ones in shorts corr. to interval 2<=x<=4, tmp_result2 interval < 2, tmp_result3 interval 4<x<6 and tmp_result4 interval x>6
#define interference_abs_64qam_epi16(psi,int_ch_mag,int_two_ch_mag,int_three_ch_mag,a,c1,c3,c5,c7) tmp_result = _mm_cmplt_epi16(psi,int_two_ch_mag); tmp_result3 = _mm_xor_si128(tmp_result,(*(__m128i*)&ones[0])); tmp_result2 = _mm_cmplt_epi16(psi,int_ch_mag); tmp_result = _mm_xor_si128(tmp_result,tmp_result2); tmp_result4 = _mm_cmpgt_epi16(psi,int_three_ch_mag); tmp_result3 = _mm_xor_si128(tmp_result3,tmp_result4); tmp_result = _mm_and_si128(tmp_result,c3); tmp_result2 = _mm_and_si128(tmp_result2,c1); tmp_result3 = _mm_and_si128(tmp_result3,c5); tmp_result4 = _mm_and_si128(tmp_result4,c7); tmp_result = _mm_or_si128(tmp_result,tmp_result2); tmp_result3 = _mm_or_si128(tmp_result3,tmp_result4); a = _mm_or_si128(tmp_result,tmp_result3);
// tmp_result =
nr_
ones in shorts corr. to interval 2<=x<=4, tmp_result2 interval < 2, tmp_result3 interval 4<x<6 and tmp_result4 interval x>6
#define interference_abs_64qam_epi16(psi,int_ch_mag,int_two_ch_mag,int_three_ch_mag,a,c1,c3,c5,c7) tmp_result = _mm_cmplt_epi16(psi,int_two_ch_mag); tmp_result3 = _mm_xor_si128(tmp_result,(*(__m128i*)&
nr_
ones[0])); tmp_result2 = _mm_cmplt_epi16(psi,int_ch_mag); tmp_result = _mm_xor_si128(tmp_result,tmp_result2); tmp_result4 = _mm_cmpgt_epi16(psi,int_three_ch_mag); tmp_result3 = _mm_xor_si128(tmp_result3,tmp_result4); tmp_result = _mm_and_si128(tmp_result,c3); tmp_result2 = _mm_and_si128(tmp_result2,c1); tmp_result3 = _mm_and_si128(tmp_result3,c5); tmp_result4 = _mm_and_si128(tmp_result4,c7); tmp_result = _mm_or_si128(tmp_result,tmp_result2); tmp_result3 = _mm_or_si128(tmp_result3,tmp_result4); a = _mm_or_si128(tmp_result,tmp_result3);
// calculates a_sq = int_ch_mag*(a_r^2 + a_i^2)*scale_factor
#define square_a_epi16(a_r,a_i,int_ch_mag,scale_factor,a_sq) tmp_result = _mm_mulhi_epi16(a_r,a_r); tmp_result = _mm_slli_epi16(tmp_result,1); tmp_result = _mm_mulhi_epi16(tmp_result,scale_factor); tmp_result = _mm_slli_epi16(tmp_result,1); tmp_result = _mm_mulhi_epi16(tmp_result,int_ch_mag); tmp_result = _mm_slli_epi16(tmp_result,1); tmp_result2 = _mm_mulhi_epi16(a_i,a_i); tmp_result2 = _mm_slli_epi16(tmp_result2,1); tmp_result2 = _mm_mulhi_epi16(tmp_result2,scale_factor); tmp_result2 = _mm_slli_epi16(tmp_result2,1); tmp_result2 = _mm_mulhi_epi16(tmp_result2,int_ch_mag); tmp_result2 = _mm_slli_epi16(tmp_result2,1); a_sq = _mm_adds_epi16(tmp_result,tmp_result2);
...
...
@@ -1142,7 +1142,7 @@ int nr_dlsch_qpsk_qpsk_llr(NR_DL_FRAME_PARMS *frame_parms,
// printf("nr_dlsch_qpsk_qpsk_llr: symbol %d,nb_rb %d, len %d,pbch_pss_sss_adjust %d\n",symbol,nb_rb,len,pbch_pss_sss_adjust);
// printf("qpsk_qpsk: len %d, llr16 %p\n",len,llr16);
qpsk_qpsk
((
short
*
)
rxF
,
nr_
qpsk_qpsk
((
short
*
)
rxF
,
(
short
*
)
rxF_i
,
(
short
*
)
llr16
,
(
short
*
)
rho
,
...
...
@@ -1156,7 +1156,7 @@ int nr_dlsch_qpsk_qpsk_llr(NR_DL_FRAME_PARMS *frame_parms,
//__m128i ONE_OVER_SQRT_8 __attribute__((aligned(16)));
void
qpsk_qpsk
(
short
*
stream0_in
,
void
nr_
qpsk_qpsk
(
short
*
stream0_in
,
short
*
stream1_in
,
short
*
stream0_out
,
short
*
rho01
,
...
...
@@ -1390,7 +1390,7 @@ int nr_dlsch_qpsk_16qam_llr(NR_DL_FRAME_PARMS *frame_parms,
len
=
(
nb_rb
*
12
)
-
pbch_pss_sss_adjust
;
}
qpsk_qam16
((
short
*
)
rxF
,
nr_
qpsk_qam16
((
short
*
)
rxF
,
(
short
*
)
rxF_i
,
(
short
*
)
ch_mag_i
,
(
short
*
)
llr16
,
...
...
@@ -1413,7 +1413,7 @@ __m128i SQRT_10_OVER_FOUR __attribute__((aligned(16)));
__m128i ch_mag_int;
#endif
*/
void
qpsk_qam16
(
int16_t
*
stream0_in
,
void
nr_
qpsk_qam16
(
int16_t
*
stream0_in
,
int16_t
*
stream1_in
,
int16_t
*
ch_mag_i
,
int16_t
*
stream0_out
,
...
...
@@ -1672,7 +1672,7 @@ int nr_dlsch_qpsk_64qam_llr(NR_DL_FRAME_PARMS *frame_parms,
len
=
(
nb_rb
*
12
)
-
pbch_pss_sss_adjust
;
}
qpsk_qam64
((
short
*
)
rxF
,
nr_
qpsk_qam64
((
short
*
)
rxF
,
(
short
*
)
rxF_i
,
(
short
*
)
ch_mag_i
,
(
short
*
)
llr16
,
...
...
@@ -1695,7 +1695,7 @@ __m128i two_ch_mag_int_with_sigma2 __attribute__((aligned(16)));
__m128i three_ch_mag_int_with_sigma2 __attribute__((aligned(16)));
__m128i SQRT_42_OVER_FOUR __attribute__((aligned(16)));
*/
void
qpsk_qam64
(
short
*
stream0_in
,
void
nr_
qpsk_qam64
(
short
*
stream0_in
,
short
*
stream1_in
,
short
*
ch_mag_i
,
short
*
stream0_out
,
...
...
@@ -1947,7 +1947,7 @@ __m128i ch_mag_over_2 __attribute__ ((aligned(16)));
__m128i ch_mag_9_over_10 __attribute__ ((aligned(16)));
*/
void
qam16_qpsk
(
short
*
stream0_in
,
void
nr_
qam16_qpsk
(
short
*
stream0_in
,
short
*
stream1_in
,
short
*
ch_mag
,
short
*
stream0_out
,
...
...
@@ -2440,7 +2440,7 @@ int nr_dlsch_16qam_qpsk_llr(NR_DL_FRAME_PARMS *frame_parms,
// printf("symbol %d: qam16_llr, len %d (llr16 %p)\n",symbol,len,llr16);
qam16_qpsk
((
short
*
)
rxF
,
nr_
qam16_qpsk
((
short
*
)
rxF
,
(
short
*
)
rxF_i
,
(
short
*
)
ch_mag
,
(
short
*
)
llr16
,
...
...
@@ -2453,7 +2453,7 @@ int nr_dlsch_16qam_qpsk_llr(NR_DL_FRAME_PARMS *frame_parms,
return
(
0
);
}
void
qam16_qam16
(
short
*
stream0_in
,
void
nr_
qam16_qam16
(
short
*
stream0_in
,
short
*
stream1_in
,
short
*
ch_mag
,
short
*
ch_mag_i
,
...
...
@@ -2981,7 +2981,7 @@ int nr_dlsch_16qam_16qam_llr(NR_DL_FRAME_PARMS *frame_parms,
// printf("symbol %d: qam16_llr, len %d (llr16 %p)\n",symbol,len,llr16);
qam16_qam16
((
short
*
)
rxF
,
nr_
qam16_qam16
((
short
*
)
rxF
,
(
short
*
)
rxF_i
,
(
short
*
)
ch_mag
,
(
short
*
)
ch_mag_i
,
...
...
@@ -2995,7 +2995,7 @@ int nr_dlsch_16qam_16qam_llr(NR_DL_FRAME_PARMS *frame_parms,
return
(
0
);
}
void
qam16_qam64
(
int16_t
*
stream0_in
,
void
nr_
qam16_qam64
(
int16_t
*
stream0_in
,
int16_t
*
stream1_in
,
int16_t
*
ch_mag
,
int16_t
*
ch_mag_i
,
...
...
@@ -3615,7 +3615,7 @@ int nr_dlsch_16qam_64qam_llr(NR_DL_FRAME_PARMS *frame_parms,
// printf("symbol %d: qam16_llr, len %d (llr16 %p)\n",symbol,len,llr16);
qam16_qam64
((
short
*
)
rxF
,
nr_
qam16_qam64
((
short
*
)
rxF
,
(
short
*
)
rxF_i
,
(
short
*
)
ch_mag
,
(
short
*
)
ch_mag_i
,
...
...
@@ -3670,7 +3670,7 @@ __m128i ch_mag_2_over_42_with_sigma2 __attribute__((aligned(16)));
*/
void
qam64_qpsk
(
int16_t
*
stream0_in
,
void
nr_
qam64_qpsk
(
int16_t
*
stream0_in
,
int16_t
*
stream1_in
,
int16_t
*
ch_mag
,
int16_t
*
stream0_out
,
...
...
@@ -5175,7 +5175,7 @@ int nr_dlsch_64qam_qpsk_llr(NR_DL_FRAME_PARMS *frame_parms,
len
=
(
nb_rb
*
12
)
-
pbch_pss_sss_adjust
;
}
qam64_qpsk
((
short
*
)
rxF
,
nr_
qam64_qpsk
((
short
*
)
rxF
,
(
short
*
)
rxF_i
,
(
short
*
)
ch_mag
,
(
short
*
)
llr16
,
...
...
@@ -5189,7 +5189,7 @@ int nr_dlsch_64qam_qpsk_llr(NR_DL_FRAME_PARMS *frame_parms,
void
qam64_qam16
(
short
*
stream0_in
,
void
nr_
qam64_qam16
(
short
*
stream0_in
,
short
*
stream1_in
,
short
*
ch_mag
,
short
*
ch_mag_i
,
...
...
@@ -6718,7 +6718,7 @@ int nr_dlsch_64qam_16qam_llr(NR_DL_FRAME_PARMS *frame_parms,
len
=
(
nb_rb
*
12
)
-
pbch_pss_sss_adjust
;
}
qam64_qam16
((
short
*
)
rxF
,
nr_
qam64_qam16
((
short
*
)
rxF
,
(
short
*
)
rxF_i
,
(
short
*
)
ch_mag
,
(
short
*
)
ch_mag_i
,
...
...
@@ -6731,6 +6731,7 @@ int nr_dlsch_64qam_16qam_llr(NR_DL_FRAME_PARMS *frame_parms,
return
(
0
);
}
#if 0
void qam64_qam64(short *stream0_in,
short *stream1_in,
short *ch_mag,
...
...
@@ -8481,6 +8482,7 @@ void qam64_qam64(short *stream0_in,
_m_empty
();
#endif
}
#endif
int
nr_dlsch_64qam_64qam_llr
(
NR_DL_FRAME_PARMS
*
frame_parms
,
...
...
openair1/PHY/NR_UE_TRANSPORT/nr_transport_proto_ue.h
View file @
b9032848
...
...
@@ -90,7 +90,7 @@ void dump_mch(PHY_VARS_NR_UE *phy_vars_ue,uint8_t eNB_id,uint16_t coded_bits_per
@param stream0_out Output from LLR unit for stream0
@param rho01 Cross-correlation between channels (MR combined)
@param length in complex channel outputs*/
void
qpsk_qpsk
(
int16_t
*
stream0_in
,
void
nr_
qpsk_qpsk
(
int16_t
*
stream0_in
,
int16_t
*
stream1_in
,
int16_t
*
stream0_out
,
int16_t
*
rho01
,
...
...
@@ -126,7 +126,7 @@ int32_t nr_dlsch_qpsk_qpsk_llr(NR_DL_FRAME_PARMS *frame_parms,
@param stream0_out Output from LLR unit for stream0
@param rho01 Cross-correlation between channels (MR combined)
@param length in complex channel outputs*/
void
qpsk_qam16
(
int16_t
*
stream0_in
,
void
nr_
qpsk_qam16
(
int16_t
*
stream0_in
,
int16_t
*
stream1_in
,
short
*
ch_mag_i
,
int16_t
*
stream0_out
,
...
...
@@ -164,7 +164,7 @@ int32_t nr_dlsch_qpsk_16qam_llr(NR_DL_FRAME_PARMS *frame_parms,
@param stream0_out Output from LLR unit for stream0
@param rho01 Cross-correlation between channels (MR combined)
@param length in complex channel outputs*/
void
qpsk_qam64
(
int16_t
*
stream0_in
,
void
nr_
qpsk_qam64
(
int16_t
*
stream0_in
,
int16_t
*
stream1_in
,
short
*
ch_mag_i
,
int16_t
*
stream0_out
,
...
...
@@ -202,7 +202,7 @@ int32_t nr_dlsch_qpsk_64qam_llr(NR_DL_FRAME_PARMS *frame_parms,
@param stream0_out Output from LLR unit for stream0
@param rho01 Cross-correlation between channels (MR combined)
@param length in complex channel outputs*/
void
qam16_qpsk
(
short
*
stream0_in
,
void
nr_
qam16_qpsk
(
short
*
stream0_in
,
short
*
stream1_in
,
short
*
ch_mag
,
short
*
stream0_out
,
...
...
@@ -240,7 +240,7 @@ int nr_dlsch_16qam_qpsk_llr(NR_DL_FRAME_PARMS *frame_parms,
@param stream0_out Output from LLR unit for stream0
@param rho01 Cross-correlation between channels (MR combined)
@param length in complex channel outputs*/
void
qam16_qam16
(
short
*
stream0_in
,
void
nr_
qam16_qam16
(
short
*
stream0_in
,
short
*
stream1_in
,
short
*
ch_mag
,
short
*
ch_mag_i
,
...
...
@@ -283,7 +283,7 @@ int nr_dlsch_16qam_16qam_llr(NR_DL_FRAME_PARMS *frame_parms,
@param stream0_out Output from LLR unit for stream0
@param rho01 Cross-correlation between channels (MR combined)
@param length in complex channel outputs*/
void
qam16_qam64
(
short
*
stream0_in
,
void
nr_
qam16_qam64
(
short
*
stream0_in
,
short
*
stream1_in
,
short
*
ch_mag
,
short
*
ch_mag_i
,
...
...
@@ -324,7 +324,7 @@ int nr_dlsch_16qam_64qam_llr(NR_DL_FRAME_PARMS *frame_parms,
@param stream0_out Output from LLR unit for stream0
@param rho01 Cross-correlation between channels (MR combined)
@param length in complex channel outputs*/
void
qam64_qpsk
(
short
*
stream0_in
,
void
nr_
qam64_qpsk
(
short
*
stream0_in
,
short
*
stream1_in
,
short
*
ch_mag
,
short
*
stream0_out
,
...
...
@@ -363,7 +363,7 @@ int nr_dlsch_64qam_qpsk_llr(NR_DL_FRAME_PARMS *frame_parms,
@param stream0_out Output from LLR unit for stream0
@param rho01 Cross-correlation between channels (MR combined)
@param length in complex channel outputs*/
void
qam64_qam16
(
short
*
stream0_in
,
void
nr_
qam64_qam16
(
short
*
stream0_in
,
short
*
stream1_in
,
short
*
ch_mag
,
short
*
ch_mag_i
,
...
...
openair1/PHY/phy_vars_nr_ue.h
View file @
b9032848
...
...
@@ -141,4 +141,6 @@ int16_t unscrambling_lut[65536*16] __attribute__((aligned(32)));
uint8_t
scrambling_lut
[
65536
*
16
]
__attribute__
((
aligned
(
32
)));
uint8_t
max_ldpc_iterations
=
4
;
uint8_t
max_turbo_iterations
=
4
;
#endif
/*__PHY_VARS_H__ */
openair1/SCHED_NR_UE/defs.h
View file @
b9032848
...
...
@@ -292,7 +292,7 @@ int8_t nr_find_ue(uint16_t rnti, PHY_VARS_eNB *phy_vars_eNB);
void
nr_process_timing_advance
(
module_id_t
Mod_id
,
uint8_t
CC_id
,
int16_t
timing_advance
);
void
nr_process_timing_advance_rar
(
PHY_VARS_NR_UE
*
phy_vars_ue
,
UE_nr_rxtx_proc_t
*
proc
,
uint16_t
timing_advance
);
unsigned
int
get_tx_amp
(
int
power_dBm
,
int
power_max_dBm
,
int
N_RB_UL
,
int
nb_rb
);
unsigned
int
nr_
get_tx_amp
(
int
power_dBm
,
int
power_max_dBm
,
int
N_RB_UL
,
int
nb_rb
);
void
phy_reset_ue
(
module_id_t
Mod_id
,
uint8_t
CC_id
,
uint8_t
eNB_index
);
...
...
openair1/SCHED_NR_UE/phy_procedures_nr_ue.c
View file @
b9032848
...
...
@@ -89,7 +89,7 @@ fifo_dump_emos_UE emos_dump_UE;
#define NS_PER_SLOT 500000
char
mode_string
[
4
][
20
]
=
{
"NOT SYNCHED"
,
"PRACH"
,
"RAR"
,
"PUSCH"
};
char
nr_
mode_string
[
4
][
20
]
=
{
"NOT SYNCHED"
,
"PRACH"
,
"RAR"
,
"PUSCH"
};
extern
double
cpuf
;
...
...
@@ -565,8 +565,8 @@ void ue_compute_srs_occasion(PHY_VARS_NR_UE *ue,UE_nr_rxtx_proc_t *proc,uint8_t
// Simultaneous-AN-and-SRS is FALSE
// check PUCCH format 2/2a/2b transmissions
is_pucch2_subframe = is_cqi_TXOp(ue,proc,eNB_id) && (ue->cqi_report_config[eNB_id].CQI_ReportPeriodic.cqi_PMI_ConfigIndex>0);
is_pucch2_subframe = (is_ri_TXOp(ue,proc,eNB_id) && (ue->cqi_report_config[eNB_id].CQI_ReportPeriodic.ri_ConfigIndex>0)) || is_pucch2_subframe;
is_pucch2_subframe =
nr_
is_cqi_TXOp(ue,proc,eNB_id) && (ue->cqi_report_config[eNB_id].CQI_ReportPeriodic.cqi_PMI_ConfigIndex>0);
is_pucch2_subframe = (
nr_
is_ri_TXOp(ue,proc,eNB_id) && (ue->cqi_report_config[eNB_id].CQI_ReportPeriodic.ri_ConfigIndex>0)) || is_pucch2_subframe;
// check ACK/SR transmission
if(frame_parms->soundingrs_ul_config_common.ackNackSRS_SimultaneousTransmission == FALSE)
...
...
@@ -1474,7 +1474,7 @@ if (ue->prach_resources[eNB_id]!=NULL) {
LOG_I
(
PHY
,
"mode %d
\n
"
,
mode
);
if
((
ue
->
mac_enabled
==
1
)
&&
(
mode
!=
calib_prach_tx
))
{
ue
->
tx_power_dBm
[
nr_tti_tx
]
=
ue
->
prach_resources
[
eNB_id
]
->
ra_PREAMBLE_RECEIVED_TARGET_POWER
+
get_PL
(
ue
->
Mod_id
,
ue
->
CC_id
,
eNB_id
);
ue
->
tx_power_dBm
[
nr_tti_tx
]
=
ue
->
prach_resources
[
eNB_id
]
->
ra_PREAMBLE_RECEIVED_TARGET_POWER
+
nr_
get_PL
(
ue
->
Mod_id
,
ue
->
CC_id
,
eNB_id
);
}
else
{
ue
->
tx_power_dBm
[
nr_tti_tx
]
=
ue
->
tx_power_max_dBm
;
...
...
@@ -1486,7 +1486,7 @@ if (ue->prach_resources[eNB_id]!=NULL) {
frame_tx
,
nr_tti_tx
,
ue
->
prach_resources
[
eNB_id
]
->
ra_PreambleIndex
,
get_PL
(
ue
->
Mod_id
,
ue
->
CC_id
,
eNB_id
),
nr_
get_PL
(
ue
->
Mod_id
,
ue
->
CC_id
,
eNB_id
),
ue
->
tx_power_dBm
[
nr_tti_tx
],
ue
->
prach_resources
[
eNB_id
]
->
ra_PREAMBLE_RECEIVED_TARGET_POWER
,
ue
->
prach_resources
[
eNB_id
]
->
ra_TDD_map_index
,
...
...
@@ -1495,7 +1495,7 @@ if (ue->prach_resources[eNB_id]!=NULL) {
ue
->
tx_total_RE
[
nr_tti_tx
]
=
96
;
#if defined(EXMIMO) || defined(OAI_USRP) || defined(OAI_BLADERF) || defined(OAI_LMSSDR) || defined(OAI_ADRV9371_ZC706)
ue
->
prach_vars
[
eNB_id
]
->
amp
=
get_tx_amp
(
ue
->
tx_power_dBm
[
nr_tti_tx
],
ue
->
prach_vars
[
eNB_id
]
->
amp
=
nr_
get_tx_amp
(
ue
->
tx_power_dBm
[
nr_tti_tx
],
ue
->
tx_power_max_dBm
,
ue
->
frame_parms
.
N_RB_UL
,
6
);
...
...
@@ -1518,7 +1518,7 @@ if (ue->prach_resources[eNB_id]!=NULL) {
// stop_meas(&ue->tx_prach);
LOG_D
(
PHY
,
"[UE %d][RAPROC] PRACH PL %d dB, power %d dBm, digital power %d dB (amp %d)
\n
"
,
ue
->
Mod_id
,
get_PL
(
ue
->
Mod_id
,
ue
->
CC_id
,
eNB_id
),
nr_
get_PL
(
ue
->
Mod_id
,
ue
->
CC_id
,
eNB_id
),
ue
->
tx_power_dBm
[
nr_tti_tx
],
dB_fixed
(
prach_power
),
ue
->
prach_vars
[
eNB_id
]
->
amp
);
...
...
@@ -1537,8 +1537,8 @@ if (ue->prach_resources[eNB_id]!=NULL) {
LOG_I
(
PHY
,
"[UE %d][RAPROC] Frame %d, nr_tti_rx %d: Generating PRACH (eNB %d) preamble index %d for UL, TX power %d dBm (PL %d dB), l3msg
\n
"
,
ue
->
Mod_id
,
frame_tx
,
nr_tti_tx
,
eNB_id
,
ue
->
prach_resources
[
eNB_id
]
->
ra_PreambleIndex
,
ue
->
prach_resources
[
eNB_id
]
->
ra_PREAMBLE_RECEIVED_TARGET_POWER
+
get_PL
(
ue
->
Mod_id
,
ue
->
CC_id
,
eNB_id
),
get_PL
(
ue
->
Mod_id
,
ue
->
CC_id
,
eNB_id
));
ue
->
prach_resources
[
eNB_id
]
->
ra_PREAMBLE_RECEIVED_TARGET_POWER
+
nr_
get_PL
(
ue
->
Mod_id
,
ue
->
CC_id
,
eNB_id
),
nr_
get_PL
(
ue
->
Mod_id
,
ue
->
CC_id
,
eNB_id
));
}
...
...
@@ -1560,6 +1560,7 @@ VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDUR
#endif
#if 0
void ue_ulsch_uespec_procedures(PHY_VARS_NR_UE *ue,
UE_nr_rxtx_proc_t *proc,
uint8_t eNB_id,
...
...
@@ -1715,10 +1716,10 @@ void ue_ulsch_uespec_procedures(PHY_VARS_NR_UE *ue,
// check Periodic CQI/RI reporting
cqi_status = ((ue->cqi_report_config[eNB_id].CQI_ReportPeriodic.cqi_PMI_ConfigIndex>0)&&
(is_cqi_TXOp(ue,proc,eNB_id)==1));
(
nr_
is_cqi_TXOp(ue,proc,eNB_id)==1));
ri_status = ((ue->cqi_report_config[eNB_id].CQI_ReportPeriodic.ri_ConfigIndex>0) &&
(is_ri_TXOp(ue,proc,eNB_id)==1));
(
nr_
is_ri_TXOp(ue,proc,eNB_id)==1));
// compute CQI/RI resources
compute_cqi_ri_resources(ue, ue->ulsch[eNB_id], eNB_id, ue->ulsch[eNB_id]->rnti, P_RNTI, CBA_RNTI, cqi_status, ri_status);
...
...
@@ -1923,7 +1924,7 @@ if (abstraction_flag == 0) {
ue->tx_total_RE[nr_tti_tx] = nb_rb*12;
#if defined(EXMIMO) || defined(OAI_USRP) || defined(OAI_BLADERF) || defined(OAI_LMSSDR) || defined(OAI_ADRV9371_ZC706)
tx_amp = get_tx_amp(ue->tx_power_dBm[nr_tti_tx],
tx_amp =
nr_
get_tx_amp(ue->tx_power_dBm[nr_tti_tx],
ue->tx_power_max_dBm,
ue->frame_parms.N_RB_UL,
nb_rb);
...
...
@@ -1932,7 +1933,7 @@ if (abstraction_flag == 0) {
#endif
#if T_TRACER
T(T_UE_PHY_PUSCH_TX_POWER, T_INT(eNB_id),T_INT(Mod_id), T_INT(frame_tx%1024), T_INT(nr_tti_tx),T_INT(ue->tx_power_dBm[nr_tti_tx]),
T_INT
(
tx_amp
),
T_INT
(
ue
->
ulsch
[
eNB_id
]
->
f_pusch
),
T_INT
(
get_PL
(
Mod_id
,
0
,
eNB_id
)),
T_INT
(
nb_rb
));
T_INT(tx_amp),T_INT(ue->ulsch[eNB_id]->f_pusch),T_INT(
nr_
get_PL(Mod_id,0,eNB_id)),T_INT(nb_rb));
#endif
#ifdef UE_DEBUG_TRACE
...
...
@@ -1982,6 +1983,7 @@ VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDUR
#endif
}
#endif
#if 0
...
...
@@ -2014,7 +2016,7 @@ void ue_srs_procedures(PHY_VARS_NR_UE *ue,UE_nr_rxtx_proc_t *proc,uint8_t eNB_id
#if defined(EXMIMO) || defined(OAI_USRP) || defined(OAI_BLADERF) || defined(OAI_LMSSDR) || defined(OAI_ADRV9371_ZC706)
if (ue->mac_enabled==1)
{
tx_amp = get_tx_amp(Po_SRS,
tx_amp =
nr_
get_tx_amp(Po_SRS,
ue->tx_power_max_dBm,
ue->frame_parms.N_RB_UL,
nb_rb_srs);
...
...
@@ -2239,10 +2241,10 @@ void ue_pucch_procedures(PHY_VARS_NR_UE *ue,UE_nr_rxtx_proc_t *proc,uint8_t eNB_
nb_cw
=
(
(
ack_status_cw0
!=
0
)
?
1
:
0
)
+
(
(
ack_status_cw1
!=
0
)
?
1
:
0
);
cqi_status
=
((
ue
->
cqi_report_config
[
eNB_id
].
CQI_ReportPeriodic
.
cqi_PMI_ConfigIndex
>
0
)
&&
(
is_cqi_TXOp
(
ue
,
proc
,
eNB_id
)
==
1
));
(
nr_
is_cqi_TXOp
(
ue
,
proc
,
eNB_id
)
==
1
));
ri_status
=
((
ue
->
cqi_report_config
[
eNB_id
].
CQI_ReportPeriodic
.
ri_ConfigIndex
>
0
)
&&
(
is_ri_TXOp
(
ue
,
proc
,
eNB_id
)
==
1
));
(
nr_
is_ri_TXOp
(
ue
,
proc
,
eNB_id
)
==
1
));
// Part - II
// if nothing to report ==> exit function
...
...
@@ -2297,7 +2299,7 @@ void ue_pucch_procedures(PHY_VARS_NR_UE *ue,UE_nr_rxtx_proc_t *proc,uint8_t eNB_
ue
->
tx_total_RE
[
nr_tti_tx
]
=
12
;
#if defined(EXMIMO) || defined(OAI_USRP) || defined(OAI_BLADERF) || defined(OAI_LMSSDR) || defined(OAI_ADRV9371_ZC706)
tx_amp
=
get_tx_amp
(
Po_PUCCH
,
tx_amp
=
nr_
get_tx_amp
(
Po_PUCCH
,
ue
->
tx_power_max_dBm
,
ue
->
frame_parms
.
N_RB_UL
,
1
);
...
...
@@ -2306,7 +2308,7 @@ void ue_pucch_procedures(PHY_VARS_NR_UE *ue,UE_nr_rxtx_proc_t *proc,uint8_t eNB_
#endif
#if T_TRACER
T
(
T_UE_PHY_PUCCH_TX_POWER
,
T_INT
(
eNB_id
),
T_INT
(
Mod_id
),
T_INT
(
frame_tx
%
1024
),
T_INT
(
nr_tti_tx
),
T_INT
(
ue
->
tx_power_dBm
[
nr_tti_tx
]),
T_INT
(
tx_amp
),
T_INT
(
ue
->
dlsch
[
ue
->
current_thread_id
[
proc
->
nr_tti_rx
]][
eNB_id
][
0
]
->
g_pucch
),
T_INT
(
get_PL
(
ue
->
Mod_id
,
ue
->
CC_id
,
eNB_id
)));
T_INT
(
tx_amp
),
T_INT
(
ue
->
dlsch
[
ue
->
current_thread_id
[
proc
->
nr_tti_rx
]][
eNB_id
][
0
]
->
g_pucch
),
T_INT
(
nr_
get_PL
(
ue
->
Mod_id
,
ue
->
CC_id
,
eNB_id
)));
#endif
#ifdef UE_DEBUG_TRACE
...
...
@@ -2405,7 +2407,7 @@ void ue_pucch_procedures(PHY_VARS_NR_UE *ue,UE_nr_rxtx_proc_t *proc,uint8_t eNB_
ue
->
tx_total_RE
[
nr_tti_tx
]
=
12
;
#if defined(EXMIMO) || defined(OAI_USRP) || defined(OAI_BLADERF) || defined(OAI_LMSSDR) || defined(OAI_ADRV9371_ZC706)
tx_amp
=
get_tx_amp
(
Po_PUCCH
,
tx_amp
=
nr_
get_tx_amp
(
Po_PUCCH
,
ue
->
tx_power_max_dBm
,
ue
->
frame_parms
.
N_RB_UL
,
1
);
...
...
@@ -2414,7 +2416,7 @@ void ue_pucch_procedures(PHY_VARS_NR_UE *ue,UE_nr_rxtx_proc_t *proc,uint8_t eNB_
#endif
#if T_TRACER
T
(
T_UE_PHY_PUCCH_TX_POWER
,
T_INT
(
eNB_id
),
T_INT
(
Mod_id
),
T_INT
(
frame_tx
%
1024
),
T_INT
(
nr_tti_tx
),
T_INT
(
ue
->
tx_power_dBm
[
nr_tti_tx
]),
T_INT
(
tx_amp
),
T_INT
(
ue
->
dlsch
[
ue
->
current_thread_id
[
proc
->
nr_tti_rx
]][
eNB_id
][
0
]
->
g_pucch
),
T_INT
(
get_PL
(
ue
->
Mod_id
,
ue
->
CC_id
,
eNB_id
)));
T_INT
(
tx_amp
),
T_INT
(
ue
->
dlsch
[
ue
->
current_thread_id
[
proc
->
nr_tti_rx
]][
eNB_id
][
0
]
->
g_pucch
),
T_INT
(
nr_
get_PL
(
ue
->
Mod_id
,
ue
->
CC_id
,
eNB_id
)));
#endif
#ifdef UE_DEBUG_TRACE
LOG_I
(
PHY
,
"[UE %d][RNTI %x] AbsSubFrame %d.%d Generating PUCCH 2 (RI or CQI), Po_PUCCH %d, isShortenPucch %d, amp %d
\n
"
,
...
...
@@ -2785,7 +2787,7 @@ void nr_ue_pbch_procedures(uint8_t eNB_id,
unsigned
int
get_tx_amp
(
int
power_dBm
,
int
power_max_dBm
,
int
N_RB_UL
,
int
nb_rb
)
unsigned
int
nr_
get_tx_amp
(
int
power_dBm
,
int
power_max_dBm
,
int
N_RB_UL
,
int
nb_rb
)
{
int
gain_dB
=
power_dBm
-
power_max_dBm
;
...
...
@@ -3039,7 +3041,7 @@ int nr_ue_pdcch_procedures(uint8_t eNB_id,
*/
LOG_D
(
PHY
,
"[UE %d] AbsSubFrame %d.%d, Mode %s: DCI found %i --> rnti %x / crnti %x : format %d
\n
"
,
ue
->
Mod_id
,
frame_rx
%
1024
,
nr_tti_rx
,
mode_string
[
ue
->
UE_mode
[
eNB_id
]],
ue
->
Mod_id
,
frame_rx
%
1024
,
nr_tti_rx
,
nr_
mode_string
[
ue
->
UE_mode
[
eNB_id
]],
dci_cnt
,
dci_alloc_rx
[
0
].
rnti
,
ue
->
pdcch_vars
[
ue
->
current_thread_id
[
nr_tti_rx
]][
eNB_id
]
->
crnti
,
...
...
@@ -3302,6 +3304,7 @@ int nr_ue_pdcch_procedures(uint8_t eNB_id,
#endif
#if 0
void copy_harq_proc_struct(NR_DL_UE_HARQ_t *harq_processes_dest, NR_DL_UE_HARQ_t *current_harq_processes)
{
...
...
@@ -3338,6 +3341,7 @@ void copy_harq_proc_struct(NR_DL_UE_HARQ_t *harq_processes_dest, NR_DL_UE_HARQ_t
harq_processes_dest->vrb_type = current_harq_processes->vrb_type ;
}
#endif
/*void copy_ack_struct(nr_harq_status_t *harq_ack_dest, nr_harq_status_t *current_harq_ack)
{
...
...
@@ -4535,7 +4539,7 @@ return (0);
}
uint8_t
is_cqi_TXOp
(
PHY_VARS_NR_UE
*
ue
,
uint8_t
nr_
is_cqi_TXOp
(
PHY_VARS_NR_UE
*
ue
,
UE_nr_rxtx_proc_t
*
proc
,
uint8_t
gNB_id
)
{
...
...
@@ -4557,7 +4561,7 @@ uint8_t is_cqi_TXOp(PHY_VARS_NR_UE *ue,
}
uint8_t
is_ri_TXOp
(
PHY_VARS_NR_UE
*
ue
,
uint8_t
nr_
is_ri_TXOp
(
PHY_VARS_NR_UE
*
ue
,
UE_nr_rxtx_proc_t
*
proc
,
uint8_t
gNB_id
)
{
...
...
openair1/SCHED_NR_UE/pucch_power_control_ue_nr.c
View file @
b9032848
...
...
@@ -33,6 +33,7 @@
#include "SCHED_NR_UE/pucch_uci_ue_nr.h"
#include "SCHED_NR_UE/pucch_power_control_ue_nr.h"
#include <openair1/PHY/LTE_ESTIMATION/lte_estimation.h>
#include <openair1/PHY/NR_UE_ESTIMATION/nr_estimation.h>
/**************** defines **************************************/
...
...
@@ -103,7 +104,7 @@ int16_t get_pucch_tx_power_ue(PHY_VARS_NR_UE *ue,
int
P_O_PUCCH
=
P_O_NOMINAL_PUCCH
+
P_O_UE_PUCCH
;
int16_t
PL
=
get_PL
(
ue
->
Mod_id
,
ue
->
CC_id
,
gNB_id
);
/* LTE function because NR path loss not yet implemented FFS TODO NR */
int16_t
PL
=
nr_
get_PL
(
ue
->
Mod_id
,
ue
->
CC_id
,
gNB_id
);
/* LTE function because NR path loss not yet implemented FFS TODO NR */
int16_t
delta_F_PUCCH
=
power_config
->
deltaF_PUCCH_f
[
pucch_format
];
...
...
openair1/SCHED_NR_UE/pucch_uci_ue_nr.c
View file @
b9032848
...
...
@@ -42,6 +42,7 @@
#ifndef NO_RAT_NR
#include "SCHED_NR_UE/defs.h"
#include "SCHED_NR_UE/harq_nr.h"
#include "SCHED_NR_UE/pucch_power_control_ue_nr.h"
...
...
@@ -53,8 +54,8 @@
uint8_t
is_cqi_TXOp
(
PHY_VARS_NR_UE
*
ue
,
UE_nr_rxtx_proc_t
*
proc
,
uint8_t
gNB_id
);
uint8_t
is_ri_TXOp
(
PHY_VARS_NR_UE
*
ue
,
UE_nr_rxtx_proc_t
*
proc
,
uint8_t
gNB_id
);
uint8_t
nr_
is_cqi_TXOp
(
PHY_VARS_NR_UE
*
ue
,
UE_nr_rxtx_proc_t
*
proc
,
uint8_t
gNB_id
);
uint8_t
nr_
is_ri_TXOp
(
PHY_VARS_NR_UE
*
ue
,
UE_nr_rxtx_proc_t
*
proc
,
uint8_t
gNB_id
);
/*
void nr_generate_pucch0(int32_t **txdataF,
NR_DL_FRAME_PARMS *frame_parms,
...
...
@@ -227,10 +228,10 @@ bool pucch_procedures_ue_nr(PHY_VARS_NR_UE *ue, uint8_t gNB_id, UE_nr_rxtx_proc_
&
n_HARQ_ACK
,
reset_harq
);
// 1 to reset ACK/NACK status : 0 otherwise
cqi_status
=
((
ue
->
cqi_report_config
[
gNB_id
].
CQI_ReportPeriodic
.
cqi_PMI_ConfigIndex
>
0
)
&&
(
is_cqi_TXOp
(
ue
,
proc
,
gNB_id
)
==
1
));
(
nr_
is_cqi_TXOp
(
ue
,
proc
,
gNB_id
)
==
1
));
ri_status
=
((
ue
->
cqi_report_config
[
gNB_id
].
CQI_ReportPeriodic
.
ri_ConfigIndex
>
0
)
&&
(
is_ri_TXOp
(
ue
,
proc
,
gNB_id
)
==
1
));
(
nr_
is_ri_TXOp
(
ue
,
proc
,
gNB_id
)
==
1
));
csi_status
=
get_csi_nr
(
ue
,
gNB_id
,
&
csi_payload
);
...
...
@@ -548,7 +549,7 @@ bool pucch_procedures_ue_nr(PHY_VARS_NR_UE *ue, uint8_t gNB_id, UE_nr_rxtx_proc_
#if defined(EXMIMO) || defined(OAI_USRP) || defined(OAI_BLADERF) || defined(OAI_LMSSDR) || defined(OAI_ADRV9371_ZC706)
tx_amp
=
get_tx_amp
(
pucch_tx_power
,
tx_amp
=
nr_
get_tx_amp
(
pucch_tx_power
,
ue
->
tx_power_max_dBm
,
ue
->
frame_parms
.
N_RB_UL
,
nb_of_prbs
);
...
...
openair2/LAYER2/NR_MAC_UE/nr_ue_procedures.c
View file @
b9032848
...
...
@@ -2208,7 +2208,7 @@ void nr_ue_process_mac_pdu(
//---------------------------------------------------------------------------------
unsigned
char
*
parse_header
(
unsigned
char
*
mac_header
,
unsigned
char
*
nr_
parse_header
(
unsigned
char
*
mac_header
,
unsigned
char
*
num_ce
,
unsigned
char
*
num_sdu
,
unsigned
char
*
rx_ces
,
...
...
@@ -2336,7 +2336,7 @@ nr_ue_send_sdu(module_id_t module_idP,
payload_ptr
=
parse_header
(
sdu
,
&
num_ce
,
&
num_sdu
,
rx_ces
,
rx_lcids
,
rx_lengths
,
nr_
parse_header
(
sdu
,
&
num_ce
,
&
num_sdu
,
rx_ces
,
rx_lcids
,
rx_lengths
,
sdu_len
);
#ifdef DEBUG_HEADER_PARSING
...
...
openair2/LAYER2/nr_rlc/nr_rlc_oai_api.c
View file @
b9032848
...
...
@@ -33,10 +33,13 @@
static
nr_rlc_ue_manager_t
*
nr_rlc_ue_manager
;
/* TODO: handle time a bit more properly */
#if 0
static uint64_t nr_rlc_current_time;
static int nr_rlc_current_time_last_frame;
static int nr_rlc_current_time_last_subframe;
#endif
#if 0
void mac_rlc_data_ind (
const module_id_t module_idP,
const rnti_t rntiP,
...
...
@@ -196,9 +199,11 @@ mac_rlc_status_resp_t mac_rlc_status_ind(
ret.head_sdu_is_segmented = 0;
return ret;
}
#endif
int
oai_emulation
;
#if 0
rlc_op_status_t rlc_data_req (const protocol_ctxt_t *const ctxt_pP,
const srb_flag_t srb_flagP,
const MBMS_flag_t MBMS_flagP,
...
...
@@ -250,7 +255,9 @@ rlc_op_status_t rlc_data_req (const protocol_ctxt_t *const ctxt_pP,
return RLC_OP_STATUS_OK;
}
#endif
#if 0
int rlc_module_init(int enb_flag)
{
static pthread_mutex_t lock = PTHREAD_MUTEX_INITIALIZER;
...
...
@@ -271,10 +278,13 @@ int rlc_module_init(int enb_flag)
return 0;
}
#endif
#if 0
void rlc_util_print_hex_octets(comp_name_t componentP, unsigned char *dataP, const signed long sizeP)
{
}
#endif
static
void
deliver_sdu
(
void
*
_ue
,
nr_rlc_entity_t
*
entity
,
char
*
buf
,
int
size
)
{
...
...
@@ -745,6 +755,7 @@ static void add_drb(int rnti, struct LTE_DRB_ToAddMod *s)
}
}
#if 0
rlc_op_status_t rrc_rlc_config_asn1_req (const protocol_ctxt_t * const ctxt_pP,
const LTE_SRB_ToAddModList_t * const srb2add_listP,
const LTE_DRB_ToAddModList_t * const drb2add_listP,
...
...
@@ -789,7 +800,9 @@ rlc_op_status_t rrc_rlc_config_asn1_req (const protocol_ctxt_t * const ctxt_pP
return RLC_OP_STATUS_OK;
}
#endif
#if 0
rlc_op_status_t rrc_rlc_config_req (
const protocol_ctxt_t* const ctxt_pP,
const srb_flag_t srb_flagP,
...
...
@@ -848,12 +861,16 @@ rlc_op_status_t rrc_rlc_config_req (
nr_rlc_manager_unlock(nr_rlc_ue_manager);
return RLC_OP_STATUS_OK;
}
#endif
#if 0
void rrc_rlc_register_rrc (rrc_data_ind_cb_t rrc_data_indP, rrc_data_conf_cb_t rrc_data_confP)
{
/* nothing to do */
}
#endif
#if 0
rlc_op_status_t rrc_rlc_remove_ue (const protocol_ctxt_t* const x)
{
LOG_D(RLC, "%s:%d:%s: remove UE %d\n", __FILE__, __LINE__, __FUNCTION__, x->rnti);
...
...
@@ -863,3 +880,4 @@ rlc_op_status_t rrc_rlc_remove_ue (const protocol_ctxt_t* const x)
return RLC_OP_STATUS_OK;
}
#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