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
54cc2e0b
Commit
54cc2e0b
authored
Jun 12, 2024
by
francescomani
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
preventing UE assertion on number of layers = 0 by rejecting TB earlier if that happens
parent
9055fabe
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
25 additions
and
11 deletions
+25
-11
openair1/PHY/NR_TRANSPORT/nr_tbs_tools.c
openair1/PHY/NR_TRANSPORT/nr_tbs_tools.c
+7
-6
openair1/PHY/NR_UE_TRANSPORT/nr_dlsch_decoding.c
openair1/PHY/NR_UE_TRANSPORT/nr_dlsch_decoding.c
+2
-2
openair1/SCHED_NR_UE/fapi_nr_ue_l1.c
openair1/SCHED_NR_UE/fapi_nr_ue_l1.c
+10
-2
openair2/LAYER2/NR_MAC_UE/nr_ue_scheduler.c
openair2/LAYER2/NR_MAC_UE/nr_ue_scheduler.c
+6
-1
No files found.
openair1/PHY/NR_TRANSPORT/nr_tbs_tools.c
View file @
54cc2e0b
...
...
@@ -47,16 +47,17 @@ uint32_t nr_get_G(uint16_t nb_rb,
return
(
G
);
}
uint32_t
nr_get_E
(
uint32_t
G
,
uint8_t
C
,
uint8_t
Qm
,
uint8_t
Nl
,
uint8_t
r
)
{
uint32_t
nr_get_E
(
uint32_t
G
,
uint8_t
C
,
uint8_t
Qm
,
uint8_t
Nl
,
uint8_t
r
)
{
uint32_t
E
;
uint8_t
Cprime
=
C
;
//assume CBGTI not present
AssertFatal
(
Nl
>
0
,
"Nl is 0
\n
"
);
AssertFatal
(
Qm
>
0
,
"Qm is 0
\n
"
);
if
(
r
<=
Cprime
-
((
G
/
(
Nl
*
Qm
))
%
Cprime
)
-
1
)
E
=
Nl
*
Qm
*
(
G
/
(
Nl
*
Qm
*
Cprime
));
AssertFatal
(
Nl
>
0
,
"Nl is 0
\n
"
);
AssertFatal
(
Qm
>
0
,
"Qm is 0
\n
"
);
if
(
r
<=
Cprime
-
((
G
/
(
Nl
*
Qm
))
%
Cprime
)
-
1
)
E
=
Nl
*
Qm
*
(
G
/
(
Nl
*
Qm
*
Cprime
));
else
E
=
Nl
*
Qm
*
((
G
/
(
Nl
*
Qm
*
Cprime
))
+
1
);
E
=
Nl
*
Qm
*
((
G
/
(
Nl
*
Qm
*
Cprime
))
+
1
);
LOG_D
(
PHY
,
"nr_get_E : (G %d, C %d, Qm %d, Nl %d, r %d), E %d
\n
"
,
G
,
C
,
Qm
,
Nl
,
r
,
E
);
return
E
;
...
...
openair1/PHY/NR_UE_TRANSPORT/nr_dlsch_decoding.c
View file @
54cc2e0b
...
...
@@ -375,7 +375,7 @@ uint32_t nr_dlsch_decoding(PHY_VARS_NR_UE *phy_vars_ue,
&
harq_process
->
F
,
decParams
.
BG
);
if
(
harq_process
->
C
>
MAX_NUM_NR_DLSCH_SEGMENTS_PER_LAYER
*
dlsch
->
Nl
)
{
if
(
harq_process
->
C
>
MAX_NUM_NR_DLSCH_SEGMENTS_PER_LAYER
*
dlsch
->
Nl
)
{
LOG_E
(
PHY
,
"nr_segmentation.c: too many segments %d, A %d
\n
"
,
harq_process
->
C
,
A
);
return
(
-
1
);
}
...
...
@@ -392,7 +392,7 @@ uint32_t nr_dlsch_decoding(PHY_VARS_NR_UE *phy_vars_ue,
decParams
.
numMaxIter
=
dlsch
->
max_ldpc_iterations
;
decParams
.
outMode
=
0
;
r_offset
=
0
;
uint16_t
a_segments
=
MAX_NUM_NR_DLSCH_SEGMENTS_PER_LAYER
*
dlsch
->
Nl
;
//number of segments to be allocated
uint16_t
a_segments
=
MAX_NUM_NR_DLSCH_SEGMENTS_PER_LAYER
*
dlsch
->
Nl
;
//number of segments to be allocated
if
(
nb_rb
!=
273
)
{
a_segments
=
a_segments
*
nb_rb
;
...
...
openair1/SCHED_NR_UE/fapi_nr_ue_l1.c
View file @
54cc2e0b
...
...
@@ -298,7 +298,15 @@ static void configure_dlsch(NR_UE_DLSCH_t *dlsch0,
//get nrOfLayers from DCI info
uint8_t
Nl
=
0
;
for
(
int
i
=
0
;
i
<
12
;
i
++
)
{
// max 12 ports
if
((
dlsch_config_pdu
->
dmrs_ports
>>
i
)
&
0x01
)
Nl
+=
1
;
if
((
dlsch_config_pdu
->
dmrs_ports
>>
i
)
&
0x01
)
Nl
+=
1
;
}
if
(
Nl
==
0
)
{
LOG_E
(
PHY
,
"Invalid number of layers %d for DLSCH
\n
"
,
Nl
);
// setting NACK for this TB
dlsch0
->
active
=
false
;
update_harq_status
(
mac
,
current_harq_pid
,
0
);
return
;
}
dlsch0
->
Nl
=
Nl
;
if
(
dlsch_config_pdu
->
new_data_indicator
)
{
...
...
@@ -456,7 +464,7 @@ static void nr_ue_scheduled_response_ul(PHY_VARS_NR_UE *phy, fapi_nr_ul_config_r
NR_UL_UE_HARQ_t
*
harq_process_ul_ue
=
&
phy
->
ul_harq_processes
[
current_harq_pid
];
nfapi_nr_ue_pusch_pdu_t
*
pusch_pdu
=
&
phy_data
->
ulsch
.
pusch_pdu
;
LOG_D
(
PHY
,
"copy pusch_config_pdu nrOfLayers:
%d, num_dmrs_cdm_grps_no_data:%d
\n
"
,
"copy pusch_config_pdu nrOfLayers:
%d, num_dmrs_cdm_grps_no_data: %d
\n
"
,
pdu
->
pusch_config_pdu
.
nrOfLayers
,
pdu
->
pusch_config_pdu
.
num_dmrs_cdm_grps_no_data
);
...
...
openair2/LAYER2/NR_MAC_UE/nr_ue_scheduler.c
View file @
54cc2e0b
...
...
@@ -682,7 +682,12 @@ int nr_config_pusch_pdu(NR_UE_MAC_INST_t *mac,
ul_layers_config
(
mac
,
pusch_config_pdu
,
dci
,
dci_format
);
ul_ports_config
(
mac
,
&
dmrslength
,
pusch_config_pdu
,
dci
,
dci_format
);
}
else
{
LOG_E
(
NR_MAC
,
"In %s: UL grant from DCI format %d is not handled...
\n
"
,
__FUNCTION__
,
dci_format
);
LOG_E
(
NR_MAC
,
"UL grant from DCI format %d is not handled...
\n
"
,
dci_format
);
return
-
1
;
}
if
(
pusch_config_pdu
->
nrOfLayers
<
1
)
{
LOG_E
(
NR_MAC
,
"Invalid UL number of layers %d from DCI
\n
"
,
pusch_config_pdu
->
nrOfLayers
);
return
-
1
;
}
...
...
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