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
wangjie
OpenXG-RAN
Commits
b4f46144
Commit
b4f46144
authored
Feb 28, 2020
by
Sakthivel Velumani
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fixed bugs in frame sync for UE
UE is a bit more stable now
parent
5c041cc1
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
14 additions
and
4 deletions
+14
-4
executables/nr-ue.c
executables/nr-ue.c
+6
-3
openair1/PHY/NR_UE_TRANSPORT/nr_initial_sync.c
openair1/PHY/NR_UE_TRANSPORT/nr_initial_sync.c
+7
-1
openair1/PHY/defs_nr_UE.h
openair1/PHY/defs_nr_UE.h
+1
-0
No files found.
executables/nr-ue.c
View file @
b4f46144
...
@@ -666,6 +666,8 @@ void *UE_thread(void *arg) {
...
@@ -666,6 +666,8 @@ void *UE_thread(void *arg) {
int
thread_idx
=
0
;
int
thread_idx
=
0
;
notifiedFIFO_t
freeBlocks
;
notifiedFIFO_t
freeBlocks
;
initNotifiedFIFO_nothreadSafe
(
&
freeBlocks
);
initNotifiedFIFO_nothreadSafe
(
&
freeBlocks
);
NR_UE_MAC_INST_t
*
mac
=
get_mac_inst
(
0
);
for
(
int
i
=
0
;
i
<
RX_NB_TH
+
1
;
i
++
)
// RX_NB_TH working + 1 we are making to be pushed
for
(
int
i
=
0
;
i
<
RX_NB_TH
+
1
;
i
++
)
// RX_NB_TH working + 1 we are making to be pushed
pushNotifiedFIFO_nothreadSafe
(
&
freeBlocks
,
pushNotifiedFIFO_nothreadSafe
(
&
freeBlocks
,
...
@@ -683,11 +685,12 @@ void *UE_thread(void *arg) {
...
@@ -683,11 +685,12 @@ void *UE_thread(void *arg) {
syncRunning
=
false
;
syncRunning
=
false
;
syncData_t
*
tmp
=
(
syncData_t
*
)
NotifiedFifoData
(
res
);
syncData_t
*
tmp
=
(
syncData_t
*
)
NotifiedFifoData
(
res
);
// shift the frame index with all the frames we trashed meanwhile we perform the synch search
// shift the frame index with all the frames we trashed meanwhile we perform the synch search
decoded_frame_rx
=
(
tmp
->
proc
.
decoded_frame_rx
+
trashed_frames
)
%
MAX_FRAME_NUMBER
;
decoded_frame_rx
=
((((
mac
->
mib
->
systemFrameNumber
.
buf
[
0
]
>>
mac
->
mib
->
systemFrameNumber
.
bits_unused
)
<<
4
)
|
tmp
->
proc
.
decoded_frame_rx
)
+
(
!
UE
->
init_sync_frame
)
+
trashed_frames
)
%
MAX_FRAME_NUMBER
;
delNotifiedFIFO_elt
(
res
);
delNotifiedFIFO_elt
(
res
);
}
else
{
}
else
{
readFrame
(
UE
,
&
timestamp
,
true
);
readFrame
(
UE
,
&
timestamp
,
true
);
trashed_frames
+
+
;
trashed_frames
+
=
2
;
continue
;
continue
;
}
}
}
}
...
@@ -722,7 +725,7 @@ void *UE_thread(void *arg) {
...
@@ -722,7 +725,7 @@ void *UE_thread(void *arg) {
// and we shifted above to the first slot of next frame
// and we shifted above to the first slot of next frame
decoded_frame_rx
++
;
decoded_frame_rx
++
;
// we do ++ first in the regular processing, so it will be begin of frame;
// we do ++ first in the regular processing, so it will be begin of frame;
absolute_slot
=
decoded_frame_rx
*
nb_slot_frame
+
nb_slot_frame
-
1
;
absolute_slot
=
decoded_frame_rx
*
nb_slot_frame
-
1
;
continue
;
continue
;
}
}
...
...
openair1/PHY/NR_UE_TRANSPORT/nr_initial_sync.c
View file @
b4f46144
...
@@ -303,7 +303,13 @@ int nr_initial_sync(UE_nr_rxtx_proc_t *proc, PHY_VARS_NR_UE *ue, runmode_t mode,
...
@@ -303,7 +303,13 @@ int nr_initial_sync(UE_nr_rxtx_proc_t *proc, PHY_VARS_NR_UE *ue, runmode_t mode,
// sync at symbol ue->symbol_offset
// sync at symbol ue->symbol_offset
// computing the offset wrt the beginning of the frame
// computing the offset wrt the beginning of the frame
sync_pos_frame
=
(
fp
->
ofdm_symbol_size
+
fp
->
nb_prefix_samples0
)
+
((
ue
->
symbol_offset
)
-
1
)
*
(
fp
->
ofdm_symbol_size
+
fp
->
nb_prefix_samples
);
sync_pos_frame
=
(
fp
->
ofdm_symbol_size
+
fp
->
nb_prefix_samples0
)
+
((
ue
->
symbol_offset
)
-
1
)
*
(
fp
->
ofdm_symbol_size
+
fp
->
nb_prefix_samples
);
ue
->
rx_offset
=
ue
->
ssb_offset
-
sync_pos_frame
;
if
(
ue
->
ssb_offset
<
sync_pos_frame
)
ue
->
rx_offset
=
fp
->
samples_per_frame
-
sync_pos_frame
+
ue
->
ssb_offset
;
else
ue
->
rx_offset
=
ue
->
ssb_offset
-
sync_pos_frame
;
ue
->
init_sync_frame
=
is
;
}
}
nr_gold_pdcch
(
ue
,
0
,
2
);
nr_gold_pdcch
(
ue
,
0
,
2
);
...
...
openair1/PHY/defs_nr_UE.h
View file @
b4f46144
...
@@ -1012,6 +1012,7 @@ typedef struct {
...
@@ -1012,6 +1012,7 @@ typedef struct {
// uint8_t prach_timer;
// uint8_t prach_timer;
uint8_t
decode_SIB
;
uint8_t
decode_SIB
;
uint8_t
decode_MIB
;
uint8_t
decode_MIB
;
uint8_t
init_sync_frame
;
/// temporary offset during cell search prior to MIB decoding
/// temporary offset during cell search prior to MIB decoding
int
ssb_offset
;
int
ssb_offset
;
uint16_t
symbol_offset
;
// offset in terms of symbols for detected ssb in sync
uint16_t
symbol_offset
;
// offset in terms of symbols for detected ssb in sync
...
...
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