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
1
Merge Requests
1
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
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
OpenXG
OpenXG-RAN
Commits
40b131be
Commit
40b131be
authored
Oct 13, 2021
by
matzakos
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Small corrections in F1AP UE context management messages and indentation fixes
parent
b37195ad
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
198 additions
and
204 deletions
+198
-204
openair2/F1AP/f1ap_cu_ue_context_management.c
openair2/F1AP/f1ap_cu_ue_context_management.c
+30
-30
openair2/F1AP/f1ap_du_ue_context_management.c
openair2/F1AP/f1ap_du_ue_context_management.c
+167
-174
openair2/RRC/NR/rrc_gNB.c
openair2/RRC/NR/rrc_gNB.c
+1
-0
No files found.
openair2/F1AP/f1ap_cu_ue_context_management.c
View file @
40b131be
...
@@ -1090,52 +1090,52 @@ int CU_send_UE_CONTEXT_MODIFICATION_REQUEST(instance_t instance, f1ap_ue_context
...
@@ -1090,52 +1090,52 @@ int CU_send_UE_CONTEXT_MODIFICATION_REQUEST(instance_t instance, f1ap_ue_context
}
}
/* optional */
/* optional */
/* c
5
. CUtoDURRCInformation */
/* c
6
. CUtoDURRCInformation */
if
(
f1ap_ue_context_modification_req
->
cu_to_du_rrc_information
!=
NULL
)
{
if
(
f1ap_ue_context_modification_req
->
cu_to_du_rrc_information
!=
NULL
)
{
asn1cSequenceAdd
(
out
->
protocolIEs
.
list
,
F1AP_UEContextModificationRequestIEs_t
,
ie
5
);
asn1cSequenceAdd
(
out
->
protocolIEs
.
list
,
F1AP_UEContextModificationRequestIEs_t
,
ie
6
);
ie
5
->
id
=
F1AP_ProtocolIE_ID_id_CUtoDURRCInformation
;
ie
6
->
id
=
F1AP_ProtocolIE_ID_id_CUtoDURRCInformation
;
ie
5
->
criticality
=
F1AP_Criticality_reject
;
ie
6
->
criticality
=
F1AP_Criticality_reject
;
ie
5
->
value
.
present
=
F1AP_UEContextModificationRequestIEs__value_PR_CUtoDURRCInformation
;
ie
6
->
value
.
present
=
F1AP_UEContextModificationRequestIEs__value_PR_CUtoDURRCInformation
;
/* 6.1 cG_ConfigInfo */
/* 6.1 cG_ConfigInfo */
if
(
f1ap_ue_context_modification_req
->
cu_to_du_rrc_information
->
cG_ConfigInfo
!=
NULL
){
if
(
f1ap_ue_context_modification_req
->
cu_to_du_rrc_information
->
cG_ConfigInfo
!=
NULL
){
const
char
cG_ConfigInfoStr
[]
=
"asdsa1d32sa1d31asd31as"
;
asn1cCalloc
(
ie6
->
value
.
choice
.
CUtoDURRCInformation
.
cG_ConfigInfo
,
cG_ConfigInfo
)
;
asn1cCalloc
(
ie5
->
value
.
choice
.
CUtoDURRCInformation
.
cG_ConfigInfo
,
cG_ConfigInfo
);
OCTET_STRING_fromBuf
(
cG_ConfigInfo
,
(
const
char
*
)
f1ap_ue_context_modification_req
->
cu_to_du_rrc_information
->
cG_ConfigInfo
,
OCTET_STRING_fromBuf
(
cG_ConfigInfo
,
cG_ConfigInfoStr
,
strlen
(
cG_ConfigInfoStr
))
;
f1ap_ue_context_modification_req
->
cu_to_du_rrc_information
->
cG_ConfigInfo_length
)
;
}
}
/* optional */
/* optional */
/* 6.2 uE_CapabilityRAT_ContainerList */
/* 6.2 uE_CapabilityRAT_ContainerList */
if
(
f1ap_ue_context_modification_req
->
cu_to_du_rrc_information
->
uE_CapabilityRAT_ContainerList
!=
NULL
){
if
(
f1ap_ue_context_modification_req
->
cu_to_du_rrc_information
->
uE_CapabilityRAT_ContainerList
!=
NULL
){
asn1cCalloc
(
ie
5
->
value
.
choice
.
CUtoDURRCInformation
.
uE_CapabilityRAT_ContainerList
,
uE_CapabilityRAT_ContainerList
);
asn1cCalloc
(
ie
6
->
value
.
choice
.
CUtoDURRCInformation
.
uE_CapabilityRAT_ContainerList
,
uE_CapabilityRAT_ContainerList
);
OCTET_STRING_fromBuf
(
uE_CapabilityRAT_ContainerList
,
(
const
char
*
)
f1ap_ue_context_modification_req
->
cu_to_du_rrc_information
->
uE_CapabilityRAT_ContainerList
,
OCTET_STRING_fromBuf
(
uE_CapabilityRAT_ContainerList
,
(
const
char
*
)
f1ap_ue_context_modification_req
->
cu_to_du_rrc_information
->
uE_CapabilityRAT_ContainerList
,
f1ap_ue_context_modification_req
->
cu_to_du_rrc_information
->
uE_CapabilityRAT_ContainerList_length
)
;
f1ap_ue_context_modification_req
->
cu_to_du_rrc_information
->
uE_CapabilityRAT_ContainerList_length
)
;
}
}
/* optional */
/* optional */
/* 6.3 measConfig */
/* 6.3 measConfig */
if
(
f1ap_ue_context_modification_req
->
cu_to_du_rrc_information
->
measConfig
!=
NULL
){
if
(
f1ap_ue_context_modification_req
->
cu_to_du_rrc_information
->
measConfig
!=
NULL
){
const
char
measConfigStr
[]
=
"asdsa1d32sa1d31asd31as"
;
asn1cCalloc
(
ie6
->
value
.
choice
.
CUtoDURRCInformation
.
measConfig
,
measConfig
)
;
asn1cCalloc
(
ie5
->
value
.
choice
.
CUtoDURRCInformation
.
measConfig
,
measConfig
);
OCTET_STRING_fromBuf
(
measConfig
,
(
const
char
*
)
f1ap_ue_context_modification_req
->
cu_to_du_rrc_information
->
measConfig
,
OCTET_STRING_fromBuf
(
measConfig
,
measConfigStr
,
strlen
(
measConfigStr
))
;
f1ap_ue_context_modification_req
->
cu_to_du_rrc_information
->
measConfig_length
)
;
}
}
}
}
/* optional */
/* optional */
/* c
6
. TransmissionActionIndicator */
/* c
7
. TransmissionActionIndicator */
if
(
0
)
{
if
(
0
)
{
asn1cSequenceAdd
(
out
->
protocolIEs
.
list
,
F1AP_UEContextModificationRequestIEs_t
,
ie
6
);
asn1cSequenceAdd
(
out
->
protocolIEs
.
list
,
F1AP_UEContextModificationRequestIEs_t
,
ie
7
);
ie
6
->
id
=
F1AP_ProtocolIE_ID_id_TransmissionActionIndicator
;
ie
7
->
id
=
F1AP_ProtocolIE_ID_id_TransmissionActionIndicator
;
ie
6
->
criticality
=
F1AP_Criticality_ignore
;
ie
7
->
criticality
=
F1AP_Criticality_ignore
;
ie
6
->
value
.
present
=
F1AP_UEContextModificationRequestIEs__value_PR_TransmissionActionIndicator
;
ie
7
->
value
.
present
=
F1AP_UEContextModificationRequestIEs__value_PR_TransmissionActionIndicator
;
ie
6
->
value
.
choice
.
TransmissionActionIndicator
=
F1AP_TransmissionActionIndicator_stop
;
ie
7
->
value
.
choice
.
TransmissionActionIndicator
=
F1AP_TransmissionActionIndicator_stop
;
}
}
/* optional */
/* optional */
/* c
7
. ResourceCoordinationTransferContainer */
/* c
8
. ResourceCoordinationTransferContainer */
if
(
0
)
{
if
(
0
)
{
asn1cSequenceAdd
(
out
->
protocolIEs
.
list
,
F1AP_UEContextModificationRequestIEs_t
,
ie
7
);
asn1cSequenceAdd
(
out
->
protocolIEs
.
list
,
F1AP_UEContextModificationRequestIEs_t
,
ie
8
);
ie
7
->
id
=
F1AP_ProtocolIE_ID_id_ResourceCoordinationTransferContainer
;
ie
8
->
id
=
F1AP_ProtocolIE_ID_id_ResourceCoordinationTransferContainer
;
ie
7
->
criticality
=
F1AP_Criticality_ignore
;
ie
8
->
criticality
=
F1AP_Criticality_ignore
;
ie
7
->
value
.
present
=
F1AP_UEContextModificationRequestIEs__value_PR_ResourceCoordinationTransferContainer
;
ie
8
->
value
.
present
=
F1AP_UEContextModificationRequestIEs__value_PR_ResourceCoordinationTransferContainer
;
OCTET_STRING_fromBuf
(
&
ie
7
->
value
.
choice
.
ResourceCoordinationTransferContainer
,
"asdsa1d32sa1d31asd31as"
,
OCTET_STRING_fromBuf
(
&
ie
8
->
value
.
choice
.
ResourceCoordinationTransferContainer
,
"asdsa1d32sa1d31asd31as"
,
strlen
(
"asdsa1d32sa1d31asd31as"
));
strlen
(
"asdsa1d32sa1d31asd31as"
));
}
}
...
@@ -1152,11 +1152,11 @@ int CU_send_UE_CONTEXT_MODIFICATION_REQUEST(instance_t instance, f1ap_ue_context
...
@@ -1152,11 +1152,11 @@ int CU_send_UE_CONTEXT_MODIFICATION_REQUEST(instance_t instance, f1ap_ue_context
/* optional */
/* optional */
/* c8. RRCContainer */
/* c8. RRCContainer */
if
(
0
)
{
if
(
0
)
{
asn1cSequenceAdd
(
out
->
protocolIEs
.
list
,
F1AP_UEContextModificationRequestIEs_t
,
ie8
);
asn1cSequenceAdd
(
out
->
protocolIEs
.
list
,
F1AP_UEContextModificationRequestIEs_t
,
ie8
1
);
ie8
->
id
=
F1AP_ProtocolIE_ID_id_RRCContainer
;
ie8
1
->
id
=
F1AP_ProtocolIE_ID_id_RRCContainer
;
ie8
->
criticality
=
F1AP_Criticality_ignore
;
ie8
1
->
criticality
=
F1AP_Criticality_ignore
;
ie8
->
value
.
present
=
F1AP_UEContextModificationRequestIEs__value_PR_RRCContainer
;
ie8
1
->
value
.
present
=
F1AP_UEContextModificationRequestIEs__value_PR_RRCContainer
;
OCTET_STRING_fromBuf
(
&
ie8
->
value
.
choice
.
RRCContainer
,
"asdsa1d32sa1d31asd31as"
,
OCTET_STRING_fromBuf
(
&
ie8
1
->
value
.
choice
.
RRCContainer
,
"asdsa1d32sa1d31asd31as"
,
strlen
(
"asdsa1d32sa1d31asd31as"
));
strlen
(
"asdsa1d32sa1d31asd31as"
));
}
}
...
@@ -1661,7 +1661,7 @@ int CU_handle_UE_CONTEXT_MODIFICATION_RESPONSE(instance_t instance,
...
@@ -1661,7 +1661,7 @@ int CU_handle_UE_CONTEXT_MODIFICATION_RESPONSE(instance_t instance,
/* GNB_CU_UE_F1AP_ID */
/* GNB_CU_UE_F1AP_ID */
F1AP_FIND_PROTOCOLIE_BY_ID
(
F1AP_UEContextModificationResponseIEs_t
,
ie
,
container
,
F1AP_FIND_PROTOCOLIE_BY_ID
(
F1AP_UEContextModificationResponseIEs_t
,
ie
,
container
,
F1AP_ProtocolIE_ID_id_gNB_CU_UE_F1AP_ID
,
fals
e
);
F1AP_ProtocolIE_ID_id_gNB_CU_UE_F1AP_ID
,
tru
e
);
f1ap_ue_context_modification_resp
->
gNB_CU_ue_id
=
ie
->
value
.
choice
.
GNB_CU_UE_F1AP_ID
;
f1ap_ue_context_modification_resp
->
gNB_CU_ue_id
=
ie
->
value
.
choice
.
GNB_CU_UE_F1AP_ID
;
LOG_D
(
F1AP
,
"f1ap_ue_context_setup_resp->gNB_CU_ue_id is: %d
\n
"
,
f1ap_ue_context_modification_resp
->
gNB_CU_ue_id
);
LOG_D
(
F1AP
,
"f1ap_ue_context_setup_resp->gNB_CU_ue_id is: %d
\n
"
,
f1ap_ue_context_modification_resp
->
gNB_CU_ue_id
);
...
...
openair2/F1AP/f1ap_du_ue_context_management.c
View file @
40b131be
...
@@ -970,20 +970,20 @@ int DU_handle_UE_CONTEXT_MODIFICATION_REQUEST(instance_t instance,
...
@@ -970,20 +970,20 @@ int DU_handle_UE_CONTEXT_MODIFICATION_REQUEST(instance_t instance,
for
(
i
=
0
;
i
<
f1ap_ue_context_modification_req
->
drbs_to_be_setup_length
;
++
i
)
{
for
(
i
=
0
;
i
<
f1ap_ue_context_modification_req
->
drbs_to_be_setup_length
;
++
i
)
{
f1ap_drb_to_be_setup_t
*
drb_p
=
&
f1ap_ue_context_modification_req
->
drbs_to_be_setup
[
i
];
f1ap_drb_to_be_setup_t
*
drb_p
=
&
f1ap_ue_context_modification_req
->
drbs_to_be_setup
[
i
];
F1AP_DRBs_ToBeSetup
_Item_t
*
drbs_tobesetup
_item_p
=
F1AP_DRBs_ToBeSetup
Mod_Item_t
*
drbs_tobesetupmod
_item_p
=
&
((
F1AP_DRBs_ToBeSetup
_ItemIEs_t
*
)
ieDrb
->
value
.
choice
.
DRBs_ToBeSetupMod_List
.
list
.
array
[
i
])
->
value
.
choice
.
DRBs_ToBeSetup
_Item
;
&
((
F1AP_DRBs_ToBeSetup
Mod_ItemIEs_t
*
)
ieDrb
->
value
.
choice
.
DRBs_ToBeSetupMod_List
.
list
.
array
[
i
])
->
value
.
choice
.
DRBs_ToBeSetupMod
_Item
;
drb_p
->
drb_id
=
drbs_tobesetup_item_p
->
dRBID
;
drb_p
->
drb_id
=
drbs_tobesetup
mod
_item_p
->
dRBID
;
/* TODO in the following, assume only one UP UL TNL is present.
/* TODO in the following, assume only one UP UL TNL is present.
* this matches/assumes OAI CU implementation, can be up to 2! */
* this matches/assumes OAI CU implementation, can be up to 2! */
drb_p
->
up_ul_tnl_length
=
1
;
drb_p
->
up_ul_tnl_length
=
1
;
AssertFatal
(
drbs_tobesetup_item_p
->
uLUPTNLInformation_ToBeSetup_List
.
list
.
count
>
0
,
AssertFatal
(
drbs_tobesetup
mod
_item_p
->
uLUPTNLInformation_ToBeSetup_List
.
list
.
count
>
0
,
"no UL UP TNL Information in DRBs to be Setup list
\n
"
);
"no UL UP TNL Information in DRBs to be Setup list
\n
"
);
F1AP_ULUPTNLInformation_ToBeSetup_Item_t
*
ul_up_tnl_info_p
=
(
F1AP_ULUPTNLInformation_ToBeSetup_Item_t
*
)
drbs_tobesetup_item_p
->
uLUPTNLInformation_ToBeSetup_List
.
list
.
array
[
0
];
F1AP_ULUPTNLInformation_ToBeSetup_Item_t
*
ul_up_tnl_info_p
=
(
F1AP_ULUPTNLInformation_ToBeSetup_Item_t
*
)
drbs_tobesetup
mod
_item_p
->
uLUPTNLInformation_ToBeSetup_List
.
list
.
array
[
0
];
F1AP_GTPTunnel_t
*
ul_up_tnl0
=
ul_up_tnl_info_p
->
uLUPTNLInformation
.
choice
.
gTPTunnel
;
F1AP_GTPTunnel_t
*
ul_up_tnl0
=
ul_up_tnl_info_p
->
uLUPTNLInformation
.
choice
.
gTPTunnel
;
BIT_STRING_TO_TRANSPORT_LAYER_ADDRESS_IPv4
(
&
ul_up_tnl0
->
transportLayerAddress
,
drb_p
->
up_ul_tnl
[
0
].
tl_address
);
BIT_STRING_TO_TRANSPORT_LAYER_ADDRESS_IPv4
(
&
ul_up_tnl0
->
transportLayerAddress
,
drb_p
->
up_ul_tnl
[
0
].
tl_address
);
OCTET_STRING_TO_INT32
(
&
ul_up_tnl0
->
gTP_TEID
,
drb_p
->
up_ul_tnl
[
0
].
teid
);
OCTET_STRING_TO_INT32
(
&
ul_up_tnl0
->
gTP_TEID
,
drb_p
->
up_ul_tnl
[
0
].
teid
);
switch
(
drbs_tobesetup_item_p
->
rLCMode
)
{
switch
(
drbs_tobesetup
mod
_item_p
->
rLCMode
)
{
case
F1AP_RLCMode_rlc_am
:
case
F1AP_RLCMode_rlc_am
:
drb_p
->
rlc_mode
=
RLC_MODE_AM
;
drb_p
->
rlc_mode
=
RLC_MODE_AM
;
break
;
break
;
...
@@ -1042,8 +1042,9 @@ int DU_handle_UE_CONTEXT_MODIFICATION_REQUEST(instance_t instance,
...
@@ -1042,8 +1042,9 @@ int DU_handle_UE_CONTEXT_MODIFICATION_REQUEST(instance_t instance,
//FIXME
//FIXME
//rnti_t rnti = f1ap_get_rnti_by_du_id(DUtype, instance, du_ue_f1ap_id);
//rnti_t rnti = f1ap_get_rnti_by_du_id(DUtype, instance, du_ue_f1ap_id);
ctxt
.
instance
=
instance
;
ctxt
.
instance
=
instance
;
ctxt
.
instance
=
instance
;
ctxt
.
module_id
=
instance
;
ctxt
.
enb_flag
=
1
;
ctxt
.
enb_flag
=
1
;
ctxt
.
eNB_index
=
instance
;
mem_block_t
*
pdcp_pdu_p
=
get_free_mem_block
(
ieRRC
->
value
.
choice
.
RRCContainer
.
size
,
__func__
);
mem_block_t
*
pdcp_pdu_p
=
get_free_mem_block
(
ieRRC
->
value
.
choice
.
RRCContainer
.
size
,
__func__
);
memcpy
(
&
pdcp_pdu_p
->
data
[
0
],
ieRRC
->
value
.
choice
.
RRCContainer
.
buf
,
ieRRC
->
value
.
choice
.
RRCContainer
.
size
);
memcpy
(
&
pdcp_pdu_p
->
data
[
0
],
ieRRC
->
value
.
choice
.
RRCContainer
.
buf
,
ieRRC
->
value
.
choice
.
RRCContainer
.
size
);
du_rlc_data_req
(
&
ctxt
,
1
,
0x00
,
1
,
1
,
0
,
ieRRC
->
value
.
choice
.
RRCContainer
.
size
,
pdcp_pdu_p
);
du_rlc_data_req
(
&
ctxt
,
1
,
0x00
,
1
,
1
,
0
,
ieRRC
->
value
.
choice
.
RRCContainer
.
size
,
pdcp_pdu_p
);
...
@@ -1099,7 +1100,7 @@ int DU_send_UE_CONTEXT_MODIFICATION_RESPONSE(instance_t instance, f1ap_ue_contex
...
@@ -1099,7 +1100,7 @@ int DU_send_UE_CONTEXT_MODIFICATION_RESPONSE(instance_t instance, f1ap_ue_contex
}
}
/* mandatory */
/* mandatory */
/* c
3
. DUtoCURRCInformation */
/* c
4
. DUtoCURRCInformation */
asn1cSequenceAdd
(
out
->
protocolIEs
.
list
,
F1AP_UEContextModificationResponseIEs_t
,
ie4
);
asn1cSequenceAdd
(
out
->
protocolIEs
.
list
,
F1AP_UEContextModificationResponseIEs_t
,
ie4
);
ie4
->
id
=
F1AP_ProtocolIE_ID_id_DUtoCURRCInformation
;
ie4
->
id
=
F1AP_ProtocolIE_ID_id_DUtoCURRCInformation
;
ie4
->
criticality
=
F1AP_Criticality_reject
;
ie4
->
criticality
=
F1AP_Criticality_reject
;
...
@@ -1127,185 +1128,177 @@ int DU_send_UE_CONTEXT_MODIFICATION_RESPONSE(instance_t instance, f1ap_ue_contex
...
@@ -1127,185 +1128,177 @@ int DU_send_UE_CONTEXT_MODIFICATION_RESPONSE(instance_t instance, f1ap_ue_contex
/* optional */
/* optional */
/* c5. DRBs_Setup_List */
/* c5. DRBs_Setup_List */
if
(
resp
->
drbs_to_be_setup_length
>
0
){
if
(
resp
->
drbs_to_be_setup_length
>
0
)
{
asn1cSequenceAdd
(
out
->
protocolIEs
.
list
,
F1AP_UEContextModificationResponseIEs_t
,
ie5
);
asn1cSequenceAdd
(
out
->
protocolIEs
.
list
,
F1AP_UEContextModificationResponseIEs_t
,
ie5
);
ie5
->
id
=
F1AP_ProtocolIE_ID_id_DRBs_SetupMod_List
;
ie5
->
id
=
F1AP_ProtocolIE_ID_id_DRBs_SetupMod_List
;
ie5
->
criticality
=
F1AP_Criticality_ignore
;
ie5
->
criticality
=
F1AP_Criticality_ignore
;
ie5
->
value
.
present
=
F1AP_UEContextModificationResponseIEs__value_PR_DRBs_SetupMod_List
;
ie5
->
value
.
present
=
F1AP_UEContextModificationResponseIEs__value_PR_DRBs_SetupMod_List
;
for
(
int
i
=
0
;
i
<
resp
->
drbs_to_be_setup_length
;
i
++
)
{
for
(
int
i
=
0
;
i
<
resp
->
drbs_to_be_setup_length
;
i
++
)
{
//
asn1cSequenceAdd
(
ie5
->
value
.
choice
.
DRBs_SetupMod_List
.
list
,
F1AP_DRBs_SetupMod_ItemIEs_t
,
drbs_setupmod_item_ies
);
asn1cSequenceAdd
(
ie5
->
value
.
choice
.
DRBs_SetupMod_List
.
list
,
drbs_setupmod_item_ies
->
id
=
F1AP_ProtocolIE_ID_id_DRBs_SetupMod_Item
;
F1AP_DRBs_SetupMod_ItemIEs_t
,
drbs_setupmod_item_ies
);
drbs_setupmod_item_ies
->
criticality
=
F1AP_Criticality_ignore
;
drbs_setupmod_item_ies
->
id
=
F1AP_ProtocolIE_ID_id_DRBs_SetupMod_Item
;
drbs_setupmod_item_ies
->
value
.
present
=
F1AP_DRBs_SetupMod_ItemIEs__value_PR_DRBs_SetupMod_Item
;
drbs_setupmod_item_ies
->
criticality
=
F1AP_Criticality_ignore
;
/* 7.1 DRBs_Setup_Item */
drbs_setupmod_item_ies
->
value
.
present
=
F1AP_DRBs_SetupMod_ItemIEs__value_PR_DRBs_SetupMod_Item
;
/* ADD */
/* 7.1 DRBs_Setup_Item */
F1AP_DRBs_SetupMod_Item_t
*
drbs_setupmod_item
=&
drbs_setupmod_item_ies
->
value
.
choice
.
DRBs_SetupMod_Item
;
/* ADD */
/* dRBID */
F1AP_DRBs_SetupMod_Item_t
*
drbs_setupmod_item
=&
drbs_setupmod_item_ies
->
value
.
choice
.
DRBs_SetupMod_Item
;
drbs_setupmod_item
->
dRBID
=
resp
->
drbs_to_be_setup
[
i
].
drb_id
;
/* dRBID */
drbs_setupmod_item
->
dRBID
=
resp
->
drbs_to_be_setup
[
i
].
drb_id
;
/* OPTIONAL */
/* OPTIONAL */
/* lCID */
/* lCID */
//drbs_setup_item.lCID = (F1AP_LCID_t *)calloc(1, sizeof(F1AP_LCID_t));
//drbs_setup_item.lCID = (F1AP_LCID_t *)calloc(1, sizeof(F1AP_LCID_t));
//drbs_setup_item.lCID = 1L;
//drbs_setup_item.lCID = 1L;
for
(
int
j
=
0
;
j
<
resp
->
drbs_to_be_setup
[
i
].
up_dl_tnl_length
;
j
++
)
{
for
(
int
j
=
0
;
j
<
resp
->
drbs_to_be_setup
[
i
].
up_dl_tnl_length
;
j
++
)
{
/* ADD */
/* ADD */
asn1cSequenceAdd
(
drbs_setupmod_item
->
dLUPTNLInformation_ToBeSetup_List
.
list
,
asn1cSequenceAdd
(
drbs_setupmod_item
->
dLUPTNLInformation_ToBeSetup_List
.
list
,
F1AP_DLUPTNLInformation_ToBeSetup_Item_t
,
dLUPTNLInformation_ToBeSetup_Item
);
F1AP_DLUPTNLInformation_ToBeSetup_Item_t
,
dLUPTNLInformation_ToBeSetup_Item
);
dLUPTNLInformation_ToBeSetup_Item
->
dLUPTNLInformation
.
present
=
F1AP_UPTransportLayerInformation_PR_gTPTunnel
;
dLUPTNLInformation_ToBeSetup_Item
->
dLUPTNLInformation
.
present
=
F1AP_UPTransportLayerInformation_PR_gTPTunnel
;
/* gTPTunnel */
/* gTPTunnel */
asn1cCalloc
(
dLUPTNLInformation_ToBeSetup_Item
->
dLUPTNLInformation
.
choice
.
gTPTunnel
,
gTPTunnel
);
asn1cCalloc
(
dLUPTNLInformation_ToBeSetup_Item
->
dLUPTNLInformation
.
choice
.
gTPTunnel
,
gTPTunnel
);
/* transportLayerAddress */
/* transportLayerAddress */
struct
sockaddr_in
addr
=
{
0
};
struct
sockaddr_in
addr
=
{
0
};
inet_pton
(
AF_INET
,
getCxt
(
false
,
instance
)
->
setupReq
.
DU_f1_ip_address
.
ipv4_address
,
inet_pton
(
AF_INET
,
getCxt
(
false
,
instance
)
->
setupReq
.
DU_f1_ip_address
.
ipv4_address
,
&
addr
.
sin_addr
.
s_addr
);
&
addr
.
sin_addr
.
s_addr
);
TRANSPORT_LAYER_ADDRESS_IPv4_TO_BIT_STRING
(
addr
.
sin_addr
.
s_addr
,
TRANSPORT_LAYER_ADDRESS_IPv4_TO_BIT_STRING
(
addr
.
sin_addr
.
s_addr
,
&
gTPTunnel
->
transportLayerAddress
);
&
gTPTunnel
->
transportLayerAddress
);
/* gTP_TEID */
/* gTP_TEID */
INT32_TO_OCTET_STRING
(
resp
->
drbs_to_be_setup
[
i
].
up_dl_tnl
[
j
].
teid
,
&
gTPTunnel
->
gTP_TEID
);
INT32_TO_OCTET_STRING
(
resp
->
drbs_to_be_setup
[
i
].
up_dl_tnl
[
j
].
teid
,
&
gTPTunnel
->
gTP_TEID
);
}
// for j
}
// for j
}
// for i
}
// for i
}
}
/* optional */
/* optional */
/* c6. DRBs_Modified_List */
/* c6. DRBs_Modified_List */
if
(
0
){
if
(
0
){
asn1cSequenceAdd
(
out
->
protocolIEs
.
list
,
F1AP_UEContextModificationResponseIEs_t
,
ie6
);
asn1cSequenceAdd
(
out
->
protocolIEs
.
list
,
F1AP_UEContextModificationResponseIEs_t
,
ie6
);
ie6
->
id
=
F1AP_ProtocolIE_ID_id_DRBs_Modified_List
;
ie6
->
id
=
F1AP_ProtocolIE_ID_id_DRBs_Modified_List
;
ie6
->
criticality
=
F1AP_Criticality_reject
;
ie6
->
criticality
=
F1AP_Criticality_reject
;
ie6
->
value
.
present
=
F1AP_UEContextModificationResponseIEs__value_PR_DRBs_Modified_List
;
ie6
->
value
.
present
=
F1AP_UEContextModificationResponseIEs__value_PR_DRBs_Modified_List
;
for
(
int
i
=
0
;
i
<
1
;
i
++
)
{
for
(
int
i
=
0
;
i
<
1
;
i
++
)
{
//
asn1cSequenceAdd
(
ie6
->
value
.
choice
.
DRBs_Modified_List
.
list
,
asn1cSequenceAdd
(
ie6
->
value
.
choice
.
DRBs_Modified_List
.
list
,
F1AP_DRBs_Modified_ItemIEs_t
,
drbs_modified_item_ies
);
F1AP_DRBs_Modified_ItemIEs_t
,
drbs_modified_item_ies
);
drbs_modified_item_ies
->
id
=
F1AP_ProtocolIE_ID_id_DRBs_Modified_Item
;
drbs_modified_item_ies
->
id
=
F1AP_ProtocolIE_ID_id_DRBs_Modified_Item
;
drbs_modified_item_ies
->
criticality
=
F1AP_Criticality_reject
;
drbs_modified_item_ies
->
criticality
=
F1AP_Criticality_reject
;
drbs_modified_item_ies
->
value
.
present
=
F1AP_DRBs_Modified_ItemIEs__value_PR_DRBs_Modified_Item
;
drbs_modified_item_ies
->
value
.
present
=
F1AP_DRBs_Modified_ItemIEs__value_PR_DRBs_Modified_Item
;
/* DRBs_modified_Item */
/* 13.1 SRBs_modified_Item */
F1AP_DRBs_Modified_Item_t
*
drbs_modified_item
=
&
drbs_modified_item_ies
->
value
.
choice
.
DRBs_Modified_Item
;
F1AP_DRBs_Modified_Item_t
*
drbs_modified_item
=
/* dRBID */
&
drbs_modified_item_ies
->
value
.
choice
.
DRBs_Modified_Item
;
drbs_modified_item
->
dRBID
=
25L
;
/* dRBID */
/* ULTunnels_Modified_List */
drbs_modified_item
->
dRBID
=
25L
;
int
maxnoofULTunnels
=
1
;
// 2;
/* ULTunnels_Modified_List */
int
maxnoofULTunnels
=
1
;
// 2;
for
(
int
j
=
0
;
j
<
maxnoofULTunnels
;
j
++
)
{
/* DLTunnels_Modified_Item */
for
(
int
j
=
0
;
j
<
maxnoofULTunnels
;
j
++
)
{
asn1cSequenceAdd
(
drbs_modified_item
->
dLUPTNLInformation_ToBeSetup_List
.
list
,
/* DLTunnels_Modified_Item */
F1AP_DLUPTNLInformation_ToBeSetup_Item_t
,
dLUPTNLInformation_ToBeSetup_Item
);
asn1cSequenceAdd
(
drbs_modified_item
->
dLUPTNLInformation_ToBeSetup_List
.
list
,
asn1cCalloc
(
dLUPTNLInformation_ToBeSetup_Item
,
tmp
);
F1AP_DLUPTNLInformation_ToBeSetup_Item_t
,
dLUPTNLInformation_ToBeSetup_Item
);
tmp
->
dLUPTNLInformation
.
present
=
F1AP_UPTransportLayerInformation_PR_gTPTunnel
;
asn1cCalloc
(
dLUPTNLInformation_ToBeSetup_Item
,
tmp
);
asn1cCalloc
(
dLUPTNLInformation_ToBeSetup_Item
->
dLUPTNLInformation
.
choice
.
gTPTunnel
,
gTPTunnel
);
tmp
->
dLUPTNLInformation
.
present
=
F1AP_UPTransportLayerInformation_PR_gTPTunnel
;
TRANSPORT_LAYER_ADDRESS_IPv4_TO_BIT_STRING
(
1234
,
&
gTPTunnel
->
transportLayerAddress
);
asn1cCalloc
(
dLUPTNLInformation_ToBeSetup_Item
->
dLUPTNLInformation
.
choice
.
gTPTunnel
,
gTPTunnel
);
OCTET_STRING_fromBuf
(
&
gTPTunnel
->
gTP_TEID
,
"1204"
,
strlen
(
"1204"
));
TRANSPORT_LAYER_ADDRESS_IPv4_TO_BIT_STRING
(
1234
,
&
gTPTunnel
->
transportLayerAddress
);
}
OCTET_STRING_fromBuf
(
&
gTPTunnel
->
gTP_TEID
,
"1204"
,
strlen
(
"1204"
));
}
}
}
}
}
/* optional */
/* optional */
/* c7. SRBs_FailedToBeSetupMod_List */
/* c7. SRBs_FailedToBeSetupMod_List */
if
(
0
){
if
(
0
){
asn1cSequenceAdd
(
out
->
protocolIEs
.
list
,
F1AP_UEContextModificationResponseIEs_t
,
ie7
);
asn1cSequenceAdd
(
out
->
protocolIEs
.
list
,
F1AP_UEContextModificationResponseIEs_t
,
ie7
);
ie7
->
id
=
F1AP_ProtocolIE_ID_id_SRBs_FailedToBeSetupMod_List
;
ie7
->
id
=
F1AP_ProtocolIE_ID_id_SRBs_FailedToBeSetupMod_List
;
ie7
->
criticality
=
F1AP_Criticality_reject
;
ie7
->
criticality
=
F1AP_Criticality_reject
;
ie7
->
value
.
present
=
F1AP_UEContextModificationResponseIEs__value_PR_SRBs_FailedToBeSetupMod_List
;
ie7
->
value
.
present
=
F1AP_UEContextModificationResponseIEs__value_PR_SRBs_FailedToBeSetupMod_List
;
for
(
int
i
=
0
;
i
<
1
;
i
++
)
{
for
(
int
i
=
0
;
i
<
1
;
i
++
)
{
//
asn1cSequenceAdd
(
ie7
->
value
.
choice
.
SRBs_FailedToBeSetupMod_List
.
list
,
asn1cSequenceAdd
(
ie7
->
value
.
choice
.
SRBs_FailedToBeSetupMod_List
.
list
,
F1AP_SRBs_FailedToBeSetupMod_ItemIEs_t
,
srbs_failedToBeSetupMod_item_ies
);
F1AP_SRBs_FailedToBeSetupMod_ItemIEs_t
,
srbs_failedToBeSetupMod_item_ies
);
srbs_failedToBeSetupMod_item_ies
->
id
=
F1AP_ProtocolIE_ID_id_SRBs_FailedToBeSetupMod_Item
;
srbs_failedToBeSetupMod_item_ies
->
id
=
F1AP_ProtocolIE_ID_id_SRBs_FailedToBeSetupMod_Item
;
srbs_failedToBeSetupMod_item_ies
->
criticality
=
F1AP_Criticality_ignore
;
srbs_failedToBeSetupMod_item_ies
->
criticality
=
F1AP_Criticality_ignore
;
srbs_failedToBeSetupMod_item_ies
->
value
.
present
=
F1AP_SRBs_FailedToBeSetupMod_ItemIEs__value_PR_SRBs_FailedToBeSetupMod_Item
;
srbs_failedToBeSetupMod_item_ies
->
value
.
present
=
F1AP_SRBs_FailedToBeSetupMod_ItemIEs__value_PR_SRBs_FailedToBeSetupMod_Item
;
/* 9.1 SRBs_FailedToBeSetupMod_Item */
/* 9.1 SRBs_FailedToBeSetupMod_Item */
F1AP_SRBs_FailedToBeSetupMod_Item_t
*
srbs_failedToBeSetupMod_item
=
F1AP_SRBs_FailedToBeSetupMod_Item_t
*
srbs_failedToBeSetupMod_item
=
&
srbs_failedToBeSetupMod_item_ies
->
value
.
choice
.
SRBs_FailedToBeSetupMod_Item
;
&
srbs_failedToBeSetupMod_item_ies
->
value
.
choice
.
SRBs_FailedToBeSetupMod_Item
;
/* - sRBID */
/* - sRBID */
srbs_failedToBeSetupMod_item
->
sRBID
=
50L
;
srbs_failedToBeSetupMod_item
->
sRBID
=
50L
;
asn1cCalloc
(
srbs_failedToBeSetupMod_item
->
cause
,
tmp
)
asn1cCalloc
(
srbs_failedToBeSetupMod_item
->
cause
,
tmp
)
tmp
->
present
=
F1AP_Cause_PR_radioNetwork
;
tmp
->
present
=
F1AP_Cause_PR_radioNetwork
;
tmp
->
choice
.
radioNetwork
=
F1AP_CauseRadioNetwork_unknown_or_already_allocated_gnb_du_ue_f1ap_id
;
tmp
->
choice
.
radioNetwork
=
F1AP_CauseRadioNetwork_unknown_or_already_allocated_gnb_du_ue_f1ap_id
;
}
}
}
}
/* optional */
/* optional */
/* c8. DRBs_FailedToBeSetupMod_List */
/* c8. DRBs_FailedToBeSetupMod_List */
if
(
0
){
if
(
0
){
asn1cSequenceAdd
(
out
->
protocolIEs
.
list
,
F1AP_UEContextModificationResponseIEs_t
,
ie8
);
asn1cSequenceAdd
(
out
->
protocolIEs
.
list
,
F1AP_UEContextModificationResponseIEs_t
,
ie8
);
ie8
->
id
=
F1AP_ProtocolIE_ID_id_DRBs_FailedToBeSetupMod_List
;
ie8
->
id
=
F1AP_ProtocolIE_ID_id_DRBs_FailedToBeSetupMod_List
;
ie8
->
criticality
=
F1AP_Criticality_reject
;
ie8
->
criticality
=
F1AP_Criticality_reject
;
ie8
->
value
.
present
=
F1AP_UEContextModificationResponseIEs__value_PR_DRBs_FailedToBeSetupMod_List
;
ie8
->
value
.
present
=
F1AP_UEContextModificationResponseIEs__value_PR_DRBs_FailedToBeSetupMod_List
;
for
(
int
i
=
0
;
i
<
1
;
i
++
)
{
for
(
int
i
=
0
;
i
<
1
;
i
++
)
{
//
asn1cSequenceAdd
(
ie8
->
value
.
choice
.
DRBs_FailedToBeSetupMod_List
.
list
,
asn1cSequenceAdd
(
ie8
->
value
.
choice
.
DRBs_FailedToBeSetupMod_List
.
list
,
F1AP_DRBs_FailedToBeSetupMod_ItemIEs_t
,
drbs_failedToBeSetupMod_item_ies
);
F1AP_DRBs_FailedToBeSetupMod_ItemIEs_t
,
drbs_failedToBeSetupMod_item_ies
);
drbs_failedToBeSetupMod_item_ies
->
id
=
F1AP_ProtocolIE_ID_id_DRBs_FailedToBeSetupMod_Item
;
drbs_failedToBeSetupMod_item_ies
->
id
=
F1AP_ProtocolIE_ID_id_DRBs_FailedToBeSetupMod_Item
;
drbs_failedToBeSetupMod_item_ies
->
criticality
=
F1AP_Criticality_reject
;
drbs_failedToBeSetupMod_item_ies
->
criticality
=
F1AP_Criticality_reject
;
drbs_failedToBeSetupMod_item_ies
->
value
.
present
=
F1AP_DRBs_FailedToBeSetupMod_ItemIEs__value_PR_DRBs_FailedToBeSetupMod_Item
;
drbs_failedToBeSetupMod_item_ies
->
value
.
present
=
F1AP_DRBs_FailedToBeSetupMod_ItemIEs__value_PR_DRBs_FailedToBeSetupMod_Item
;
/* DRBs_FailedToBeSetupMod_Item */
/* 10.1 DRBs_ToBeSetupMod_Item */
F1AP_DRBs_FailedToBeSetupMod_Item_t
*
drbs_failedToBeSetupMod_item
=
F1AP_DRBs_FailedToBeSetupMod_Item_t
*
drbs_failedToBeSetupMod_item
=
&
drbs_failedToBeSetupMod_item_ies
->
value
.
choice
.
DRBs_FailedToBeSetupMod_Item
;
&
drbs_failedToBeSetupMod_item_ies
->
value
.
choice
.
DRBs_FailedToBeSetupMod_Item
;
/* dRBID */
/* dRBID */
drbs_failedToBeSetupMod_item
->
dRBID
=
30L
;
drbs_failedToBeSetupMod_item
->
dRBID
=
30L
;
drbs_failedToBeSetupMod_item
->
cause
=
(
F1AP_Cause_t
*
)
calloc
(
1
,
sizeof
(
F1AP_Cause_t
));
drbs_failedToBeSetupMod_item
->
cause
=
(
F1AP_Cause_t
*
)
calloc
(
1
,
sizeof
(
F1AP_Cause_t
));
drbs_failedToBeSetupMod_item
->
cause
->
present
=
F1AP_Cause_PR_radioNetwork
;
drbs_failedToBeSetupMod_item
->
cause
->
present
=
F1AP_Cause_PR_radioNetwork
;
drbs_failedToBeSetupMod_item
->
cause
->
choice
.
radioNetwork
=
F1AP_CauseRadioNetwork_unknown_or_already_allocated_gnb_du_ue_f1ap_id
;
drbs_failedToBeSetupMod_item
->
cause
->
choice
.
radioNetwork
=
F1AP_CauseRadioNetwork_unknown_or_already_allocated_gnb_du_ue_f1ap_id
;
}
}
}
}
/* optional */
/* optional */
/* c9. SCell_FailedtoSetupMod_List */
/* c9. SCell_FailedtoSetupMod_List */
if
(
0
){
if
(
0
){
asn1cSequenceAdd
(
out
->
protocolIEs
.
list
,
F1AP_UEContextModificationResponseIEs_t
,
ie9
);
asn1cSequenceAdd
(
out
->
protocolIEs
.
list
,
F1AP_UEContextModificationResponseIEs_t
,
ie9
);
ie9
->
id
=
F1AP_ProtocolIE_ID_id_SCell_FailedtoSetupMod_List
;
ie9
->
id
=
F1AP_ProtocolIE_ID_id_SCell_FailedtoSetupMod_List
;
ie9
->
criticality
=
F1AP_Criticality_ignore
;
ie9
->
criticality
=
F1AP_Criticality_ignore
;
ie9
->
value
.
present
=
F1AP_UEContextModificationResponseIEs__value_PR_SCell_FailedtoSetupMod_List
;
ie9
->
value
.
present
=
F1AP_UEContextModificationResponseIEs__value_PR_SCell_FailedtoSetupMod_List
;
for
(
int
i
=
0
;
i
<
1
;
i
++
)
{
for
(
int
i
=
0
;
i
<
1
;
i
++
)
{
//
asn1cSequenceAdd
(
ie9
->
value
.
choice
.
SCell_FailedtoSetupMod_List
.
list
,
asn1cSequenceAdd
(
ie9
->
value
.
choice
.
SCell_FailedtoSetupMod_List
.
list
,
F1AP_SCell_FailedtoSetupMod_ItemIEs_t
,
scell_failedtoSetupMod_item_ies
);
F1AP_SCell_FailedtoSetupMod_ItemIEs_t
,
scell_failedtoSetupMod_item_ies
);
scell_failedtoSetupMod_item_ies
->
id
=
F1AP_ProtocolIE_ID_id_SCell_FailedtoSetupMod_Item
;
scell_failedtoSetupMod_item_ies
->
id
=
F1AP_ProtocolIE_ID_id_SCell_FailedtoSetupMod_Item
;
scell_failedtoSetupMod_item_ies
->
criticality
=
F1AP_Criticality_ignore
;
scell_failedtoSetupMod_item_ies
->
criticality
=
F1AP_Criticality_ignore
;
scell_failedtoSetupMod_item_ies
->
value
.
present
=
F1AP_SCell_FailedtoSetupMod_ItemIEs__value_PR_SCell_FailedtoSetupMod_Item
;
scell_failedtoSetupMod_item_ies
->
value
.
present
=
F1AP_SCell_FailedtoSetupMod_ItemIEs__value_PR_SCell_FailedtoSetupMod_Item
;
/* 8.1 SCell_ToBeSetup_Item */
/* 8.1 SCell_ToBeSetup_Item */
F1AP_SCell_FailedtoSetupMod_Item_t
*
scell_failedtoSetupMod_item
=&
scell_failedtoSetupMod_item_ies
->
value
.
choice
.
SCell_FailedtoSetupMod_Item
;
F1AP_SCell_FailedtoSetupMod_Item_t
*
scell_failedtoSetupMod_item
=&
scell_failedtoSetupMod_item_ies
->
value
.
choice
.
SCell_FailedtoSetupMod_Item
;
/* - sCell_ID */
/* - sCell_ID */
addnRCGI
(
scell_failedtoSetupMod_item
->
sCell_ID
,
&
f1ap_req
(
false
,
instance
)
->
cell
[
i
]);
addnRCGI
(
scell_failedtoSetupMod_item
->
sCell_ID
,
&
f1ap_req
(
false
,
instance
)
->
cell
[
i
]);
asn1cCalloc
(
scell_failedtoSetupMod_item
->
cause
,
tmp
);
asn1cCalloc
(
scell_failedtoSetupMod_item
->
cause
,
tmp
);
tmp
->
present
=
F1AP_Cause_PR_radioNetwork
;
tmp
->
present
=
F1AP_Cause_PR_radioNetwork
;
tmp
->
choice
.
radioNetwork
=
F1AP_CauseRadioNetwork_unknown_or_already_allocated_gnb_du_ue_f1ap_id
;
tmp
->
choice
.
radioNetwork
=
F1AP_CauseRadioNetwork_unknown_or_already_allocated_gnb_du_ue_f1ap_id
;
}
}
}
}
/* optional */
/* optional */
/* c10. DRBs_FailedToBeModified_List */
/* c10. DRBs_FailedToBeModified_List */
if
(
0
){
if
(
0
){
asn1cSequenceAdd
(
out
->
protocolIEs
.
list
,
F1AP_UEContextModificationResponseIEs_t
,
ie10
);
asn1cSequenceAdd
(
out
->
protocolIEs
.
list
,
F1AP_UEContextModificationResponseIEs_t
,
ie10
);
ie10
->
id
=
F1AP_ProtocolIE_ID_id_DRBs_FailedToBeModified_List
;
ie10
->
id
=
F1AP_ProtocolIE_ID_id_DRBs_FailedToBeModified_List
;
ie10
->
criticality
=
F1AP_Criticality_reject
;
ie10
->
criticality
=
F1AP_Criticality_reject
;
ie10
->
value
.
present
=
F1AP_UEContextModificationResponseIEs__value_PR_DRBs_FailedToBeModified_List
;
ie10
->
value
.
present
=
F1AP_UEContextModificationResponseIEs__value_PR_DRBs_FailedToBeModified_List
;
for
(
int
i
=
0
;
i
<
1
;
i
++
)
{
for
(
int
i
=
0
;
i
<
1
;
i
++
)
{
//
asn1cSequenceAdd
(
ie10
->
value
.
choice
.
DRBs_FailedToBeModified_List
.
list
,
asn1cSequenceAdd
(
ie10
->
value
.
choice
.
DRBs_FailedToBeModified_List
.
list
,
F1AP_DRBs_FailedToBeModified_ItemIEs_t
,
drbs_failedToBeModified_item_ies
);
F1AP_DRBs_FailedToBeModified_ItemIEs_t
,
drbs_failedToBeModified_item_ies
);
drbs_failedToBeModified_item_ies
->
id
=
F1AP_ProtocolIE_ID_id_DRBs_FailedToBeModified_Item
;
drbs_failedToBeModified_item_ies
->
id
=
F1AP_ProtocolIE_ID_id_DRBs_FailedToBeModified_Item
;
drbs_failedToBeModified_item_ies
->
criticality
=
F1AP_Criticality_reject
;
drbs_failedToBeModified_item_ies
->
criticality
=
F1AP_Criticality_reject
;
drbs_failedToBeModified_item_ies
->
value
.
present
=
F1AP_DRBs_FailedToBeModified_ItemIEs__value_PR_DRBs_FailedToBeModified_Item
;
drbs_failedToBeModified_item_ies
->
value
.
present
=
F1AP_DRBs_FailedToBeModified_ItemIEs__value_PR_DRBs_FailedToBeModified_Item
;
/* 13.1 DRBs_FailedToBeModified_Item */
/* 13.1 DRBs_FailedToBeModified_Item */
F1AP_DRBs_FailedToBeModified_Item_t
*
drbs_failedToBeModified_item
=
F1AP_DRBs_FailedToBeModified_Item_t
*
drbs_failedToBeModified_item
=
&
drbs_failedToBeModified_item_ies
->
value
.
choice
.
DRBs_FailedToBeModified_Item
;
&
drbs_failedToBeModified_item_ies
->
value
.
choice
.
DRBs_FailedToBeModified_Item
;
/* dRBID */
/* dRBID */
drbs_failedToBeModified_item
->
dRBID
=
30L
;
drbs_failedToBeModified_item
->
dRBID
=
30L
;
asn1cCalloc
(
drbs_failedToBeModified_item
->
cause
,
tmp
);
asn1cCalloc
(
drbs_failedToBeModified_item
->
cause
,
tmp
);
tmp
->
present
=
F1AP_Cause_PR_radioNetwork
;
tmp
->
present
=
F1AP_Cause_PR_radioNetwork
;
tmp
->
choice
.
radioNetwork
=
F1AP_CauseRadioNetwork_unknown_or_already_allocated_gnb_du_ue_f1ap_id
;
tmp
->
choice
.
radioNetwork
=
F1AP_CauseRadioNetwork_unknown_or_already_allocated_gnb_du_ue_f1ap_id
;
}
}
}
}
// /* */
// /* */
...
@@ -1359,24 +1352,24 @@ int DU_send_UE_CONTEXT_MODIFICATION_RESPONSE(instance_t instance, f1ap_ue_contex
...
@@ -1359,24 +1352,24 @@ int DU_send_UE_CONTEXT_MODIFICATION_RESPONSE(instance_t instance, f1ap_ue_contex
/* optional */
/* optional */
/* c12. SRBs_Setup_List */
/* c12. SRBs_Setup_List */
if
(
resp
->
srbs_to_be_setup_length
>
0
){
if
(
resp
->
srbs_to_be_setup_length
>
0
){
asn1cSequenceAdd
(
out
->
protocolIEs
.
list
,
F1AP_UEContextModificationResponseIEs_t
,
ie12
);
asn1cSequenceAdd
(
out
->
protocolIEs
.
list
,
F1AP_UEContextModificationResponseIEs_t
,
ie12
);
ie12
->
id
=
F1AP_ProtocolIE_ID_id_SRBs_SetupMod_List
;
ie12
->
id
=
F1AP_ProtocolIE_ID_id_SRBs_SetupMod_List
;
ie12
->
criticality
=
F1AP_Criticality_ignore
;
ie12
->
criticality
=
F1AP_Criticality_ignore
;
ie12
->
value
.
present
=
F1AP_UEContextModificationResponseIEs__value_PR_SRBs_SetupMod_List
;
ie12
->
value
.
present
=
F1AP_UEContextModificationResponseIEs__value_PR_SRBs_SetupMod_List
;
for
(
int
i
=
0
;
i
<
resp
->
srbs_to_be_setup_length
;
i
++
)
{
//
for
(
int
i
=
0
;
i
<
resp
->
srbs_to_be_setup_length
;
i
++
)
{
//
asn1cSequenceAdd
(
ie12
->
value
.
choice
.
SRBs_SetupMod_List
.
list
,
asn1cSequenceAdd
(
ie12
->
value
.
choice
.
SRBs_SetupMod_List
.
list
,
F1AP_SRBs_SetupMod_ItemIEs_t
,
srbs_setupmod_item_ies
);
F1AP_SRBs_SetupMod_ItemIEs_t
,
srbs_setupmod_item_ies
);
srbs_setupmod_item_ies
->
id
=
F1AP_ProtocolIE_ID_id_SRBs_SetupMod_Item
;
srbs_setupmod_item_ies
->
id
=
F1AP_ProtocolIE_ID_id_SRBs_SetupMod_Item
;
srbs_setupmod_item_ies
->
criticality
=
F1AP_Criticality_ignore
;
srbs_setupmod_item_ies
->
criticality
=
F1AP_Criticality_ignore
;
srbs_setupmod_item_ies
->
value
.
present
=
F1AP_SRBs_SetupMod_ItemIEs__value_PR_SRBs_SetupMod_Item
;
srbs_setupmod_item_ies
->
value
.
present
=
F1AP_SRBs_SetupMod_ItemIEs__value_PR_SRBs_SetupMod_Item
;
/* 11.1 SRBs_Setup_Item */
/* 11.1 SRBs_Setup_Item */
/* ADD */
/* ADD */
F1AP_SRBs_SetupMod_Item_t
*
srbs_setupmod_item
=&
srbs_setupmod_item_ies
->
value
.
choice
.
SRBs_SetupMod_Item
;
F1AP_SRBs_SetupMod_Item_t
*
srbs_setupmod_item
=&
srbs_setupmod_item_ies
->
value
.
choice
.
SRBs_SetupMod_Item
;
/* sRBID */
/* sRBID */
srbs_setupmod_item
->
sRBID
=
resp
->
srbs_to_be_setup
[
i
].
srb_id
;
srbs_setupmod_item
->
sRBID
=
resp
->
srbs_to_be_setup
[
i
].
srb_id
;
srbs_setupmod_item
->
lCID
=
resp
->
srbs_to_be_setup
[
i
].
srb_id
;
srbs_setupmod_item
->
lCID
=
resp
->
srbs_to_be_setup
[
i
].
srb_id
;
}
}
}
}
/* encode */
/* encode */
...
...
openair2/RRC/NR/rrc_gNB.c
View file @
40b131be
...
@@ -3668,6 +3668,7 @@ static void rrc_CU_process_ue_context_modification_response(MessageDef *msg_p, c
...
@@ -3668,6 +3668,7 @@ static void rrc_CU_process_ue_context_modification_response(MessageDef *msg_p, c
sizeof
(
*
cellGroupConfig
->
rlc_BearerToAddModList
));
sizeof
(
*
cellGroupConfig
->
rlc_BearerToAddModList
));
}
}
}
}
LOG_I
(
NR_RRC
,
"Updated master cell group configuration stored at the UE context of the CU:
\n
"
);
xer_fprint
(
stdout
,
&
asn_DEF_NR_CellGroupConfig
,
ue_context_p
->
ue_context
.
masterCellGroup
);
xer_fprint
(
stdout
,
&
asn_DEF_NR_CellGroupConfig
,
ue_context_p
->
ue_context
.
masterCellGroup
);
rrc_gNB_generate_dedicatedRRCReconfiguration
(
&
ctxt
,
ue_context_p
,
cellGroupConfig
);
rrc_gNB_generate_dedicatedRRCReconfiguration
(
&
ctxt
,
ue_context_p
,
cellGroupConfig
);
...
...
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