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
littleBu
OpenXG-RAN
Commits
73281a43
Commit
73281a43
authored
4 years ago
by
Hongzhi Wang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
ue computing csi bit length from rrc
parent
4b4304b5
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
48 additions
and
4 deletions
+48
-4
openair1/SCHED_NR_UE/pucch_uci_ue_nr.c
openair1/SCHED_NR_UE/pucch_uci_ue_nr.c
+45
-3
openair1/SCHED_NR_UE/pucch_uci_ue_nr.h
openair1/SCHED_NR_UE/pucch_uci_ue_nr.h
+3
-1
No files found.
openair1/SCHED_NR_UE/pucch_uci_ue_nr.c
View file @
73281a43
...
...
@@ -282,7 +282,7 @@ bool pucch_procedures_ue_nr(PHY_VARS_NR_UE *ue, uint8_t gNB_id, UE_nr_rxtx_proc_
(
nr_is_ri_TXOp
(
ue
,
proc
,
gNB_id
)
==
1
));
//if (mac->csirc->reportQuantity.choice.ssb_Index_RSRP){
csi_status
=
get_csi_nr
(
ue
,
gNB_id
,
&
csi_payload
);
csi_status
=
get_csi_nr
(
mac
,
ue
,
gNB_id
,
&
csi_payload
);
//}
O_CSI
=
cqi_status
+
ri_status
+
csi_status
;
...
...
@@ -1299,15 +1299,57 @@ uint32_t dummy_csi_payload = 0;
/* FFS TODO_NR code that should be developed */
int
get_csi_nr
(
PHY_VARS_NR_UE
*
ue
,
uint8_t
gNB_id
,
uint32_t
*
csi_payload
)
uint16_t
get_csi_bitlen
(
NR_UE_MAC_INST_t
*
mac
)
{
uint16_t
csi_bitlen
=
0
;
uint16_t
rsrp_bitlen
=
0
;
uint16_t
diff_rsrp_bitlen
=
0
;
uint16_t
nb_ssbri_cri
=
0
;
uint16_t
cri_ssbri_bitlen
=
0
;
NR_CSI_MeasConfig_t
*
csi_MeasConfig
=
mac
->
scg
->
spCellConfig
->
spCellConfigDedicated
->
csi_MeasConfig
->
choice
.
setup
;
struct
NR_CSI_ResourceConfig__csi_RS_ResourceSetList__nzp_CSI_RS_SSB
*
nzp_CSI_RS_SSB
=
csi_MeasConfig
->
csi_ResourceConfigToAddModList
->
list
.
array
[
0
]
->
csi_RS_ResourceSetList
.
choice
.
nzp_CSI_RS_SSB
;
uint16_t
nb_csi_ssb_report
=
nzp_CSI_RS_SSB
->
csi_SSB_ResourceSetList
!=
NULL
?
nzp_CSI_RS_SSB
->
csi_SSB_ResourceSetList
->
list
.
count
:
0
;
if
(
0
!=
nb_csi_ssb_report
){
uint8_t
nb_ssb_resources
=
0
;
if
(
NULL
!=
csi_MeasConfig
->
csi_ReportConfigToAddModList
->
list
.
array
[
0
]
->
groupBasedBeamReporting
.
choice
.
disabled
->
nrofReportedRS
)
nb_ssbri_cri
=
*
(
csi_MeasConfig
->
csi_ReportConfigToAddModList
->
list
.
array
[
0
]
->
groupBasedBeamReporting
.
choice
.
disabled
->
nrofReportedRS
)
+
1
;
else
nb_ssbri_cri
=
1
;
nb_ssb_resources
=
csi_MeasConfig
->
csi_SSB_ResourceSetToAddModList
->
list
.
array
[
0
]
->
csi_SSB_ResourceList
.
list
.
count
;
if
(
nb_ssb_resources
){
cri_ssbri_bitlen
=
ceil
(
log2
(
nb_ssb_resources
));
rsrp_bitlen
=
7
;
diff_rsrp_bitlen
=
4
;
}
else
{
cri_ssbri_bitlen
=
0
;
rsrp_bitlen
=
0
;
diff_rsrp_bitlen
=
0
;
}
csi_bitlen
=
((
cri_ssbri_bitlen
*
nb_ssbri_cri
)
+
rsrp_bitlen
+
(
diff_rsrp_bitlen
*
(
nb_ssbri_cri
-
1
)))
*
nb_csi_ssb_report
;
printf
(
"get csi bitlen %d nb_ssbri_cri %d nb_csi_report %d nb_resources %d
\n
"
,
csi_bitlen
,
nb_ssbri_cri
,
nb_csi_ssb_report
,
nb_ssb_resources
);
}
return
csi_bitlen
;
}
int
get_csi_nr
(
NR_UE_MAC_INST_t
*
mac
,
PHY_VARS_NR_UE
*
ue
,
uint8_t
gNB_id
,
uint32_t
*
csi_payload
)
{
VOID_PARAMETER
ue
;
VOID_PARAMETER
gNB_id
;
float
rsrp_db
[
7
];
int
nElem
=
98
;
int
rsrp_offset
=
17
;
int
csi_status
=
11
;
int
csi_status
=
0
;
csi_status
=
get_csi_bitlen
(
mac
);
rsrp_db
[
0
]
=
get_nr_RSRP
(
0
,
0
,
0
);
...
...
This diff is collapsed.
Click to expand it.
openair1/SCHED_NR_UE/pucch_uci_ue_nr.h
View file @
73281a43
...
...
@@ -331,12 +331,14 @@ int trigger_periodic_scheduling_request(PHY_VARS_NR_UE *ue, uint8_t gNB_id, UE_n
@param csi_payload is updated with CSI
@returns number of bits of CSI */
int
get_csi_nr
(
PHY_VARS_NR_UE
*
ue
,
uint8_t
gNB_id
,
uint32_t
*
csi_payload
);
int
get_csi_nr
(
NR_UE_MAC_INST_t
*
mac
,
PHY_VARS_NR_UE
*
ue
,
uint8_t
gNB_id
,
uint32_t
*
csi_payload
);
/** \brief This dummy function sets current CSI for simulation
@param csi_status
@param csi_payload is updated with CSI
@returns none */
uint16_t
get_csi_bitlen
(
NR_UE_MAC_INST_t
*
mac
);
void
set_csi_nr
(
int
csi_status
,
uint32_t
csi_payload
);
...
...
This diff is collapsed.
Click to expand it.
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