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
cb9dbb65
Commit
cb9dbb65
authored
1 year ago
by
Robert Schmidt
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/NR_UE_otherSI_improv' into integration_2023_w30
parents
56f0b708
96e6256d
Branches unavailable
2024.w43
2024.w42
2024.w41
2024.w40
2024.w39
2024.w38
2024.w36
2024.w35
2024.w34
2024.w33
2024.w32
2024.w31
2024.w30
2024.w29
2024.w28
2024.w27
2024.w26
2024.w25
2024.w24
2024.w23
2024.w22
2024.w21
2024.w18
2024.w17
2024.w16
2024.w15
2024.w14
2024.w13
2024.w12
2024.w11
2024.w10
2024.w09
2024.w08
2024.w06
2024.w05
2024.w04
2024.w03
2024.w02
2024.w01
2023.w51
2023.w50
2023.w49
2023.w48
2023.w47
2023.w45
2023.w43
2023.w42
2023.w41
2023.w40
2023.w39
2023.w38
2023.w37
2023.w36
2023.w34
2023.w33
2023.w32
2023.w31
2023.w30
v2.1.0
v2.0.0
ARC_1.3
No related merge requests found
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
95 additions
and
13 deletions
+95
-13
openair2/RRC/NR_UE/rrc_UE.c
openair2/RRC/NR_UE/rrc_UE.c
+94
-13
openair2/RRC/NR_UE/rrc_defs.h
openair2/RRC/NR_UE/rrc_defs.h
+1
-0
No files found.
openair2/RRC/NR_UE/rrc_UE.c
View file @
cb9dbb65
...
...
@@ -484,24 +484,87 @@ int8_t nr_ue_process_physical_cell_group_config(NR_PhysicalCellGroupConfig_t *ph
return
0
;
}
bool
check_si_validity
(
NR_UE_RRC_SI_INFO
*
SI_info
,
int
si_type
)
{
switch
(
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
);
}
return
true
;
}
int
check_si_status
(
NR_UE_RRC_SI_INFO
*
SI_info
)
{
// schedule reception of SIB1
// schedule reception of SIB1
if RRC doesn't have it
if
(
!
SI_info
->
sib1
)
return
1
;
else
{
if
(
!
SI_info
->
sib1
->
si_SchedulingInfo
)
return
0
;
// The UE in RRC_IDLE and RRC_INACTIVE shall ensure having
// a valid version of (at least) the MIB, SIB1 through
// SIB4 (and SIB5 if the UE supports E-UTRA)
if
(
!
SI_info
->
sib2
||
!
SI_info
->
sib3
||
!
SI_info
->
sib4
)
// we schedule reception of otherSI
// if UE RRC doesn't have any of the
// default SIBs for now
return
2
;
if
(
SI_info
->
sib1
->
si_SchedulingInfo
)
{
// Check if RRC has configured default SI
// from SIB2 to SIB14 as current ASN1 version
// TODO can be used for on demand SI when (if) implemented
for
(
int
i
=
2
;
i
<
15
;
i
++
)
{
int
si_index
=
i
-
2
;
if
((
SI_info
->
default_otherSI_map
>>
si_index
)
&
0x01
)
{
// if RRC has no valid version of one of the default configured SI
// Then schedule reception of otherSI
if
(
!
check_si_validity
(
SI_info
,
si_index
))
return
2
;
}
}
}
}
return
0
;
}
...
...
@@ -704,6 +767,22 @@ int8_t nr_rrc_ue_generate_ra_msg(module_id_t module_id, uint8_t gNB_index) {
return
0
;
}
void
nr_rrc_configure_default_SI
(
NR_UE_RRC_SI_INFO
*
SI_info
,
NR_SIB1_t
*
sib1
)
{
struct
NR_SI_SchedulingInfo
*
si_SchedulingInfo
=
sib1
->
si_SchedulingInfo
;
if
(
!
si_SchedulingInfo
)
return
;
SI_info
->
default_otherSI_map
=
0
;
for
(
int
i
=
0
;
i
<
si_SchedulingInfo
->
schedulingInfoList
.
list
.
count
;
i
++
)
{
struct
NR_SchedulingInfo
*
schedulingInfo
=
si_SchedulingInfo
->
schedulingInfoList
.
list
.
array
[
i
];
for
(
int
j
=
0
;
j
<
schedulingInfo
->
sib_MappingInfo
.
list
.
count
;
j
++
)
{
struct
NR_SIB_TypeInfo
*
sib_Type
=
schedulingInfo
->
sib_MappingInfo
.
list
.
array
[
j
];
SI_info
->
default_otherSI_map
|=
1
<<
sib_Type
->
type
;
}
}
}
/**\brief decode NR BCCH-DLSCH (SI) messages
\param module_idP module id
\param gNB_index gNB index
...
...
@@ -762,6 +841,8 @@ static int8_t nr_rrc_ue_decode_NR_BCCH_DL_SCH_Message(module_id_t module_id,
LOG_D
(
PHY
,
"Setting state to RRC_STATE_IDLE_NR
\n
"
);
nr_rrc_set_state
(
module_id
,
RRC_STATE_IDLE_NR
);
}
// configure default SI
nr_rrc_configure_default_SI
(
SI_info
,
sib1
);
// configure timers and constant
nr_rrc_set_sib1_timers_and_constants
(
&
NR_UE_rrc_inst
[
module_id
].
timers_and_constants
,
sib1
);
// take ServingCellConfigCommon and configure L1/L2
...
...
This diff is collapsed.
Click to expand it.
openair2/RRC/NR_UE/rrc_defs.h
View file @
cb9dbb65
...
...
@@ -134,6 +134,7 @@ typedef enum RA_trigger_e {
}
RA_trigger_t
;
typedef
struct
UE_RRC_SI_INFO_NR_s
{
uint32_t
default_otherSI_map
;
NR_SIB1_t
*
sib1
;
int
sib1_timer
;
NR_SIB2_t
*
sib2
;
...
...
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