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
spbro
OpenXG-RAN
Commits
b6aefac5
Commit
b6aefac5
authored
Mar 15, 2024
by
francescomani
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/rework-ue-map-ro-to-ssb' into integration_2024_w11
parents
823e127c
499bd494
Changes
6
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
185 additions
and
264 deletions
+185
-264
openair2/LAYER2/NR_MAC_COMMON/nr_mac.h
openair2/LAYER2/NR_MAC_COMMON/nr_mac.h
+1
-1
openair2/LAYER2/NR_MAC_UE/mac_defs.h
openair2/LAYER2/NR_MAC_UE/mac_defs.h
+3
-3
openair2/LAYER2/NR_MAC_UE/main_ue_nr.c
openair2/LAYER2/NR_MAC_UE/main_ue_nr.c
+10
-4
openair2/LAYER2/NR_MAC_UE/nr_ue_dci_configuration.c
openair2/LAYER2/NR_MAC_UE/nr_ue_dci_configuration.c
+3
-9
openair2/LAYER2/NR_MAC_UE/nr_ue_scheduler.c
openair2/LAYER2/NR_MAC_UE/nr_ue_scheduler.c
+155
-247
openair2/RRC/NR_UE/rrc_UE.c
openair2/RRC/NR_UE/rrc_UE.c
+13
-0
No files found.
openair2/LAYER2/NR_MAC_COMMON/nr_mac.h
View file @
b6aefac5
...
...
@@ -430,7 +430,7 @@ typedef struct prach_occasion_info {
// PRACH occasion slot details
// A PRACH occasion slot is a series of PRACH occasions in time (symbols) and frequency
typedef
struct
prach_occasion_slot
{
prach_occasion_info_t
prach_occasion
[
MAX_TDM
][
MAX_FDM
]
;
// Starting symbol of each PRACH occasions in a slot
prach_occasion_info_t
*
prach_occasion
;
// Starting symbol of each PRACH occasions in a slot
uint8_t
nb_of_prach_occasion_in_time
;
uint8_t
nb_of_prach_occasion_in_freq
;
}
prach_occasion_slot_t
;
...
...
openair2/LAYER2/NR_MAC_UE/mac_defs.h
View file @
b6aefac5
...
...
@@ -423,15 +423,15 @@ typedef struct prach_association_pattern {
// SSB details
typedef
struct
ssb_info
{
bool
transmitted
;
// True if the SSB index is transmitted according to the SSB positions map configuration
prach_occasion_info_t
*
mapped_ro
[
MAX_NB_RO_PER_SSB_IN_ASSOCIATION_PATTERN
];
// List of mapped RACH Occasions to this SSB index
uint32_t
nb_mapped_ro
;
// Total number of mapped ROs to this SSB index
}
ssb_info_t
;
// List of all the possible SSBs and their details
typedef
struct
ssb_list_info
{
ssb_info_t
tx_ssb
[
MAX_NB_SSB
];
uint8_t
nb_tx_ssb
;
ssb_info_t
*
tx_ssb
;
int
nb_tx_ssb
;
int
nb_ssb_per_index
[
MAX_NB_SSB
];
}
ssb_list_info_t
;
typedef
struct
nr_lcordered_info_s
{
...
...
openair2/LAYER2/NR_MAC_UE/main_ue_nr.c
View file @
b6aefac5
...
...
@@ -74,10 +74,8 @@ void nr_ue_init_mac(NR_UE_MAC_INST_t *mac)
memset
(
&
mac
->
ssb_measurements
,
0
,
sizeof
(
mac
->
ssb_measurements
));
memset
(
&
mac
->
ul_time_alignment
,
0
,
sizeof
(
mac
->
ul_time_alignment
));
for
(
int
i
=
0
;
i
<
MAX_NUM_BWP_UE
;
i
++
)
{
memset
(
&
mac
->
ssb_list
[
i
],
0
,
sizeof
(
mac
->
ssb_list
[
i
]));
memset
(
&
mac
->
prach_assoc_pattern
[
i
],
0
,
sizeof
(
mac
->
prach_assoc_pattern
[
i
]));
}
memset
(
mac
->
ssb_list
,
0
,
sizeof
(
mac
->
ssb_list
));
memset
(
mac
->
prach_assoc_pattern
,
0
,
sizeof
(
mac
->
prach_assoc_pattern
));
}
void
nr_ue_mac_default_configs
(
NR_UE_MAC_INST_t
*
mac
)
...
...
@@ -196,6 +194,14 @@ void reset_mac_inst(NR_UE_MAC_INST_t *nr_mac)
// release, if any, Temporary C-RNTI
nr_mac
->
ra
.
t_crnti
=
0
;
// free RACH structs
for
(
int
i
=
0
;
i
<
MAX_NUM_BWP_UE
;
i
++
)
{
free
(
nr_mac
->
ssb_list
[
i
].
tx_ssb
);
for
(
int
j
=
0
;
j
<
MAX_NB_PRACH_CONF_PERIOD_IN_ASSOCIATION_PATTERN_PERIOD
;
j
++
)
for
(
int
k
=
0
;
k
<
MAX_NB_FRAME_IN_PRACH_CONF_PERIOD
;
k
++
)
for
(
int
l
=
0
;
l
<
MAX_NB_SLOT_IN_FRAME
;
l
++
)
free
(
nr_mac
->
prach_assoc_pattern
[
i
].
prach_conf_period_list
[
j
].
prach_occasion_slot_map
[
k
][
l
].
prach_occasion
);
}
// reset BFI_COUNTER
// TODO beam failure procedure not implemented
...
...
openair2/LAYER2/NR_MAC_UE/nr_ue_dci_configuration.c
View file @
b6aefac5
...
...
@@ -444,18 +444,12 @@ bool monitior_dci_for_other_SI(NR_UE_MAC_INST_t *mac,
for
(
int
i
=
0
;
i
<
duration
;
i
++
)
{
if
(((
frame
*
slots_per_frame
+
slot
-
offset
-
i
)
%
period
)
==
0
)
{
int
N
=
mac
->
ssb_list
[
bwp_id
].
nb_tx_ssb
;
int
K
=
0
;
// k_th transmitted SSB
for
(
int
i
=
0
;
i
<
mac
->
mib_ssb
;
i
++
)
{
if
(
mac
->
ssb_list
[
bwp_id
].
tx_ssb
[
i
].
transmitted
)
K
++
;
}
int
K
=
mac
->
ssb_list
->
nb_ssb_per_index
[
mac
->
mib_ssb
];
// numbering current frame and slot in terms of monitoring occasions in window
int
current_monitor_occasion
=
((
abs_slot
-
mac
->
si_window_start
)
%
period
)
+
(
duration
*
(
abs_slot
-
mac
->
si_window_start
)
/
period
);
if
(
current_monitor_occasion
%
N
==
K
)
return
true
;
else
return
false
;
return
current_monitor_occasion
%
N
==
K
;
}
}
}
...
...
openair2/LAYER2/NR_MAC_UE/nr_ue_scheduler.c
View file @
b6aefac5
This diff is collapsed.
Click to expand it.
openair2/RRC/NR_UE/rrc_UE.c
View file @
b6aefac5
...
...
@@ -358,42 +358,55 @@ bool check_si_validity(NR_UE_RRC_SI_INFO *SI_info, int si_type)
case
NR_SIB_TypeInfo__type_sibType2
:
if
(
!
SI_info
->
sib2
)
return
false
;
break
;
case
NR_SIB_TypeInfo__type_sibType3
:
if
(
!
SI_info
->
sib3
)
return
false
;
break
;
case
NR_SIB_TypeInfo__type_sibType4
:
if
(
!
SI_info
->
sib4
)
return
false
;
break
;
case
NR_SIB_TypeInfo__type_sibType5
:
if
(
!
SI_info
->
sib5
)
return
false
;
break
;
case
NR_SIB_TypeInfo__type_sibType6
:
if
(
!
SI_info
->
sib6
)
return
false
;
break
;
case
NR_SIB_TypeInfo__type_sibType7
:
if
(
!
SI_info
->
sib7
)
return
false
;
break
;
case
NR_SIB_TypeInfo__type_sibType8
:
if
(
!
SI_info
->
sib8
)
return
false
;
break
;
case
NR_SIB_TypeInfo__type_sibType9
:
if
(
!
SI_info
->
sib9
)
return
false
;
break
;
case
NR_SIB_TypeInfo__type_sibType10_v1610
:
if
(
!
SI_info
->
sib10
)
return
false
;
break
;
case
NR_SIB_TypeInfo__type_sibType11_v1610
:
if
(
!
SI_info
->
sib11
)
return
false
;
break
;
case
NR_SIB_TypeInfo__type_sibType12_v1610
:
if
(
!
SI_info
->
sib12
)
return
false
;
break
;
case
NR_SIB_TypeInfo__type_sibType13_v1610
:
if
(
!
SI_info
->
sib13
)
return
false
;
break
;
case
NR_SIB_TypeInfo__type_sibType14_v1610
:
if
(
!
SI_info
->
sib14
)
return
false
;
break
;
default
:
AssertFatal
(
false
,
"Invalid SIB type %d
\n
"
,
si_type
);
}
...
...
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