Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
O
OpenXG UE
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
Michael Black
OpenXG UE
Commits
4ad172c1
Commit
4ad172c1
authored
Aug 01, 2019
by
Cedric Roux
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/dual-connectivity' into develop-nr-merge
parents
ed665dee
695d8864
Changes
12
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
1204 additions
and
20 deletions
+1204
-20
cmake_targets/CMakeLists.txt
cmake_targets/CMakeLists.txt
+0
-1
openair2/COMMON/x2ap_messages_def.h
openair2/COMMON/x2ap_messages_def.h
+3
-0
openair2/COMMON/x2ap_messages_types.h
openair2/COMMON/x2ap_messages_types.h
+77
-10
openair2/X2AP/MESSAGES/ASN1/R15/x2ap-15.1.0.asn1
openair2/X2AP/MESSAGES/ASN1/R15/x2ap-15.1.0.asn1
+2
-2
openair2/X2AP/x2ap_eNB.c
openair2/X2AP/x2ap_eNB.c
+2
-1
openair2/X2AP/x2ap_eNB_decoder.c
openair2/X2AP/x2ap_eNB_decoder.c
+10
-2
openair2/X2AP/x2ap_eNB_defs.h
openair2/X2AP/x2ap_eNB_defs.h
+6
-0
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
+520
-0
openair2/X2AP/x2ap_eNB_generate_messages.h
openair2/X2AP/x2ap_eNB_generate_messages.h
+10
-0
openair2/X2AP/x2ap_eNB_handler.c
openair2/X2AP/x2ap_eNB_handler.c
+552
-2
openair3/UTILS/conversions.h
openair3/UTILS/conversions.h
+20
-0
No files found.
cmake_targets/CMakeLists.txt
View file @
4ad172c1
...
...
@@ -469,7 +469,6 @@ endif(${X2AP_RELEASE} STREQUAL "R8")
add_definitions
(
-DX2AP_VERSION=
${
X2AP_VERSION
}
)
set
(
X2AP_ASN_DIR
${
X2AP_DIR
}
/MESSAGES/ASN1/
${
X2AP_RELEASE
}
)
set
(
X2AP_C_DIR
${
asn1_generated_dir
}
/X2AP_
${
X2AP_RELEASE
}
)
# Warning: if you modify ASN.1 source file to generate new C files, cmake should be re-run instead of make
execute_process
(
COMMAND
${
OPENAIR_CMAKE
}
/tools/make_asn1c_includes.sh
"
${
X2AP_C_DIR
}
"
"
${
X2AP_ASN_DIR
}
/
${
X2AP_ASN_FILES
}
"
"X2AP_"
-fno-include-deps
RESULT_VARIABLE ret
)
...
...
openair2/COMMON/x2ap_messages_def.h
View file @
4ad172c1
...
...
@@ -47,3 +47,6 @@ MESSAGE_DEF(X2AP_HANDOVER_CANCEL , MESSAGE_PRIORITY_MED, x2ap_han
/* handover messages X2AP <-> S1AP */
MESSAGE_DEF
(
X2AP_UE_CONTEXT_RELEASE
,
MESSAGE_PRIORITY_MED
,
x2ap_ue_context_release_t
,
x2ap_ue_context_release
)
/*Senb bearer addition messages X2AP <-> RRC */
MESSAGE_DEF
(
X2AP_SENB_ADDITION_REQ
,
MESSAGE_PRIORITY_MED
,
x2ap_senb_addition_req_t
,
x2ap_senb_addition_req
)
openair2/COMMON/x2ap_messages_types.h
View file @
4ad172c1
...
...
@@ -28,16 +28,16 @@
//-------------------------------------------------------------------------------------------//
// Defines to access message fields.
#define X2AP_REGISTER_ENB_REQ(mSGpTR) (mSGpTR)->ittiMsg.x2ap_register_enb_req
#define X2AP_SETUP_REQ(mSGpTR) (mSGpTR)->ittiMsg.x2ap_setup_req
#define X2AP_SETUP_RESP(mSGpTR) (mSGpTR)->ittiMsg.x2ap_setup_resp
#define X2AP_HANDOVER_REQ(mSGpTR) (mSGpTR)->ittiMsg.x2ap_handover_req
#define X2AP_HANDOVER_REQ_ACK(mSGpTR) (mSGpTR)->ittiMsg.x2ap_handover_req_ack
#define X2AP_REGISTER_ENB_CNF(mSGpTR) (mSGpTR)->ittiMsg.x2ap_register_enb_cnf
#define X2AP_DEREGISTERED_ENB_IND(mSGpTR) (mSGpTR)->ittiMsg.x2ap_deregistered_enb_ind
#define X2AP_UE_CONTEXT_RELEASE(mSGpTR) (mSGpTR)->ittiMsg.x2ap_ue_context_release
#define X2AP_HANDOVER_CANCEL(mSGpTR) (mSGpTR)->ittiMsg.x2ap_handover_cancel
#define X2AP_REGISTER_ENB_REQ(mSGpTR)
(mSGpTR)->ittiMsg.x2ap_register_enb_req
#define X2AP_SETUP_REQ(mSGpTR)
(mSGpTR)->ittiMsg.x2ap_setup_req
#define X2AP_SETUP_RESP(mSGpTR)
(mSGpTR)->ittiMsg.x2ap_setup_resp
#define X2AP_HANDOVER_REQ(mSGpTR)
(mSGpTR)->ittiMsg.x2ap_handover_req
#define X2AP_HANDOVER_REQ_ACK(mSGpTR)
(mSGpTR)->ittiMsg.x2ap_handover_req_ack
#define X2AP_REGISTER_ENB_CNF(mSGpTR)
(mSGpTR)->ittiMsg.x2ap_register_enb_cnf
#define X2AP_DEREGISTERED_ENB_IND(mSGpTR)
(mSGpTR)->ittiMsg.x2ap_deregistered_enb_ind
#define X2AP_UE_CONTEXT_RELEASE(mSGpTR)
(mSGpTR)->ittiMsg.x2ap_ue_context_release
#define X2AP_HANDOVER_CANCEL(mSGpTR)
(mSGpTR)->ittiMsg.x2ap_handover_cancel
#define X2AP_SENB_ADDITION_REQ(mSGpTR) (mSGpTR)->ittiMsg.x2ap_senb_addition_req
#define X2AP_MAX_NB_ENB_IP_ADDRESS 2
...
...
@@ -236,4 +236,71 @@ typedef struct x2ap_handover_req_ack_s {
uint32_t
mme_ue_s1ap_id
;
}
x2ap_handover_req_ack_t
;
typedef
struct
x2ap_senb_addition_req_s
{
/* MeNB UE X2AP ID*/
int
x2_MeNB_UE_id
;
/*SCG Bearer option*/
security_capabilities_t
UE_security_capabilities
;
/*SCG Bearer option*/
uint8_t
SeNB_security_key
[
256
];
/*SeNB UE aggregate maximum bitrate */
ambr_t
SeNB_ue_ambr
;
uint8_t
total_nb_e_rabs_tobeadded
;
uint8_t
nb_sCG_e_rabs_tobeadded
;
uint8_t
nb_split_e_rabs_tobeadded
;
/*list of total e_rabs (SCG or split) to be added*/
//e_rab_setup_t total_e_rabs_tobeadded[S1AP_MAX_E_RAB];
/* list of SCG e_rab to be added by RRC layers */
e_rab_setup_t
e_sCG_rabs_tobeadded
[
S1AP_MAX_E_RAB
];
/* list of split e_rab to be added by RRC layers */
e_rab_setup_t
e_split_rabs_tobeadded
[
S1AP_MAX_E_RAB
];
/* list of SCG e_rab to be added by RRC layers */
e_rab_t
e_sCG_rab_param
[
S1AP_MAX_E_RAB
];
/* list of split e_rab to be added by RRC layers */
e_rab_t
e_split_rab_param
[
S1AP_MAX_E_RAB
];
/*Used for the MeNB to SeNB Container to include the SCG-ConfigInfo as per 36.331*/
uint8_t
rrc_buffer
[
1024
/* arbitrary, big enough */
];
int
rrc_buffer_size
;
}
x2ap_senb_addition_req_t
;
//Panos: Have to see what should be the additional/different elements comparing to handover req ack
typedef
struct
x2ap_senb_addition_req_ack_s
{
int
MeNB_UE_X2_id
;
int
SeNB_UE_X2_id
;
uint8_t
nb_sCG_e_rabs_tobeadded
;
uint8_t
nb_split_e_rabs_tobeadded
;
/* list of SCG e_rab to be added by RRC layers */
e_rab_setup_t
e_sCG_rabs_tobeadded
[
S1AP_MAX_E_RAB
];
/* list of split e_rab to be added by RRC layers */
e_rab_setup_t
e_split_rabs_tobeadded
[
S1AP_MAX_E_RAB
];
uint8_t
rrc_buffer
[
1024
/* arbitrary, big enough */
];
int
rrc_buffer_size
;
}
x2ap_senb_addition_req_ack_t
;
#endif
/* X2AP_MESSAGES_TYPES_H_ */
openair2/X2AP/MESSAGES/ASN1/R15/x2ap-15.1.0.asn1
View file @
4ad172c1
...
...
@@ -4010,7 +4010,7 @@ NRNeighbour-Information-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
...
}
CellAssistanceInformation
::= CHOICE {
CellAssistanceInformation
::= CHOICE {
limited-list Limited-list,
full-list ENUMERATED {allServedNRcells, ...},
...
...
...
@@ -6094,7 +6094,7 @@ SgNBResourceCoordinationInformationExtIEs X2AP-PROTOCOL-EXTENSION ::= {
...
}
SgNB-UE-X2AP-ID
::= INTEGER (0..4294967295)
SgNB-UE-X2AP-ID
::= INTEGER (0..4294967295)
SIPTOBearerDeactivationIndication ::= ENUMERATED {
true,
...
...
openair2/X2AP/x2ap_eNB.c
View file @
4ad172c1
...
...
@@ -151,7 +151,8 @@ void x2ap_eNB_handle_sctp_association_resp(instance_t instance, sctp_new_associa
printf
(
"x2ap_eNB_handle_sctp_association_resp at 4
\n
"
);
dump_trees
();
/* Prepare new x2 Setup Request */
x2ap_eNB_generate_x2_setup_request
(
instance_p
,
x2ap_enb_data_p
);
x2ap_eNB_generate_ENDC_x2_setup_request
(
instance_p
,
x2ap_enb_data_p
);
//x2ap_eNB_generate_x2_setup_request(instance_p, x2ap_enb_data_p);
}
static
...
...
openair2/X2AP/x2ap_eNB_decoder.c
View file @
4ad172c1
...
...
@@ -59,6 +59,10 @@ static int x2ap_eNB_decode_initiating_message(X2AP_X2AP_PDU_t *pdu)
X2AP_INFO
(
"x2ap_eNB_decode_initiating_message!
\n
"
);
break
;
case
X2AP_ProcedureCode_id_endcX2Setup
:
X2AP_INFO
(
"X2AP_ProcedureCode_id_endcX2Setup message!
\n
"
);
break
;
default:
X2AP_ERROR
(
"Unknown procedure ID (%d) for initiating message
\n
"
,
(
int
)
pdu
->
choice
.
initiatingMessage
.
procedureCode
);
...
...
@@ -85,6 +89,10 @@ static int x2ap_eNB_decode_successful_outcome(X2AP_X2AP_PDU_t *pdu)
X2AP_INFO
(
"x2ap_eNB_decode_successfuloutcome_message!
\n
"
);
break
;
case
X2AP_ProcedureCode_id_endcX2Setup
:
X2AP_INFO
(
"x2ap_eNB_decode_successfuloutcome_message!
\n
"
);
break
;
default:
X2AP_ERROR
(
"Unknown procedure ID (%d) for successfull outcome message
\n
"
,
(
int
)
pdu
->
choice
.
successfulOutcome
.
procedureCode
);
...
...
@@ -126,9 +134,9 @@ int x2ap_eNB_decode_pdu(X2AP_X2AP_PDU_t *pdu, const uint8_t *const buffer, uint3
length
,
0
,
0
);
if
(
asn1_xer_print
)
{
//
if (asn1_xer_print) {
xer_fprint
(
stdout
,
&
asn_DEF_X2AP_X2AP_PDU
,
pdu
);
}
//
}
if
(
dec_ret
.
code
!=
RC_OK
)
{
X2AP_ERROR
(
"Failed to decode pdu
\n
"
);
...
...
openair2/X2AP/x2ap_eNB_defs.h
View file @
4ad172c1
...
...
@@ -175,6 +175,12 @@ typedef struct x2ap_eNB_instance_s {
uint32_t
fdd_earfcn_UL
[
MAX_NUM_CCs
];
uint32_t
subframeAssignment
[
MAX_NUM_CCs
];
uint32_t
specialSubframe
[
MAX_NUM_CCs
];
//#ifdef Rel15
uint32_t
tdd_nRARFCN
[
MAX_NUM_CCs
];
int16_t
nr_SCS
[
MAX_NUM_CCs
];
//#endif
int
num_cc
;
net_ip_address_t
target_enb_x2_ip_address
[
X2AP_MAX_NB_ENB_IP_ADDRESS
];
...
...
openair2/X2AP/x2ap_eNB_encoder.c
View file @
4ad172c1
...
...
@@ -44,9 +44,9 @@ int x2ap_eNB_encode_pdu(X2AP_X2AP_PDU_t *pdu, uint8_t **buffer, uint32_t *len)
DevAssert
(
buffer
!=
NULL
);
DevAssert
(
len
!=
NULL
);
if
(
asn1_xer_print
)
{
//
if (asn1_xer_print) {
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
);
...
...
openair2/X2AP/x2ap_eNB_generate_messages.c
View file @
4ad172c1
This diff is collapsed.
Click to expand it.
openair2/X2AP/x2ap_eNB_generate_messages.h
View file @
4ad172c1
...
...
@@ -60,4 +60,14 @@ int x2ap_eNB_generate_x2_handover_cancel (x2ap_eNB_instance_t *instance_p, x2ap_
int
x2_ue_id
,
x2ap_handover_cancel_cause_t
cause
);
int
x2ap_eNB_generate_senb_addition_request
(
x2ap_eNB_instance_t
*
instance_p
,
x2ap_eNB_data_t
*
x2ap_eNB_data_p
/* TODO: pass needed parameters */
);
int
x2ap_eNB_generate_senb_addition_request_ack
(
x2ap_eNB_instance_t
*
instance_p
,
x2ap_eNB_data_t
*
x2ap_eNB_data_p
,
x2ap_senb_addition_req_ack_t
*
x2ap_addition_req_ack
);
int
x2ap_eNB_generate_ENDC_x2_setup_request
(
x2ap_eNB_instance_t
*
instance_p
,
x2ap_eNB_data_t
*
x2ap_eNB_data_p
);
int
x2ap_gNB_generate_ENDC_x2_setup_response
(
x2ap_eNB_instance_t
*
instance_p
,
x2ap_eNB_data_t
*
x2ap_eNB_data_p
);
#endif
/* X2AP_ENB_GENERATE_MESSAGES_H_ */
openair2/X2AP/x2ap_eNB_handler.c
View file @
4ad172c1
This diff is collapsed.
Click to expand it.
openair3/UTILS/conversions.h
View file @
4ad172c1
...
...
@@ -371,6 +371,26 @@ do { \
(bITsTRING)->bits_unused = 4; \
} while(0)
/*
#define INT16_TO_3_BYTE_BUFFER(x, buf) \
do { \
(buf)[0] = 0x00; \
(buf)[1] = (x) >> 8; \
(buf)[2] = (x); \
} while(0)
*/
#define NR_FIVEGS_TAC_ID_TO_BIT_STRING(x, aSN) \
do { \
(aSN)->buf = calloc(3, sizeof(uint8_t)); \
(aSN)->size = 3; \
(aSN)->buf[0] = 0x00; \
(aSN)->buf[1] = (x) >> 8; \
(aSN)->buf[2] = (x); \
} while(0)
/* TS 38.473 v15.2.1 section 9.3.1.55:
* MaskedIMEISV is BIT_STRING(64)
*/
...
...
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