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
0f254383
Commit
0f254383
authored
Sep 15, 2023
by
Raphael Defosseux
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/ULSCH-TB-CRC' into integration_2023_w37
parents
cc57fea7
bc295b3b
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
29 additions
and
2 deletions
+29
-2
openair1/PHY/NR_TRANSPORT/nr_ulsch_decoding.c
openair1/PHY/NR_TRANSPORT/nr_ulsch_decoding.c
+15
-0
openair1/SCHED_NR/phy_procedures_nr_gNB.c
openair1/SCHED_NR/phy_procedures_nr_gNB.c
+14
-2
No files found.
openair1/PHY/NR_TRANSPORT/nr_ulsch_decoding.c
View file @
0f254383
...
...
@@ -463,7 +463,22 @@ int nr_ulsch_decoding(PHY_VARS_gNB *phy_vars_gNB,
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_gNB_ULSCH_DECODING
,
0
);
bool
crc_valid
=
false
;
if
(
harq_process
->
processedSegments
==
harq_process
->
C
)
{
// When the number of code blocks is 1 (C = 1) and ulsch_harq->processedSegments = 1, we can assume a good TB because of the
// CRC check made by the LDPC for early termination, so, no need to perform CRC check twice for a single code block
crc_valid
=
true
;
if
(
harq_process
->
C
>
1
)
{
// Check ULSCH transport block CRC
crc_type
=
CRC16
;
if
(
A
>
3824
)
{
crc_type
=
CRC24_A
;
}
crc_valid
=
check_crc
(
harq_process
->
b
,
harq_process
->
B
,
crc_type
);
}
}
if
(
crc_valid
)
{
LOG_D
(
PHY
,
"[gNB %d] ULSCH: Setting ACK for slot %d TBS %d
\n
"
,
phy_vars_gNB
->
Mod_id
,
ulsch
->
slot
,
harq_process
->
TBS
);
ulsch
->
active
=
false
;
harq_process
->
round
=
0
;
...
...
openair1/SCHED_NR/phy_procedures_nr_gNB.c
View file @
0f254383
...
...
@@ -261,8 +261,20 @@ static void nr_postDecode(PHY_VARS_gNB *gNB, notifiedFIFO_elt_t *req)
//int dumpsig=0;
// if all segments are done
if
(
rdata
->
nbSegments
==
ulsch_harq
->
processedSegments
)
{
if
(
!
check_abort
(
&
ulsch_harq
->
abort_decode
)
&&
!
gNB
->
pusch_vars
[
rdata
->
ulsch_id
].
DTX
)
{
if
(
ulsch_harq
->
processedSegments
==
ulsch_harq
->
C
)
{
// When the number of code blocks is 1 (C = 1) and ulsch_harq->processedSegments = 1, we can assume a good TB because of the
// CRC check made by the LDPC for early termination, so, no need to perform CRC check twice for a single code block
bool
crc_valid
=
true
;
if
(
ulsch_harq
->
C
>
1
)
{
// Check ULSCH transport block CRC
int
crc_type
=
CRC16
;
if
(
rdata
->
A
>
3824
)
{
crc_type
=
CRC24_A
;
}
crc_valid
=
check_crc
(
ulsch_harq
->
b
,
ulsch_harq
->
B
,
crc_type
);
}
if
(
crc_valid
&&
!
check_abort
(
&
ulsch_harq
->
abort_decode
)
&&
!
gNB
->
pusch_vars
[
rdata
->
ulsch_id
].
DTX
)
{
LOG_D
(
PHY
,
"[gNB %d] ULSCH: Setting ACK for SFN/SF %d.%d (rnti %x, pid %d, ndi %d, status %d, round %d, TBS %d, Max interation "
"(all seg) %d)
\n
"
,
...
...
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