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
49f1fc36
Commit
49f1fc36
authored
Nov 24, 2021
by
hardy
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/remove_ratematching_assertion' into integration_2021_wk47_b
parents
5319d220
b4acb028
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
60 additions
and
52 deletions
+60
-52
openair1/PHY/CODING/nr_rate_matching.c
openair1/PHY/CODING/nr_rate_matching.c
+19
-14
openair1/PHY/NR_TRANSPORT/nr_dlsch.c
openair1/PHY/NR_TRANSPORT/nr_dlsch.c
+9
-11
openair1/PHY/NR_TRANSPORT/nr_dlsch.h
openair1/PHY/NR_TRANSPORT/nr_dlsch.h
+3
-3
openair1/PHY/NR_TRANSPORT/nr_dlsch_coding.c
openair1/PHY/NR_TRANSPORT/nr_dlsch_coding.c
+13
-11
openair1/PHY/NR_UE_TRANSPORT/nr_ulsch_coding.c
openair1/PHY/NR_UE_TRANSPORT/nr_ulsch_coding.c
+14
-12
openair1/PHY/NR_UE_TRANSPORT/nr_ulsch_ue.c
openair1/PHY/NR_UE_TRANSPORT/nr_ulsch_ue.c
+2
-1
No files found.
openair1/PHY/CODING/nr_rate_matching.c
View file @
49f1fc36
...
...
@@ -388,7 +388,7 @@ int nr_rate_matching_ldpc(uint8_t Ilbrm,
uint32_t
Ncb
,
ind
,
k
=
0
,
Nref
,
N
;
if
(
C
==
0
)
{
printf
(
"nr_rate_matching: invalid parameters (C %d
\n
"
,
C
);
LOG_E
(
PHY
,
"nr_rate_matching: invalid parameters (C %d
\n
"
,
C
);
return
-
1
;
}
...
...
@@ -407,16 +407,15 @@ int nr_rate_matching_ldpc(uint8_t Ilbrm,
#ifdef RM_DEBUG
printf
(
"nr_rate_matching_ldpc: E %d, F %d, Foffset %d, k0 %d, Ncb %d, rvidx %d
\n
"
,
E
,
F
,
Foffset
,
ind
,
Ncb
,
rvidx
);
#endif
AssertFatal
(
Foffset
<=
E
,
"Foffset %d > E %d "
"(Ilbrm %d, Tbslbrm %d, Z %d, BG %d, C %d)
\n
"
,
Foffset
,
E
,
Ilbrm
,
Tbslbrm
,
Z
,
BG
,
C
);
AssertFatal
(
Foffset
<=
Ncb
,
"Foffset %d > Ncb %d "
"(Ilbrm %d, Tbslbrm %d, Z %d, BG %d, C %d)
\n
"
,
Foffset
,
Ncb
,
Ilbrm
,
Tbslbrm
,
Z
,
BG
,
C
);
if
(
Foffset
>
E
)
{
LOG_E
(
PHY
,
"nr_rate_matching: invalid parameters (Foffset %d > E %d)
\n
"
,
Foffset
,
E
);
return
-
1
;
}
if
(
Foffset
>
Ncb
)
{
LOG_E
(
PHY
,
"nr_rate_matching: invalid parameters (Foffset %d > Ncb %d)
\n
"
,
Foffset
,
Ncb
);
return
-
1
;
}
if
(
ind
>=
Foffset
&&
ind
<
(
F
+
Foffset
))
ind
=
F
+
Foffset
;
...
...
@@ -478,7 +477,7 @@ int nr_rate_matching_ldpc_rx(uint8_t Ilbrm,
#endif
if
(
C
==
0
)
{
printf
(
"nr_rate_matching: invalid parameters (C %d
\n
"
,
C
);
LOG_E
(
PHY
,
"nr_rate_matching: invalid parameters (C %d
\n
"
,
C
);
return
-
1
;
}
...
...
@@ -493,8 +492,14 @@ int nr_rate_matching_ldpc_rx(uint8_t Ilbrm,
}
ind
=
(
index_k0
[
BG
-
1
][
rvidx
]
*
Ncb
/
N
)
*
Z
;
AssertFatal
(
Foffset
<=
E
,
"Foffset %d > E %d
\n
"
,
Foffset
,
E
);
AssertFatal
(
Foffset
<=
Ncb
,
"Foffset %d > Ncb %d
\n
"
,
Foffset
,
Ncb
);
if
(
Foffset
>
E
)
{
LOG_E
(
PHY
,
"nr_rate_matching: invalid parameters (Foffset %d > E %d)
\n
"
,
Foffset
,
E
);
return
-
1
;
}
if
(
Foffset
>
Ncb
)
{
LOG_E
(
PHY
,
"nr_rate_matching: invalid parameters (Foffset %d > Ncb %d)
\n
"
,
Foffset
,
Ncb
);
return
-
1
;
}
#ifdef RM_DEBUG
printf
(
"nr_rate_matching_ldpc_rx: Clear %d, E %d, k0 %d, Ncb %d, rvidx %d
\n
"
,
clear
,
E
,
ind
,
Ncb
,
rvidx
);
...
...
openair1/PHY/NR_TRANSPORT/nr_dlsch.c
View file @
49f1fc36
...
...
@@ -111,9 +111,9 @@ void nr_pdsch_codeword_scrambling_optim(uint8_t *in,
}
uint8_t
nr_generate_pdsch
(
processingData_L1tx_t
*
msgTx
,
int
frame
,
int
slot
)
{
void
nr_generate_pdsch
(
processingData_L1tx_t
*
msgTx
,
int
frame
,
int
slot
)
{
PHY_VARS_gNB
*
gNB
=
msgTx
->
gNB
;
NR_gNB_DLSCH_t
*
dlsch
;
...
...
@@ -181,11 +181,12 @@ uint8_t nr_generate_pdsch(processingData_L1tx_t *msgTx,
/// CRC, coding, interleaving and rate matching
AssertFatal
(
harq
->
pdu
!=
NULL
,
"harq->pdu is null
\n
"
);
start_meas
(
dlsch_encoding_stats
);
nr_dlsch_encoding
(
gNB
,
harq
->
pdu
,
frame
,
slot
,
dlsch
,
frame_parms
,
tinput
,
tprep
,
tparity
,
toutput
,
dlsch_rate_matching_stats
,
dlsch_interleaving_stats
,
dlsch_segmentation_stats
);
if
(
nr_dlsch_encoding
(
gNB
,
harq
->
pdu
,
frame
,
slot
,
dlsch
,
frame_parms
,
tinput
,
tprep
,
tparity
,
toutput
,
dlsch_rate_matching_stats
,
dlsch_interleaving_stats
,
dlsch_segmentation_stats
)
==
-
1
)
return
;
stop_meas
(
dlsch_encoding_stats
);
#ifdef DEBUG_DLSCH
printf
(
"PDSCH encoding:
\n
Payload:
\n
"
);
...
...
@@ -522,9 +523,6 @@ uint8_t nr_generate_pdsch(processingData_L1tx_t *msgTx,
LOG_D
(
PHY
,
"beam index for PDSCH allocation already taken
\n
"
);
}
}
// dlsch loop
return
0
;
}
void
dump_pdsch_stats
(
FILE
*
fd
,
PHY_VARS_gNB
*
gNB
)
{
...
...
openair1/PHY/NR_TRANSPORT/nr_dlsch.h
View file @
49f1fc36
...
...
@@ -67,9 +67,9 @@ void nr_fill_dlsch(processingData_L1tx_t *msgTx,
nfapi_nr_dl_tti_pdsch_pdu
*
pdsch_pdu
,
unsigned
char
*
sdu
);
uint8_t
nr_generate_pdsch
(
processingData_L1tx_t
*
msgTx
,
int
frame
,
int
slot
);
void
nr_generate_pdsch
(
processingData_L1tx_t
*
msgTx
,
int
frame
,
int
slot
);
void
free_gNB_dlsch
(
NR_gNB_DLSCH_t
**
dlschptr
,
uint16_t
N_RB
);
void
clean_gNB_dlsch
(
NR_gNB_DLSCH_t
*
dlsch
);
...
...
openair1/PHY/NR_TRANSPORT/nr_dlsch_coding.c
View file @
49f1fc36
...
...
@@ -427,17 +427,19 @@ int nr_dlsch_encoding(PHY_VARS_gNB *gNB,
Tbslbrm
=
nr_compute_tbslbrm
(
rel15
->
mcsTable
[
0
],
nb_rb
,
Nl
);
start_meas
(
dlsch_rate_matching_stats
);
nr_rate_matching_ldpc
(
Ilbrm
,
Tbslbrm
,
harq
->
BG
,
*
Zc
,
harq
->
d
[
r
],
harq
->
e
+
r_offset
,
harq
->
C
,
F
,
Kr
-
F
-
2
*
(
*
Zc
),
rel15
->
rvIndex
[
0
],
E
);
if
(
nr_rate_matching_ldpc
(
Ilbrm
,
Tbslbrm
,
harq
->
BG
,
*
Zc
,
harq
->
d
[
r
],
harq
->
e
+
r_offset
,
harq
->
C
,
F
,
Kr
-
F
-
2
*
(
*
Zc
),
rel15
->
rvIndex
[
0
],
E
)
==
-
1
)
return
-
1
;
stop_meas
(
dlsch_rate_matching_stats
);
#ifdef DEBUG_DLSCH_CODING
for
(
int
i
=
0
;
i
<
16
;
i
++
)
...
...
openair1/PHY/NR_UE_TRANSPORT/nr_ulsch_coding.c
View file @
49f1fc36
...
...
@@ -274,7 +274,7 @@ int nr_ulsch_encoding(PHY_VARS_NR_UE *ue,
#ifdef DEBUG_ULSCH_CODING
printf
(
"encoding thinks this is a new packet
\n
"
);
#endif
harq_process
->
first_tx
=
0
;
harq_process
->
first_tx
=
0
;
///////////////////////// a---->| add CRC |---->b /////////////////////////
///////////
/*
...
...
@@ -445,17 +445,19 @@ int nr_ulsch_encoding(PHY_VARS_NR_UE *ue,
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_NR_RATE_MATCHING_LDPC
,
VCD_FUNCTION_IN
);
start_meas
(
&
ue
->
ulsch_rate_matching_stats
);
nr_rate_matching_ldpc
(
Ilbrm
,
Tbslbrm
,
harq_process
->
BG
,
*
pz
,
harq_process
->
d
[
r
],
harq_process
->
e
+
r_offset
,
harq_process
->
C
,
F
,
Kr
-
F
-
2
*
(
*
pz
),
harq_process
->
pusch_pdu
.
pusch_data
.
rv_index
,
E
);
if
(
nr_rate_matching_ldpc
(
Ilbrm
,
Tbslbrm
,
harq_process
->
BG
,
*
pz
,
harq_process
->
d
[
r
],
harq_process
->
e
+
r_offset
,
harq_process
->
C
,
F
,
Kr
-
F
-
2
*
(
*
pz
),
harq_process
->
pusch_pdu
.
pusch_data
.
rv_index
,
E
)
==
-
1
)
return
-
1
;
stop_meas
(
&
ue
->
ulsch_rate_matching_stats
);
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_NR_RATE_MATCHING_LDPC
,
VCD_FUNCTION_OUT
);
...
...
openair1/PHY/NR_UE_TRANSPORT/nr_ulsch_ue.c
View file @
49f1fc36
...
...
@@ -162,7 +162,8 @@ void nr_ue_ulsch_procedures(PHY_VARS_NR_UE *UE,
nb_dmrs_re_per_rb
,
number_dmrs_symbols
,
mod_order
,
Nl
);
nr_ulsch_encoding
(
UE
,
ulsch_ue
,
frame_parms
,
harq_pid
,
G
);
if
(
nr_ulsch_encoding
(
UE
,
ulsch_ue
,
frame_parms
,
harq_pid
,
G
)
==
-
1
)
return
;
///////////
////////////////////////////////////////////////////////////////////
...
...
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