Add 802.21 in oaisim exe, work in progress.
git-svn-id: http://svn.eurecom.fr/openair4G/trunk@4658 818b1a75-f10b-46b9-bf7c-635c3b92a50f
This commit is contained in:
@@ -9,3 +9,5 @@
|
||||
#include "s1ap_messages_def.h"
|
||||
#include "sctp_messages_def.h"
|
||||
#include "x2ap_messages_def.h"
|
||||
#include "ral_messages_def.h"
|
||||
|
||||
|
||||
@@ -16,5 +16,6 @@
|
||||
#include "s1ap_messages_types.h"
|
||||
#include "sctp_messages_types.h"
|
||||
#include "x2ap_messages_types.h"
|
||||
#include "ral_messages_types.h"
|
||||
|
||||
#endif /* MESSAGES_TYPES_H_ */
|
||||
|
||||
Executable
+20
@@ -0,0 +1,20 @@
|
||||
MESSAGE_DEF(RRC_RAL_SYSTEM_CONFIGURATION_IND, MESSAGE_PRIORITY_MED, rrc_ral_system_configuration_ind_t, rrc_ral_system_configuration_ind)
|
||||
MESSAGE_DEF(RRC_RAL_SYSTEM_INFORMATION_IND, MESSAGE_PRIORITY_MED, rrc_ral_system_information_ind_t, rrc_ral_system_information_ind)
|
||||
|
||||
MESSAGE_DEF(RRC_RAL_SCAN_REQ, MESSAGE_PRIORITY_MED, rrc_ral_scan_req_t, rrc_ral_scan_req)
|
||||
MESSAGE_DEF(RRC_RAL_SCAN_CONF, MESSAGE_PRIORITY_MED, rrc_ral_scan_conf_t, rrc_ral_scan_conf)
|
||||
|
||||
MESSAGE_DEF(RRC_RAL_CONFIGURE_THRESHOLD_REQ, MESSAGE_PRIORITY_MAX, rrc_ral_configure_threshold_req_t, rrc_ral_configure_threshold_req)
|
||||
MESSAGE_DEF(RRC_RAL_CONFIGURE_THRESHOLD_CONF, MESSAGE_PRIORITY_MED, rrc_ral_configure_threshold_conf_t, rrc_ral_configure_threshold_conf)
|
||||
MESSAGE_DEF(RRC_RAL_MEASUREMENT_REPORT_IND, MESSAGE_PRIORITY_MAX, rrc_ral_measurement_report_ind_t, rrc_ral_measurement_report_ind)
|
||||
|
||||
MESSAGE_DEF(RRC_RAL_CONNECTION_ESTABLISHMENT_REQ, MESSAGE_PRIORITY_MED, rrc_ral_connection_establishment_req_t, rrc_ral_connection_establishment_req)
|
||||
MESSAGE_DEF(RRC_RAL_CONNECTION_ESTABLISHMENT_CONF, MESSAGE_PRIORITY_MED, rrc_ral_connection_establishment_conf_t, rrc_ral_connection_establishment_conf)
|
||||
MESSAGE_DEF(RRC_RAL_CONNECTION_ESTABLISHMENT_IND, MESSAGE_PRIORITY_MED, rrc_ral_connection_establishment_ind_t, rrc_ral_connection_establishment_ind)
|
||||
MESSAGE_DEF(RRC_RAL_CONNECTION_REESTABLISHMENT_IND, MESSAGE_PRIORITY_MED, rrc_ral_connection_reestablishment_ind_t, rrc_ral_connection_reestablishment_ind)
|
||||
MESSAGE_DEF(RRC_RAL_CONNECTION_RECONFIGURATION_IND, MESSAGE_PRIORITY_MAX, rrc_ral_connection_reconfiguration_ind_t, rrc_ral_connection_reconfiguration_ind)
|
||||
|
||||
MESSAGE_DEF(RRC_RAL_CONNECTION_RELEASE_REQ, MESSAGE_PRIORITY_MED, rrc_ral_connection_release_req_t, rrc_ral_connection_release_req)
|
||||
MESSAGE_DEF(RRC_RAL_CONNECTION_RELEASE_CONF, MESSAGE_PRIORITY_MED, rrc_ral_connection_release_conf_t, rrc_ral_connection_release_conf)
|
||||
MESSAGE_DEF(RRC_RAL_CONNECTION_RELEASE_IND, MESSAGE_PRIORITY_MED, rrc_ral_connection_release_ind_t, rrc_ral_connection_release_ind)
|
||||
|
||||
Executable
+273
@@ -0,0 +1,273 @@
|
||||
#ifndef RAL_MESSAGES_TYPES_H_
|
||||
#define RAL_MESSAGES_TYPES_H_
|
||||
#include "asn1_constants.h"
|
||||
#include "platform_types.h"
|
||||
/* 802.21 mappings with the RRC protocol :
|
||||
(Research Report RR-12-265 Mapping of IEEE 802.21 MIH primitives to EPS/LTE protocols March 13 th, 2012, Michelle WETTERWALD, Prof. Christian BONNET )
|
||||
LINK EVENTS:
|
||||
Link_Detected System Information
|
||||
|
||||
Link_Up RRC Connection establishment
|
||||
RRC Connection re-establishment
|
||||
RRC Connection reconfiguration
|
||||
|
||||
Link_Down RRC Connection reconfiguration
|
||||
RRC Connection Release
|
||||
|
||||
Link_Parameters_Report Measurement report
|
||||
Link_Going_Down N/A
|
||||
Link_Handover_Imminent N/A
|
||||
Link_Handover_Complete RRC Connection reconfiguration
|
||||
Link_PDU_Transmit_Status N/A
|
||||
|
||||
|
||||
LINK COMMANDS:
|
||||
Link_Capability_Discover N/A
|
||||
Link_Event_Subscribe Measurement configuration
|
||||
Link_Event_Unsubscribe Measurement configuration
|
||||
Link_Get_Parameters Measurement configuration
|
||||
Link_Configure_Thresholds Measurement configuration
|
||||
Link_Action / Disconnect RRC Connection Release
|
||||
Link_Action / Low Power N/A
|
||||
Link_Action / Power Down RRC Connection Release
|
||||
Link_Action / Power Up RRC Connection establishment
|
||||
*/
|
||||
|
||||
#define RRC_RAL_SYSTEM_CONFIGURATION_IND(mSGpTR) (mSGpTR)->ittiMsg.rrc_ral_system_configuration_ind
|
||||
#define RRC_RAL_SYSTEM_INFORMATION_IND(mSGpTR) (mSGpTR)->ittiMsg.rrc_ral_system_information_ind
|
||||
|
||||
#define RRC_RAL_CONFIGURE_THRESHOLD_REQ(mSGpTR) (mSGpTR)->ittiMsg.rrc_ral_configure_threshold_req
|
||||
#define RRC_RAL_CONFIGURE_THRESHOLD_CONF(mSGpTR) (mSGpTR)->ittiMsg.rrc_ral_configure_threshold_conf
|
||||
#define RRC_RAL_MEASUREMENT_REPORT_IND(mSGpTR) (mSGpTR)->ittiMsg.rrc_ral_measurement_report_ind
|
||||
|
||||
#define RRC_RAL_CONNECTION_ESTABLISHMENT_REQ(mSGpTR) (mSGpTR)->ittiMsg.rrc_ral_connection_establishment_req
|
||||
#define RRC_RAL_CONNECTION_ESTABLISHMENT_CONF(mSGpTR) (mSGpTR)->ittiMsg.rrc_ral_connection_establishment_conf
|
||||
#define RRC_RAL_CONNECTION_ESTABLISHMENT_IND(mSGpTR) (mSGpTR)->ittiMsg.rrc_ral_connection_establishment_ind
|
||||
#define RRC_RAL_CONNECTION_REESTABLISHMENT_IND(mSGpTR) (mSGpTR)->ittiMsg.rrc_ral_connection_reestablishment_ind
|
||||
#define RRC_RAL_CONNECTION_RECONFIGURATION_IND(mSGpTR) (mSGpTR)->ittiMsg.rrc_ral_connection_reconfiguration_ind
|
||||
|
||||
#define RRC_RAL_CONNECTION_RELEASE_REQ(mSGpTR) (mSGpTR)->ittiMsg.rrc_ral_connection_release_req
|
||||
#define RRC_RAL_CONNECTION_RELEASE_CONF(mSGpTR) (mSGpTR)->ittiMsg.rrc_ral_connection_release_conf
|
||||
#define RRC_RAL_CONNECTION_RELEASE_IND(mSGpTR) (mSGpTR)->ittiMsg.rrc_ral_connection_release_ind
|
||||
|
||||
#include "MIH_C_header_codec.h"
|
||||
|
||||
typedef MIH_C_TRANSACTION_ID_T ral_transaction_id_t;
|
||||
typedef MIH_C_STATUS_T ral_status_t;
|
||||
typedef MIH_C_CHOICE_T ral_choice_t;
|
||||
typedef MIH_C_CONFIG_STATUS_T ral_config_status_t;
|
||||
typedef MIH_C_TH_ACTION_T ral_th_action_t;
|
||||
|
||||
|
||||
#define RAL_STATUS_SUCCESS MIH_C_STATUS_SUCCESS
|
||||
#define RAL_STATUS_UNSPECIFIED_FAILURE MIH_C_STATUS_UNSPECIFIED_FAILURE
|
||||
#define RAL_STATUS_REJECTED MIH_C_STATUS_REJECTED
|
||||
#define RAL_STATUS_AUTHORIZATION_FAILURE MIH_C_STATUS_AUTHORIZATION_FAILURE
|
||||
#define RAL_STATUS_NETWORK_ERROR MIH_C_STATUS_NETWORK_ERROR
|
||||
|
||||
|
||||
#define RAL_3GPP_ADDR_LENGTH MIH_C_3GPP_ADDR_LENGTH
|
||||
#define RAL_3GPP2_ADDR_LENGTH MIH_C_3GPP2_ADDR_LENGTH
|
||||
#define RAL_OTHER_L2_ADDR_LENGTH MIH_C_OTHER_L2_ADDR_LENGTH
|
||||
#define RAL_LINK_SCAN_RSP_LENGTH MIH_C_LINK_SCAN_RSP_LENGTH
|
||||
#define RAL_THRESHOLD_LIST_LENGTH MIH_C_THRESHOLD_LIST_LENGTH
|
||||
#define RAL_LINK_ADDR_LIST_LENGTH MIH_C_LINK_ADDR_LIST_LENGTH
|
||||
#define RAL_QOS_LIST_LENGTH MIH_C_QOS_LIST_LENGTH
|
||||
#define RAL_LINK_STATUS_REQ_LIST_LENGTH MIH_C_LINK_STATUS_REQ_LIST_LENGTH
|
||||
#define RAL_LINK_CFG_PARAM_LIST_LENGTH MIH_C_LINK_CFG_PARAM_LIST_LENGTH
|
||||
|
||||
typedef struct ral_network_id_s { u_int16_t length; u_int8_t val[253];} ral_network_id_t;
|
||||
|
||||
typedef struct ral_link_addr_s { u_int16_t length; u_int8_t val[RAL_LINK_ADDR_LIST_LENGTH];} ral_link_addr_t;
|
||||
|
||||
typedef struct ral_sig_strength_s {
|
||||
ral_choice_t choice;
|
||||
union {
|
||||
uint8_t dbm;
|
||||
uint8_t percentage;
|
||||
} _union;
|
||||
} ral_sig_strength_t;
|
||||
#define RAL_SIG_STRENGTH_CHOICE_DBM (ral_choice_t)0
|
||||
#define RAL_SIG_STRENGTH_CHOICE_PERCENTAGE (ral_choice_t)1
|
||||
|
||||
|
||||
// FOR ENB ONLY
|
||||
typedef struct rrc_ral_system_configuration_ind_s {
|
||||
plmn_t plmn_id;
|
||||
unsigned int cell_id:28;
|
||||
}rrc_ral_system_configuration_ind_t;
|
||||
|
||||
// FOR UE ONLY
|
||||
typedef struct rrc_ral_system_information_ind_s {
|
||||
plmn_t plmn_id;
|
||||
unsigned int cell_id:28;
|
||||
uint8_t dbm; // sig strength
|
||||
uint16_t sinr;
|
||||
uint32_t link_data_rate; //the maximum data rate in kb/s
|
||||
|
||||
}rrc_ral_system_information_ind_t;
|
||||
|
||||
typedef struct ral_link_scan_resp_s {
|
||||
ral_link_addr_t link_addr;
|
||||
ral_network_id_t network_id;
|
||||
ral_sig_strength_t sig_strength;
|
||||
} ral_link_scan_resp_t;
|
||||
|
||||
typedef struct rrc_ral_scan_req_s {
|
||||
ral_transaction_id_t transaction_id;
|
||||
|
||||
}rrc_ral_scan_req_t;
|
||||
|
||||
typedef struct rrc_ral_scan_conf_s {
|
||||
ral_transaction_id_t transaction_id;
|
||||
#define RAL_MAX_LINK_SCAN_RESP 16
|
||||
uint8_t num_scan_resp;
|
||||
ral_link_scan_resp_t ink_scan_resp[RAL_MAX_LINK_SCAN_RESP];
|
||||
}rrc_ral_scan_conf_t;
|
||||
|
||||
typedef struct rrc_ral_connection_establishment_req_s{
|
||||
ral_transaction_id_t transaction_id;
|
||||
|
||||
}rrc_ral_connection_establishment_req_t;
|
||||
|
||||
typedef struct rrc_ral_connection_establishment_conf_s{
|
||||
ral_transaction_id_t transaction_id;
|
||||
|
||||
}rrc_ral_connection_establishment_conf_t;
|
||||
|
||||
typedef struct rrc_ral_connection_establishment_ind_s {
|
||||
uint16_t ue_id; // may be c-rnti
|
||||
}rrc_ral_connection_establishment_ind_t;
|
||||
|
||||
|
||||
typedef struct rrc_ral_connection_reestablishment_ind_s {
|
||||
uint16_t ue_id;
|
||||
uint8_t num_drb;
|
||||
rb_id_t drb_id[maxDRB];
|
||||
uint8_t num_srb;
|
||||
}rrc_ral_connection_reestablishment_ind_t;
|
||||
|
||||
|
||||
typedef struct rrc_ral_connection_reconfiguration_ind_s {
|
||||
uint16_t ue_id;
|
||||
}rrc_ral_connection_reconfiguration_ind_t;
|
||||
|
||||
|
||||
|
||||
|
||||
#define RAL_ABOVE_THRESHOLD MIH_C_ABOVE_THRESHOLD
|
||||
#define RAL_BELOW_THRESHOLD MIH_C_BELOW_THRESHOLD
|
||||
typedef struct ral_threshold_s {
|
||||
uint16_t threshold_val;
|
||||
uint8_t threshold_xdir;
|
||||
}ral_threshold_t;
|
||||
|
||||
|
||||
typedef MIH_C_LINK_PARAM_GEN_T ral_link_param_gen_t;
|
||||
#define RAL_LINK_PARAM_GEN_DATA_RATE MIH_C_LINK_PARAM_GEN_DATA_RATE
|
||||
#define RAL_LINK_PARAM_GEN_SIGNAL_STRENGTH MIH_C_LINK_PARAM_GEN_SIGNAL_STRENGTH
|
||||
#define RAL_LINK_PARAM_GEN_SINR MIH_C_LINK_PARAM_GEN_SINR
|
||||
#define RAL_LINK_PARAM_GEN_THROUGHPUT MIH_C_LINK_PARAM_GEN_THROUGHPUT
|
||||
#define RAL_LINK_PARAM_GEN_PACKET_ERROR_RATE MIH_C_LINK_PARAM_GEN_PACKET_ERROR_RATE
|
||||
|
||||
typedef MIH_C_LINK_PARAM_QOS_T ral_link_param_qos_t;
|
||||
|
||||
typedef MIH_C_LINK_PARAM_LTE_T ral_link_param_lte_t;
|
||||
#define RAL_LINK_PARAM_LTE_UE_RSRP MIH_C_LINK_PARAM_LTE_UE_RSRP
|
||||
#define RAL_LINK_PARAM_LTE_UE_RSRQ MIH_C_LINK_PARAM_LTE_UE_RSRQ
|
||||
#define RAL_LINK_PARAM_LTE_UE_CQI MIH_C_LINK_PARAM_LTE_UE_CQI
|
||||
#define RAL_LINK_PARAM_LTE_AVAILABLE_BW MIH_C_LINK_PARAM_LTE_AVAILABLE_BW
|
||||
#define RAL_LINK_PARAM_LTE_PACKET_DELAY MIH_C_LINK_PARAM_LTE_PACKET_DELAY
|
||||
#define RAL_LINK_PARAM_LTE_PACKET_LOSS_RATE MIH_C_LINK_PARAM_LTE_PACKET_LOSS_RATE
|
||||
#define RAL_LINK_PARAM_LTE_L2_BUFFER_STATUS MIH_C_LINK_PARAM_LTE_L2_BUFFER_STATUS
|
||||
#define RAL_LINK_PARAM_LTE_MOBILE_NODE_CAPABILITIES MIH_C_LINK_PARAM_LTE_MOBILE_NODE_CAPABILITIES
|
||||
#define RAL_LINK_PARAM_LTE_EMBMS_CAPABILITY MIH_C_LINK_PARAM_LTE_EMBMS_CAPABILITY
|
||||
#define RAL_LINK_PARAM_LTE_JUMBO_FEASIBILITY MIH_C_LINK_PARAM_LTE_JUMBO_FEASIBILITY
|
||||
#define RAL_LINK_PARAM_LTE_JUMBO_SETUP_STATUS MIH_C_LINK_PARAM_LTE_JUMBO_SETUP_STATUS
|
||||
#define RAL_LINK_PARAM_LTE_NUM_ACTIVE_EMBMS_RECEIVERS_PER_FLOW MIH_C_LINK_PARAM_LTE_NUM_ACTIVE_EMBMS_RECEIVERS_PER_FLOW
|
||||
|
||||
#define RAL_LINK_PARAM_TYPE_CHOICE_GEN MIH_C_LINK_PARAM_TYPE_CHOICE_GEN
|
||||
#define RAL_LINK_PARAM_TYPE_CHOICE_QOS MIH_C_LINK_PARAM_TYPE_CHOICE_QOS
|
||||
#define RAL_LINK_PARAM_TYPE_CHOICE_LTE MIH_C_LINK_PARAM_TYPE_CHOICE_LTE
|
||||
|
||||
typedef struct ral_link_param_type_s {
|
||||
ral_choice_t choice;
|
||||
union {
|
||||
ral_link_param_gen_t link_param_gen;
|
||||
ral_link_param_qos_t link_param_qos;
|
||||
ral_link_param_lte_t link_param_lte;
|
||||
} _union;
|
||||
} ral_link_param_type_t;
|
||||
|
||||
|
||||
typedef struct ral_link_cfg_param_s {
|
||||
ral_link_param_type_t link_param_type;
|
||||
#define RAL_LINK_CFG_PARAM_CHOICE_TIMER_NULL 0
|
||||
#define RAL_LINK_CFG_PARAM_CHOICE_TIMER 1
|
||||
uint8_t union_choice;
|
||||
union {
|
||||
uint8_t null_attr;
|
||||
uint16_t timer_interval; // This timer value (ms) is used to set the interval between periodic reports.
|
||||
} _union;
|
||||
#define RAL_TH_ACTION_SET_NORMAL_THRESHOLD MIH_C_SET_NORMAL_THRESHOLD
|
||||
#define RAL_TH_ACTION_SET_ONE_SHOT_THRESHOLD MIH_C_SET_ONE_SHOT_THRESHOLD
|
||||
#define RAL_TH_ACTION_CANCEL_THRESHOLD MIH_C_CANCEL_THRESHOLD
|
||||
ral_th_action_t th_action; // indicates what action to apply to the listed thresholds.
|
||||
// When “Cancel threshold” is selected and no thresholds are specified, then
|
||||
// all currently configured thresholds for the given LINK_PARAM_TYPE are can-
|
||||
// celled.
|
||||
// When “Cancel threshold” is selected and thresholds are specified only those
|
||||
// configured thresholds for the given LINK_PARAM_TYPE and whose threshold
|
||||
// value match what was specified are cancelled.
|
||||
// With “Set one-shot threshold” the listed thresholds are first set and then
|
||||
// each of the threshold is cancelled as soon as it is crossed for the first
|
||||
// time.
|
||||
uint8_t num_thresholds;
|
||||
#define RAL_LINK_CFG_PARAM_MAX_THRESHOLDS 16
|
||||
ral_threshold_t thresholds[RAL_LINK_CFG_PARAM_MAX_THRESHOLDS];
|
||||
} ral_link_cfg_param_t;
|
||||
|
||||
|
||||
typedef struct rrc_ral_configure_threshold_req_s {
|
||||
ral_transaction_id_t transaction_id;
|
||||
#define RAL_MAX_LINK_CFG_PARAMS 16
|
||||
uint8_t num_link_cfg_params;
|
||||
ral_link_cfg_param_t link_cfg_params[RAL_MAX_LINK_CFG_PARAMS];
|
||||
}rrc_ral_configure_threshold_req_t;
|
||||
|
||||
typedef struct ral_link_cfg_status_s {
|
||||
ral_link_param_type_t link_param_type;
|
||||
ral_threshold_t threshold;
|
||||
ral_config_status_t config_status;
|
||||
} ral_link_cfg_status_t;
|
||||
|
||||
typedef struct rrc_ral_configure_threshold_conf_s {
|
||||
ral_transaction_id_t transaction_id;
|
||||
ral_status_t status;
|
||||
uint8_t num_link_cfg_params;
|
||||
ral_link_cfg_status_t cfg_status[RAL_MAX_LINK_CFG_PARAMS];
|
||||
}rrc_ral_configure_threshold_conf_t;
|
||||
|
||||
typedef struct rrc_ral_measurement_report_ind_s{
|
||||
}rrc_ral_measurement_report_ind_t;
|
||||
|
||||
|
||||
typedef struct rrc_ral_connection_release_req_s{
|
||||
ral_transaction_id_t transaction_id;
|
||||
uint16_t ue_id;
|
||||
}rrc_ral_connection_release_req_t;
|
||||
|
||||
typedef struct rrc_ral_connection_release_conf_s{
|
||||
ral_transaction_id_t transaction_id;
|
||||
uint16_t ue_id;
|
||||
}rrc_ral_connection_release_conf_t;
|
||||
|
||||
|
||||
typedef struct rrc_ral_connection_release_ind_s{
|
||||
uint16_t ue_id;
|
||||
}rrc_ral_connection_release_ind_t;
|
||||
|
||||
|
||||
|
||||
|
||||
#endif /* RAL_MESSAGES_TYPES_H_ */
|
||||
@@ -20,6 +20,9 @@ SUB_TASK_DEF(TASK_L2L1, TASK_PDCP_ENB, 200)
|
||||
/// Radio Resource Control task
|
||||
TASK_DEF(TASK_RRC_ENB, TASK_PRIORITY_MED, 200)
|
||||
/// S1ap task
|
||||
/// RAL task for ENB
|
||||
TASK_DEF(TASK_RAL_ENB, TASK_PRIORITY_MED, 200)
|
||||
|
||||
TASK_DEF(TASK_S1AP, TASK_PRIORITY_MED, 200)
|
||||
/// X2ap task, acts as both source and target
|
||||
TASK_DEF(TASK_X2AP, TASK_PRIORITY_MED, 200)
|
||||
@@ -39,4 +42,5 @@ SUB_TASK_DEF(TASK_L2L1, TASK_PDCP_UE, 200)
|
||||
TASK_DEF(TASK_RRC_UE, TASK_PRIORITY_MED, 200)
|
||||
/// Non Access Stratum task
|
||||
TASK_DEF(TASK_NAS_UE, TASK_PRIORITY_MED, 200)
|
||||
TASK_DEF(TASK_RAL_UE, TASK_PRIORITY_MED, 200)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user