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
a5d06150
Commit
a5d06150
authored
May 19, 2022
by
Robert Schmidt
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Harmonize SRB configuration in function
parent
b46077c2
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
33 additions
and
58 deletions
+33
-58
openair2/RRC/NR/MESSAGES/asn1_msg.c
openair2/RRC/NR/MESSAGES/asn1_msg.c
+33
-58
No files found.
openair2/RRC/NR/MESSAGES/asn1_msg.c
View file @
a5d06150
...
@@ -2161,26 +2161,19 @@ void fill_initial_SpCellConfig(int uid,
...
@@ -2161,26 +2161,19 @@ void fill_initial_SpCellConfig(int uid,
}
}
void
fill_mastercellGroupConfig
(
NR_CellGroupConfig_t
*
cellGroupConfig
,
NR_CellGroupConfig_t
*
ue_context_mastercellGroup
,
int
use_rlc_um_for_drb
,
uint8_t
configure_srb
,
uint8_t
bearer_id_start
,
uint8_t
nb_bearers_to_setup
,
long
*
priority
)
{
NR_RLC_BearerConfig_t
*
get_SRB_RLC_BearerConfig
(
long
channelId
,
long
priority
,
cellGroupConfig
->
cellGroupId
=
0
;
e_NR_LogicalChannelConfig__ul_SpecificParameters__bucketSizeDuration
bucketSizeDuration
)
cellGroupConfig
->
rlc_BearerToReleaseList
=
NULL
;
{
cellGroupConfig
->
rlc_BearerToAddModList
=
calloc
(
1
,
sizeof
(
*
cellGroupConfig
->
rlc_BearerToAddModList
));
// RLC Bearer Config
// TS38.331 9.2.1 Default SRB configurations
if
(
configure_srb
){
NR_RLC_BearerConfig_t
*
rlc_BearerConfig
=
NULL
;
NR_RLC_BearerConfig_t
*
rlc_BearerConfig
=
NULL
;
NR_RLC_Config_t
*
rlc_Config
=
NULL
;
NR_LogicalChannelConfig_t
*
logicalChannelConfig
=
NULL
;
long
*
logicalChannelGroup
=
NULL
;
rlc_BearerConfig
=
calloc
(
1
,
sizeof
(
NR_RLC_BearerConfig_t
));
rlc_BearerConfig
=
calloc
(
1
,
sizeof
(
NR_RLC_BearerConfig_t
));
rlc_BearerConfig
->
logicalChannelIdentity
=
2
;
rlc_BearerConfig
->
logicalChannelIdentity
=
channelId
;
rlc_BearerConfig
->
servedRadioBearer
=
calloc
(
1
,
sizeof
(
*
rlc_BearerConfig
->
servedRadioBearer
));
rlc_BearerConfig
->
servedRadioBearer
=
calloc
(
1
,
sizeof
(
*
rlc_BearerConfig
->
servedRadioBearer
));
rlc_BearerConfig
->
servedRadioBearer
->
present
=
NR_RLC_BearerConfig__servedRadioBearer_PR_srb_Identity
;
rlc_BearerConfig
->
servedRadioBearer
->
present
=
NR_RLC_BearerConfig__servedRadioBearer_PR_srb_Identity
;
rlc_BearerConfig
->
servedRadioBearer
->
choice
.
srb_Identity
=
2
;
rlc_BearerConfig
->
servedRadioBearer
->
choice
.
srb_Identity
=
channelId
;
rlc_BearerConfig
->
reestablishRLC
=
NULL
;
rlc_BearerConfig
->
reestablishRLC
=
NULL
;
rlc_Config
=
calloc
(
1
,
sizeof
(
NR_RLC_Config_t
));
NR_RLC_Config_t
*
rlc_Config
=
calloc
(
1
,
sizeof
(
NR_RLC_Config_t
));
rlc_Config
->
present
=
NR_RLC_Config_PR_am
;
rlc_Config
->
present
=
NR_RLC_Config_PR_am
;
rlc_Config
->
choice
.
am
=
calloc
(
1
,
sizeof
(
*
rlc_Config
->
choice
.
am
));
rlc_Config
->
choice
.
am
=
calloc
(
1
,
sizeof
(
*
rlc_Config
->
choice
.
am
));
rlc_Config
->
choice
.
am
->
dl_AM_RLC
.
sn_FieldLength
=
calloc
(
1
,
sizeof
(
NR_SN_FieldLengthAM_t
));
rlc_Config
->
choice
.
am
->
dl_AM_RLC
.
sn_FieldLength
=
calloc
(
1
,
sizeof
(
NR_SN_FieldLengthAM_t
));
...
@@ -2194,12 +2187,14 @@ void fill_mastercellGroupConfig(NR_CellGroupConfig_t *cellGroupConfig, NR_CellGr
...
@@ -2194,12 +2187,14 @@ void fill_mastercellGroupConfig(NR_CellGroupConfig_t *cellGroupConfig, NR_CellGr
rlc_Config
->
choice
.
am
->
ul_AM_RLC
.
pollByte
=
NR_PollByte_infinity
;
rlc_Config
->
choice
.
am
->
ul_AM_RLC
.
pollByte
=
NR_PollByte_infinity
;
rlc_Config
->
choice
.
am
->
ul_AM_RLC
.
maxRetxThreshold
=
NR_UL_AM_RLC__maxRetxThreshold_t8
;
rlc_Config
->
choice
.
am
->
ul_AM_RLC
.
maxRetxThreshold
=
NR_UL_AM_RLC__maxRetxThreshold_t8
;
rlc_BearerConfig
->
rlc_Config
=
rlc_Config
;
rlc_BearerConfig
->
rlc_Config
=
rlc_Config
;
logicalChannelConfig
=
calloc
(
1
,
sizeof
(
NR_LogicalChannelConfig_t
));
NR_LogicalChannelConfig_t
*
logicalChannelConfig
=
calloc
(
1
,
sizeof
(
NR_LogicalChannelConfig_t
));
logicalChannelConfig
->
ul_SpecificParameters
=
calloc
(
1
,
sizeof
(
*
logicalChannelConfig
->
ul_SpecificParameters
));
logicalChannelConfig
->
ul_SpecificParameters
=
calloc
(
1
,
sizeof
(
*
logicalChannelConfig
->
ul_SpecificParameters
));
logicalChannelConfig
->
ul_SpecificParameters
->
priority
=
3
;
logicalChannelConfig
->
ul_SpecificParameters
->
priority
=
priority
;
logicalChannelConfig
->
ul_SpecificParameters
->
prioritisedBitRate
=
NR_LogicalChannelConfig__ul_SpecificParameters__prioritisedBitRate_infinity
;
logicalChannelConfig
->
ul_SpecificParameters
->
prioritisedBitRate
=
NR_LogicalChannelConfig__ul_SpecificParameters__prioritisedBitRate_infinity
;
logicalChannelConfig
->
ul_SpecificParameters
->
bucketSizeDuration
=
NR_LogicalChannelConfig__ul_SpecificParameters__bucketSizeDuration_ms5
;
logicalChannelConfig
->
ul_SpecificParameters
->
bucketSizeDuration
=
bucketSizeDuration
;
logicalChannelGroup
=
CALLOC
(
1
,
sizeof
(
long
));
long
*
logicalChannelGroup
=
CALLOC
(
1
,
sizeof
(
long
));
*
logicalChannelGroup
=
0
;
*
logicalChannelGroup
=
0
;
logicalChannelConfig
->
ul_SpecificParameters
->
logicalChannelGroup
=
logicalChannelGroup
;
logicalChannelConfig
->
ul_SpecificParameters
->
logicalChannelGroup
=
logicalChannelGroup
;
logicalChannelConfig
->
ul_SpecificParameters
->
schedulingRequestID
=
CALLOC
(
1
,
sizeof
(
*
logicalChannelConfig
->
ul_SpecificParameters
->
schedulingRequestID
));
logicalChannelConfig
->
ul_SpecificParameters
->
schedulingRequestID
=
CALLOC
(
1
,
sizeof
(
*
logicalChannelConfig
->
ul_SpecificParameters
->
schedulingRequestID
));
...
@@ -2207,9 +2202,24 @@ void fill_mastercellGroupConfig(NR_CellGroupConfig_t *cellGroupConfig, NR_CellGr
...
@@ -2207,9 +2202,24 @@ void fill_mastercellGroupConfig(NR_CellGroupConfig_t *cellGroupConfig, NR_CellGr
logicalChannelConfig
->
ul_SpecificParameters
->
logicalChannelSR_Mask
=
0
;
logicalChannelConfig
->
ul_SpecificParameters
->
logicalChannelSR_Mask
=
0
;
logicalChannelConfig
->
ul_SpecificParameters
->
logicalChannelSR_DelayTimerApplied
=
0
;
logicalChannelConfig
->
ul_SpecificParameters
->
logicalChannelSR_DelayTimerApplied
=
0
;
rlc_BearerConfig
->
mac_LogicalChannelConfig
=
logicalChannelConfig
;
rlc_BearerConfig
->
mac_LogicalChannelConfig
=
logicalChannelConfig
;
return
rlc_BearerConfig
;
}
void
fill_mastercellGroupConfig
(
NR_CellGroupConfig_t
*
cellGroupConfig
,
NR_CellGroupConfig_t
*
ue_context_mastercellGroup
,
int
use_rlc_um_for_drb
,
uint8_t
configure_srb
,
uint8_t
bearer_id_start
,
uint8_t
nb_bearers_to_setup
,
long
*
priority
)
{
cellGroupConfig
->
cellGroupId
=
0
;
cellGroupConfig
->
rlc_BearerToReleaseList
=
NULL
;
cellGroupConfig
->
rlc_BearerToAddModList
=
calloc
(
1
,
sizeof
(
*
cellGroupConfig
->
rlc_BearerToAddModList
));
// RLC Bearer Config
// TS38.331 9.2.1 Default SRB configurations
if
(
configure_srb
){
NR_RLC_BearerConfig_t
*
rlc_BearerConfig
=
get_SRB_RLC_BearerConfig
(
2
,
3
,
NR_LogicalChannelConfig__ul_SpecificParameters__bucketSizeDuration_ms5
);
ASN_SEQUENCE_ADD
(
&
cellGroupConfig
->
rlc_BearerToAddModList
->
list
,
rlc_BearerConfig
);
ASN_SEQUENCE_ADD
(
&
cellGroupConfig
->
rlc_BearerToAddModList
->
list
,
rlc_BearerConfig
);
ASN_SEQUENCE_ADD
(
&
ue_context_mastercellGroup
->
rlc_BearerToAddModList
->
list
,
rlc_BearerConfig
);
ASN_SEQUENCE_ADD
(
&
ue_context_mastercellGroup
->
rlc_BearerToAddModList
->
list
,
rlc_BearerConfig
);
}
}
// DRB Configuration
// DRB Configuration
for
(
int
i
=
bearer_id_start
;
i
<
bearer_id_start
+
nb_bearers_to_setup
;
i
++
){
for
(
int
i
=
bearer_id_start
;
i
<
bearer_id_start
+
nb_bearers_to_setup
;
i
++
){
NR_RLC_BearerConfig_t
*
rlc_BearerConfig_drb
=
NULL
;
NR_RLC_BearerConfig_t
*
rlc_BearerConfig_drb
=
NULL
;
...
@@ -2279,50 +2289,15 @@ void fill_initial_cellGroupConfig(int uid,
...
@@ -2279,50 +2289,15 @@ void fill_initial_cellGroupConfig(int uid,
NR_ServingCellConfig_t
*
servingcellconfigdedicated
,
NR_ServingCellConfig_t
*
servingcellconfigdedicated
,
const
gNB_RrcConfigurationReq
*
configuration
)
const
gNB_RrcConfigurationReq
*
configuration
)
{
{
NR_RLC_BearerConfig_t
*
rlc_BearerConfig
=
NULL
;
NR_RLC_Config_t
*
rlc_Config
=
NULL
;
NR_LogicalChannelConfig_t
*
logicalChannelConfig
=
NULL
;
NR_MAC_CellGroupConfig_t
*
mac_CellGroupConfig
=
NULL
;
NR_MAC_CellGroupConfig_t
*
mac_CellGroupConfig
=
NULL
;
NR_PhysicalCellGroupConfig_t
*
physicalCellGroupConfig
=
NULL
;
NR_PhysicalCellGroupConfig_t
*
physicalCellGroupConfig
=
NULL
;
long
*
logicalChannelGroup
=
NULL
;
cellGroupConfig
->
cellGroupId
=
0
;
cellGroupConfig
->
cellGroupId
=
0
;
/* Rlc Bearer Config */
/* Rlc Bearer Config */
/* TS38.331 9.2.1 Default SRB configurations */
/* TS38.331 9.2.1 Default SRB configurations */
cellGroupConfig
->
rlc_BearerToAddModList
=
calloc
(
1
,
sizeof
(
*
cellGroupConfig
->
rlc_BearerToAddModList
));
cellGroupConfig
->
rlc_BearerToAddModList
=
calloc
(
1
,
sizeof
(
*
cellGroupConfig
->
rlc_BearerToAddModList
));
rlc_BearerConfig
=
calloc
(
1
,
sizeof
(
NR_RLC_BearerConfig_t
));
NR_RLC_BearerConfig_t
*
rlc_BearerConfig
=
get_SRB_RLC_BearerConfig
(
1
,
1
,
NR_LogicalChannelConfig__ul_SpecificParameters__bucketSizeDuration_ms1000
);
rlc_BearerConfig
->
logicalChannelIdentity
=
1
;
rlc_BearerConfig
->
servedRadioBearer
=
calloc
(
1
,
sizeof
(
*
rlc_BearerConfig
->
servedRadioBearer
));
rlc_BearerConfig
->
servedRadioBearer
->
present
=
NR_RLC_BearerConfig__servedRadioBearer_PR_srb_Identity
;
rlc_BearerConfig
->
servedRadioBearer
->
choice
.
srb_Identity
=
1
;
rlc_BearerConfig
->
reestablishRLC
=
NULL
;
rlc_Config
=
calloc
(
1
,
sizeof
(
NR_RLC_Config_t
));
rlc_Config
->
present
=
NR_RLC_Config_PR_am
;
rlc_Config
->
choice
.
am
=
calloc
(
1
,
sizeof
(
*
rlc_Config
->
choice
.
am
));
rlc_Config
->
choice
.
am
->
dl_AM_RLC
.
sn_FieldLength
=
calloc
(
1
,
sizeof
(
NR_SN_FieldLengthAM_t
));
*
(
rlc_Config
->
choice
.
am
->
dl_AM_RLC
.
sn_FieldLength
)
=
NR_SN_FieldLengthAM_size12
;
rlc_Config
->
choice
.
am
->
dl_AM_RLC
.
t_Reassembly
=
NR_T_Reassembly_ms35
;
rlc_Config
->
choice
.
am
->
dl_AM_RLC
.
t_StatusProhibit
=
NR_T_StatusProhibit_ms0
;
rlc_Config
->
choice
.
am
->
ul_AM_RLC
.
sn_FieldLength
=
calloc
(
1
,
sizeof
(
NR_SN_FieldLengthAM_t
));
*
(
rlc_Config
->
choice
.
am
->
ul_AM_RLC
.
sn_FieldLength
)
=
NR_SN_FieldLengthAM_size12
;
rlc_Config
->
choice
.
am
->
ul_AM_RLC
.
t_PollRetransmit
=
NR_T_PollRetransmit_ms45
;
rlc_Config
->
choice
.
am
->
ul_AM_RLC
.
pollPDU
=
NR_PollPDU_infinity
;
rlc_Config
->
choice
.
am
->
ul_AM_RLC
.
pollByte
=
NR_PollByte_infinity
;
rlc_Config
->
choice
.
am
->
ul_AM_RLC
.
maxRetxThreshold
=
NR_UL_AM_RLC__maxRetxThreshold_t8
;
rlc_BearerConfig
->
rlc_Config
=
rlc_Config
;
logicalChannelConfig
=
calloc
(
1
,
sizeof
(
NR_LogicalChannelConfig_t
));
logicalChannelConfig
->
ul_SpecificParameters
=
calloc
(
1
,
sizeof
(
*
logicalChannelConfig
->
ul_SpecificParameters
));
logicalChannelConfig
->
ul_SpecificParameters
->
priority
=
1
;
logicalChannelConfig
->
ul_SpecificParameters
->
prioritisedBitRate
=
NR_LogicalChannelConfig__ul_SpecificParameters__prioritisedBitRate_infinity
;
logicalChannelGroup
=
CALLOC
(
1
,
sizeof
(
long
));
*
logicalChannelGroup
=
0
;
logicalChannelConfig
->
ul_SpecificParameters
->
logicalChannelGroup
=
logicalChannelGroup
;
logicalChannelConfig
->
ul_SpecificParameters
->
schedulingRequestID
=
CALLOC
(
1
,
sizeof
(
*
logicalChannelConfig
->
ul_SpecificParameters
->
schedulingRequestID
));
*
logicalChannelConfig
->
ul_SpecificParameters
->
schedulingRequestID
=
0
;
logicalChannelConfig
->
ul_SpecificParameters
->
logicalChannelSR_Mask
=
0
;
logicalChannelConfig
->
ul_SpecificParameters
->
logicalChannelSR_DelayTimerApplied
=
0
;
rlc_BearerConfig
->
mac_LogicalChannelConfig
=
logicalChannelConfig
;
ASN_SEQUENCE_ADD
(
&
cellGroupConfig
->
rlc_BearerToAddModList
->
list
,
rlc_BearerConfig
);
ASN_SEQUENCE_ADD
(
&
cellGroupConfig
->
rlc_BearerToAddModList
->
list
,
rlc_BearerConfig
);
cellGroupConfig
->
rlc_BearerToReleaseList
=
NULL
;
cellGroupConfig
->
rlc_BearerToReleaseList
=
NULL
;
...
...
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