Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
openairinterface5G
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Deploy
Releases
Model registry
Monitor
Incidents
Service Desk
Analyze
Value stream analytics
Contributor analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
oai
openairinterface5G
Commits
408a1c01
Commit
408a1c01
authored
2 years ago
by
Robert Schmidt
Browse files
Options
Downloads
Plain Diff
Merge remote-tracking branch 'origin/NR_RRC_config_cleanup' into integration_2022_wk44
parents
e5eabe20
3cd342f7
No related branches found
No related tags found
1 merge request
!1800
integration_2022_wk44
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
openair2/RRC/NR/MESSAGES/asn1_msg.c
+0
-212
0 additions, 212 deletions
openair2/RRC/NR/MESSAGES/asn1_msg.c
openair2/RRC/NR/MESSAGES/asn1_msg.h
+0
-15
0 additions, 15 deletions
openair2/RRC/NR/MESSAGES/asn1_msg.h
openair2/RRC/NR/nr_rrc_config.h
+0
-78
0 additions, 78 deletions
openair2/RRC/NR/nr_rrc_config.h
with
0 additions
and
305 deletions
openair2/RRC/NR/MESSAGES/asn1_msg.c
+
0
−
212
View file @
408a1c01
...
@@ -716,218 +716,6 @@ uint8_t do_SIB23_NR(rrc_gNB_carrier_data_t *carrier,
...
@@ -716,218 +716,6 @@ uint8_t do_SIB23_NR(rrc_gNB_carrier_data_t *carrier,
return
((
enc_rval
.
encoded
+
7
)
/
8
);
return
((
enc_rval
.
encoded
+
7
)
/
8
);
}
}
void
do_RLC_BEARER
(
uint8_t
Mod_id
,
int
CC_id
,
struct
NR_CellGroupConfig__rlc_BearerToAddModList
*
rlc_BearerToAddModList
,
rlc_bearer_config_t
*
rlc_config
)
{
struct
NR_RLC_BearerConfig
*
rlc_bearer
;
rlc_bearer
=
CALLOC
(
1
,
sizeof
(
struct
NR_RLC_BearerConfig
));
rlc_bearer
->
logicalChannelIdentity
=
rlc_config
->
LogicalChannelIdentity
[
CC_id
];
rlc_bearer
->
servedRadioBearer
=
CALLOC
(
1
,
sizeof
(
struct
NR_RLC_BearerConfig__servedRadioBearer
));
rlc_bearer
->
servedRadioBearer
->
present
=
rlc_config
->
servedRadioBearer_present
[
CC_id
];
if
(
rlc_bearer
->
servedRadioBearer
->
present
==
NR_RLC_BearerConfig__servedRadioBearer_PR_srb_Identity
)
{
rlc_bearer
->
servedRadioBearer
->
choice
.
srb_Identity
=
rlc_config
->
srb_Identity
[
CC_id
];
}
else
if
(
rlc_bearer
->
servedRadioBearer
->
present
==
NR_RLC_BearerConfig__servedRadioBearer_PR_drb_Identity
)
{
rlc_bearer
->
servedRadioBearer
->
choice
.
drb_Identity
=
rlc_config
->
drb_Identity
[
CC_id
];
}
rlc_bearer
->
reestablishRLC
=
CALLOC
(
1
,
sizeof
(
long
));
*
(
rlc_bearer
->
reestablishRLC
)
=
rlc_config
->
reestablishRLC
[
CC_id
];
rlc_bearer
->
rlc_Config
=
CALLOC
(
1
,
sizeof
(
struct
NR_RLC_Config
));
rlc_bearer
->
rlc_Config
->
present
=
rlc_config
->
rlc_Config_present
[
CC_id
];
if
(
rlc_bearer
->
rlc_Config
->
present
==
NR_RLC_Config_PR_am
)
{
rlc_bearer
->
rlc_Config
->
choice
.
am
=
CALLOC
(
1
,
sizeof
(
struct
NR_RLC_Config__am
));
rlc_bearer
->
rlc_Config
->
choice
.
am
->
ul_AM_RLC
.
sn_FieldLength
=
CALLOC
(
1
,
sizeof
(
NR_SN_FieldLengthAM_t
));
*
(
rlc_bearer
->
rlc_Config
->
choice
.
am
->
ul_AM_RLC
.
sn_FieldLength
)
=
rlc_config
->
ul_AM_sn_FieldLength
[
CC_id
];
rlc_bearer
->
rlc_Config
->
choice
.
am
->
ul_AM_RLC
.
t_PollRetransmit
=
rlc_config
->
t_PollRetransmit
[
CC_id
];
rlc_bearer
->
rlc_Config
->
choice
.
am
->
ul_AM_RLC
.
pollPDU
=
rlc_config
->
pollPDU
[
CC_id
];
rlc_bearer
->
rlc_Config
->
choice
.
am
->
ul_AM_RLC
.
pollByte
=
rlc_config
->
pollByte
[
CC_id
];
rlc_bearer
->
rlc_Config
->
choice
.
am
->
ul_AM_RLC
.
maxRetxThreshold
=
rlc_config
->
maxRetxThreshold
[
CC_id
];
rlc_bearer
->
rlc_Config
->
choice
.
am
->
dl_AM_RLC
.
sn_FieldLength
=
CALLOC
(
1
,
sizeof
(
NR_SN_FieldLengthAM_t
));
*
(
rlc_bearer
->
rlc_Config
->
choice
.
am
->
dl_AM_RLC
.
sn_FieldLength
)
=
rlc_config
->
dl_AM_sn_FieldLength
[
CC_id
];
rlc_bearer
->
rlc_Config
->
choice
.
am
->
dl_AM_RLC
.
t_Reassembly
=
rlc_config
->
dl_AM_t_Reassembly
[
CC_id
];
rlc_bearer
->
rlc_Config
->
choice
.
am
->
dl_AM_RLC
.
t_StatusProhibit
=
rlc_config
->
t_StatusProhibit
[
CC_id
];
}
else
if
(
rlc_bearer
->
rlc_Config
->
present
==
NR_RLC_Config_PR_um_Bi_Directional
)
{
rlc_bearer
->
rlc_Config
->
choice
.
um_Bi_Directional
=
CALLOC
(
1
,
sizeof
(
struct
NR_RLC_Config__um_Bi_Directional
));
rlc_bearer
->
rlc_Config
->
choice
.
um_Bi_Directional
->
ul_UM_RLC
.
sn_FieldLength
=
CALLOC
(
1
,
sizeof
(
NR_SN_FieldLengthUM_t
));
*
(
rlc_bearer
->
rlc_Config
->
choice
.
um_Bi_Directional
->
ul_UM_RLC
.
sn_FieldLength
)
=
rlc_config
->
ul_UM_sn_FieldLength
[
CC_id
];
rlc_bearer
->
rlc_Config
->
choice
.
um_Bi_Directional
->
dl_UM_RLC
.
sn_FieldLength
=
CALLOC
(
1
,
sizeof
(
NR_SN_FieldLengthUM_t
));
*
(
rlc_bearer
->
rlc_Config
->
choice
.
um_Bi_Directional
->
dl_UM_RLC
.
sn_FieldLength
)
=
rlc_config
->
dl_UM_sn_FieldLength
[
CC_id
];
rlc_bearer
->
rlc_Config
->
choice
.
um_Bi_Directional
->
dl_UM_RLC
.
t_Reassembly
=
rlc_config
->
dl_UM_t_Reassembly
[
CC_id
];
}
else
if
(
rlc_bearer
->
rlc_Config
->
present
==
NR_RLC_Config_PR_um_Uni_Directional_UL
)
{
rlc_bearer
->
rlc_Config
->
choice
.
um_Uni_Directional_UL
=
CALLOC
(
1
,
sizeof
(
struct
NR_RLC_Config__um_Uni_Directional_UL
));
rlc_bearer
->
rlc_Config
->
choice
.
um_Uni_Directional_UL
->
ul_UM_RLC
.
sn_FieldLength
=
CALLOC
(
1
,
sizeof
(
NR_SN_FieldLengthUM_t
));
*
(
rlc_bearer
->
rlc_Config
->
choice
.
um_Uni_Directional_UL
->
ul_UM_RLC
.
sn_FieldLength
)
=
rlc_config
->
ul_UM_sn_FieldLength
[
CC_id
];
}
else
if
(
rlc_bearer
->
rlc_Config
->
present
==
NR_RLC_Config_PR_um_Uni_Directional_DL
)
{
rlc_bearer
->
rlc_Config
->
choice
.
um_Uni_Directional_DL
=
CALLOC
(
1
,
sizeof
(
struct
NR_RLC_Config__um_Uni_Directional_DL
));
rlc_bearer
->
rlc_Config
->
choice
.
um_Uni_Directional_DL
->
dl_UM_RLC
.
sn_FieldLength
=
CALLOC
(
1
,
sizeof
(
NR_SN_FieldLengthUM_t
));
*
(
rlc_bearer
->
rlc_Config
->
choice
.
um_Uni_Directional_DL
->
dl_UM_RLC
.
sn_FieldLength
)
=
rlc_config
->
dl_UM_sn_FieldLength
[
CC_id
];
rlc_bearer
->
rlc_Config
->
choice
.
um_Uni_Directional_DL
->
dl_UM_RLC
.
t_Reassembly
=
rlc_config
->
dl_UM_t_Reassembly
[
CC_id
];
}
rlc_bearer
->
mac_LogicalChannelConfig
=
CALLOC
(
1
,
sizeof
(
struct
NR_LogicalChannelConfig
));
rlc_bearer
->
mac_LogicalChannelConfig
->
ul_SpecificParameters
=
CALLOC
(
1
,
sizeof
(
struct
NR_LogicalChannelConfig__ul_SpecificParameters
));
rlc_bearer
->
mac_LogicalChannelConfig
->
ul_SpecificParameters
->
priority
=
rlc_config
->
priority
[
CC_id
];
rlc_bearer
->
mac_LogicalChannelConfig
->
ul_SpecificParameters
->
prioritisedBitRate
=
rlc_config
->
prioritisedBitRate
[
CC_id
];
rlc_bearer
->
mac_LogicalChannelConfig
->
ul_SpecificParameters
->
bucketSizeDuration
=
rlc_config
->
bucketSizeDuration
[
CC_id
];
rlc_bearer
->
mac_LogicalChannelConfig
->
ul_SpecificParameters
->
allowedServingCells
=
CALLOC
(
1
,
sizeof
(
struct
NR_LogicalChannelConfig__ul_SpecificParameters__allowedServingCells
));
rlc_bearer
->
mac_LogicalChannelConfig
->
ul_SpecificParameters
->
allowedSCS_List
=
CALLOC
(
1
,
sizeof
(
struct
NR_LogicalChannelConfig__ul_SpecificParameters__allowedSCS_List
));
NR_ServCellIndex_t
*
servingcellindex
;
servingcellindex
=
CALLOC
(
1
,
sizeof
(
NR_ServCellIndex_t
));
*
servingcellindex
=
rlc_config
->
allowedServingCells
[
CC_id
];
ASN_SEQUENCE_ADD
(
&
(
rlc_bearer
->
mac_LogicalChannelConfig
->
ul_SpecificParameters
->
allowedServingCells
->
list
),
&
servingcellindex
);
NR_SubcarrierSpacing_t
*
subcarrierspacing
;
subcarrierspacing
=
CALLOC
(
1
,
sizeof
(
NR_SubcarrierSpacing_t
));
*
subcarrierspacing
=
rlc_config
->
subcarrierspacing
[
CC_id
];
ASN_SEQUENCE_ADD
(
&
(
rlc_bearer
->
mac_LogicalChannelConfig
->
ul_SpecificParameters
->
allowedSCS_List
->
list
),
&
subcarrierspacing
);
rlc_bearer
->
mac_LogicalChannelConfig
->
ul_SpecificParameters
->
maxPUSCH_Duration
=
CALLOC
(
1
,
sizeof
(
long
));
rlc_bearer
->
mac_LogicalChannelConfig
->
ul_SpecificParameters
->
configuredGrantType1Allowed
=
CALLOC
(
1
,
sizeof
(
long
));
rlc_bearer
->
mac_LogicalChannelConfig
->
ul_SpecificParameters
->
logicalChannelGroup
=
CALLOC
(
1
,
sizeof
(
long
));
rlc_bearer
->
mac_LogicalChannelConfig
->
ul_SpecificParameters
->
schedulingRequestID
=
CALLOC
(
1
,
sizeof
(
NR_SchedulingRequestId_t
));
*
(
rlc_bearer
->
mac_LogicalChannelConfig
->
ul_SpecificParameters
->
maxPUSCH_Duration
)
=
rlc_config
->
maxPUSCH_Duration
[
CC_id
];
*
(
rlc_bearer
->
mac_LogicalChannelConfig
->
ul_SpecificParameters
->
configuredGrantType1Allowed
)
=
rlc_config
->
configuredGrantType1Allowed
[
CC_id
];
*
(
rlc_bearer
->
mac_LogicalChannelConfig
->
ul_SpecificParameters
->
logicalChannelGroup
)
=
rlc_config
->
logicalChannelGroup
[
CC_id
];
*
(
rlc_bearer
->
mac_LogicalChannelConfig
->
ul_SpecificParameters
->
schedulingRequestID
)
=
rlc_config
->
schedulingRequestID
[
CC_id
];
rlc_bearer
->
mac_LogicalChannelConfig
->
ul_SpecificParameters
->
logicalChannelSR_Mask
=
rlc_config
->
logicalChannelSR_Mask
[
CC_id
];
rlc_bearer
->
mac_LogicalChannelConfig
->
ul_SpecificParameters
->
logicalChannelSR_DelayTimerApplied
=
rlc_config
->
logicalChannelSR_DelayTimerApplied
[
CC_id
];
ASN_SEQUENCE_ADD
(
&
(
rlc_BearerToAddModList
->
list
),
&
rlc_bearer
);
}
void
do_MAC_CELLGROUP
(
uint8_t
Mod_id
,
int
CC_id
,
NR_MAC_CellGroupConfig_t
*
mac_CellGroupConfig
,
mac_cellgroup_t
*
mac_cellgroup_config
)
{
mac_CellGroupConfig
->
drx_Config
=
CALLOC
(
1
,
sizeof
(
struct
NR_SetupRelease_DRX_Config
));
mac_CellGroupConfig
->
schedulingRequestConfig
=
CALLOC
(
1
,
sizeof
(
struct
NR_SchedulingRequestConfig
));
mac_CellGroupConfig
->
bsr_Config
=
CALLOC
(
1
,
sizeof
(
struct
NR_BSR_Config
));
mac_CellGroupConfig
->
tag_Config
=
CALLOC
(
1
,
sizeof
(
struct
NR_TAG_Config
));
mac_CellGroupConfig
->
phr_Config
=
CALLOC
(
1
,
sizeof
(
struct
NR_SetupRelease_PHR_Config
));
mac_CellGroupConfig
->
drx_Config
->
present
=
mac_cellgroup_config
->
DRX_Config_PR
[
CC_id
];
mac_CellGroupConfig
->
drx_Config
->
choice
.
setup
=
CALLOC
(
1
,
sizeof
(
struct
NR_DRX_Config
));
mac_CellGroupConfig
->
drx_Config
->
choice
.
setup
->
drx_onDurationTimer
.
present
=
mac_cellgroup_config
->
drx_onDurationTimer_PR
[
CC_id
];
if
(
mac_CellGroupConfig
->
drx_Config
->
choice
.
setup
->
drx_onDurationTimer
.
present
==
NR_DRX_Config__drx_onDurationTimer_PR_subMilliSeconds
)
{
mac_CellGroupConfig
->
drx_Config
->
choice
.
setup
->
drx_onDurationTimer
.
choice
.
subMilliSeconds
=
mac_cellgroup_config
->
subMilliSeconds
[
CC_id
];
}
else
if
(
mac_CellGroupConfig
->
drx_Config
->
choice
.
setup
->
drx_onDurationTimer
.
present
==
NR_DRX_Config__drx_onDurationTimer_PR_milliSeconds
)
{
mac_CellGroupConfig
->
drx_Config
->
choice
.
setup
->
drx_onDurationTimer
.
choice
.
milliSeconds
=
mac_cellgroup_config
->
milliSeconds
[
CC_id
];
}
mac_CellGroupConfig
->
drx_Config
->
choice
.
setup
->
drx_InactivityTimer
=
mac_cellgroup_config
->
drx_InactivityTimer
[
CC_id
];
mac_CellGroupConfig
->
drx_Config
->
choice
.
setup
->
drx_HARQ_RTT_TimerDL
=
mac_cellgroup_config
->
drx_HARQ_RTT_TimerDL
[
CC_id
];
mac_CellGroupConfig
->
drx_Config
->
choice
.
setup
->
drx_HARQ_RTT_TimerUL
=
mac_cellgroup_config
->
drx_HARQ_RTT_TimerUL
[
CC_id
];
mac_CellGroupConfig
->
drx_Config
->
choice
.
setup
->
drx_RetransmissionTimerDL
=
mac_cellgroup_config
->
drx_RetransmissionTimerDL
[
CC_id
];
mac_CellGroupConfig
->
drx_Config
->
choice
.
setup
->
drx_RetransmissionTimerUL
=
mac_cellgroup_config
->
drx_RetransmissionTimerUL
[
CC_id
];
mac_CellGroupConfig
->
drx_Config
->
choice
.
setup
->
drx_LongCycleStartOffset
.
present
=
mac_cellgroup_config
->
drx_LongCycleStartOffset_PR
[
CC_id
];
if
(
mac_CellGroupConfig
->
drx_Config
->
choice
.
setup
->
drx_LongCycleStartOffset
.
present
==
NR_DRX_Config__drx_LongCycleStartOffset_PR_ms10
)
{
mac_CellGroupConfig
->
drx_Config
->
choice
.
setup
->
drx_LongCycleStartOffset
.
choice
.
ms10
=
mac_cellgroup_config
->
drx_LongCycleStartOffset
[
CC_id
];
}
else
if
(
mac_CellGroupConfig
->
drx_Config
->
choice
.
setup
->
drx_LongCycleStartOffset
.
present
==
NR_DRX_Config__drx_LongCycleStartOffset_PR_ms20
)
{
mac_CellGroupConfig
->
drx_Config
->
choice
.
setup
->
drx_LongCycleStartOffset
.
choice
.
ms20
=
mac_cellgroup_config
->
drx_LongCycleStartOffset
[
CC_id
];
}
else
if
(
mac_CellGroupConfig
->
drx_Config
->
choice
.
setup
->
drx_LongCycleStartOffset
.
present
==
NR_DRX_Config__drx_LongCycleStartOffset_PR_ms32
)
{
mac_CellGroupConfig
->
drx_Config
->
choice
.
setup
->
drx_LongCycleStartOffset
.
choice
.
ms32
=
mac_cellgroup_config
->
drx_LongCycleStartOffset
[
CC_id
];
}
else
if
(
mac_CellGroupConfig
->
drx_Config
->
choice
.
setup
->
drx_LongCycleStartOffset
.
present
==
NR_DRX_Config__drx_LongCycleStartOffset_PR_ms40
)
{
mac_CellGroupConfig
->
drx_Config
->
choice
.
setup
->
drx_LongCycleStartOffset
.
choice
.
ms40
=
mac_cellgroup_config
->
drx_LongCycleStartOffset
[
CC_id
];
}
else
if
(
mac_CellGroupConfig
->
drx_Config
->
choice
.
setup
->
drx_LongCycleStartOffset
.
present
==
NR_DRX_Config__drx_LongCycleStartOffset_PR_ms60
)
{
mac_CellGroupConfig
->
drx_Config
->
choice
.
setup
->
drx_LongCycleStartOffset
.
choice
.
ms60
=
mac_cellgroup_config
->
drx_LongCycleStartOffset
[
CC_id
];
}
else
if
(
mac_CellGroupConfig
->
drx_Config
->
choice
.
setup
->
drx_LongCycleStartOffset
.
present
==
NR_DRX_Config__drx_LongCycleStartOffset_PR_ms64
)
{
mac_CellGroupConfig
->
drx_Config
->
choice
.
setup
->
drx_LongCycleStartOffset
.
choice
.
ms64
=
mac_cellgroup_config
->
drx_LongCycleStartOffset
[
CC_id
];
}
else
if
(
mac_CellGroupConfig
->
drx_Config
->
choice
.
setup
->
drx_LongCycleStartOffset
.
present
==
NR_DRX_Config__drx_LongCycleStartOffset_PR_ms70
)
{
mac_CellGroupConfig
->
drx_Config
->
choice
.
setup
->
drx_LongCycleStartOffset
.
choice
.
ms70
=
mac_cellgroup_config
->
drx_LongCycleStartOffset
[
CC_id
];
}
else
if
(
mac_CellGroupConfig
->
drx_Config
->
choice
.
setup
->
drx_LongCycleStartOffset
.
present
==
NR_DRX_Config__drx_LongCycleStartOffset_PR_ms80
)
{
mac_CellGroupConfig
->
drx_Config
->
choice
.
setup
->
drx_LongCycleStartOffset
.
choice
.
ms80
=
mac_cellgroup_config
->
drx_LongCycleStartOffset
[
CC_id
];
}
else
if
(
mac_CellGroupConfig
->
drx_Config
->
choice
.
setup
->
drx_LongCycleStartOffset
.
present
==
NR_DRX_Config__drx_LongCycleStartOffset_PR_ms128
)
{
mac_CellGroupConfig
->
drx_Config
->
choice
.
setup
->
drx_LongCycleStartOffset
.
choice
.
ms128
=
mac_cellgroup_config
->
drx_LongCycleStartOffset
[
CC_id
];
}
else
if
(
mac_CellGroupConfig
->
drx_Config
->
choice
.
setup
->
drx_LongCycleStartOffset
.
present
==
NR_DRX_Config__drx_LongCycleStartOffset_PR_ms160
)
{
mac_CellGroupConfig
->
drx_Config
->
choice
.
setup
->
drx_LongCycleStartOffset
.
choice
.
ms160
=
mac_cellgroup_config
->
drx_LongCycleStartOffset
[
CC_id
];
}
else
if
(
mac_CellGroupConfig
->
drx_Config
->
choice
.
setup
->
drx_LongCycleStartOffset
.
present
==
NR_DRX_Config__drx_LongCycleStartOffset_PR_ms256
)
{
mac_CellGroupConfig
->
drx_Config
->
choice
.
setup
->
drx_LongCycleStartOffset
.
choice
.
ms256
=
mac_cellgroup_config
->
drx_LongCycleStartOffset
[
CC_id
];
}
else
if
(
mac_CellGroupConfig
->
drx_Config
->
choice
.
setup
->
drx_LongCycleStartOffset
.
present
==
NR_DRX_Config__drx_LongCycleStartOffset_PR_ms320
)
{
mac_CellGroupConfig
->
drx_Config
->
choice
.
setup
->
drx_LongCycleStartOffset
.
choice
.
ms320
=
mac_cellgroup_config
->
drx_LongCycleStartOffset
[
CC_id
];
}
else
if
(
mac_CellGroupConfig
->
drx_Config
->
choice
.
setup
->
drx_LongCycleStartOffset
.
present
==
NR_DRX_Config__drx_LongCycleStartOffset_PR_ms512
)
{
mac_CellGroupConfig
->
drx_Config
->
choice
.
setup
->
drx_LongCycleStartOffset
.
choice
.
ms512
=
mac_cellgroup_config
->
drx_LongCycleStartOffset
[
CC_id
];
}
else
if
(
mac_CellGroupConfig
->
drx_Config
->
choice
.
setup
->
drx_LongCycleStartOffset
.
present
==
NR_DRX_Config__drx_LongCycleStartOffset_PR_ms640
)
{
mac_CellGroupConfig
->
drx_Config
->
choice
.
setup
->
drx_LongCycleStartOffset
.
choice
.
ms640
=
mac_cellgroup_config
->
drx_LongCycleStartOffset
[
CC_id
];
}
else
if
(
mac_CellGroupConfig
->
drx_Config
->
choice
.
setup
->
drx_LongCycleStartOffset
.
present
==
NR_DRX_Config__drx_LongCycleStartOffset_PR_ms1024
)
{
mac_CellGroupConfig
->
drx_Config
->
choice
.
setup
->
drx_LongCycleStartOffset
.
choice
.
ms1024
=
mac_cellgroup_config
->
drx_LongCycleStartOffset
[
CC_id
];
}
else
if
(
mac_CellGroupConfig
->
drx_Config
->
choice
.
setup
->
drx_LongCycleStartOffset
.
present
==
NR_DRX_Config__drx_LongCycleStartOffset_PR_ms1280
)
{
mac_CellGroupConfig
->
drx_Config
->
choice
.
setup
->
drx_LongCycleStartOffset
.
choice
.
ms1280
=
mac_cellgroup_config
->
drx_LongCycleStartOffset
[
CC_id
];
}
else
if
(
mac_CellGroupConfig
->
drx_Config
->
choice
.
setup
->
drx_LongCycleStartOffset
.
present
==
NR_DRX_Config__drx_LongCycleStartOffset_PR_ms2048
)
{
mac_CellGroupConfig
->
drx_Config
->
choice
.
setup
->
drx_LongCycleStartOffset
.
choice
.
ms2048
=
mac_cellgroup_config
->
drx_LongCycleStartOffset
[
CC_id
];
}
else
if
(
mac_CellGroupConfig
->
drx_Config
->
choice
.
setup
->
drx_LongCycleStartOffset
.
present
==
NR_DRX_Config__drx_LongCycleStartOffset_PR_ms2560
)
{
mac_CellGroupConfig
->
drx_Config
->
choice
.
setup
->
drx_LongCycleStartOffset
.
choice
.
ms2560
=
mac_cellgroup_config
->
drx_LongCycleStartOffset
[
CC_id
];
}
else
if
(
mac_CellGroupConfig
->
drx_Config
->
choice
.
setup
->
drx_LongCycleStartOffset
.
present
==
NR_DRX_Config__drx_LongCycleStartOffset_PR_ms5120
)
{
mac_CellGroupConfig
->
drx_Config
->
choice
.
setup
->
drx_LongCycleStartOffset
.
choice
.
ms5120
=
mac_cellgroup_config
->
drx_LongCycleStartOffset
[
CC_id
];
}
else
if
(
mac_CellGroupConfig
->
drx_Config
->
choice
.
setup
->
drx_LongCycleStartOffset
.
present
==
NR_DRX_Config__drx_LongCycleStartOffset_PR_ms10240
)
{
mac_CellGroupConfig
->
drx_Config
->
choice
.
setup
->
drx_LongCycleStartOffset
.
choice
.
ms10240
=
mac_cellgroup_config
->
drx_LongCycleStartOffset
[
CC_id
];
}
mac_CellGroupConfig
->
drx_Config
->
choice
.
setup
->
shortDRX
=
CALLOC
(
1
,
sizeof
(
struct
NR_DRX_Config__shortDRX
));
mac_CellGroupConfig
->
drx_Config
->
choice
.
setup
->
shortDRX
->
drx_ShortCycle
=
mac_cellgroup_config
->
drx_ShortCycle
[
CC_id
];
mac_CellGroupConfig
->
drx_Config
->
choice
.
setup
->
shortDRX
->
drx_ShortCycleTimer
=
mac_cellgroup_config
->
drx_ShortCycleTimer
[
CC_id
];
mac_CellGroupConfig
->
drx_Config
->
choice
.
setup
->
drx_SlotOffset
=
mac_cellgroup_config
->
drx_SlotOffset
[
CC_id
];
mac_CellGroupConfig
->
schedulingRequestConfig
->
schedulingRequestToAddModList
=
CALLOC
(
1
,
sizeof
(
struct
NR_SchedulingRequestConfig__schedulingRequestToAddModList
));
struct
NR_SchedulingRequestToAddMod
*
schedulingrequestlist
;
schedulingrequestlist
=
CALLOC
(
1
,
sizeof
(
struct
NR_SchedulingRequestToAddMod
));
schedulingrequestlist
->
schedulingRequestId
=
mac_cellgroup_config
->
schedulingRequestId
[
CC_id
];
schedulingrequestlist
->
sr_ProhibitTimer
=
CALLOC
(
1
,
sizeof
(
long
));
*
(
schedulingrequestlist
->
sr_ProhibitTimer
)
=
mac_cellgroup_config
->
sr_ProhibitTimer
[
CC_id
];
schedulingrequestlist
->
sr_TransMax
=
mac_cellgroup_config
->
sr_TransMax
[
CC_id
];
ASN_SEQUENCE_ADD
(
&
(
mac_CellGroupConfig
->
schedulingRequestConfig
->
schedulingRequestToAddModList
->
list
),
&
schedulingrequestlist
);
mac_CellGroupConfig
->
bsr_Config
->
periodicBSR_Timer
=
mac_cellgroup_config
->
periodicBSR_Timer
[
CC_id
];
mac_CellGroupConfig
->
bsr_Config
->
retxBSR_Timer
=
mac_cellgroup_config
->
retxBSR_Timer
[
CC_id
];
mac_CellGroupConfig
->
bsr_Config
->
logicalChannelSR_DelayTimer
=
CALLOC
(
1
,
sizeof
(
long
));
*
(
mac_CellGroupConfig
->
bsr_Config
->
logicalChannelSR_DelayTimer
)
=
mac_cellgroup_config
->
logicalChannelSR_DelayTimer
[
CC_id
];
mac_CellGroupConfig
->
tag_Config
->
tag_ToAddModList
=
CALLOC
(
1
,
sizeof
(
struct
NR_TAG_Config__tag_ToAddModList
));
struct
NR_TAG
*
tag
;
tag
=
CALLOC
(
1
,
sizeof
(
struct
NR_TAG
));
tag
->
tag_Id
=
mac_cellgroup_config
->
tag_Id
[
CC_id
];
tag
->
timeAlignmentTimer
=
mac_cellgroup_config
->
timeAlignmentTimer
[
CC_id
];
ASN_SEQUENCE_ADD
(
&
(
mac_CellGroupConfig
->
tag_Config
->
tag_ToAddModList
->
list
),
&
tag
);
mac_CellGroupConfig
->
phr_Config
->
present
=
mac_cellgroup_config
->
PHR_Config_PR
[
CC_id
];
mac_CellGroupConfig
->
phr_Config
->
choice
.
setup
=
CALLOC
(
1
,
sizeof
(
struct
NR_PHR_Config
));
mac_CellGroupConfig
->
phr_Config
->
choice
.
setup
->
phr_PeriodicTimer
=
mac_cellgroup_config
->
phr_PeriodicTimer
[
CC_id
];
mac_CellGroupConfig
->
phr_Config
->
choice
.
setup
->
phr_ProhibitTimer
=
mac_cellgroup_config
->
phr_ProhibitTimer
[
CC_id
];
mac_CellGroupConfig
->
phr_Config
->
choice
.
setup
->
phr_Tx_PowerFactorChange
=
mac_cellgroup_config
->
phr_Tx_PowerFactorChange
[
CC_id
];
mac_CellGroupConfig
->
phr_Config
->
choice
.
setup
->
multiplePHR
=
mac_cellgroup_config
->
multiplePHR
[
CC_id
];
mac_CellGroupConfig
->
phr_Config
->
choice
.
setup
->
dummy
=
mac_cellgroup_config
->
phr_Type2SpCell
[
CC_id
];
mac_CellGroupConfig
->
phr_Config
->
choice
.
setup
->
phr_Type2OtherCell
=
mac_cellgroup_config
->
phr_Type2OtherCell
[
CC_id
];
mac_CellGroupConfig
->
phr_Config
->
choice
.
setup
->
phr_ModeOtherCG
=
mac_cellgroup_config
->
phr_ModeOtherCG
[
CC_id
];
mac_CellGroupConfig
->
skipUplinkTxDynamic
=
mac_cellgroup_config
->
skipUplinkTxDynamic
[
CC_id
];
}
void
do_PHYSICALCELLGROUP
(
uint8_t
Mod_id
,
int
CC_id
,
NR_PhysicalCellGroupConfig_t
*
physicalCellGroupConfig
,
physicalcellgroup_t
*
physicalcellgroup_config
)
{
physicalCellGroupConfig
->
harq_ACK_SpatialBundlingPUCCH
=
CALLOC
(
1
,
sizeof
(
long
));
physicalCellGroupConfig
->
harq_ACK_SpatialBundlingPUSCH
=
CALLOC
(
1
,
sizeof
(
long
));
physicalCellGroupConfig
->
p_NR_FR1
=
CALLOC
(
1
,
sizeof
(
NR_P_Max_t
));
physicalCellGroupConfig
->
tpc_SRS_RNTI
=
CALLOC
(
1
,
sizeof
(
NR_RNTI_Value_t
));
physicalCellGroupConfig
->
tpc_PUCCH_RNTI
=
CALLOC
(
1
,
sizeof
(
NR_RNTI_Value_t
));
physicalCellGroupConfig
->
tpc_PUSCH_RNTI
=
CALLOC
(
1
,
sizeof
(
NR_RNTI_Value_t
));
physicalCellGroupConfig
->
sp_CSI_RNTI
=
CALLOC
(
1
,
sizeof
(
NR_RNTI_Value_t
));
*
(
physicalCellGroupConfig
->
harq_ACK_SpatialBundlingPUCCH
)
=
physicalcellgroup_config
->
harq_ACK_SpatialBundlingPUCCH
[
CC_id
];
*
(
physicalCellGroupConfig
->
harq_ACK_SpatialBundlingPUSCH
)
=
physicalcellgroup_config
->
harq_ACK_SpatialBundlingPUSCH
[
CC_id
];
*
(
physicalCellGroupConfig
->
p_NR_FR1
)
=
physicalcellgroup_config
->
p_NR
[
CC_id
];
physicalCellGroupConfig
->
pdsch_HARQ_ACK_Codebook
=
physicalcellgroup_config
->
pdsch_HARQ_ACK_Codebook
[
CC_id
];
*
(
physicalCellGroupConfig
->
tpc_SRS_RNTI
)
=
physicalcellgroup_config
->
tpc_SRS_RNTI
[
CC_id
];
*
(
physicalCellGroupConfig
->
tpc_PUCCH_RNTI
)
=
physicalcellgroup_config
->
tpc_PUCCH_RNTI
[
CC_id
];
*
(
physicalCellGroupConfig
->
tpc_PUSCH_RNTI
)
=
physicalcellgroup_config
->
tpc_PUSCH_RNTI
[
CC_id
];
*
(
physicalCellGroupConfig
->
sp_CSI_RNTI
)
=
physicalcellgroup_config
->
sp_CSI_RNTI
[
CC_id
];
physicalCellGroupConfig
->
cs_RNTI
=
CALLOC
(
1
,
sizeof
(
struct
NR_SetupRelease_RNTI_Value
));
physicalCellGroupConfig
->
cs_RNTI
->
present
=
physicalcellgroup_config
->
RNTI_Value_PR
[
CC_id
];
if
(
physicalCellGroupConfig
->
cs_RNTI
->
present
==
NR_SetupRelease_RNTI_Value_PR_setup
)
{
physicalCellGroupConfig
->
cs_RNTI
->
choice
.
setup
=
physicalcellgroup_config
->
RNTI_Value
[
CC_id
];
}
}
void
do_SpCellConfig
(
gNB_RRC_INST
*
rrc
,
void
do_SpCellConfig
(
gNB_RRC_INST
*
rrc
,
struct
NR_SpCellConfig
*
spconfig
){
struct
NR_SpCellConfig
*
spconfig
){
//gNB_RrcConfigurationReq *common_configuration;
//gNB_RrcConfigurationReq *common_configuration;
...
...
This diff is collapsed.
Click to expand it.
openair2/RRC/NR/MESSAGES/asn1_msg.h
+
0
−
15
View file @
408a1c01
...
@@ -69,21 +69,6 @@ uint16_t do_SIB1_NR(rrc_gNB_carrier_data_t *carrier, gNB_RrcConfigurationReq *co
...
@@ -69,21 +69,6 @@ uint16_t do_SIB1_NR(rrc_gNB_carrier_data_t *carrier, gNB_RrcConfigurationReq *co
uint8_t
do_SIB23_NR
(
rrc_gNB_carrier_data_t
*
carrier
,
uint8_t
do_SIB23_NR
(
rrc_gNB_carrier_data_t
*
carrier
,
gNB_RrcConfigurationReq
*
configuration
);
gNB_RrcConfigurationReq
*
configuration
);
void
do_RLC_BEARER
(
uint8_t
Mod_id
,
int
CC_id
,
struct
NR_CellGroupConfig__rlc_BearerToAddModList
*
rlc_BearerToAddModList
,
rlc_bearer_config_t
*
rlc_config
);
void
do_MAC_CELLGROUP
(
uint8_t
Mod_id
,
int
CC_id
,
NR_MAC_CellGroupConfig_t
*
mac_CellGroupConfig
,
mac_cellgroup_t
*
mac_cellgroup_config
);
void
do_PHYSICALCELLGROUP
(
uint8_t
Mod_id
,
int
CC_id
,
NR_PhysicalCellGroupConfig_t
*
physicalCellGroupConfig
,
physicalcellgroup_t
*
physicalcellgroup_config
);
void
do_SpCellConfig
(
gNB_RRC_INST
*
rrc
,
void
do_SpCellConfig
(
gNB_RRC_INST
*
rrc
,
struct
NR_SpCellConfig
*
spconfig
);
struct
NR_SpCellConfig
*
spconfig
);
...
...
This diff is collapsed.
Click to expand it.
openair2/RRC/NR/nr_rrc_config.h
+
0
−
78
View file @
408a1c01
...
@@ -41,84 +41,6 @@
...
@@ -41,84 +41,6 @@
TyPe *lOcPtr= calloc(1,sizeof(TyPe)); \
TyPe *lOcPtr= calloc(1,sizeof(TyPe)); \
ASN_SEQUENCE_ADD(&VaR,lOcPtr);
ASN_SEQUENCE_ADD(&VaR,lOcPtr);
typedef
struct
rlc_bearer_config_s
{
long
LogicalChannelIdentity
[
MAX_NUM_CCs
];
long
servedRadioBearer_present
[
MAX_NUM_CCs
];
long
srb_Identity
[
MAX_NUM_CCs
];
long
drb_Identity
[
MAX_NUM_CCs
];
long
reestablishRLC
[
MAX_NUM_CCs
];
long
rlc_Config_present
[
MAX_NUM_CCs
];
long
ul_AM_sn_FieldLength
[
MAX_NUM_CCs
];
long
t_PollRetransmit
[
MAX_NUM_CCs
];
long
pollPDU
[
MAX_NUM_CCs
];
long
pollByte
[
MAX_NUM_CCs
];
long
maxRetxThreshold
[
MAX_NUM_CCs
];
long
dl_AM_sn_FieldLength
[
MAX_NUM_CCs
];
long
dl_AM_t_Reassembly
[
MAX_NUM_CCs
];
long
t_StatusProhibit
[
MAX_NUM_CCs
];
long
ul_UM_sn_FieldLength
[
MAX_NUM_CCs
];
long
dl_UM_sn_FieldLength
[
MAX_NUM_CCs
];
long
dl_UM_t_Reassembly
[
MAX_NUM_CCs
];
long
priority
[
MAX_NUM_CCs
];
long
prioritisedBitRate
[
MAX_NUM_CCs
];
long
bucketSizeDuration
[
MAX_NUM_CCs
];
long
allowedServingCells
[
MAX_NUM_CCs
];
long
subcarrierspacing
[
MAX_NUM_CCs
];
long
maxPUSCH_Duration
[
MAX_NUM_CCs
];
long
configuredGrantType1Allowed
[
MAX_NUM_CCs
];
long
logicalChannelGroup
[
MAX_NUM_CCs
];
long
schedulingRequestID
[
MAX_NUM_CCs
];
/* OPTIONAL */
int
logicalChannelSR_Mask
[
MAX_NUM_CCs
];
int
logicalChannelSR_DelayTimerApplied
[
MAX_NUM_CCs
];
}
rlc_bearer_config_t
;
typedef
struct
mac_cellgroup_s
{
long
DRX_Config_PR
[
MAX_NUM_CCs
];
long
drx_onDurationTimer_PR
[
MAX_NUM_CCs
];
long
subMilliSeconds
[
MAX_NUM_CCs
];
long
milliSeconds
[
MAX_NUM_CCs
];
long
drx_InactivityTimer
[
MAX_NUM_CCs
];
long
drx_HARQ_RTT_TimerDL
[
MAX_NUM_CCs
];
long
drx_HARQ_RTT_TimerUL
[
MAX_NUM_CCs
];
long
drx_RetransmissionTimerDL
[
MAX_NUM_CCs
];
long
drx_RetransmissionTimerUL
[
MAX_NUM_CCs
];
long
drx_LongCycleStartOffset_PR
[
MAX_NUM_CCs
];
long
drx_LongCycleStartOffset
[
MAX_NUM_CCs
];
long
drx_ShortCycle
[
MAX_NUM_CCs
];
long
drx_ShortCycleTimer
[
MAX_NUM_CCs
];
long
drx_SlotOffset
[
MAX_NUM_CCs
];
long
schedulingRequestId
[
MAX_NUM_CCs
];
long
sr_ProhibitTimer
[
MAX_NUM_CCs
];
long
sr_TransMax
[
MAX_NUM_CCs
];
long
periodicBSR_Timer
[
MAX_NUM_CCs
];
long
retxBSR_Timer
[
MAX_NUM_CCs
];
long
logicalChannelSR_DelayTimer
[
MAX_NUM_CCs
];
long
tag_Id
[
MAX_NUM_CCs
];
long
timeAlignmentTimer
[
MAX_NUM_CCs
];
long
PHR_Config_PR
[
MAX_NUM_CCs
];
long
phr_PeriodicTimer
[
MAX_NUM_CCs
];
long
phr_ProhibitTimer
[
MAX_NUM_CCs
];
long
phr_Tx_PowerFactorChange
[
MAX_NUM_CCs
];
int
multiplePHR
[
MAX_NUM_CCs
];
int
phr_Type2SpCell
[
MAX_NUM_CCs
];
int
phr_Type2OtherCell
[
MAX_NUM_CCs
];
long
phr_ModeOtherCG
[
MAX_NUM_CCs
];
int
skipUplinkTxDynamic
[
MAX_NUM_CCs
];
}
mac_cellgroup_t
;
typedef
struct
physicalcellgroup_s
{
long
harq_ACK_SpatialBundlingPUCCH
[
MAX_NUM_CCs
];
long
harq_ACK_SpatialBundlingPUSCH
[
MAX_NUM_CCs
];
long
p_NR
[
MAX_NUM_CCs
];
long
pdsch_HARQ_ACK_Codebook
[
MAX_NUM_CCs
];
long
tpc_SRS_RNTI
[
MAX_NUM_CCs
];
long
tpc_PUCCH_RNTI
[
MAX_NUM_CCs
];
long
tpc_PUSCH_RNTI
[
MAX_NUM_CCs
];
long
sp_CSI_RNTI
[
MAX_NUM_CCs
];
long
RNTI_Value_PR
[
MAX_NUM_CCs
];
long
RNTI_Value
[
MAX_NUM_CCs
];
}
physicalcellgroup_t
;
void
set_phr_config
(
NR_MAC_CellGroupConfig_t
*
mac_CellGroupConfig
);
void
set_phr_config
(
NR_MAC_CellGroupConfig_t
*
mac_CellGroupConfig
);
uint64_t
get_ssb_bitmap
(
const
NR_ServingCellConfigCommon_t
*
scc
);
uint64_t
get_ssb_bitmap
(
const
NR_ServingCellConfigCommon_t
*
scc
);
void
rrc_coreset_config
(
NR_ControlResourceSet_t
*
coreset
,
void
rrc_coreset_config
(
NR_ControlResourceSet_t
*
coreset
,
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment