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
ZhouShuya
OpenXG-RAN
Commits
d988eb82
Commit
d988eb82
authored
4 years ago
by
s.rampalli
Committed by
Rigiel
4 years ago
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Removed temporary values in x2ap and rrc
parent
614083f0
Changes
6
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
309 additions
and
103 deletions
+309
-103
openair2/COMMON/x2ap_messages_types.h
openair2/COMMON/x2ap_messages_types.h
+2
-1
openair2/RRC/LTE/rrc_eNB.c
openair2/RRC/LTE/rrc_eNB.c
+212
-16
openair2/RRC/NR/rrc_gNB_nsa.c
openair2/RRC/NR/rrc_gNB_nsa.c
+2
-0
openair2/X2AP/x2ap_eNB.c
openair2/X2AP/x2ap_eNB.c
+58
-10
openair2/X2AP/x2ap_eNB_generate_messages.c
openair2/X2AP/x2ap_eNB_generate_messages.c
+32
-61
openair2/X2AP/x2ap_eNB_handler.c
openair2/X2AP/x2ap_eNB_handler.c
+3
-15
No files found.
openair2/COMMON/x2ap_messages_types.h
View file @
d988eb82
...
...
@@ -315,7 +315,7 @@ typedef struct x2ap_senb_addition_req_ack_s {
typedef
struct
x2ap_ENDC_sgnb_addition_req_s
{
int
ue_x2_id
;
LTE_PhysCellId_t
target_physCellId
;
/* used for RRC->X2AP in source eNB */
int
rnti
;
...
...
@@ -386,6 +386,7 @@ typedef struct x2ap_ENDC_reconf_complete_s {
int
MeNB_ue_x2_id
;
int
SgNB_ue_x2_id
;
LTE_PhysCellId_t
target_physCellId
;
x2ap_sgNB_reconf_response_information_t
reconf_response
;
...
...
This diff is collapsed.
Click to expand it.
openair2/RRC/LTE/rrc_eNB.c
View file @
d988eb82
This diff is collapsed.
Click to expand it.
openair2/RRC/NR/rrc_gNB_nsa.c
View file @
d988eb82
...
...
@@ -179,6 +179,8 @@ void rrc_add_nsa_user(gNB_RRC_INST *rrc,struct rrc_gNB_ue_context_s *ue_context_
&
create_tunnel_resp
,
&
inde_list
[
0
]);
X2AP_ENDC_SGNB_ADDITION_REQ_ACK
(
msg
).
nb_e_rabs_admitted_tobeadded
=
m
->
nb_e_rabs_tobeadded
;
X2AP_ENDC_SGNB_ADDITION_REQ_ACK
(
msg
).
target_assoc_id
=
m
->
target_assoc_id
;
for
(
int
i
=
0
;
i
<
ue_context_p
->
ue_context
.
nb_of_e_rabs
;
i
++
){
X2AP_ENDC_SGNB_ADDITION_REQ_ACK
(
msg
).
e_rabs_admitted_tobeadded
[
i
].
e_rab_id
=
ue_context_p
->
ue_context
.
e_rab
[
i
].
param
.
e_rab_id
;
X2AP_ENDC_SGNB_ADDITION_REQ_ACK
(
msg
).
e_rabs_admitted_tobeadded
[
i
].
gtp_teid
=
create_tunnel_resp
.
enb_S1u_teid
[
i
];
...
...
This diff is collapsed.
Click to expand it.
openair2/X2AP/x2ap_eNB.c
View file @
d988eb82
...
...
@@ -359,7 +359,7 @@ void x2ap_eNB_handle_sctp_init_msg_multi_cnf(
* Failure means multi_sd < 0.
*/
if
(
instance
->
multi_sd
<
0
)
{
X2AP_ERROR
(
"Error: be sure to properly configure X2
2
in your configuration file.
\n
"
);
X2AP_ERROR
(
"Error: be sure to properly configure X2 in your configuration file.
\n
"
);
DevAssert
(
instance
->
multi_sd
>=
0
);
}
...
...
@@ -454,10 +454,12 @@ void x2ap_eNB_handle_sgNB_add_req(instance_t instance,
x2ap_eNB_instance_t
*
instance_p
;
x2ap_eNB_data_t
*
x2ap_eNB_data
;
int
ue_id
;
/* TODO: remove hardcoded value */
x2ap_eNB_data
=
x2ap_is_eNB_
id_in_list
(
3584
);
LTE_PhysCellId_t
target_pci
;
target_pci
=
x2ap_ENDC_sgnb_addition_req
->
target_physCellId
;
x2ap_eNB_data
=
x2ap_is_eNB_
pci_in_list
(
target_pci
);
DevAssert
(
x2ap_eNB_data
!=
NULL
);
DevAssert
(
x2ap_ENDC_sgnb_addition_req
!=
NULL
);
instance_p
=
x2ap_eNB_get_instance
(
instance
);
DevAssert
(
instance_p
!=
NULL
);
...
...
@@ -474,7 +476,8 @@ void x2ap_eNB_handle_sgNB_add_req(instance_t instance,
x2ap_set_ids
(
id_manager
,
ue_id
,
x2ap_ENDC_sgnb_addition_req
->
rnti
,
ue_id
,
-
1
);
x2ap_id_set_state
(
id_manager
,
ue_id
,
X2ID_STATE_NSA_PREPARE
);
x2ap_eNB_generate_ENDC_x2_SgNB_addition_request
(
instance_p
,
x2ap_ENDC_sgnb_addition_req
,
x2ap_eNB_data
,
ue_id
);
x2ap_eNB_generate_ENDC_x2_SgNB_addition_request
(
instance_p
,
x2ap_ENDC_sgnb_addition_req
,
x2ap_eNB_data
,
ue_id
);
}
static
...
...
@@ -489,16 +492,31 @@ void x2ap_gNB_trigger_sgNB_add_req_ack(instance_t instance,
* as far as I understand.. CROUX
*/
x2ap_id_manager
*
id_manager
;
x2ap_eNB_instance_t
*
instance_p
;
x2ap_eNB_data_t
*
target
;
/*int source_assoc_id = x2ap_ENDC_sgnb_addition_req_ACK->source_assoc_id;
int
ue_id
;
/*int source_assoc_id = x2ap_ENDC_sgnb_addition_req_ACK->source_assoc_id;
int id_source;
int id_target;*/
instance_p
=
x2ap_eNB_get_instance
(
instance
);
DevAssert
(
instance_p
!=
NULL
);
target
=
x2ap_get_eNB
(
NULL
,
x2ap_ENDC_sgnb_addition_req_ACK
->
target_assoc_id
,
0
);
DevAssert
(
target
!=
NULL
);
/* allocate x2ap ID */
id_manager
=
&
instance_p
->
id_manager
;
ue_id
=
x2ap_allocate_new_id
(
id_manager
);
if
(
ue_id
==
-
1
)
{
X2AP_ERROR
(
"could not allocate a new X2AP UE ID
\n
"
);
exit
(
1
);
}
/* id_source is ue_id, id_target is unknown yet */
x2ap_set_ids
(
id_manager
,
ue_id
,
x2ap_ENDC_sgnb_addition_req_ACK
->
rnti
,
ue_id
,
x2ap_ENDC_sgnb_addition_req_ACK
->
MeNB_ue_x2_id
);
x2ap_id_set_state
(
id_manager
,
ue_id
,
X2ID_STATE_SOURCE_OVERALL
);
/*target = x2ap_get_eNB(NULL, source_assoc_id, 0);
DevAssert(target != NULL);*/
...
...
@@ -511,10 +529,36 @@ void x2ap_gNB_trigger_sgNB_add_req_ack(instance_t instance,
x2ap_set_ids(&instance_p->id_manager, ue_id, x2ap_handover_req_ack->rnti, id_source, id_target);*/
//target = x2ap_get_eNB(NULL, 17, 0);
target
=
x2ap_is_eNB_id_in_list
(
3585
);
//Currently hardcoded. Need to extract it differently
x2ap_gNB_generate_ENDC_x2_SgNB_addition_request_ACK
(
instance_p
,
target
,
x2ap_ENDC_sgnb_addition_req_ACK
,
ue_id
);
}
/**
* @fn : Function triggers sgnb reconfiguration complete
* @param : IN instance, IN x2ap_reconf_complete
**/
static
void
x2ap_eNB_trigger_sgnb_reconfiguration_complete
(
instance_t
instance
,
x2ap_ENDC_reconf_complete_t
*
x2ap_reconf_complete
)
{
x2ap_eNB_instance_t
*
instance_p
=
NULL
;
x2ap_eNB_data_t
*
target
=
NULL
;
int
id_source
=
-
1
;
int
id_target
=
-
1
;
LTE_PhysCellId_t
target_pci
;
instance_p
=
x2ap_eNB_get_instance
(
instance
);
DevAssert
(
instance_p
!=
NULL
);
DevAssert
(
x2ap_reconf_complete
!=
NULL
);
target_pci
=
x2ap_reconf_complete
->
target_physCellId
;
target
=
x2ap_is_eNB_pci_in_list
(
target_pci
);
DevAssert
(
target
!=
NULL
);
x2ap_gNB_generate_ENDC_x2_SgNB_addition_request_ACK
(
instance_p
,
target
,
x2ap_ENDC_sgnb_addition_req_ACK
,
0
);
id_source
=
x2ap_reconf_complete
->
MeNB_ue_x2_id
;
id_target
=
x2ap_reconf_complete
->
SgNB_ue_x2_id
;
x2ap_eNB_generate_ENDC_x2_SgNB_reconfiguration_complete
(
instance_p
,
target
,
id_source
,
id_target
);
}
...
...
@@ -594,6 +638,10 @@ void *x2ap_task(void *arg) {
LOG_I
(
X2AP
,
"Received elements for X2AP_ENDC_SGNB_ADDITION_REQ_ACK
\n
"
);
break
;
case
X2AP_ENDC_SGNB_RECONF_COMPLETE
:
x2ap_eNB_trigger_sgnb_reconfiguration_complete
(
ITTI_MESSAGE_GET_INSTANCE
(
received_msg
),
&
X2AP_ENDC_SGNB_RECONF_COMPLETE
(
received_msg
));
break
;
case
SCTP_INIT_MSG_MULTI_CNF
:
x2ap_eNB_handle_sctp_init_msg_multi_cnf
(
ITTI_MESSAGE_GET_INSTANCE
(
received_msg
),
&
received_msg
->
ittiMsg
.
sctp_init_msg_multi_cnf
);
...
...
This diff is collapsed.
Click to expand it.
openair2/X2AP/x2ap_eNB_generate_messages.c
View file @
d988eb82
...
...
@@ -1496,7 +1496,8 @@ int x2ap_eNB_generate_ENDC_x2_setup_response(
}
int
x2ap_eNB_generate_ENDC_x2_SgNB_addition_request
(
x2ap_eNB_instance_t
*
instance_p
,
x2ap_ENDC_sgnb_addition_req_t
*
x2ap_ENDC_sgnb_addition_req
,
x2ap_eNB_data_t
*
x2ap_eNB_data_p
,
int
ue_id
)
x2ap_eNB_instance_t
*
instance_p
,
x2ap_ENDC_sgnb_addition_req_t
*
x2ap_ENDC_sgnb_addition_req
,
x2ap_eNB_data_t
*
x2ap_eNB_data_p
,
int
ue_id
)
{
X2AP_X2AP_PDU_t
pdu
;
X2AP_SgNBAdditionRequest_t
*
out
;
...
...
@@ -1507,42 +1508,21 @@ int x2ap_eNB_generate_ENDC_x2_SgNB_addition_request(
uint8_t
*
buffer
;
uint32_t
len
;
int
ret
=
0
;
// Currently hardcoded (dummy) values filling the fields of SgNB_addition_request message. To be substituted
// with values coming from RRC.
uint16_t
nRencryptionAlgorithms
=
0
;
uint16_t
nRintegrityProtectionAlgorithms
=
0
;
uint16_t
nRencryptionAlgorithms
=
x2ap_ENDC_sgnb_addition_req
->
security_capabilities
.
encryption_algorithms
;
uint16_t
nRintegrityProtectionAlgorithms
=
x2ap_ENDC_sgnb_addition_req
->
security_capabilities
.
integrity_algorithms
;
uint8_t
SgNBSecurityKey
[
32
]
=
{
0
};
int
uEaggregateMaximumBitRateDownlink
=
100000000
;
int
uEaggregateMaximumBitRateUplink
=
100000000
;
int
e_rabs_tobeadded
=
1
;
int
uEaggregateMaximumBitRateDownlink
=
x2ap_ENDC_sgnb_addition_req
->
ue_ambr
.
br_dl
;
int
uEaggregateMaximumBitRateUplink
=
x2ap_ENDC_sgnb_addition_req
->
ue_ambr
.
br_ul
;
int
e_rabs_tobeadded
=
x2ap_ENDC_sgnb_addition_req
->
nb_e_rabs_tobeadded
;
long
int
pDCPatSgNB
=
X2AP_EN_DC_ResourceConfiguration__pDCPatSgNB_present
;
long
int
mCGresources
=
X2AP_EN_DC_ResourceConfiguration__mCGresources_not_present
;
long
int
sCGresources
=
X2AP_EN_DC_ResourceConfiguration__sCGresources_not_present
;
long
qCI
=
1
;
X2AP_Pre_emptionCapability_t
pre_emptionCapability
=
X2AP_Pre_emptionCapability_shall_not_trigger_pre_emption
;
X2AP_Pre_emptionVulnerability_t
pre_emptionVulnerability
=
X2AP_Pre_emptionVulnerability_not_pre_emptable
;
priority_level_t
priority_level
=
PRIORITY_LEVEL_NO_PRIORITY
;
e_rab_tobe_added_t
e_MCG_rabs_tobeadded
;
e_MCG_rabs_tobeadded
.
gtp_teid
=
0
;
e_MCG_rabs_tobeadded
.
sgw_addr
.
length
=
24
;
uint8_t
buf
[
20
]
=
{
0
};
memcpy
(
e_MCG_rabs_tobeadded
.
sgw_addr
.
buffer
,
buf
,
20
*
sizeof
(
uint8_t
));
FILE
*
fd
;
fd
=
fopen
(
"../../../executables/uecap.raw"
,
"r"
);
if
(
fd
!=
NULL
)
{
OCTET_STRING_t
CG_Config_Info
;
CG_Config_Info
.
size
=
4096
;
CG_Config_Info
.
buf
=
(
uint8_t
*
)
calloc
(
4096
,
sizeof
(
uint8_t
));
int
msg_len
=
fread
(
CG_Config_Info
.
buf
,
1
,
CG_Config_Info
.
size
,
fd
);
CG_Config_Info
.
size
=
msg_len
;
/*char buffer[4096];
int msg_len=fread(buffer,1,4096,fd);*/
LOG_I
(
RRC
,
"Read in %d bytes for uecap
\n
"
,
msg_len
);
long
qCI
=
0
;
X2AP_Pre_emptionCapability_t
pre_emptionCapability
;
X2AP_Pre_emptionVulnerability_t
pre_emptionVulnerability
;
priority_level_t
priority_level
;
memcpy
(
SgNBSecurityKey
,
x2ap_ENDC_sgnb_addition_req
->
kgnb
,
sizeof
(
x2ap_ENDC_sgnb_addition_req
->
kgnb
));
/*OCTET_STRING_t CG_Config_Info;
CG_Config_Info.size = 4096;
CG_Config_Info.buf = (uint8_t *)calloc(4096, sizeof(uint8_t));*/
...
...
@@ -1618,7 +1598,11 @@ int x2ap_eNB_generate_ENDC_x2_SgNB_addition_request(
e_RABS_ToBeAdded_SgNBAddReq_Item
->
en_DC_ResourceConfiguration
.
mCGresources
=
mCGresources
;
e_RABS_ToBeAdded_SgNBAddReq_Item
->
en_DC_ResourceConfiguration
.
sCGresources
=
sCGresources
;
if
(
pDCPatSgNB
==
X2AP_EN_DC_ResourceConfiguration__pDCPatSgNB_present
){
e_RABS_ToBeAdded_SgNBAddReq_Item
->
resource_configuration
.
present
=
X2AP_E_RABs_ToBeAdded_SgNBAddReq_Item__resource_configuration_PR_sgNBPDCPpresent
;
e_RABS_ToBeAdded_SgNBAddReq_Item
->
resource_configuration
.
present
=
X2AP_E_RABs_ToBeAdded_SgNBAddReq_Item__resource_configuration_PR_sgNBPDCPpresent
;
qCI
=
x2ap_ENDC_sgnb_addition_req
->
e_rab_param
[
i
].
qos
.
qci
;
priority_level
=
x2ap_ENDC_sgnb_addition_req
->
e_rab_param
[
i
].
qos
.
allocation_retention_priority
.
priority_level
;
pre_emptionCapability
=
x2ap_ENDC_sgnb_addition_req
->
e_rab_param
[
i
].
qos
.
allocation_retention_priority
.
pre_emp_capability
;
pre_emptionVulnerability
=
x2ap_ENDC_sgnb_addition_req
->
e_rab_param
[
i
].
qos
.
allocation_retention_priority
.
pre_emp_vulnerability
;
e_RABS_ToBeAdded_SgNBAddReq_Item
->
resource_configuration
.
choice
.
sgNBPDCPpresent
.
full_E_RAB_Level_QoS_Parameters
.
qCI
=
qCI
;
e_RABS_ToBeAdded_SgNBAddReq_Item
->
resource_configuration
.
choice
.
sgNBPDCPpresent
.
full_E_RAB_Level_QoS_Parameters
.
allocationAndRetentionPriority
.
pre_emptionCapability
=
pre_emptionCapability
;
...
...
@@ -1646,25 +1630,24 @@ int x2ap_eNB_generate_ENDC_x2_SgNB_addition_request(
ie
->
id
=
X2AP_ProtocolIE_ID_id_MeNBtoSgNBContainer
;
ie
->
criticality
=
X2AP_Criticality_reject
;
ie
->
value
.
present
=
X2AP_SgNBAdditionRequest_IEs__value_PR_MeNBtoSgNBContainer
;
ie
->
value
.
choice
.
MeNBtoSgNBContainer
.
buf
=
(
uint8_t
*
)
calloc
(
CG_Config_Info
.
size
,
sizeof
(
uint8_t
));
memcpy
(
ie
->
value
.
choice
.
MeNBtoSgNBContainer
.
buf
,
CG_Config_Info
.
buf
,
CG_Config_Info
.
size
);
ie
->
value
.
choice
.
MeNBtoSgNBContainer
.
size
=
CG_Config_Info
.
size
;
//4096;
if
(
NULL
==
(
ie
->
value
.
choice
.
MeNBtoSgNBContainer
.
buf
=
(
uint8_t
*
)
calloc
(
x2ap_ENDC_sgnb_addition_req
->
rrc_buffer_size
,
sizeof
(
uint8_t
))))
{
X2AP_ERROR
(
"Memory ALLocation failed
\n
"
);
exit
(
1
);
}
memcpy
(
ie
->
value
.
choice
.
MeNBtoSgNBContainer
.
buf
,
x2ap_ENDC_sgnb_addition_req
->
rrc_buffer
,
x2ap_ENDC_sgnb_addition_req
->
rrc_buffer_size
);
ie
->
value
.
choice
.
MeNBtoSgNBContainer
.
size
=
x2ap_ENDC_sgnb_addition_req
->
rrc_buffer_size
;
ASN_SEQUENCE_ADD
(
&
out
->
protocolIEs
.
list
,
ie
);
if
(
x2ap_eNB_encode_pdu
(
&
pdu
,
&
buffer
,
&
len
)
<
0
)
{
X2AP_ERROR
(
"Failed to encode ENDC X2 SgNB_addition request message
\n
"
);
return
-
1
;
}
free
(
ie
->
value
.
choice
.
MeNBtoSgNBContainer
.
buf
);
MSC_LOG_TX_MESSAGE
(
MSC_X2AP_SRC_ENB
,
MSC_X2AP_TARGET_ENB
,
NULL
,
0
,
"0 X2Setup/initiatingMessage assoc_id %u"
,
x2ap_eNB_data_p
->
assoc_id
);
x2ap_eNB_itti_send_sctp_data_req
(
instance_p
->
instance
,
x2ap_eNB_data_p
->
assoc_id
,
buffer
,
len
,
0
);
fclose
(
fd
);
}
else
{
LOG_I
(
RRC
,
"uecap.raw file could not be opened...
\n
"
);
return
-
1
;
}
return
ret
;
...
...
@@ -1684,26 +1667,14 @@ int x2ap_gNB_generate_ENDC_x2_SgNB_addition_request_ACK( x2ap_eNB_instance_t *in
uint8_t
*
buffer
;
uint32_t
len
;
int
ret
=
0
;
int
MeNB_UE_X2AP_id
=
ue_id
;
int
SgNB_UE_X2AP_id
=
0
;
// Currently hardcoded (dummy) values filling the fields of SgNB_addition_request message. To be substituted
// with values coming from RRC.
//uint16_t nRencryptionAlgorithms = 0;
//uint16_t nRintegrityProtectionAlgorithms = 0;
//uint8_t SgNBSecurityKey[32] = { 0 };
//int uEaggregateMaximumBitRateDownlink = 100000000;
//int uEaggregateMaximumBitRateUplink = 100000000;
int
e_rabs_admitted_tobeadded
=
1
;
int
MeNB_UE_X2AP_id
=
x2ap_sgnb_addition_req_ACK
->
MeNB_ue_x2_id
;
int
SgNB_UE_X2AP_id
=
ue_id
;
int
e_rabs_admitted_tobeadded
=
x2ap_sgnb_addition_req_ACK
->
nb_e_rabs_admitted_tobeadded
;
long
int
pDCPatSgNB
=
X2AP_EN_DC_ResourceConfiguration__pDCPatSgNB_present
;
long
int
mCGresources
=
X2AP_EN_DC_ResourceConfiguration__mCGresources_not_present
;
long
int
sCGresources
=
X2AP_EN_DC_ResourceConfiguration__sCGresources_not_present
;
e_rab_setup_t
e_SCG_rabs_tobeadded
;
e_SCG_rabs_tobeadded
.
gtp_teid
=
0
;
e_SCG_rabs_tobeadded
.
eNB_addr
.
length
=
24
;
uint8_t
buf
[
20
]
=
{
0
};
memcpy
(
e_SCG_rabs_tobeadded
.
eNB_addr
.
buffer
,
buf
,
20
*
sizeof
(
uint8_t
));
DevAssert
(
instance_p
!=
NULL
);
DevAssert
(
x2ap_eNB_data_p
!=
NULL
);
...
...
This diff is collapsed.
Click to expand it.
openair2/X2AP/x2ap_eNB_handler.c
View file @
d988eb82
...
...
@@ -1652,7 +1652,6 @@ int x2ap_gNB_handle_ENDC_sGNB_addition_request (instance_t instance,
x2ap_eNB_instance_t
*
instance_p
;
x2ap_eNB_data_t
*
x2ap_eNB_data
;
MessageDef
*
msg
;
int
ue_id
;
DevAssert
(
pdu
!=
NULL
);
x2SgNBAdditionRequest
=
&
pdu
->
choice
.
initiatingMessage
.
value
.
choice
.
SgNBAdditionRequest
;
...
...
@@ -1683,20 +1682,9 @@ int x2ap_gNB_handle_ENDC_sGNB_addition_request (instance_t instance,
X2AP_ERROR
(
"%s %d: ie is a NULL pointer
\n
"
,
__FILE__
,
__LINE__
);
return
-
1
;
}
// allocate a new X2AP UE ID
ue_id
=
x2ap_allocate_new_id
(
&
instance_p
->
id_manager
);
if
(
ue_id
==
-
1
)
{
X2AP_ERROR
(
"could not allocate a new X2AP UE ID
\n
"
);
// TODO: cancel handover: send HO preparation failure to source eNB
exit
(
1
);
}
// rnti is unknown yet, must not be set to -1, 0 is fine
x2ap_set_ids
(
&
instance_p
->
id_manager
,
ue_id
,
0
,
ie
->
value
.
choice
.
UE_X2AP_ID
,
ue_id
);
x2ap_id_set_state
(
&
instance_p
->
id_manager
,
ue_id
,
X2ID_STATE_TARGET
);
X2AP_ENDC_SGNB_ADDITION_REQ
(
msg
).
ue_x2_id
=
ue_id
;
/* ue_x2_id = MeNB X2AP Id */
X2AP_ENDC_SGNB_ADDITION_REQ
(
msg
).
ue_x2_id
=
ie
->
value
.
choice
.
UE_X2AP_ID
;
X2AP_ENDC_SGNB_ADDITION_REQ
(
msg
).
target_assoc_id
=
assoc_id
;
/* X2AP_ProtocolIE_ID_id_NRUESecurityCapabilities */
...
...
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