Dual connectivity: Basic implementation of x2ap_eNB_handle_senb_addition_request and x2ap_eNB_generate_senb_addition_request_ack
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -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_ */
|
||||
|
||||
Reference in New Issue
Block a user