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
ZhouShuya
OpenXG-RAN
Commits
c2acb9e9
Commit
c2acb9e9
authored
May 03, 2021
by
hardy
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/NR_FR2_initsync_fixes' into integration_2021_wk18_a
parents
010d39c9
d2f1e41b
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
14 additions
and
11 deletions
+14
-11
executables/nr-ue.c
executables/nr-ue.c
+3
-3
openair1/PHY/NR_UE_TRANSPORT/nr_initial_sync.c
openair1/PHY/NR_UE_TRANSPORT/nr_initial_sync.c
+6
-3
openair1/PHY/NR_UE_TRANSPORT/nr_pbch.c
openair1/PHY/NR_UE_TRANSPORT/nr_pbch.c
+1
-1
openair1/SCHED_NR_UE/phy_procedures_nr_ue.c
openair1/SCHED_NR_UE/phy_procedures_nr_ue.c
+2
-2
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_bch.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_bch.c
+2
-2
No files found.
executables/nr-ue.c
View file @
c2acb9e9
...
...
@@ -552,7 +552,7 @@ void *UE_thread(void *arg) {
if
(
UE
->
is_synchronized
)
{
decoded_frame_rx
=
(((
mac
->
mib
->
systemFrameNumber
.
buf
[
0
]
>>
mac
->
mib
->
systemFrameNumber
.
bits_unused
)
<<
4
)
|
tmp
->
proc
.
decoded_frame_rx
);
// shift the frame index with all the frames we trashed meanwhile we perform the synch search
decoded_frame_rx
=
(
decoded_frame_rx
+
(
!
UE
->
init_sync_frame
)
+
trashed_frames
)
%
MAX_FRAME_NUMBER
;
decoded_frame_rx
=
(
decoded_frame_rx
+
UE
->
init_sync_frame
+
trashed_frames
)
%
MAX_FRAME_NUMBER
;
}
delNotifiedFIFO_elt
(
res
);
start_rx_stream
=
0
;
...
...
@@ -692,9 +692,9 @@ void *UE_thread(void *arg) {
pushNotifiedFIFO_nothreadSafe
(
&
freeBlocks
,
res
);
}
if
(
decoded_frame_rx
>
0
&&
decoded_frame_rx
!=
curMsg
->
proc
.
frame_rx
)
if
(
decoded_frame_rx
>
0
&&
decoded_frame_rx
!=
curMsg
->
proc
.
frame_rx
)
LOG_E
(
PHY
,
"Decoded frame index (%d) is not compatible with current context (%d), UE should go back to synch mode
\n
"
,
decoded_frame_rx
,
curMsg
->
proc
.
frame_rx
);
decoded_frame_rx
,
curMsg
->
proc
.
frame_rx
);
// use previous timing_advance value to compute writeTimestamp
writeTimestamp
=
timestamp
+
...
...
openair1/PHY/NR_UE_TRANSPORT/nr_initial_sync.c
View file @
c2acb9e9
...
...
@@ -308,12 +308,15 @@ int nr_initial_sync(UE_nr_rxtx_proc_t *proc, PHY_VARS_NR_UE *ue, int n_frames)
// every 7*(1<<mu) symbols there is a different prefix length (38.211 5.3.1)
int
n_symb_prefix0
=
(
ue
->
symbol_offset
/
(
7
*
(
1
<<
mu
)))
+
1
;
sync_pos_frame
=
n_symb_prefix0
*
(
fp
->
ofdm_symbol_size
+
fp
->
nb_prefix_samples0
)
+
(
ue
->
symbol_offset
-
n_symb_prefix0
)
*
(
fp
->
ofdm_symbol_size
+
fp
->
nb_prefix_samples
);
if
(
ue
->
ssb_offset
<
sync_pos_frame
)
// for a correct computation of frame number to sync with the one decoded at MIB we need to take into account in which of the n_frames we got sync
ue
->
init_sync_frame
=
n_frames
-
1
-
is
;
// we also need to take into account the shift by samples_per_frame in case the if is true
if
(
ue
->
ssb_offset
<
sync_pos_frame
){
ue
->
rx_offset
=
fp
->
samples_per_frame
-
sync_pos_frame
+
ue
->
ssb_offset
;
ue
->
init_sync_frame
+=
1
;
}
else
ue
->
rx_offset
=
ue
->
ssb_offset
-
sync_pos_frame
;
ue
->
init_sync_frame
=
is
;
}
/*
...
...
openair1/PHY/NR_UE_TRANSPORT/nr_pbch.c
View file @
c2acb9e9
...
...
@@ -589,7 +589,7 @@ int nr_rx_pbch( PHY_VARS_NR_UE *ue,
frame_parms
->
ssb_index
+=
(((
nr_ue_pbch_vars
->
xtra_byte
>>
(
7
-
i
))
&
0x01
)
<<
(
3
+
i
));
}
ue
->
symbol_offset
=
nr_get_ssb_start_symbol
(
frame_parms
,
i_ssb
);
ue
->
symbol_offset
=
nr_get_ssb_start_symbol
(
frame_parms
,
frame_parms
->
ssb_index
);
if
(
frame_parms
->
half_frame_bit
)
ue
->
symbol_offset
+=
(
frame_parms
->
slots_per_frame
>>
1
)
*
frame_parms
->
symbols_per_slot
;
...
...
openair1/SCHED_NR_UE/phy_procedures_nr_ue.c
View file @
c2acb9e9
...
...
@@ -142,7 +142,7 @@ void nr_fill_rx_indication(fapi_nr_rx_indication_t *rx_ind,
case
FAPI_NR_RX_PDU_TYPE_MIB
:
rx_ind
->
rx_indication_body
[
n_pdus
-
1
].
mib_pdu
.
pdu
=
ue
->
pbch_vars
[
gNB_id
]
->
decoded_output
;
rx_ind
->
rx_indication_body
[
n_pdus
-
1
].
mib_pdu
.
additional_bits
=
ue
->
pbch_vars
[
gNB_id
]
->
xtra_byte
;
rx_ind
->
rx_indication_body
[
n_pdus
-
1
].
mib_pdu
.
ssb_index
=
frame_parms
->
ssb_index
;
rx_ind
->
rx_indication_body
[
n_pdus
-
1
].
mib_pdu
.
ssb_index
=
(
frame_parms
->
ssb_index
)
&
0x7
;
rx_ind
->
rx_indication_body
[
n_pdus
-
1
].
mib_pdu
.
ssb_length
=
frame_parms
->
Lmax
;
rx_ind
->
rx_indication_body
[
n_pdus
-
1
].
mib_pdu
.
cell_id
=
frame_parms
->
Nid_cell
;
break
;
...
...
@@ -350,7 +350,7 @@ void nr_ue_pbch_procedures(uint8_t gNB_id,
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_UE_PBCH_PROCEDURES
,
VCD_FUNCTION_IN
);
LOG_D
(
PHY
,
"[UE %d] Frame %d
, Trying PBCH (NidCell %d, gNB_id %d)
\n
"
,
ue
->
Mod_id
,
frame
_rx
,
ue
->
frame_parms
.
Nid_cell
,
gNB_id
);
LOG_D
(
PHY
,
"[UE %d] Frame %d
Slot %d, Trying PBCH (NidCell %d, gNB_id %d)
\n
"
,
ue
->
Mod_id
,
frame_rx
,
nr_slot
_rx
,
ue
->
frame_parms
.
Nid_cell
,
gNB_id
);
ret
=
nr_rx_pbch
(
ue
,
proc
,
ue
->
pbch_vars
[
gNB_id
],
...
...
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_bch.c
View file @
c2acb9e9
...
...
@@ -253,8 +253,8 @@ void schedule_nr_mib(module_id_t module_idP, frame_t frameP, sub_frame_t slotP)
case
3
:
// long bitmap FR2 max 64 SSBs
num_ssb
=
0
;
for
(
int
i_ssb
=
0
;
i_ssb
<
6
3
;
i_ssb
++
)
{
if
((
longBitmap
->
buf
[
i_ssb
/
8
]
>>
(
7
-
i_ssb
))
&
0x01
)
{
for
(
int
i_ssb
=
0
;
i_ssb
<
6
4
;
i_ssb
++
)
{
if
((
longBitmap
->
buf
[
i_ssb
/
8
]
>>
(
7
-
(
i_ssb
%
8
)
))
&
0x01
)
{
ssb_start_symbol
=
get_ssb_start_symbol
(
band
,
scs
,
i_ssb
);
// if start symbol is in current slot, schedule current SSB, fill VRB map and call get_type0_PDCCH_CSS_config_parameters
if
((
ssb_start_symbol
/
14
)
==
rel_slot
){
...
...
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