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
lizhongxiao
OpenXG-RAN
Commits
65d03185
Commit
65d03185
authored
Mar 25, 2022
by
francescomani
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
using tbslbrm at mac also for ulsch as in scf spec
parent
8fbe727b
Changes
9
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
19 additions
and
25 deletions
+19
-25
nfapi/open-nFAPI/nfapi/public_inc/nfapi_nr_interface_scf.h
nfapi/open-nFAPI/nfapi/public_inc/nfapi_nr_interface_scf.h
+5
-1
openair1/PHY/CODING/coding_defs.h
openair1/PHY/CODING/coding_defs.h
+2
-4
openair1/PHY/CODING/nr_rate_matching.c
openair1/PHY/CODING/nr_rate_matching.c
+4
-6
openair1/PHY/NR_TRANSPORT/nr_dlsch_coding.c
openair1/PHY/NR_TRANSPORT/nr_dlsch_coding.c
+1
-3
openair1/PHY/NR_TRANSPORT/nr_ulsch_decoding.c
openair1/PHY/NR_TRANSPORT/nr_ulsch_decoding.c
+2
-4
openair1/PHY/NR_UE_TRANSPORT/nr_dlsch_decoding.c
openair1/PHY/NR_UE_TRANSPORT/nr_dlsch_decoding.c
+1
-4
openair1/PHY/NR_UE_TRANSPORT/nr_ulsch_coding.c
openair1/PHY/NR_UE_TRANSPORT/nr_ulsch_coding.c
+1
-3
openair1/PHY/defs_gNB.h
openair1/PHY/defs_gNB.h
+1
-0
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_ulsch.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_ulsch.c
+2
-0
No files found.
nfapi/open-nFAPI/nfapi/public_inc/nfapi_nr_interface_scf.h
View file @
65d03185
...
@@ -1200,6 +1200,10 @@ typedef struct
...
@@ -1200,6 +1200,10 @@ typedef struct
#define PUSCH_PDU_BITMAP_PUSCH_PTRS 0x4
#define PUSCH_PDU_BITMAP_PUSCH_PTRS 0x4
#define PUSCH_PDU_BITMAP_DFTS_OFDM 0x8
#define PUSCH_PDU_BITMAP_DFTS_OFDM 0x8
typedef
struct
{
uint32_t
tbSizeLbrmBytes
;
}
nfapi_v3_pusch_maintenance_parameters_t
;
typedef
struct
typedef
struct
{
{
uint16_t
pdu_bit_map
;
//Bitmap indicating presence of optional PDUs (see above)
uint16_t
pdu_bit_map
;
//Bitmap indicating presence of optional PDUs (see above)
...
@@ -1245,7 +1249,7 @@ typedef struct
...
@@ -1245,7 +1249,7 @@ typedef struct
nfapi_nr_dfts_ofdm_t
dfts_ofdm
;
nfapi_nr_dfts_ofdm_t
dfts_ofdm
;
//beamforming
//beamforming
nfapi_nr_ul_beamforming_t
beamforming
;
nfapi_nr_ul_beamforming_t
beamforming
;
nfapi_v3_pdsch_maintenance_parameters_t
maintenance_parms_v3
;
}
nfapi_nr_pusch_pdu_t
;
}
nfapi_nr_pusch_pdu_t
;
//for pucch_pdu:
//for pucch_pdu:
...
...
openair1/PHY/CODING/coding_defs.h
View file @
65d03185
...
@@ -485,8 +485,7 @@ void nr_interleaving_ldpc(uint32_t E, uint8_t Qm, uint8_t *e,uint8_t *f);
...
@@ -485,8 +485,7 @@ void nr_interleaving_ldpc(uint32_t E, uint8_t Qm, uint8_t *e,uint8_t *f);
void
nr_deinterleaving_ldpc
(
uint32_t
E
,
uint8_t
Qm
,
int16_t
*
e
,
int16_t
*
f
);
void
nr_deinterleaving_ldpc
(
uint32_t
E
,
uint8_t
Qm
,
int16_t
*
e
,
int16_t
*
f
);
int
nr_rate_matching_ldpc
(
uint8_t
Ilbrm
,
int
nr_rate_matching_ldpc
(
uint32_t
Tbslbrm
,
uint32_t
Tbslbrm
,
uint8_t
BG
,
uint8_t
BG
,
uint16_t
Z
,
uint16_t
Z
,
uint8_t
*
w
,
uint8_t
*
w
,
...
@@ -497,8 +496,7 @@ int nr_rate_matching_ldpc(uint8_t Ilbrm,
...
@@ -497,8 +496,7 @@ int nr_rate_matching_ldpc(uint8_t Ilbrm,
uint8_t
rvidx
,
uint8_t
rvidx
,
uint32_t
E
);
uint32_t
E
);
int
nr_rate_matching_ldpc_rx
(
uint8_t
Ilbrm
,
int
nr_rate_matching_ldpc_rx
(
uint32_t
Tbslbrm
,
uint32_t
Tbslbrm
,
uint8_t
BG
,
uint8_t
BG
,
uint16_t
Z
,
uint16_t
Z
,
int16_t
*
w
,
int16_t
*
w
,
...
...
openair1/PHY/CODING/nr_rate_matching.c
View file @
65d03185
...
@@ -373,8 +373,7 @@ void nr_deinterleaving_ldpc(uint32_t E, uint8_t Qm, int16_t *e,int16_t *f)
...
@@ -373,8 +373,7 @@ void nr_deinterleaving_ldpc(uint32_t E, uint8_t Qm, int16_t *e,int16_t *f)
}
}
int
nr_rate_matching_ldpc
(
uint8_t
Ilbrm
,
int
nr_rate_matching_ldpc
(
uint32_t
Tbslbrm
,
uint32_t
Tbslbrm
,
uint8_t
BG
,
uint8_t
BG
,
uint16_t
Z
,
uint16_t
Z
,
uint8_t
*
w
,
uint8_t
*
w
,
...
@@ -395,7 +394,7 @@ int nr_rate_matching_ldpc(uint8_t Ilbrm,
...
@@ -395,7 +394,7 @@ int nr_rate_matching_ldpc(uint8_t Ilbrm,
//Bit selection
//Bit selection
N
=
(
BG
==
1
)
?
(
66
*
Z
)
:
(
50
*
Z
);
N
=
(
BG
==
1
)
?
(
66
*
Z
)
:
(
50
*
Z
);
if
(
I
lbrm
==
0
)
if
(
Tbs
lbrm
==
0
)
Ncb
=
N
;
Ncb
=
N
;
else
{
else
{
Nref
=
3
*
Tbslbrm
/
(
2
*
C
);
//R_LBRM = 2/3
Nref
=
3
*
Tbslbrm
/
(
2
*
C
);
//R_LBRM = 2/3
...
@@ -457,8 +456,7 @@ int nr_rate_matching_ldpc(uint8_t Ilbrm,
...
@@ -457,8 +456,7 @@ int nr_rate_matching_ldpc(uint8_t Ilbrm,
return
0
;
return
0
;
}
}
int
nr_rate_matching_ldpc_rx
(
uint8_t
Ilbrm
,
int
nr_rate_matching_ldpc_rx
(
uint32_t
Tbslbrm
,
uint32_t
Tbslbrm
,
uint8_t
BG
,
uint8_t
BG
,
uint16_t
Z
,
uint16_t
Z
,
int16_t
*
w
,
int16_t
*
w
,
...
@@ -484,7 +482,7 @@ int nr_rate_matching_ldpc_rx(uint8_t Ilbrm,
...
@@ -484,7 +482,7 @@ int nr_rate_matching_ldpc_rx(uint8_t Ilbrm,
//Bit selection
//Bit selection
N
=
(
BG
==
1
)
?
(
66
*
Z
)
:
(
50
*
Z
);
N
=
(
BG
==
1
)
?
(
66
*
Z
)
:
(
50
*
Z
);
if
(
I
lbrm
==
0
)
if
(
Tbs
lbrm
==
0
)
Ncb
=
N
;
Ncb
=
N
;
else
{
else
{
Nref
=
(
3
*
Tbslbrm
/
(
2
*
C
));
//R_LBRM = 2/3
Nref
=
(
3
*
Tbslbrm
/
(
2
*
C
));
//R_LBRM = 2/3
...
...
openair1/PHY/NR_TRANSPORT/nr_dlsch_coding.c
View file @
65d03185
...
@@ -242,12 +242,10 @@ void ldpc8blocks( void *p) {
...
@@ -242,12 +242,10 @@ void ldpc8blocks( void *p) {
mod_order
,
nb_rb
);
mod_order
,
nb_rb
);
uint32_t
Tbslbrm
=
rel15
->
maintenance_parms_v3
.
tbSizeLbrmBytes
;
uint32_t
Tbslbrm
=
rel15
->
maintenance_parms_v3
.
tbSizeLbrmBytes
;
uint8_t
Ilbrm
=
1
;
uint8_t
e
[
E
];
uint8_t
e
[
E
];
bzero
(
e
,
E
);
bzero
(
e
,
E
);
nr_rate_matching_ldpc
(
Ilbrm
,
nr_rate_matching_ldpc
(
Tbslbrm
,
Tbslbrm
,
impp
->
BG
,
impp
->
BG
,
*
impp
->
Zc
,
*
impp
->
Zc
,
impp
->
d
[
rr
],
impp
->
d
[
rr
],
...
...
openair1/PHY/NR_TRANSPORT/nr_ulsch_decoding.c
View file @
65d03185
...
@@ -246,8 +246,6 @@ void nr_processULSegment(void* arg) {
...
@@ -246,8 +246,6 @@ void nr_processULSegment(void* arg) {
__m128i
*
pv
=
(
__m128i
*
)
&
z
;
__m128i
*
pv
=
(
__m128i
*
)
&
z
;
__m128i
*
pl
=
(
__m128i
*
)
&
l
;
__m128i
*
pl
=
(
__m128i
*
)
&
l
;
uint8_t
Ilbrm
=
0
;
Kr
=
ulsch_harq
->
K
;
Kr
=
ulsch_harq
->
K
;
Kr_bytes
=
Kr
>>
3
;
Kr_bytes
=
Kr
>>
3
;
...
@@ -295,8 +293,7 @@ void nr_processULSegment(void* arg) {
...
@@ -295,8 +293,7 @@ void nr_processULSegment(void* arg) {
//start_meas(&phy_vars_gNB->ulsch_rate_unmatching_stats);
//start_meas(&phy_vars_gNB->ulsch_rate_unmatching_stats);
if
(
nr_rate_matching_ldpc_rx
(
Ilbrm
,
if
(
nr_rate_matching_ldpc_rx
(
rdata
->
tbslbrm
,
0
,
p_decoderParms
->
BG
,
p_decoderParms
->
BG
,
p_decoderParms
->
Z
,
p_decoderParms
->
Z
,
ulsch_harq
->
d
[
r
],
ulsch_harq
->
d
[
r
],
...
@@ -594,6 +591,7 @@ uint32_t nr_ulsch_decoding(PHY_VARS_gNB *phy_vars_gNB,
...
@@ -594,6 +591,7 @@ uint32_t nr_ulsch_decoding(PHY_VARS_gNB *phy_vars_gNB,
rdata
->
offset
=
offset
;
rdata
->
offset
=
offset
;
rdata
->
ulsch
=
ulsch
;
rdata
->
ulsch
=
ulsch
;
rdata
->
ulsch_id
=
ULSCH_id
;
rdata
->
ulsch_id
=
ULSCH_id
;
rdata
->
tbslbrm
=
pusch_pdu
->
maintenance_parms_v3
.
tbSizeLbrmBytes
;
pushTpool
(
phy_vars_gNB
->
threadPool
,
req
);
pushTpool
(
phy_vars_gNB
->
threadPool
,
req
);
phy_vars_gNB
->
nbDecode
++
;
phy_vars_gNB
->
nbDecode
++
;
LOG_D
(
PHY
,
"Added a block to decode, in pipe: %d
\n
"
,
phy_vars_gNB
->
nbDecode
);
LOG_D
(
PHY
,
"Added a block to decode, in pipe: %d
\n
"
,
phy_vars_gNB
->
nbDecode
);
...
...
openair1/PHY/NR_UE_TRANSPORT/nr_dlsch_decoding.c
View file @
65d03185
...
@@ -292,8 +292,6 @@ void nr_processDLSegment(void* arg) {
...
@@ -292,8 +292,6 @@ void nr_processDLSegment(void* arg) {
__m128i
*
pv
=
(
__m128i
*
)
&
z
;
__m128i
*
pv
=
(
__m128i
*
)
&
z
;
__m128i
*
pl
=
(
__m128i
*
)
&
l
;
__m128i
*
pl
=
(
__m128i
*
)
&
l
;
uint8_t
Ilbrm
=
1
;
Kr
=
harq_process
->
K
;
// [hna] overwrites this line "Kr = p_decParams->Z*kb"
Kr
=
harq_process
->
K
;
// [hna] overwrites this line "Kr = p_decParams->Z*kb"
Kr_bytes
=
Kr
>>
3
;
Kr_bytes
=
Kr
>>
3
;
K_bits_F
=
Kr
-
harq_process
->
F
;
K_bits_F
=
Kr
-
harq_process
->
F
;
...
@@ -329,8 +327,7 @@ void nr_processDLSegment(void* arg) {
...
@@ -329,8 +327,7 @@ void nr_processDLSegment(void* arg) {
harq_process->round); */
harq_process->round); */
//VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_DLSCH_RATE_MATCHING, VCD_FUNCTION_IN);
//VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_DLSCH_RATE_MATCHING, VCD_FUNCTION_IN);
if
(
nr_rate_matching_ldpc_rx
(
Ilbrm
,
if
(
nr_rate_matching_ldpc_rx
(
Tbslbrm
,
Tbslbrm
,
p_decoderParms
->
BG
,
p_decoderParms
->
BG
,
p_decoderParms
->
Z
,
p_decoderParms
->
Z
,
harq_process
->
d
[
r
],
harq_process
->
d
[
r
],
...
...
openair1/PHY/NR_UE_TRANSPORT/nr_ulsch_coding.c
View file @
65d03185
...
@@ -188,7 +188,6 @@ int nr_ulsch_encoding(PHY_VARS_NR_UE *ue,
...
@@ -188,7 +188,6 @@ int nr_ulsch_encoding(PHY_VARS_NR_UE *ue,
uint16_t
Kr
=
0
;
uint16_t
Kr
=
0
;
uint32_t
r_offset
=
0
;
uint32_t
r_offset
=
0
;
uint32_t
F
=
0
;
uint32_t
F
=
0
;
uint8_t
Ilbrm
=
0
;
float
Coderate
=
0
.
0
;
float
Coderate
=
0
.
0
;
///////////
///////////
...
@@ -378,8 +377,7 @@ int nr_ulsch_encoding(PHY_VARS_NR_UE *ue,
...
@@ -378,8 +377,7 @@ 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
);
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
);
start_meas
(
&
ue
->
ulsch_rate_matching_stats
);
if
(
nr_rate_matching_ldpc
(
Ilbrm
,
if
(
nr_rate_matching_ldpc
(
0
,
0
,
harq_process
->
BG
,
harq_process
->
BG
,
*
pz
,
*
pz
,
harq_process
->
d
[
r
],
harq_process
->
d
[
r
],
...
...
openair1/PHY/defs_gNB.h
View file @
65d03185
...
@@ -927,6 +927,7 @@ typedef struct LDPCDecode_s {
...
@@ -927,6 +927,7 @@ typedef struct LDPCDecode_s {
int
r_offset
;
int
r_offset
;
int
offset
;
int
offset
;
int
decodeIterations
;
int
decodeIterations
;
uint32_t
tbslbrm
;
}
ldpcDecode_t
;
}
ldpcDecode_t
;
struct
ldpcReqId
{
struct
ldpcReqId
{
...
...
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_ulsch.c
View file @
65d03185
...
@@ -1767,6 +1767,8 @@ void nr_schedule_ulsch(module_id_t module_id, frame_t frame, sub_frame_t slot)
...
@@ -1767,6 +1767,8 @@ void nr_schedule_ulsch(module_id_t module_id, frame_t frame, sub_frame_t slot)
pusch_pdu
->
pusch_data
.
tb_size
=
sched_pusch
->
tb_size
;
pusch_pdu
->
pusch_data
.
tb_size
=
sched_pusch
->
tb_size
;
pusch_pdu
->
pusch_data
.
num_cb
=
0
;
//CBG not supported
pusch_pdu
->
pusch_data
.
num_cb
=
0
;
//CBG not supported
pusch_pdu
->
maintenance_parms_v3
.
tbSizeLbrmBytes
=
0
;
LOG_D
(
NR_MAC
,
"PUSCH PDU : data_scrambling_identity %x, dmrs_scrambling_id %x
\n
"
,
pusch_pdu
->
data_scrambling_id
,
pusch_pdu
->
ul_dmrs_scrambling_id
);
LOG_D
(
NR_MAC
,
"PUSCH PDU : data_scrambling_identity %x, dmrs_scrambling_id %x
\n
"
,
pusch_pdu
->
data_scrambling_id
,
pusch_pdu
->
ul_dmrs_scrambling_id
);
/* TRANSFORM PRECODING --------------------------------------------------------*/
/* TRANSFORM PRECODING --------------------------------------------------------*/
...
...
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