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
Michael Black
OpenXG-RAN
Commits
acd4e395
Commit
acd4e395
authored
Jul 07, 2022
by
Roberto Louro Magueta
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Remove csi_rs_received_signal from nr_csi_rs_info_t
parent
e0e37d82
Changes
8
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
26 additions
and
28 deletions
+26
-28
openair1/PHY/INIT/nr_init_ue.c
openair1/PHY/INIT/nr_init_ue.c
+0
-3
openair1/PHY/NR_REFSIG/nr_refsig.h
openair1/PHY/NR_REFSIG/nr_refsig.h
+1
-1
openair1/PHY/NR_REFSIG/refsig_defs_ue.h
openair1/PHY/NR_REFSIG/refsig_defs_ue.h
+1
-1
openair1/PHY/NR_TRANSPORT/nr_csi_rs.c
openair1/PHY/NR_TRANSPORT/nr_csi_rs.c
+14
-14
openair1/PHY/NR_TRANSPORT/nr_transport_proto.h
openair1/PHY/NR_TRANSPORT/nr_transport_proto.h
+1
-1
openair1/PHY/NR_UE_TRANSPORT/csi_rx.c
openair1/PHY/NR_UE_TRANSPORT/csi_rx.c
+8
-6
openair1/PHY/defs_nr_common.h
openair1/PHY/defs_nr_common.h
+0
-1
openair1/SCHED_NR/phy_procedures_nr_gNB.c
openair1/SCHED_NR/phy_procedures_nr_gNB.c
+1
-1
No files found.
openair1/PHY/INIT/nr_init_ue.c
View file @
acd4e395
...
...
@@ -362,11 +362,9 @@ int init_nr_ue_signal(PHY_VARS_NR_UE *ue, int nb_connected_gNB)
for
(
i
=
0
;
i
<
NR_MAX_NB_PORTS
;
i
++
)
{
ue
->
nr_csi_rs_info
->
csi_rs_generated_signal
[
i
]
=
(
int32_t
*
)
malloc16_clear
(
fp
->
samples_per_frame_wCP
*
sizeof
(
int32_t
));
}
ue
->
nr_csi_rs_info
->
csi_rs_received_signal
=
(
int32_t
**
)
malloc16
(
fp
->
nb_antennas_rx
*
sizeof
(
int32_t
*
)
);
ue
->
nr_csi_rs_info
->
csi_rs_ls_estimated_channel
=
(
int32_t
***
)
malloc16
(
fp
->
nb_antennas_rx
*
sizeof
(
int32_t
**
)
);
ue
->
nr_csi_rs_info
->
csi_rs_estimated_channel_freq
=
(
int32_t
***
)
malloc16
(
fp
->
nb_antennas_rx
*
sizeof
(
int32_t
**
)
);
for
(
i
=
0
;
i
<
fp
->
nb_antennas_rx
;
i
++
)
{
ue
->
nr_csi_rs_info
->
csi_rs_received_signal
[
i
]
=
(
int32_t
*
)
malloc16_clear
(
fp
->
samples_per_frame_wCP
*
sizeof
(
int32_t
));
ue
->
nr_csi_rs_info
->
csi_rs_ls_estimated_channel
[
i
]
=
(
int32_t
**
)
malloc16_clear
(
NR_MAX_NB_PORTS
*
sizeof
(
int32_t
*
));
ue
->
nr_csi_rs_info
->
csi_rs_estimated_channel_freq
[
i
]
=
(
int32_t
**
)
malloc16_clear
(
NR_MAX_NB_PORTS
*
sizeof
(
int32_t
*
));
for
(
j
=
0
;
j
<
NR_MAX_NB_PORTS
;
j
++
)
{
...
...
@@ -498,7 +496,6 @@ void term_nr_ue_signal(PHY_VARS_NR_UE *ue, int nb_connected_gNB)
free_and_zero
(
ue
->
nr_csi_rs_info
->
csi_rs_generated_signal
[
i
]);
}
for
(
int
i
=
0
;
i
<
fp
->
nb_antennas_rx
;
i
++
)
{
free_and_zero
(
ue
->
nr_csi_rs_info
->
csi_rs_received_signal
[
i
]);
for
(
int
j
=
0
;
j
<
NR_MAX_NB_PORTS
;
j
++
)
{
free_and_zero
(
ue
->
nr_csi_rs_info
->
csi_rs_ls_estimated_channel
[
i
][
j
]);
free_and_zero
(
ue
->
nr_csi_rs_info
->
csi_rs_estimated_channel_freq
[
i
][
j
]);
...
...
openair1/PHY/NR_REFSIG/nr_refsig.h
View file @
acd4e395
...
...
@@ -38,7 +38,7 @@ void nr_init_pbch_dmrs(PHY_VARS_gNB* gNB);
*/
void
nr_init_pdcch_dmrs
(
PHY_VARS_gNB
*
gNB
,
uint32_t
Nid
);
void
nr_init_pdsch_dmrs
(
PHY_VARS_gNB
*
gNB
,
uint8_t
nscid
,
uint32_t
Nid
);
void
nr_init_csi_rs
(
NR_DL_FRAME_PARMS
*
fp
,
uint32_t
***
csi_rs
,
uint32_t
Nid
);
void
nr_init_csi_rs
(
const
NR_DL_FRAME_PARMS
*
fp
,
uint32_t
***
csi_rs
,
uint32_t
Nid
);
void
nr_gold_pusch
(
PHY_VARS_gNB
*
gNB
,
int
nscid
,
uint32_t
nid
);
...
...
openair1/PHY/NR_REFSIG/refsig_defs_ue.h
View file @
acd4e395
...
...
@@ -68,6 +68,6 @@ void nr_init_pusch_dmrs(PHY_VARS_NR_UE* ue,
uint16_t
N_n_scid
,
uint8_t
n_scid
);
void
nr_init_csi_rs
(
NR_DL_FRAME_PARMS
*
fp
,
uint32_t
***
csi_rs
,
uint32_t
Nid
);
void
nr_init_csi_rs
(
const
NR_DL_FRAME_PARMS
*
fp
,
uint32_t
***
csi_rs
,
uint32_t
Nid
);
#endif
openair1/PHY/NR_TRANSPORT/nr_csi_rs.c
View file @
acd4e395
...
...
@@ -27,7 +27,7 @@
//#define NR_CSIRS_DEBUG
void
nr_init_csi_rs
(
NR_DL_FRAME_PARMS
*
fp
,
uint32_t
***
csi_rs
,
uint32_t
Nid
)
{
void
nr_init_csi_rs
(
const
NR_DL_FRAME_PARMS
*
fp
,
uint32_t
***
csi_rs
,
uint32_t
Nid
)
{
uint32_t
x1
,
x2
;
uint8_t
reset
;
int
csi_dmrs_init_length
=
((
fp
->
N_RB_DL
<<
4
)
>>
5
)
+
1
;
...
...
@@ -43,7 +43,7 @@ void nr_init_csi_rs(NR_DL_FRAME_PARMS *fp, uint32_t ***csi_rs, uint32_t Nid) {
}
}
void
nr_generate_csi_rs
(
NR_DL_FRAME_PARMS
frame_parms
,
void
nr_generate_csi_rs
(
const
NR_DL_FRAME_PARMS
*
frame_parms
,
int32_t
**
dataF
,
int16_t
amp
,
nr_csi_rs_info_t
*
nr_csi_rs_info
,
...
...
@@ -67,11 +67,11 @@ void nr_generate_csi_rs(NR_DL_FRAME_PARMS frame_parms,
LOG_I
(
NR_PHY
,
"csi_params->power_control_offset_ss = %i
\n
"
,
csi_params
->
power_control_offset_ss
);
#endif
int
dataF_offset
=
slot
*
frame_parms
.
samples_per_slot_wCP
;
int
dataF_offset
=
slot
*
frame_parms
->
samples_per_slot_wCP
;
uint32_t
**
nr_gold_csi_rs
=
nr_csi_rs_info
->
nr_gold_csi_rs
[
slot
];
//*8(max allocation per RB)*2(QPSK))
int
csi_rs_length
=
frame_parms
.
N_RB_DL
<<
4
;
int16_t
mod_csi
[
frame_parms
.
symbols_per_slot
][
csi_rs_length
>>
1
]
__attribute__
((
aligned
(
16
)));
int
csi_rs_length
=
frame_parms
->
N_RB_DL
<<
4
;
int16_t
mod_csi
[
frame_parms
->
symbols_per_slot
][
csi_rs_length
>>
1
]
__attribute__
((
aligned
(
16
)));
uint16_t
b
=
csi_params
->
freq_domain
;
uint16_t
n
,
p
,
k
,
l
,
mprime
,
na
,
kpn
;
uint8_t
size
,
ports
,
kprime
,
lprime
,
i
,
gs
;
...
...
@@ -88,7 +88,7 @@ void nr_generate_csi_rs(NR_DL_FRAME_PARMS frame_parms,
// if the scrambling id is not the one previously used to initialize we need to re-initialize the rs
if
(
csi_params
->
scramb_id
!=
nr_csi_rs_info
->
csi_gold_init
)
{
nr_csi_rs_info
->
csi_gold_init
=
csi_params
->
scramb_id
;
nr_init_csi_rs
(
&
frame_parms
,
nr_csi_rs_info
->
nr_gold_csi_rs
,
csi_params
->
scramb_id
);
nr_init_csi_rs
(
frame_parms
,
nr_csi_rs_info
->
nr_gold_csi_rs
,
csi_params
->
scramb_id
);
}
switch
(
csi_params
->
row
)
{
...
...
@@ -584,7 +584,7 @@ void nr_generate_csi_rs(NR_DL_FRAME_PARMS frame_parms,
}
}
uint16_t
start_sc
=
frame_parms
.
first_carrier_offset
;
uint16_t
start_sc
=
frame_parms
->
first_carrier_offset
;
// resource mapping according to 38.211 7.4.1.5.3
for
(
n
=
csi_params
->
start_rb
;
n
<
(
csi_params
->
start_rb
+
csi_params
->
nr_of_rbs
);
n
++
)
{
...
...
@@ -593,7 +593,7 @@ void nr_generate_csi_rs(NR_DL_FRAME_PARMS frame_parms,
for
(
int
s
=
0
;
s
<
gs
;
s
++
)
{
// loop over each CDM group size
p
=
s
+
j
[
ji
]
*
gs
;
// port index
for
(
kp
=
0
;
kp
<=
kprime
;
kp
++
)
{
// loop over frequency resource elements within a group
k
=
(
start_sc
+
(
n
*
NR_NB_SC_PER_RB
)
+
koverline
[
ji
]
+
kp
)
%
(
frame_parms
.
ofdm_symbol_size
);
// frequency index of current resource element
k
=
(
start_sc
+
(
n
*
NR_NB_SC_PER_RB
)
+
koverline
[
ji
]
+
kp
)
%
(
frame_parms
->
ofdm_symbol_size
);
// frequency index of current resource element
// wf according to tables 7.4.5.3-2 to 7.4.5.3-5
if
(
kp
==
0
)
wf
=
1
;
...
...
@@ -620,17 +620,17 @@ void nr_generate_csi_rs(NR_DL_FRAME_PARMS frame_parms,
// ZP CSI RS
if
(
csi_params
->
csi_type
==
2
)
{
((
int16_t
*
)
dataF
[
p
])[((
l
*
frame_parms
.
ofdm_symbol_size
+
k
)
<<
1
)
+
(
2
*
dataF_offset
)]
=
0
;
((
int16_t
*
)
dataF
[
p
])[((
l
*
frame_parms
.
ofdm_symbol_size
+
k
)
<<
1
)
+
1
+
(
2
*
dataF_offset
)]
=
0
;
((
int16_t
*
)
dataF
[
p
])[((
l
*
frame_parms
->
ofdm_symbol_size
+
k
)
<<
1
)
+
(
2
*
dataF_offset
)]
=
0
;
((
int16_t
*
)
dataF
[
p
])[((
l
*
frame_parms
->
ofdm_symbol_size
+
k
)
<<
1
)
+
1
+
(
2
*
dataF_offset
)]
=
0
;
}
else
{
((
int16_t
*
)
dataF
[
p
])[((
l
*
frame_parms
.
ofdm_symbol_size
+
k
)
<<
1
)
+
(
2
*
dataF_offset
)]
=
(
beta
*
wt
*
wf
*
mod_csi
[
l
][
mprime
<<
1
])
>>
15
;
((
int16_t
*
)
dataF
[
p
])[((
l
*
frame_parms
.
ofdm_symbol_size
+
k
)
<<
1
)
+
1
+
(
2
*
dataF_offset
)]
=
(
beta
*
wt
*
wf
*
mod_csi
[
l
][(
mprime
<<
1
)
+
1
])
>>
15
;
((
int16_t
*
)
dataF
[
p
])[((
l
*
frame_parms
->
ofdm_symbol_size
+
k
)
<<
1
)
+
(
2
*
dataF_offset
)]
=
(
beta
*
wt
*
wf
*
mod_csi
[
l
][
mprime
<<
1
])
>>
15
;
((
int16_t
*
)
dataF
[
p
])[((
l
*
frame_parms
->
ofdm_symbol_size
+
k
)
<<
1
)
+
1
+
(
2
*
dataF_offset
)]
=
(
beta
*
wt
*
wf
*
mod_csi
[
l
][(
mprime
<<
1
)
+
1
])
>>
15
;
}
#ifdef NR_CSIRS_DEBUG
printf
(
"l,k (%d,%d) seq. index %d
\t
port %d
\t
(%d,%d)
\n
"
,
l
,
k
,
mprime
,
p
+
3000
,
((
int16_t
*
)
dataF
[
p
])[((
l
*
frame_parms
.
ofdm_symbol_size
+
k
)
<<
1
)
+
(
2
*
dataF_offset
)],
((
int16_t
*
)
dataF
[
p
])[((
l
*
frame_parms
.
ofdm_symbol_size
+
k
)
<<
1
)
+
1
+
(
2
*
dataF_offset
)]);
((
int16_t
*
)
dataF
[
p
])[((
l
*
frame_parms
->
ofdm_symbol_size
+
k
)
<<
1
)
+
(
2
*
dataF_offset
)],
((
int16_t
*
)
dataF
[
p
])[((
l
*
frame_parms
->
ofdm_symbol_size
+
k
)
<<
1
)
+
1
+
(
2
*
dataF_offset
)]);
#endif
}
}
...
...
openair1/PHY/NR_TRANSPORT/nr_transport_proto.h
View file @
acd4e395
...
...
@@ -337,7 +337,7 @@ void init_prach_ru_list(RU_t *ru);
void
free_nr_ru_prach_entry
(
RU_t
*
ru
,
int
prach_id
);
uint8_t
get_nr_prach_duration
(
uint8_t
prach_format
);
void
nr_generate_csi_rs
(
NR_DL_FRAME_PARMS
frame_parms
,
void
nr_generate_csi_rs
(
const
NR_DL_FRAME_PARMS
*
frame_parms
,
int32_t
**
dataF
,
int16_t
amp
,
nr_csi_rs_info_t
*
nr_csi_rs_info
,
...
...
openair1/PHY/NR_UE_TRANSPORT/csi_rx.c
View file @
acd4e395
...
...
@@ -178,13 +178,12 @@ int nr_get_csi_rs_signal(const PHY_VARS_NR_UE *ue,
const
UE_nr_rxtx_proc_t
*
proc
,
const
fapi_nr_dl_config_csirs_pdu_rel15_t
*
csirs_config_pdu
,
const
nr_csi_rs_info_t
*
nr_csi_rs_info
,
int32_t
**
csi_rs_received_signal
)
{
int32_t
csi_rs_received_signal
[][
ue
->
frame_parms
.
samples_per_slot_wCP
]
)
{
int32_t
**
rxdataF
=
ue
->
common_vars
.
common_vars_rx_data_per_thread
[
proc
->
thread_id
].
rxdataF
;
const
NR_DL_FRAME_PARMS
*
frame_parms
=
&
ue
->
frame_parms
;
for
(
int
ant_rx
=
0
;
ant_rx
<
frame_parms
->
nb_antennas_rx
;
ant_rx
++
)
{
memset
(
csi_rs_received_signal
[
ant_rx
],
0
,
frame_parms
->
samples_per_frame_wCP
*
sizeof
(
int32_t
));
for
(
int
rb
=
csirs_config_pdu
->
start_rb
;
rb
<
(
csirs_config_pdu
->
start_rb
+
csirs_config_pdu
->
nr_of_rbs
);
rb
++
)
{
...
...
@@ -254,7 +253,7 @@ int nr_csi_rs_channel_estimation(const PHY_VARS_NR_UE *ue,
const
fapi_nr_dl_config_csirs_pdu_rel15_t
*
csirs_config_pdu
,
const
nr_csi_rs_info_t
*
nr_csi_rs_info
,
const
int32_t
**
csi_rs_generated_signal
,
const
int32_t
**
csi_rs_received_signal
,
const
int32_t
csi_rs_received_signal
[][
ue
->
frame_parms
.
samples_per_slot_wCP
]
,
int32_t
***
csi_rs_ls_estimated_channel
,
int32_t
***
csi_rs_estimated_channel_freq
,
int16_t
*
log2_re
,
...
...
@@ -811,6 +810,9 @@ int nr_ue_csi_rs_procedures(PHY_VARS_NR_UE *ue, UE_nr_rxtx_proc_t *proc, uint8_t
LOG_I
(
NR_PHY
,
"csirs_config_pdu->power_control_offset_ss = %i
\n
"
,
csirs_config_pdu
->
power_control_offset_ss
);
#endif
const
NR_DL_FRAME_PARMS
*
frame_parms
=
&
ue
->
frame_parms
;
int32_t
csi_rs_received_signal
[
frame_parms
->
nb_antennas_rx
][
frame_parms
->
samples_per_slot_wCP
];
int16_t
log2_re
=
0
;
int16_t
log2_maxh
=
0
;
uint32_t
noise_power
=
0
;
...
...
@@ -820,7 +822,7 @@ int nr_ue_csi_rs_procedures(PHY_VARS_NR_UE *ue, UE_nr_rxtx_proc_t *proc, uint8_t
uint8_t
i1
[
3
];
uint8_t
i2
[
1
];
nr_generate_csi_rs
(
ue
->
frame_parms
,
nr_generate_csi_rs
(
frame_parms
,
ue
->
nr_csi_rs_info
->
csi_rs_generated_signal
,
AMP
,
ue
->
nr_csi_rs_info
,
...
...
@@ -831,14 +833,14 @@ int nr_ue_csi_rs_procedures(PHY_VARS_NR_UE *ue, UE_nr_rxtx_proc_t *proc, uint8_t
proc
,
csirs_config_pdu
,
ue
->
nr_csi_rs_info
,
ue
->
nr_csi_rs_info
->
csi_rs_received_signal
);
csi_rs_received_signal
);
nr_csi_rs_channel_estimation
(
ue
,
proc
,
csirs_config_pdu
,
ue
->
nr_csi_rs_info
,
(
const
int32_t
**
)
ue
->
nr_csi_rs_info
->
csi_rs_generated_signal
,
(
const
int32_t
**
)
ue
->
nr_csi_rs_info
->
csi_rs_received_signal
,
csi_rs_received_signal
,
ue
->
nr_csi_rs_info
->
csi_rs_ls_estimated_channel
,
ue
->
nr_csi_rs_info
->
csi_rs_estimated_channel_freq
,
&
log2_re
,
...
...
openair1/PHY/defs_nr_common.h
View file @
acd4e395
...
...
@@ -266,7 +266,6 @@ typedef struct {
uint32_t
***
nr_gold_csi_rs
;
uint8_t
csi_rs_generated_signal_bits
;
int32_t
**
csi_rs_generated_signal
;
int32_t
**
csi_rs_received_signal
;
int32_t
***
csi_rs_ls_estimated_channel
;
int32_t
***
csi_rs_estimated_channel_freq
;
}
nr_csi_rs_info_t
;
...
...
openair1/SCHED_NR/phy_procedures_nr_gNB.c
View file @
acd4e395
...
...
@@ -168,7 +168,7 @@ void phy_procedures_gNB_TX(processingData_L1tx_t *msgTx,
if
(
csirs
->
active
==
1
)
{
LOG_D
(
PHY
,
"CSI-RS generation started in frame %d.%d
\n
"
,
frame
,
slot
);
nfapi_nr_dl_tti_csi_rs_pdu_rel15_t
*
csi_params
=
&
csirs
->
csirs_pdu
.
csi_rs_pdu_rel15
;
nr_generate_csi_rs
(
gNB
->
frame_parms
,
gNB
->
common_vars
.
txdataF
,
AMP
,
gNB
->
nr_csi_rs_info
,
csi_params
,
slot
);
nr_generate_csi_rs
(
&
gNB
->
frame_parms
,
gNB
->
common_vars
.
txdataF
,
AMP
,
gNB
->
nr_csi_rs_info
,
csi_params
,
slot
);
csirs
->
active
=
0
;
}
}
...
...
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