- Some new messages for S1AP
git-svn-id: http://svn.eurecom.fr/openair4G/trunk@4376 818b1a75-f10b-46b9-bf7c-635c3b92a50f
This commit is contained in:
@@ -1,4 +1,12 @@
|
|||||||
MESSAGE_DEF(S1AP_REGISTER_ENB , MESSAGE_PRIORITY_MED, s1ap_register_eNB_t , s1ap_register_eNB )
|
/* eNB application layer -> S1AP messages */
|
||||||
MESSAGE_DEF(S1AP_NAS_FIRST_REQ, MESSAGE_PRIORITY_MED, s1ap_nas_first_req_t, s1ap_nas_first_req)
|
MESSAGE_DEF(S1AP_REGISTER_ENB , MESSAGE_PRIORITY_MED, s1ap_register_eNB_t , s1ap_register_eNB )
|
||||||
MESSAGE_DEF(S1AP_UPLINK_NAS , MESSAGE_PRIORITY_MED, s1ap_uplink_nas_t , s1ap_uplink_nas )
|
|
||||||
MESSAGE_DEF(S1AP_DOWNLINK_NAS , MESSAGE_PRIORITY_MED, s1ap_downlink_nas_t , s1ap_downlink_nas )
|
/* RRC -> S1AP messages */
|
||||||
|
MESSAGE_DEF(S1AP_NAS_FIRST_REQ , MESSAGE_PRIORITY_MED, s1ap_nas_first_req_t , s1ap_nas_first_req)
|
||||||
|
MESSAGE_DEF(S1AP_UPLINK_NAS , MESSAGE_PRIORITY_MED, s1ap_uplink_nas_t , s1ap_uplink_nas )
|
||||||
|
MESSAGE_DEF(S1AP_UE_CAPABILITIES_IND , MESSAGE_PRIORITY_MED, s1ap_ue_cap_info_ind_t , s1ap_ue_cap_info_ind)
|
||||||
|
MESSAGE_DEF(S1AP_INITIAL_CONTEXT_SETUP_RESP, MESSAGE_PRIORITY_MED, s1ap_initial_context_setup_resp_t, s1ap_initial_context_setup_resp)
|
||||||
|
|
||||||
|
/* S1AP -> RRC messages */
|
||||||
|
MESSAGE_DEF(S1AP_DOWNLINK_NAS , MESSAGE_PRIORITY_MED, s1ap_downlink_nas_t , s1ap_downlink_nas )
|
||||||
|
MESSAGE_DEF(S1AP_INITIAL_CONTEXT_SETUP_REQ , MESSAGE_PRIORITY_MED, s1ap_initial_context_setup_req_t , s1ap_initial_context_setup_req )
|
||||||
@@ -20,6 +20,16 @@ typedef struct {
|
|||||||
char ipv6_address[40];
|
char ipv6_address[40];
|
||||||
} net_ip_address_t;
|
} net_ip_address_t;
|
||||||
|
|
||||||
|
/* Maximum number of e-rabs to be setup/deleted in a single message.
|
||||||
|
* Even if only one bearer will be modified by message.
|
||||||
|
*/
|
||||||
|
#define S1AP_MAX_E_RAB 11
|
||||||
|
|
||||||
|
/* Length of the transport layer address string
|
||||||
|
* 160 bits / 8 bits by char.
|
||||||
|
*/
|
||||||
|
#define S1AP_TRANSPORT_LAYER_ADDRESS_SIZE (160 / 8)
|
||||||
|
|
||||||
#define S1AP_MAX_NB_MME_IP_ADDRESS 10
|
#define S1AP_MAX_NB_MME_IP_ADDRESS 10
|
||||||
|
|
||||||
/* Provides the establishment cause for the RRC connection request as provided
|
/* Provides the establishment cause for the RRC connection request as provided
|
||||||
@@ -66,9 +76,52 @@ typedef struct {
|
|||||||
} nas_pdu_t, ue_radio_cap_t;
|
} nas_pdu_t, ue_radio_cap_t;
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
/* For virtual mode, mod_id of the eNB as defined in the rest of the L1/L2 stack */
|
/* Length of the transport layer address buffer. S1AP layer received a
|
||||||
uint8_t mod_id;
|
* bit string<1..160> containing one of the following addresses: ipv4,
|
||||||
|
* ipv6, or ipv4 and ipv6. The layer doesn't interpret the buffer but
|
||||||
|
* silently forward it to S1-U.
|
||||||
|
*/
|
||||||
|
uint8_t length;
|
||||||
|
uint8_t buffer[20];
|
||||||
|
} transport_layer_addr_t;
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
uint8_t qci;
|
||||||
|
|
||||||
|
} e_rab_level_qos_parameter_t;
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
/* Unique e_rab_id for the UE. */
|
||||||
|
uint8_t e_rab_id;
|
||||||
|
/* Quality of service for this e_rab */
|
||||||
|
e_rab_level_qos_parameter_t qos;
|
||||||
|
/* The NAS PDU should be forwarded by the RRC layer to the NAS layer */
|
||||||
|
nas_pdu_t nas_pdu;
|
||||||
|
/* The transport layer address for the IP packets */
|
||||||
|
transport_layer_addr_t sgw_addr;
|
||||||
|
/* S-GW Tunnel endpoint identifier */
|
||||||
|
uint32_t gtp_teid;
|
||||||
|
} e_rab_t;
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
/* Unique e_rab_id for the UE. */
|
||||||
|
uint8_t e_rab_id;
|
||||||
|
|
||||||
|
/* The transport layer address for the IP packets */
|
||||||
|
transport_layer_addr_t eNB_addr;
|
||||||
|
|
||||||
|
/* S-GW Tunnel endpoint identifier */
|
||||||
|
uint32_t gtp_teid;
|
||||||
|
} e_rab_setup_t;
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
/* Unique e_rab_id for the UE. */
|
||||||
|
uint8_t e_rab_id;
|
||||||
|
/* Cause of the failure */
|
||||||
|
// cause_t cause;
|
||||||
|
} e_rab_failed_t;
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
/* Unique eNB_id to identify the eNB within EPC.
|
/* Unique eNB_id to identify the eNB within EPC.
|
||||||
* For macro eNB ids this field should be 20 bits long.
|
* For macro eNB ids this field should be 20 bits long.
|
||||||
* For home eNB ids this field should be 28 bits long.
|
* For home eNB ids this field should be 28 bits long.
|
||||||
@@ -110,9 +163,6 @@ typedef struct {
|
|||||||
* will be the unique identifier used between RRC and S1AP.
|
* will be the unique identifier used between RRC and S1AP.
|
||||||
*/
|
*/
|
||||||
typedef struct {
|
typedef struct {
|
||||||
/* For virtual mode, mod_id of the eNB as defined in the rest of the L1/L2 stack */
|
|
||||||
uint8_t mod_id;
|
|
||||||
|
|
||||||
/* RNTI of the mobile */
|
/* RNTI of the mobile */
|
||||||
uint16_t rnti;
|
uint16_t rnti;
|
||||||
|
|
||||||
@@ -129,9 +179,6 @@ typedef struct {
|
|||||||
} s1ap_nas_first_req_t;
|
} s1ap_nas_first_req_t;
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
/* For virtual mode, mod_id of the eNB as defined in the rest of the L1/L2 stack */
|
|
||||||
uint8_t mod_id;
|
|
||||||
|
|
||||||
/* Unique UE identifier within an eNB */
|
/* Unique UE identifier within an eNB */
|
||||||
unsigned eNB_ue_s1ap_id:24;
|
unsigned eNB_ue_s1ap_id:24;
|
||||||
|
|
||||||
@@ -141,4 +188,32 @@ typedef struct {
|
|||||||
|
|
||||||
typedef s1ap_uplink_nas_t s1ap_downlink_nas_t;
|
typedef s1ap_uplink_nas_t s1ap_downlink_nas_t;
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
unsigned eNB_ue_s1ap_id:24;
|
||||||
|
|
||||||
|
/* Number of e_rab to be setup in the list */
|
||||||
|
uint8_t nb_of_e_rabs;
|
||||||
|
/* list of e_rab to be setup by RRC layers */
|
||||||
|
e_rab_t e_rab_param[S1AP_MAX_E_RAB];
|
||||||
|
} s1ap_initial_context_setup_req_t;
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
unsigned eNB_ue_s1ap_id:24;
|
||||||
|
|
||||||
|
/* Number of e_rab setup-ed in the list */
|
||||||
|
uint8_t nb_of_e_rabs;
|
||||||
|
/* list of e_rab setup-ed by RRC layers */
|
||||||
|
e_rab_setup_t e_rabs[S1AP_MAX_E_RAB];
|
||||||
|
|
||||||
|
/* Number of e_rab failed to be setup in list */
|
||||||
|
uint8_t nb_of_e_rabs_failed;
|
||||||
|
/* list of e_rabs that failed to be setup */
|
||||||
|
e_rab_failed_t e_rabs_failed[S1AP_MAX_E_RAB];
|
||||||
|
} s1ap_initial_context_setup_resp_t;
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
unsigned eNB_ue_s1ap_id:24;
|
||||||
|
ue_radio_cap_t ue_radio_cap;
|
||||||
|
} s1ap_ue_cap_info_ind_t;
|
||||||
|
|
||||||
#endif /* S1AP_MESSAGES_TYPES_H_ */
|
#endif /* S1AP_MESSAGES_TYPES_H_ */
|
||||||
|
|||||||
Reference in New Issue
Block a user