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
zzha zzha
OpenXG-RAN
Commits
04b234c8
Commit
04b234c8
authored
Apr 12, 2022
by
rmagueta
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Send CSI-RS measurements from PHY to MAC at UE
parent
1d863475
Changes
10
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
59 additions
and
10 deletions
+59
-10
nfapi/open-nFAPI/nfapi/public_inc/fapi_nr_ue_constants.h
nfapi/open-nFAPI/nfapi/public_inc/fapi_nr_ue_constants.h
+1
-0
nfapi/open-nFAPI/nfapi/public_inc/fapi_nr_ue_interface.h
nfapi/open-nFAPI/nfapi/public_inc/fapi_nr_ue_interface.h
+7
-4
openair1/PHY/NR_UE_TRANSPORT/csi_rx.c
openair1/PHY/NR_UE_TRANSPORT/csi_rx.c
+17
-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
+7
-3
openair1/SIMULATION/NR_PHY/nr_dummy_functions.c
openair1/SIMULATION/NR_PHY/nr_dummy_functions.c
+1
-1
openair2/LAYER2/NR_MAC_UE/mac_defs.h
openair2/LAYER2/NR_MAC_UE/mac_defs.h
+3
-0
openair2/LAYER2/NR_MAC_UE/mac_proto.h
openair2/LAYER2/NR_MAC_UE/mac_proto.h
+1
-0
openair2/LAYER2/NR_MAC_UE/nr_ue_procedures.c
openair2/LAYER2/NR_MAC_UE/nr_ue_procedures.c
+10
-0
openair2/NR_UE_PHY_INTERFACE/NR_IF_Module.c
openair2/NR_UE_PHY_INTERFACE/NR_IF_Module.c
+11
-1
No files found.
nfapi/open-nFAPI/nfapi/public_inc/fapi_nr_ue_constants.h
View file @
04b234c8
...
...
@@ -19,6 +19,7 @@
#define FAPI_NR_RX_PDU_TYPE_DLSCH 0x03
#define FAPI_NR_DCI_IND 0x04
#define FAPI_NR_RX_PDU_TYPE_RAR 0x05
#define FAPI_NR_CSIRS_IND 0x06
#define FAPI_NR_SIBS_MASK_SIB1 0x1
...
...
nfapi/open-nFAPI/nfapi/public_inc/fapi_nr_ue_interface.h
View file @
04b234c8
...
...
@@ -36,9 +36,6 @@
*/
typedef
struct
{
uint8_t
uci_format
;
uint8_t
uci_channel
;
...
...
@@ -50,7 +47,12 @@ typedef struct {
uint32_t
sr
;
}
fapi_nr_uci_pdu_rel15_t
;
typedef
struct
{
uint8_t
*
rank_indicator
;
uint8_t
*
i1
;
uint8_t
*
i2
;
uint8_t
*
cqi
;
}
fapi_nr_csirs_measurements_t
;
typedef
struct
{
/// frequency_domain_resource;
...
...
@@ -130,6 +132,7 @@ typedef struct {
fapi_nr_pdsch_pdu_t
pdsch_pdu
;
fapi_nr_ssb_pdu_t
ssb_pdu
;
fapi_nr_sib_pdu_t
sib_pdu
;
fapi_nr_csirs_measurements_t
csirs_measurements
;
};
}
fapi_nr_rx_indication_body_t
;
...
...
openair1/PHY/NR_UE_TRANSPORT/csi_rx.c
View file @
04b234c8
...
...
@@ -676,5 +676,22 @@ int nr_ue_csi_rs_procedures(PHY_VARS_NR_UE *ue, UE_nr_rxtx_proc_t *proc, uint8_t
*
ue
->
nr_csi_rs_info
->
precoded_sinr_dB
,
*
ue
->
nr_csi_rs_info
->
cqi
);
// Send CSI measurements to MAC
fapi_nr_csirs_measurements_t
csirs_measurements
;
csirs_measurements
.
rank_indicator
=
ue
->
nr_csi_rs_info
->
rank_indicator
;
csirs_measurements
.
i1
=
ue
->
nr_csi_rs_info
->
i1
;
csirs_measurements
.
i2
=
ue
->
nr_csi_rs_info
->
i2
;
csirs_measurements
.
cqi
=
ue
->
nr_csi_rs_info
->
cqi
;
nr_downlink_indication_t
*
dl_indication
=
calloc
(
sizeof
(
*
dl_indication
),
1
);
fapi_nr_rx_indication_t
*
rx_ind
=
calloc
(
sizeof
(
*
rx_ind
),
1
);
nr_fill_dl_indication
(
dl_indication
,
NULL
,
rx_ind
,
proc
,
ue
,
gNB_id
);
nr_fill_rx_indication
(
rx_ind
,
FAPI_NR_CSIRS_IND
,
gNB_id
,
ue
,
NULL
,
NULL
,
1
,
proc
,
(
void
*
)
&
csirs_measurements
);
if
(
ue
->
if_inst
&&
ue
->
if_inst
->
dl_indication
)
{
ue
->
if_inst
->
dl_indication
(
dl_indication
,
NULL
);
}
else
{
free
(
dl_indication
);
free
(
rx_ind
);
}
return
0
;
}
openair1/SCHED_NR_UE/defs.h
View file @
04b234c8
...
...
@@ -402,7 +402,7 @@ void nr_fill_rx_indication(fapi_nr_rx_indication_t *rx_ind,
NR_UE_DLSCH_t
*
dlsch1
,
uint16_t
n_pdus
,
UE_nr_rxtx_proc_t
*
proc
,
void
*
typeSpecific
);
void
*
typeSpecific
);
bool
nr_ue_dlsch_procedures
(
PHY_VARS_NR_UE
*
ue
,
UE_nr_rxtx_proc_t
*
proc
,
...
...
openair1/SCHED_NR_UE/phy_procedures_nr_ue.c
View file @
04b234c8
...
...
@@ -118,9 +118,8 @@ void nr_fill_rx_indication(fapi_nr_rx_indication_t *rx_ind,
NR_UE_DLSCH_t
*
dlsch0
,
NR_UE_DLSCH_t
*
dlsch1
,
uint16_t
n_pdus
,
UE_nr_rxtx_proc_t
*
proc
,
void
*
typeSpecific
){
UE_nr_rxtx_proc_t
*
proc
,
void
*
typeSpecific
){
NR_DL_FRAME_PARMS
*
frame_parms
=
&
ue
->
frame_parms
;
...
...
@@ -174,6 +173,11 @@ void nr_fill_rx_indication(fapi_nr_rx_indication_t *rx_ind,
rx_ind
->
rx_indication_body
[
n_pdus
-
1
].
ssb_pdu
.
ssb_start_subcarrier
=
frame_parms
->
ssb_start_subcarrier
;
rx_ind
->
rx_indication_body
[
n_pdus
-
1
].
ssb_pdu
.
rsrp_dBm
=
ue
->
measurements
.
rsrp_dBm
[
gNB_id
];
break
;
case
FAPI_NR_CSIRS_IND
:
memcpy
(
&
rx_ind
->
rx_indication_body
[
n_pdus
-
1
].
csirs_measurements
,
(
fapi_nr_csirs_measurements_t
*
)
typeSpecific
,
sizeof
(
*
(
fapi_nr_csirs_measurements_t
*
)
typeSpecific
));
break
;
default:
break
;
}
...
...
openair1/SIMULATION/NR_PHY/nr_dummy_functions.c
View file @
04b234c8
...
...
@@ -37,4 +37,4 @@ void nr_fill_rx_indication(fapi_nr_rx_indication_t *rx_ind,
NR_UE_DLSCH_t
*
dlsch1
,
uint16_t
n_pdus
,
UE_nr_rxtx_proc_t
*
proc
,
void
*
typeSpecific
)
{}
void
*
typeSpecific
)
{}
openair2/LAYER2/NR_MAC_UE/mac_defs.h
View file @
04b234c8
...
...
@@ -399,6 +399,9 @@ typedef struct {
/// measured SSB RSRP in dBm
short
ssb_rsrp_dBm
;
/// measurements from CSI-RS
fapi_nr_csirs_measurements_t
csirs_measurements
;
/// Last NDI of UL HARQ processes
uint8_t
UL_ndi
[
NR_MAX_HARQ_PROCESSES
];
/// first ULTX of UL HARQ processes
...
...
openair2/LAYER2/NR_MAC_UE/mac_proto.h
View file @
04b234c8
...
...
@@ -193,6 +193,7 @@ int nr_get_sf_retxBSRTimer(uint8_t retxBSR_Timer);
int8_t
nr_ue_process_dci
(
module_id_t
module_id
,
int
cc_id
,
uint8_t
gNB_index
,
frame_t
frame
,
int
slot
,
dci_pdu_rel15_t
*
dci
,
fapi_nr_dci_indication_pdu_t
*
dci_ind
);
int
nr_ue_process_dci_indication_pdu
(
module_id_t
module_id
,
int
cc_id
,
int
gNB_index
,
frame_t
frame
,
int
slot
,
fapi_nr_dci_indication_pdu_t
*
dci
);
int8_t
nr_ue_process_csirs_measurements
(
module_id_t
module_id
,
frame_t
frame
,
int
slot
,
fapi_nr_csirs_measurements_t
*
csirs_measurements
);
uint32_t
get_ssb_frame
(
uint32_t
test
);
...
...
openair2/LAYER2/NR_MAC_UE/nr_ue_procedures.c
View file @
04b234c8
...
...
@@ -1371,6 +1371,16 @@ int8_t nr_ue_process_dci(module_id_t module_id, int cc_id, uint8_t gNB_index, fr
}
int8_t
nr_ue_process_csirs_measurements
(
module_id_t
module_id
,
frame_t
frame
,
int
slot
,
fapi_nr_csirs_measurements_t
*
csirs_measurements
)
{
LOG_D
(
NR_MAC
,
"(%d.%d) Received CSI-RS measurements
\n
"
,
frame
,
slot
);
NR_UE_MAC_INST_t
*
mac
=
get_mac_inst
(
module_id
);
memcpy
(
&
mac
->
csirs_measurements
,
csirs_measurements
,
sizeof
(
*
csirs_measurements
));
return
0
;
}
void
set_harq_status
(
NR_UE_MAC_INST_t
*
mac
,
uint8_t
pucch_id
,
uint8_t
harq_id
,
...
...
openair2/NR_UE_PHY_INTERFACE/NR_IF_Module.c
View file @
04b234c8
...
...
@@ -1112,6 +1112,10 @@ int8_t handle_dlsch(nr_downlink_indication_t *dl_info, NR_UL_TIME_ALIGNMENT_t *u
return
0
;
}
int8_t
handle_csirs_measurements
(
module_id_t
module_id
,
frame_t
frame
,
int
slot
,
fapi_nr_csirs_measurements_t
*
csirs_measurements
)
{
return
nr_ue_process_csirs_measurements
(
module_id
,
frame
,
slot
,
csirs_measurements
);
}
void
update_harq_status
(
module_id_t
module_id
,
uint8_t
harq_pid
,
uint8_t
ack_nack
)
{
NR_UE_MAC_INST_t
*
mac
=
get_mac_inst
(
module_id
);
...
...
@@ -1236,7 +1240,7 @@ int nr_ue_dl_indication(nr_downlink_indication_t *dl_info, NR_UL_TIME_ALIGNMENT_
(
dl_info
->
rx_ind
->
rx_indication_body
+
i
)
->
ssb_pdu
.
ssb_length
,
(
dl_info
->
rx_ind
->
rx_indication_body
+
i
)
->
ssb_pdu
.
ssb_start_subcarrier
,
(
dl_info
->
rx_ind
->
rx_indication_body
+
i
)
->
ssb_pdu
.
cell_id
))
<<
FAPI_NR_RX_PDU_TYPE_SSB
;
free
((
dl_info
->
rx_ind
->
rx_indication_body
+
i
)
->
ssb_pdu
.
pdu
);
free
((
dl_info
->
rx_ind
->
rx_indication_body
+
i
)
->
ssb_pdu
.
pdu
);
break
;
case
FAPI_NR_RX_PDU_TYPE_SIB
:
ret_mask
|=
(
handle_bcch_dlsch
(
dl_info
->
module_id
,
...
...
@@ -1251,6 +1255,12 @@ int nr_ue_dl_indication(nr_downlink_indication_t *dl_info, NR_UL_TIME_ALIGNMENT_
case
FAPI_NR_RX_PDU_TYPE_RAR
:
ret_mask
|=
(
handle_dlsch
(
dl_info
,
ul_time_alignment
,
i
))
<<
FAPI_NR_RX_PDU_TYPE_RAR
;
break
;
case
FAPI_NR_CSIRS_IND
:
ret_mask
|=
(
handle_csirs_measurements
(
dl_info
->
module_id
,
dl_info
->
frame
,
dl_info
->
slot
,
&
(
dl_info
->
rx_ind
->
rx_indication_body
+
i
)
->
csirs_measurements
))
<<
FAPI_NR_CSIRS_IND
;
break
;
default:
break
;
}
...
...
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