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
d8ee1189
Commit
d8ee1189
authored
Feb 04, 2020
by
Sakthivel Velumani
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
More updates
gNB and UE runs without crashing; PBCH not decoding though
parent
460a75db
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
5 additions
and
5 deletions
+5
-5
executables/nr-ru.c
executables/nr-ru.c
+4
-4
executables/nr-ue.c
executables/nr-ue.c
+1
-1
No files found.
executables/nr-ru.c
View file @
d8ee1189
...
...
@@ -334,7 +334,7 @@ void fh_if5_south_in(RU_t *ru,
recv_IF5
(
ru
,
&
proc
->
timestamp_rx
,
*
tti
,
IF5_RRH_GW_UL
);
proc
->
frame_rx
=
(
proc
->
timestamp_rx
/
(
fp
->
samples_per_subframe
*
10
))
&
1023
;
uint32_t
idx_sf
=
proc
->
timestamp_rx
/
fp
->
samples_per_subframe
;
proc
->
tti_rx
=
(
idx_sf
*
fp
->
slots_per_subframe
+
(
int
)
round
((
proc
->
timestamp_rx
%
fp
->
samples_per_subframe
)
/
fp
->
samples_per_slot0
))
%
(
fp
->
slots_per_frame
);
proc
->
tti_rx
=
(
idx_sf
*
fp
->
slots_per_subframe
+
(
int
)
round
((
float
)(
proc
->
timestamp_rx
%
fp
->
samples_per_subframe
)
/
fp
->
samples_per_slot0
))
%
(
fp
->
slots_per_frame
);
if
(
proc
->
first_rx
==
0
)
{
if
(
proc
->
tti_rx
!=
*
tti
)
{
...
...
@@ -506,7 +506,7 @@ void fh_if5_north_asynch_in(RU_t *ru,int *frame,int *slot) {
// printf("Received subframe %d (TS %llu) from RCC\n",tti_tx,timestamp_tx);
frame_tx
=
(
timestamp_tx
/
(
fp
->
samples_per_subframe
*
10
))
&
1023
;
uint32_t
idx_sf
=
timestamp_tx
/
fp
->
samples_per_subframe
;
tti_tx
=
(
idx_sf
*
fp
->
slots_per_subframe
+
(
int
)
round
((
timestamp_tx
%
fp
->
samples_per_subframe
)
/
fp
->
samples_per_slot0
))
%
(
fp
->
slots_per_frame
);
tti_tx
=
(
idx_sf
*
fp
->
slots_per_subframe
+
(
int
)
round
((
float
)(
timestamp_tx
%
fp
->
samples_per_subframe
)
/
fp
->
samples_per_slot0
))
%
(
fp
->
slots_per_frame
);
if
(
proc
->
first_tx
!=
0
)
{
*
slot
=
tti_tx
;
...
...
@@ -667,7 +667,7 @@ void rx_rf(RU_t *ru,int *frame,int *slot) {
ru
->
ts_offset
=
proc
->
timestamp_rx
;
proc
->
timestamp_rx
=
0
;
}
else
{
if
(
proc
->
timestamp_rx
-
old_ts
!=
samples_per_slot
)
{
if
(
proc
->
timestamp_rx
-
old_ts
!=
fp
->
get_samples_per_slot
((
*
slot
-
1
)
%
fp
->
slots_per_frame
,
fp
)
)
{
LOG_D
(
PHY
,
"rx_rf: rfdevice timing drift of %"
PRId64
" samples (ts_off %"
PRId64
")
\n
"
,
proc
->
timestamp_rx
-
old_ts
-
samples_per_slot
,
ru
->
ts_offset
);
ru
->
ts_offset
+=
(
proc
->
timestamp_rx
-
old_ts
-
samples_per_slot
);
proc
->
timestamp_rx
=
ts
-
ru
->
ts_offset
;
...
...
@@ -676,7 +676,7 @@ void rx_rf(RU_t *ru,int *frame,int *slot) {
proc
->
frame_rx
=
(
proc
->
timestamp_rx
/
(
fp
->
samples_per_subframe
*
10
))
&
1023
;
uint32_t
idx_sf
=
proc
->
timestamp_rx
/
fp
->
samples_per_subframe
;
proc
->
tti_rx
=
(
idx_sf
*
fp
->
slots_per_subframe
+
(
int
)
round
((
proc
->
timestamp_rx
%
fp
->
samples_per_subframe
)
/
fp
->
samples_per_slot0
))
%
(
fp
->
slots_per_frame
);
proc
->
tti_rx
=
(
idx_sf
*
fp
->
slots_per_subframe
+
(
int
)
round
((
float
)(
proc
->
timestamp_rx
%
fp
->
samples_per_subframe
)
/
fp
->
samples_per_slot0
))
%
(
fp
->
slots_per_frame
);
// synchronize first reception to frame 0 subframe 0
LOG_D
(
PHY
,
"RU %d/%d TS %llu (off %d), frame %d, slot %d.%d / %d
\n
"
,
ru
->
idx
,
...
...
executables/nr-ue.c
View file @
d8ee1189
...
...
@@ -240,7 +240,7 @@ static void UE_synch(void *arg) {
if
(
nr_initial_sync
(
&
syncD
->
proc
,
UE
,
UE
->
mode
,
2
)
==
0
)
{
freq_offset
=
UE
->
common_vars
.
freq_offset
;
// frequency offset computed with pss in initial sync
hw_slot_offset
=
((
UE
->
rx_offset
<<
1
)
/
UE
->
frame_parms
.
samples_per_subframe
*
UE
->
frame_parms
.
slots_per_subframe
)
+
round
(((
UE
->
rx_offset
<<
1
)
%
UE
->
frame_parms
.
samples_per_subframe
)
/
UE
->
frame_parms
.
samples_per_slot0
);
round
((
float
)(
(
UE
->
rx_offset
<<
1
)
%
UE
->
frame_parms
.
samples_per_subframe
)
/
UE
->
frame_parms
.
samples_per_slot0
);
LOG_I
(
PHY
,
"Got synch: hw_slot_offset %d, carrier off %d Hz, rxgain %d (DL %lu, UL %lu), UE_scan_carrier %d
\n
"
,
hw_slot_offset
,
freq_offset
,
...
...
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