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
41380e93
Commit
41380e93
authored
3 years ago
by
Sakthivel Velumani
Committed by
Sakthivel Velumani
3 years ago
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fixed ssb sync issue
parent
3f1c9df3
Changes
5
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
22 additions
and
21 deletions
+22
-21
executables/nr-gnb.c
executables/nr-gnb.c
+7
-8
openair1/PHY/NR_TRANSPORT/nr_dci.c
openair1/PHY/NR_TRANSPORT/nr_dci.c
+2
-2
openair1/PHY/defs_gNB.h
openair1/PHY/defs_gNB.h
+2
-5
openair1/SCHED_NR/fapi_nr_l1.c
openair1/SCHED_NR/fapi_nr_l1.c
+4
-1
openair1/SCHED_NR/phy_procedures_nr_gNB.c
openair1/SCHED_NR/phy_procedures_nr_gNB.c
+7
-5
No files found.
executables/nr-gnb.c
View file @
41380e93
...
@@ -115,14 +115,14 @@ void tx_func(void *param) {
...
@@ -115,14 +115,14 @@ void tx_func(void *param) {
processingData_L1tx_t
*
info
=
(
processingData_L1tx_t
*
)
param
;
processingData_L1tx_t
*
info
=
(
processingData_L1tx_t
*
)
param
;
PHY_VARS_gNB
*
gNB
=
info
->
gNB
;
PHY_VARS_gNB
*
gNB
=
info
->
gNB
;
int
frame_tx
=
info
->
frame
_tx
;
int
frame_tx
=
info
->
frame
;
int
slot_tx
=
info
->
slot
_tx
;
int
slot_tx
=
info
->
slot
;
phy_procedures_gNB_TX
(
info
,
phy_procedures_gNB_TX
(
info
,
frame_tx
,
frame_tx
,
slot_tx
,
slot_tx
,
1
);
1
);
info
->
s
tatus
=
NOT_FILLED
;
info
->
s
lot
=
-
1
;
if
((
frame_tx
&
127
)
==
0
)
dump_pdsch_stats
(
gNB
);
if
((
frame_tx
&
127
)
==
0
)
dump_pdsch_stats
(
gNB
);
// If the later of the 2 L1 tx thread finishes first,
// If the later of the 2 L1 tx thread finishes first,
...
@@ -281,16 +281,13 @@ void rx_func(void *param) {
...
@@ -281,16 +281,13 @@ void rx_func(void *param) {
notifiedFIFO_elt_t
*
res
;
notifiedFIFO_elt_t
*
res
;
res
=
pullTpool
(
gNB
->
resp_L1_tx
,
gNB
->
threadPool
);
res
=
pullTpool
(
gNB
->
resp_L1_tx
,
gNB
->
threadPool
);
processingData_L1tx_t
*
syncMsg
=
(
processingData_L1tx_t
*
)
NotifiedFifoData
(
res
);
processingData_L1tx_t
*
syncMsg
=
(
processingData_L1tx_t
*
)
NotifiedFifoData
(
res
);
while
(
syncMsg
->
s
tatus
==
NOT_FILLED
)
{
while
(
syncMsg
->
s
lot
!=
slot_tx
)
{
pushNotifiedFIFO
(
gNB
->
resp_L1_tx
,
res
);
pushNotifiedFIFO
(
gNB
->
resp_L1_tx
,
res
);
res
=
pullTpool
(
gNB
->
resp_L1_tx
,
gNB
->
threadPool
);
res
=
pullTpool
(
gNB
->
resp_L1_tx
,
gNB
->
threadPool
);
syncMsg
=
(
processingData_L1tx_t
*
)
NotifiedFifoData
(
res
);
syncMsg
=
(
processingData_L1tx_t
*
)
NotifiedFifoData
(
res
);
}
}
syncMsg
->
gNB
=
gNB
;
syncMsg
->
gNB
=
gNB
;
syncMsg
->
frame_rx
=
frame_rx
;
AssertFatal
(
syncMsg
->
slot
==
slot_tx
,
"Thread message slot and logical slot number do not match
\n
"
);
syncMsg
->
slot_rx
=
slot_rx
;
syncMsg
->
frame_tx
=
frame_tx
;
syncMsg
->
slot_tx
=
slot_tx
;
syncMsg
->
timestamp_tx
=
info
->
timestamp_tx
;
syncMsg
->
timestamp_tx
=
info
->
timestamp_tx
;
res
->
key
=
slot_tx
;
res
->
key
=
slot_tx
;
pushTpool
(
gNB
->
threadPool
,
res
);
pushTpool
(
gNB
->
threadPool
,
res
);
...
@@ -415,6 +412,7 @@ void init_gNB_Tpool(int inst) {
...
@@ -415,6 +412,7 @@ void init_gNB_Tpool(int inst) {
notifiedFIFO_elt_t
*
msgL1Tx
=
newNotifiedFIFO_elt
(
sizeof
(
processingData_L1tx_t
),
0
,
gNB
->
resp_L1_tx
,
tx_func
);
notifiedFIFO_elt_t
*
msgL1Tx
=
newNotifiedFIFO_elt
(
sizeof
(
processingData_L1tx_t
),
0
,
gNB
->
resp_L1_tx
,
tx_func
);
processingData_L1tx_t
*
msgDataTx
=
(
processingData_L1tx_t
*
)
NotifiedFifoData
(
msgL1Tx
);
processingData_L1tx_t
*
msgDataTx
=
(
processingData_L1tx_t
*
)
NotifiedFifoData
(
msgL1Tx
);
init_DLSCH_struct
(
gNB
,
msgDataTx
);
init_DLSCH_struct
(
gNB
,
msgDataTx
);
msgDataTx
->
slot
=
-
1
;
memset
(
msgDataTx
->
ssb
,
0
,
64
*
sizeof
(
NR_gNB_SSB_t
));
memset
(
msgDataTx
->
ssb
,
0
,
64
*
sizeof
(
NR_gNB_SSB_t
));
reset_meas
(
&
msgDataTx
->
phy_proc_tx
);
reset_meas
(
&
msgDataTx
->
phy_proc_tx
);
gNB
->
phy_proc_tx_0
=
&
msgDataTx
->
phy_proc_tx
;
gNB
->
phy_proc_tx_0
=
&
msgDataTx
->
phy_proc_tx
;
...
@@ -423,6 +421,7 @@ void init_gNB_Tpool(int inst) {
...
@@ -423,6 +421,7 @@ void init_gNB_Tpool(int inst) {
msgL1Tx
=
newNotifiedFIFO_elt
(
sizeof
(
processingData_L1tx_t
),
0
,
gNB
->
resp_L1_tx
,
tx_func
);
msgL1Tx
=
newNotifiedFIFO_elt
(
sizeof
(
processingData_L1tx_t
),
0
,
gNB
->
resp_L1_tx
,
tx_func
);
msgDataTx
=
(
processingData_L1tx_t
*
)
NotifiedFifoData
(
msgL1Tx
);
msgDataTx
=
(
processingData_L1tx_t
*
)
NotifiedFifoData
(
msgL1Tx
);
init_DLSCH_struct
(
gNB
,
msgDataTx
);
init_DLSCH_struct
(
gNB
,
msgDataTx
);
msgDataTx
->
slot
=
-
1
;
memset
(
msgDataTx
->
ssb
,
0
,
64
*
sizeof
(
NR_gNB_SSB_t
));
memset
(
msgDataTx
->
ssb
,
0
,
64
*
sizeof
(
NR_gNB_SSB_t
));
reset_meas
(
&
msgDataTx
->
phy_proc_tx
);
reset_meas
(
&
msgDataTx
->
phy_proc_tx
);
gNB
->
phy_proc_tx_1
=
&
msgDataTx
->
phy_proc_tx
;
gNB
->
phy_proc_tx_1
=
&
msgDataTx
->
phy_proc_tx
;
...
...
This diff is collapsed.
Click to expand it.
openair1/PHY/NR_TRANSPORT/nr_dci.c
View file @
41380e93
...
@@ -132,8 +132,8 @@ void nr_generate_dci(PHY_VARS_gNB *gNB,
...
@@ -132,8 +132,8 @@ void nr_generate_dci(PHY_VARS_gNB *gNB,
dci_pdu
->
AggregationLevel
,
dci_pdu
->
AggregationLevel
,
0
,
NULL
);
0
,
NULL
);
polar_encoder_fast
((
uint64_t
*
)
dci_pdu
->
Payload
,
(
void
*
)
encoder_output
,
n_RNTI
,
1
,
currentPtr
);
polar_encoder_fast
((
uint64_t
*
)
dci_pdu
->
Payload
,
(
void
*
)
encoder_output
,
n_RNTI
,
1
,
currentPtr
);
#if
def
DEBUG_CHANNEL_CODING
#if DEBUG_CHANNEL_CODING
printf
(
"polar rnti %x,length %d, L %d
\n
"
,
n_RNTI
,
dci_pdu
->
PayloadSizeBits
,
pdcch_pdu_rel15
->
dci_pdu
.
AggregationLevel
[
d
]
);
printf
(
"polar rnti %x,length %d, L %d
\n
"
,
n_RNTI
,
dci_pdu
->
PayloadSizeBits
,
dci_pdu
->
AggregationLevel
);
printf
(
"DCI PDU: [0]->0x%lx
\t
[1]->0x%lx
\n
"
,
printf
(
"DCI PDU: [0]->0x%lx
\t
[1]->0x%lx
\n
"
,
((
uint64_t
*
)
dci_pdu
->
Payload
)[
0
],
((
uint64_t
*
)
dci_pdu
->
Payload
)[
1
]);
((
uint64_t
*
)
dci_pdu
->
Payload
)[
0
],
((
uint64_t
*
)
dci_pdu
->
Payload
)[
1
]);
printf
(
"Encoded Payload (length:%d dwords):
\n
"
,
encoded_length
>>
5
);
printf
(
"Encoded Payload (length:%d dwords):
\n
"
,
encoded_length
>>
5
);
...
...
This diff is collapsed.
Click to expand it.
openair1/PHY/defs_gNB.h
View file @
41380e93
...
@@ -945,10 +945,8 @@ typedef enum {
...
@@ -945,10 +945,8 @@ typedef enum {
}
msgStatus_t
;
}
msgStatus_t
;
typedef
struct
processingData_L1tx
{
typedef
struct
processingData_L1tx
{
int
frame_rx
;
int
frame
;
int
frame_tx
;
int
slot
;
int
slot_rx
;
int
slot_tx
;
openair0_timestamp
timestamp_tx
;
openair0_timestamp
timestamp_tx
;
PHY_VARS_gNB
*
gNB
;
PHY_VARS_gNB
*
gNB
;
nfapi_nr_dl_tti_pdcch_pdu
pdcch_pdu
;
nfapi_nr_dl_tti_pdcch_pdu
pdcch_pdu
;
...
@@ -958,7 +956,6 @@ typedef struct processingData_L1tx {
...
@@ -958,7 +956,6 @@ typedef struct processingData_L1tx {
NR_gNB_SSB_t
ssb
[
64
];
NR_gNB_SSB_t
ssb
[
64
];
uint16_t
num_pdsch_slot
;
uint16_t
num_pdsch_slot
;
time_stats_t
phy_proc_tx
;
time_stats_t
phy_proc_tx
;
msgStatus_t
status
;
}
processingData_L1tx_t
;
}
processingData_L1tx_t
;
#endif
#endif
This diff is collapsed.
Click to expand it.
openair1/SCHED_NR/fapi_nr_l1.c
View file @
41380e93
...
@@ -165,6 +165,10 @@ void nr_schedule_response(NR_Sched_Rsp_t *Sched_INFO){
...
@@ -165,6 +165,10 @@ void nr_schedule_response(NR_Sched_Rsp_t *Sched_INFO){
int
pdcch_received
=
0
;
int
pdcch_received
=
0
;
msgTx
->
num_pdsch_slot
=
0
;
msgTx
->
num_pdsch_slot
=
0
;
msgTx
->
pdcch_pdu
.
pdcch_pdu_rel15
.
numDlDci
=
0
;
msgTx
->
ul_pdcch_pdu
.
pdcch_pdu
.
pdcch_pdu_rel15
.
numDlDci
=
0
;
msgTx
->
slot
=
slot
;
msgTx
->
frame
=
frame
;
for
(
int
i
=
0
;
i
<
number_dl_pdu
;
i
++
)
{
for
(
int
i
=
0
;
i
<
number_dl_pdu
;
i
++
)
{
nfapi_nr_dl_tti_request_pdu_t
*
dl_tti_pdu
=
&
DL_req
->
dl_tti_request_body
.
dl_tti_pdu_list
[
i
];
nfapi_nr_dl_tti_request_pdu_t
*
dl_tti_pdu
=
&
DL_req
->
dl_tti_request_body
.
dl_tti_pdu_list
[
i
];
...
@@ -212,7 +216,6 @@ void nr_schedule_response(NR_Sched_Rsp_t *Sched_INFO){
...
@@ -212,7 +216,6 @@ void nr_schedule_response(NR_Sched_Rsp_t *Sched_INFO){
if
(
NFAPI_MODE
!=
NFAPI_MODE_VNF
)
if
(
NFAPI_MODE
!=
NFAPI_MODE_VNF
)
msgTx
->
ul_pdcch_pdu
=
UL_dci_req
->
ul_dci_pdu_list
[
number_ul_dci_pdu
-
1
];
// copy the last pdu
msgTx
->
ul_pdcch_pdu
=
UL_dci_req
->
ul_dci_pdu_list
[
number_ul_dci_pdu
-
1
];
// copy the last pdu
msgTx
->
status
=
FILLED
;
pushNotifiedFIFO
(
gNB
->
resp_L1_tx
,
res
);
pushNotifiedFIFO
(
gNB
->
resp_L1_tx
,
res
);
if
(
NFAPI_MODE
!=
NFAPI_MODE_VNF
)
if
(
NFAPI_MODE
!=
NFAPI_MODE_VNF
)
...
...
This diff is collapsed.
Click to expand it.
openair1/SCHED_NR/phy_procedures_nr_gNB.c
View file @
41380e93
...
@@ -164,7 +164,7 @@ void phy_procedures_gNB_TX(processingData_L1tx_t *msgTx,
...
@@ -164,7 +164,7 @@ void phy_procedures_gNB_TX(processingData_L1tx_t *msgTx,
if
(
num_dl_dci
>
0
||
num_ul_dci
>
0
)
{
if
(
num_dl_dci
>
0
||
num_ul_dci
>
0
)
{
LOG_D
(
PHY
,
"[gNB %d] Frame %d slot %d Calling nr_generate_dci_top (number of UL/DL DCI %d/%d)
\n
"
,
LOG_D
(
PHY
,
"[gNB %d] Frame %d slot %d Calling nr_generate_dci_top (number of UL/DL DCI %d/%d)
\n
"
,
gNB
->
Mod_id
,
frame
,
slot
,
num_
dl_dci
,
num_u
l_dci
);
gNB
->
Mod_id
,
frame
,
slot
,
num_
ul_dci
,
num_d
l_dci
);
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_gNB_PDCCH_TX
,
1
);
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_gNB_PDCCH_TX
,
1
);
...
@@ -178,10 +178,12 @@ void phy_procedures_gNB_TX(processingData_L1tx_t *msgTx,
...
@@ -178,10 +178,12 @@ void phy_procedures_gNB_TX(processingData_L1tx_t *msgTx,
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_gNB_PDCCH_TX
,
0
);
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_gNB_PDCCH_TX
,
0
);
}
}
if
(
msgTx
->
num_pdsch_slot
>
0
)
{
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_GENERATE_DLSCH
,
1
);
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_GENERATE_DLSCH
,
1
);
LOG_D
(
PHY
,
"PDSCH generation started (%d) in frame %d.%d
\n
"
,
msgTx
->
num_pdsch_slot
,
frame
,
slot
);
LOG_I
(
PHY
,
"PDSCH generation started (%d) in frame %d.%d
\n
"
,
msgTx
->
num_pdsch_slot
,
frame
,
slot
);
nr_generate_pdsch
(
msgTx
,
frame
,
slot
);
nr_generate_pdsch
(
msgTx
,
frame
,
slot
);
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_GENERATE_DLSCH
,
0
);
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_GENERATE_DLSCH
,
0
);
}
for
(
int
i
=
0
;
i
<
NUMBER_OF_NR_CSIRS_MAX
;
i
++
){
for
(
int
i
=
0
;
i
<
NUMBER_OF_NR_CSIRS_MAX
;
i
++
){
NR_gNB_CSIRS_t
*
csirs
=
&
msgTx
->
csirs_pdu
[
i
];
NR_gNB_CSIRS_t
*
csirs
=
&
msgTx
->
csirs_pdu
[
i
];
...
...
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