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
canghaiwuhen
OpenXG-RAN
Commits
587f9f63
Commit
587f9f63
authored
Oct 25, 2019
by
matzakos
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
ENDC X2AP: Corrections on the generation of x2_sGNB_AdditionRequest message
parent
4e64a34a
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
30 additions
and
21 deletions
+30
-21
openair2/X2AP/x2ap_eNB_decoder.c
openair2/X2AP/x2ap_eNB_decoder.c
+5
-2
openair2/X2AP/x2ap_eNB_encoder.c
openair2/X2AP/x2ap_eNB_encoder.c
+2
-2
openair2/X2AP/x2ap_eNB_generate_messages.c
openair2/X2AP/x2ap_eNB_generate_messages.c
+21
-15
openair2/X2AP/x2ap_eNB_handler.c
openair2/X2AP/x2ap_eNB_handler.c
+2
-2
No files found.
openair2/X2AP/x2ap_eNB_decoder.c
View file @
587f9f63
...
@@ -60,8 +60,11 @@ static int x2ap_eNB_decode_initiating_message(X2AP_X2AP_PDU_t *pdu)
...
@@ -60,8 +60,11 @@ static int x2ap_eNB_decode_initiating_message(X2AP_X2AP_PDU_t *pdu)
break
;
break
;
case
X2AP_ProcedureCode_id_endcX2Setup
:
case
X2AP_ProcedureCode_id_endcX2Setup
:
X2AP_INFO
(
"X2AP_ProcedureCode_id_endcX2Setup message!
\n
"
);
X2AP_INFO
(
"X2AP_ProcedureCode_id_endcX2Setup message!
\n
"
);
break
;
break
;
case
X2AP_ProcedureCode_id_sgNBAdditionPreparation
:
X2AP_INFO
(
"X2AP_ProcedureCode_id_sgNBAdditionPreparation message!
\n
"
);
break
;
default:
default:
X2AP_ERROR
(
"Unknown procedure ID (%d) for initiating message
\n
"
,
X2AP_ERROR
(
"Unknown procedure ID (%d) for initiating message
\n
"
,
...
...
openair2/X2AP/x2ap_eNB_encoder.c
View file @
587f9f63
...
@@ -44,9 +44,9 @@ int x2ap_eNB_encode_pdu(X2AP_X2AP_PDU_t *pdu, uint8_t **buffer, uint32_t *len)
...
@@ -44,9 +44,9 @@ int x2ap_eNB_encode_pdu(X2AP_X2AP_PDU_t *pdu, uint8_t **buffer, uint32_t *len)
DevAssert
(
buffer
!=
NULL
);
DevAssert
(
buffer
!=
NULL
);
DevAssert
(
len
!=
NULL
);
DevAssert
(
len
!=
NULL
);
if
(
asn1_xer_print
)
{
//
if (asn1_xer_print) {
xer_fprint
(
stdout
,
&
asn_DEF_X2AP_X2AP_PDU
,
(
void
*
)
pdu
);
xer_fprint
(
stdout
,
&
asn_DEF_X2AP_X2AP_PDU
,
(
void
*
)
pdu
);
}
//
}
encoded
=
aper_encode_to_new_buffer
(
&
asn_DEF_X2AP_X2AP_PDU
,
0
,
pdu
,
(
void
**
)
buffer
);
encoded
=
aper_encode_to_new_buffer
(
&
asn_DEF_X2AP_X2AP_PDU
,
0
,
pdu
,
(
void
**
)
buffer
);
...
...
openair2/X2AP/x2ap_eNB_generate_messages.c
View file @
587f9f63
...
@@ -1513,17 +1513,15 @@ int x2ap_eNB_generate_ENDC_x2_SgNB_addition_request(
...
@@ -1513,17 +1513,15 @@ int x2ap_eNB_generate_ENDC_x2_SgNB_addition_request(
uint16_t
nRencryptionAlgorithms
=
0
;
uint16_t
nRencryptionAlgorithms
=
0
;
uint16_t
nRintegrityProtectionAlgorithms
=
0
;
uint16_t
nRintegrityProtectionAlgorithms
=
0
;
uint8_t
SgNBSecurityKey
[
32
]
=
{
0
};
uint8_t
SgNBSecurityKey
[
32
]
=
{
0
};
int
uEaggregateMaximumBitRateDownlink
=
100000000
;
int
uEaggregateMaximumBitRateUplink
=
100000000
;
int
uEaggregateMaximumBitRateDownlink
=
10
^
8
;
int
uEaggregateMaximumBitRateUplink
=
10
^
8
;
int
e_rabs_tobeadded
=
1
;
int
e_rabs_tobeadded
=
1
;
int
e_RAB_ID
=
1
;
int
e_RAB_ID
=
1
;
int
drb_ID
=
2
;
int
drb_ID
=
2
;
long
int
pDCPatSgNB
=
X2AP_EN_DC_ResourceConfiguration__pDCPatSgNB_present
;
long
int
pDCPatSgNB
=
X2AP_EN_DC_ResourceConfiguration__pDCPatSgNB_present
;
long
int
mCGresources
=
X2AP_EN_DC_ResourceConfiguration__mCGresources_present
;
long
int
mCGresources
=
X2AP_EN_DC_ResourceConfiguration__mCGresources_
not_
present
;
long
int
sCGresources
=
X2AP_EN_DC_ResourceConfiguration__sCGresources_present
;
long
int
sCGresources
=
X2AP_EN_DC_ResourceConfiguration__sCGresources_
not_
present
;
int
qCI
=
1
;
long
qCI
=
1
;
X2AP_Pre_emptionCapability_t
pre_emptionCapability
=
X2AP_Pre_emptionCapability_shall_not_trigger_pre_emption
;
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
;
X2AP_Pre_emptionVulnerability_t
pre_emptionVulnerability
=
X2AP_Pre_emptionVulnerability_not_pre_emptable
;
e_rab_setup_t
e_MCG_rabs_tobeadded
;
e_rab_setup_t
e_MCG_rabs_tobeadded
;
...
@@ -1531,11 +1529,9 @@ int x2ap_eNB_generate_ENDC_x2_SgNB_addition_request(
...
@@ -1531,11 +1529,9 @@ int x2ap_eNB_generate_ENDC_x2_SgNB_addition_request(
e_MCG_rabs_tobeadded
.
eNB_addr
.
length
=
24
;
e_MCG_rabs_tobeadded
.
eNB_addr
.
length
=
24
;
uint8_t
buf
[
20
]
=
{
0
};
uint8_t
buf
[
20
]
=
{
0
};
memcpy
(
e_MCG_rabs_tobeadded
.
eNB_addr
.
buffer
,
buf
,
20
*
sizeof
(
uint8_t
));
memcpy
(
e_MCG_rabs_tobeadded
.
eNB_addr
.
buffer
,
buf
,
20
*
sizeof
(
uint8_t
));
OCTET_STRING_t
CG_Config_Info
;
OCTET_STRING_t
CG_Config_Info
;
char
buf2
[
4096
]
=
{
0
};
memcpy
(
CG_Config_Info
.
buf
,
buf2
,
4096
);
CG_Config_Info
.
size
=
4096
;
CG_Config_Info
.
size
=
4096
;
CG_Config_Info
.
buf
=
(
uint8_t
*
)
calloc
(
4096
,
sizeof
(
uint8_t
));
DevAssert
(
instance_p
!=
NULL
);
DevAssert
(
instance_p
!=
NULL
);
...
@@ -1579,10 +1575,12 @@ int x2ap_eNB_generate_ENDC_x2_SgNB_addition_request(
...
@@ -1579,10 +1575,12 @@ int x2ap_eNB_generate_ENDC_x2_SgNB_addition_request(
ie
->
id
=
X2AP_ProtocolIE_ID_id_SgNBUEAggregateMaximumBitRate
;
ie
->
id
=
X2AP_ProtocolIE_ID_id_SgNBUEAggregateMaximumBitRate
;
ie
->
criticality
=
X2AP_Criticality_reject
;
ie
->
criticality
=
X2AP_Criticality_reject
;
ie
->
value
.
present
=
X2AP_SgNBAdditionRequest_IEs__value_PR_UEAggregateMaximumBitRate
;
ie
->
value
.
present
=
X2AP_SgNBAdditionRequest_IEs__value_PR_UEAggregateMaximumBitRate
;
INT32_TO_BUFFER
(
uEaggregateMaximumBitRateDownlink
,
&
ie
->
value
.
choice
.
UEAggregateMaximumBitRate
.
uEaggregateMaximumBitRateDownlink
.
buf
);
ie
->
value
.
choice
.
UEAggregateMaximumBitRate
.
uEaggregateMaximumBitRateDownlink
.
buf
=
(
uint8_t
*
)
calloc
(
4
,
sizeof
(
uint8_t
));
INT32_TO_BUFFER
(
uEaggregateMaximumBitRateDownlink
,
ie
->
value
.
choice
.
UEAggregateMaximumBitRate
.
uEaggregateMaximumBitRateDownlink
.
buf
);
ie
->
value
.
choice
.
UEAggregateMaximumBitRate
.
uEaggregateMaximumBitRateDownlink
.
size
=
4
;
ie
->
value
.
choice
.
UEAggregateMaximumBitRate
.
uEaggregateMaximumBitRateDownlink
.
size
=
4
;
INT32_TO_BUFFER
(
uEaggregateMaximumBitRateUplink
,
&
ie
->
value
.
choice
.
UEAggregateMaximumBitRate
.
uEaggregateMaximumBitRateUplink
.
buf
);
ie
->
value
.
choice
.
UEAggregateMaximumBitRate
.
uEaggregateMaximumBitRateUplink
.
buf
=
(
uint8_t
*
)
calloc
(
4
,
sizeof
(
uint8_t
));
INT32_TO_BUFFER
(
uEaggregateMaximumBitRateUplink
,
ie
->
value
.
choice
.
UEAggregateMaximumBitRate
.
uEaggregateMaximumBitRateUplink
.
buf
);
ie
->
value
.
choice
.
UEAggregateMaximumBitRate
.
uEaggregateMaximumBitRateUplink
.
size
=
4
;
ie
->
value
.
choice
.
UEAggregateMaximumBitRate
.
uEaggregateMaximumBitRateUplink
.
size
=
4
;
ASN_SEQUENCE_ADD
(
&
out
->
protocolIEs
.
list
,
ie
);
ASN_SEQUENCE_ADD
(
&
out
->
protocolIEs
.
list
,
ie
);
...
@@ -1595,9 +1593,9 @@ int x2ap_eNB_generate_ENDC_x2_SgNB_addition_request(
...
@@ -1595,9 +1593,9 @@ int x2ap_eNB_generate_ENDC_x2_SgNB_addition_request(
for
(
int
i
=
0
;
i
<
e_rabs_tobeadded
;
i
++
)
{
for
(
int
i
=
0
;
i
<
e_rabs_tobeadded
;
i
++
)
{
e_RABS_ToBeAdded_SgNBAddReq_ItemIEs
=
(
X2AP_E_RABs_ToBeAdded_SgNBAddReq_ItemIEs_t
*
)
calloc
(
1
,
sizeof
(
X2AP_E_RABs_ToBeAdded_SgNBAddReq_ItemIEs_t
));
e_RABS_ToBeAdded_SgNBAddReq_ItemIEs
=
(
X2AP_E_RABs_ToBeAdded_SgNBAddReq_ItemIEs_t
*
)
calloc
(
1
,
sizeof
(
X2AP_E_RABs_ToBeAdded_SgNBAddReq_ItemIEs_t
));
e_RABS_ToBeAdded_SgNBAddReq_ItemIEs
->
id
=
X2AP_ProtocolIE_ID_id_E_RABs_
Admitted_ToBeAdded
_Item
;
e_RABS_ToBeAdded_SgNBAddReq_ItemIEs
->
id
=
X2AP_ProtocolIE_ID_id_E_RABs_
ToBeAdded_SgNBAddReq
_Item
;
e_RABS_ToBeAdded_SgNBAddReq_ItemIEs
->
criticality
=
X2AP_Criticality_ignore
;
e_RABS_ToBeAdded_SgNBAddReq_ItemIEs
->
criticality
=
X2AP_Criticality_ignore
;
e_RABS_ToBeAdded_SgNBAddReq_ItemIEs
->
value
.
present
=
X2AP_E_RABs_
Admitted_ToBeAdded_ItemIEs__value_PR_E_RABs_Admitted_ToBeAdded
_Item
;
e_RABS_ToBeAdded_SgNBAddReq_ItemIEs
->
value
.
present
=
X2AP_E_RABs_
ToBeAdded_SgNBAddReq_ItemIEs__value_PR_E_RABs_ToBeAdded_SgNBAddReq
_Item
;
e_RABS_ToBeAdded_SgNBAddReq_Item
=
&
e_RABS_ToBeAdded_SgNBAddReq_ItemIEs
->
value
.
choice
.
E_RABs_ToBeAdded_SgNBAddReq_Item
;
e_RABS_ToBeAdded_SgNBAddReq_Item
=
&
e_RABS_ToBeAdded_SgNBAddReq_ItemIEs
->
value
.
choice
.
E_RABs_ToBeAdded_SgNBAddReq_Item
;
{
{
e_RABS_ToBeAdded_SgNBAddReq_Item
->
drb_ID
=
drb_ID
;
e_RABS_ToBeAdded_SgNBAddReq_Item
->
drb_ID
=
drb_ID
;
...
@@ -1606,6 +1604,8 @@ int x2ap_eNB_generate_ENDC_x2_SgNB_addition_request(
...
@@ -1606,6 +1604,8 @@ 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
.
mCGresources
=
mCGresources
;
e_RABS_ToBeAdded_SgNBAddReq_Item
->
en_DC_ResourceConfiguration
.
sCGresources
=
sCGresources
;
e_RABS_ToBeAdded_SgNBAddReq_Item
->
en_DC_ResourceConfiguration
.
sCGresources
=
sCGresources
;
if
(
pDCPatSgNB
==
X2AP_EN_DC_ResourceConfiguration__pDCPatSgNB_present
){
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
.
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
.
qCI
=
qCI
;
e_RABS_ToBeAdded_SgNBAddReq_Item
->
resource_configuration
.
choice
.
sgNBPDCPpresent
.
full_E_RAB_Level_QoS_Parameters
.
allocationAndRetentionPriority
.
pre_emptionCapability
=
pre_emptionCapability
;
e_RABS_ToBeAdded_SgNBAddReq_Item
->
resource_configuration
.
choice
.
sgNBPDCPpresent
.
full_E_RAB_Level_QoS_Parameters
.
allocationAndRetentionPriority
.
pre_emptionCapability
=
pre_emptionCapability
;
e_RABS_ToBeAdded_SgNBAddReq_Item
->
resource_configuration
.
choice
.
sgNBPDCPpresent
.
full_E_RAB_Level_QoS_Parameters
.
allocationAndRetentionPriority
.
pre_emptionVulnerability
=
pre_emptionVulnerability
;
e_RABS_ToBeAdded_SgNBAddReq_Item
->
resource_configuration
.
choice
.
sgNBPDCPpresent
.
full_E_RAB_Level_QoS_Parameters
.
allocationAndRetentionPriority
.
pre_emptionVulnerability
=
pre_emptionVulnerability
;
...
@@ -1625,13 +1625,19 @@ int x2ap_eNB_generate_ENDC_x2_SgNB_addition_request(
...
@@ -1625,13 +1625,19 @@ int x2ap_eNB_generate_ENDC_x2_SgNB_addition_request(
}
}
ASN_SEQUENCE_ADD
(
&
ie
->
value
.
choice
.
E_RABs_ToBeAdded_SgNBAddReqList
.
list
,
e_RABS_ToBeAdded_SgNBAddReq_ItemIEs
);
ASN_SEQUENCE_ADD
(
&
ie
->
value
.
choice
.
E_RABs_ToBeAdded_SgNBAddReqList
.
list
,
e_RABS_ToBeAdded_SgNBAddReq_ItemIEs
);
}
}
ASN_SEQUENCE_ADD
(
&
out
->
protocolIEs
.
list
,
ie
);
ie
=
(
X2AP_SgNBAdditionRequest_IEs_t
*
)
calloc
(
1
,
sizeof
(
X2AP_SgNBAdditionRequest_IEs_t
));
ie
=
(
X2AP_SgNBAdditionRequest_IEs_t
*
)
calloc
(
1
,
sizeof
(
X2AP_SgNBAdditionRequest_IEs_t
));
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
(
4096
,
sizeof
(
uint8_t
));
memcpy
(
ie
->
value
.
choice
.
MeNBtoSgNBContainer
.
buf
,
CG_Config_Info
.
buf
,
CG_Config_Info
.
size
);
memcpy
(
ie
->
value
.
choice
.
MeNBtoSgNBContainer
.
buf
,
CG_Config_Info
.
buf
,
CG_Config_Info
.
size
);
ie
->
value
.
choice
.
MeNBtoSgNBContainer
.
size
=
4096
;
ASN_SEQUENCE_ADD
(
&
out
->
protocolIEs
.
list
,
ie
);
ASN_SEQUENCE_ADD
(
&
out
->
protocolIEs
.
list
,
ie
);
if
(
x2ap_eNB_encode_pdu
(
&
pdu
,
&
buffer
,
&
len
)
<
0
)
{
if
(
x2ap_eNB_encode_pdu
(
&
pdu
,
&
buffer
,
&
len
)
<
0
)
{
X2AP_ERROR
(
"Failed to encode ENDC X2
setup respons
e
\n
"
);
X2AP_ERROR
(
"Failed to encode ENDC X2
SgNB_addition request messag
e
\n
"
);
return
-
1
;
return
-
1
;
}
}
...
...
openair2/X2AP/x2ap_eNB_handler.c
View file @
587f9f63
...
@@ -1470,9 +1470,9 @@ x2ap_eNB_handle_ENDC_x2_setup_request(instance_t instance,
...
@@ -1470,9 +1470,9 @@ x2ap_eNB_handle_ENDC_x2_setup_request(instance_t instance,
instance_p
=
x2ap_eNB_get_instance
(
instance
);
instance_p
=
x2ap_eNB_get_instance
(
instance
);
DevAssert
(
instance_p
!=
NULL
);
DevAssert
(
instance_p
!=
NULL
);
// Panos: Here we should be calling an ENDC specific setup response function
return
x2ap_eNB_generate_ENDC_x2_setup_response
(
instance_p
,
x2ap_eNB_data
);
return
x2ap_eNB_generate_ENDC_x2_setup_response
(
instance_p
,
x2ap_eNB_data
);
//return x2ap_eNB_generate_x2_setup_response(instance_p, x2ap_eNB_data);
//return x2ap_eNB_generate_ENDC_x2_SgNB_addition_request(instance_p, x2ap_eNB_data,0);
}
}
int
int
...
...
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