blob: d87a6732aacfc845d4c78ca496a60a1ba856534f [file] [log] [blame]
#ifndef __IWLAN_PUBLIC_DEFS_H__
#define __IWLAN_PUBLIC_DEFS_H__
//it's for simpler log printing
#define MULTI_ENUM_DEF_2(_e1, _e2, _assign_value) \
_e1 _assign_value, \
_e2 = _e1
#define MULTI_ENUM_DEF_3(_e1, _e2, _e3, _assign_value) \
_e1 _assign_value, \
_e2 = _e1, \
_e3 = _e1
#define MULTI_ENUM_DEF_4(_e1, _e2, _e3, _e4, _assign_value) \
_e1 _assign_value, \
_e2 = _e1, \
_e3 = _e1, \
_e4 = _e1
typedef enum {
MULTI_ENUM_DEF_2(UNSPEC, IWLAN_RAN_UNSPEC,),
MULTI_ENUM_DEF_2(CELL, IWLAN_RAN_CELL,),
IWLAN_RAN_MOBILE_3GPP = CELL, //legacy name, should ask other module to remove
MULTI_ENUM_DEF_2(WLAN, IWLAN_RAN_WLAN,),
IWLAN_RAN_WIFI = WLAN,
RESERVED_3GPP_2,
DATA_1,
DATA_2,
DATA_3,
DATA_4,
IWLAN_RAN_CNT,
IWLAN_RAN_TYPE_CNT = IWLAN_RAN_CNT,
MULTI_ENUM_DEF_2(NONE, IWLAN_RAN_NONE, = 254),
IWLAN_RAN_TYPE_NONE = NONE,
MULTI_ENUM_DEF_2(ERR, IWLAN_RAN_ERR, = 255),
IWLAN_RAN_TYPE_ERR = ERR,
} iwlan_ran_e;
typedef enum {
MULTI_ENUM_DEF_3(UNKNOWN, IWLAN_PDN_APN_TYPE_UNKNOWN, IWLAN_PDN_APN_TYPE_BASE,),
MULTI_ENUM_DEF_2(DEFAULT, IWLAN_PDN_APN_TYPE_DEFAULT,),
MULTI_ENUM_DEF_2(IMS, IWLAN_PDN_APN_TYPE_IMS,),
MULTI_ENUM_DEF_2(MMS, IWLAN_PDN_APN_TYPE_MMS,),
MULTI_ENUM_DEF_2(EMERGENCY, IWLAN_PDN_APN_TYPE_EMERGENCY,),
MULTI_ENUM_DEF_2(XCAP, IWLAN_PDN_APN_TYPE_XCAP,),
MULTI_ENUM_DEF_2(RCS, IWLAN_PDN_APN_TYPE_RCS,),
MULTI_ENUM_DEF_2(BIP, IWLAN_PDN_APN_TYPE_BIP,),
MULTI_ENUM_DEF_2(SUPL, IWLAN_PDN_APN_TYPE_SUPL,),
MULTI_ENUM_DEF_2(_VSIM, IWLAN_PDN_APN_TYPE_VSIM,),
IWLAN_PDN_APN_TYPE_PTT,
IWLAN_PDN_APN_TYPE_MAX,
} iwlan_pdn_apn_type_e; //also update customer_iwlan_config.h
typedef enum {
RPL_REQ_NONE = 0,
RPL_REQ_SBSCRIBE,
RPL_REQ_UPDATE,
RPL_REQ_UNSBSCRIBE,
} rpl_reqtype_e;
typedef enum {
IWLAN_PDN_TYPRSV,
IWLAN_PDN_TYPNONIMS,
IWLAN_PDN_TYPIMS,
IWLAN_PDN_TYPEMGIMS,
} iwlan_pdntype_e;
//it's for simpler log printing
typedef enum {
MULTI_ENUM_DEF_4(NREG, QLT_LV_NREG, WLAN_LV_NREG, CELL_LV_NREG,),
MULTI_ENUM_DEF_4(POOR, QLT_LV_POOR, WLAN_LV_POOR, CELL_LV_POOR,),
MULTI_ENUM_DEF_4(FAIR, QLT_LV_FAIR, WLAN_LV_FAIR, CELL_LV_FAIR,),
MULTI_ENUM_DEF_4(GOOD, QLT_LV_GOOD, WLAN_LV_GOOD, CELL_LV_GOOD,),
MULTI_ENUM_DEF_4(PERF, QLT_LV_PERF, WLAN_LV_PERF, CELL_LV_PERF,), //perfect
/*
* LV_MAX: RAT MAX Quality Level
* LV_CNT: RAT Quality Level Count
*/
WLAN_LV_MAX = WLAN_LV_GOOD, // Current no WIFI_GOOD_THR
CELL_LV_MAX = CELL_LV_PERF,
QLT_LV_CNT,
WLAN_LV_CNT = WLAN_LV_MAX + 1,
CELL_LV_CNT = CELL_LV_MAX + 1,
} quality_level_e;
typedef enum {
RPL_WLAN_PREF = 0,
RPL_CELL_PREF = 1,
RPL_PREF_CNT
} iwlan_rpl_preference_e;
typedef enum {
RPL_TRACE_CODE_NA = 0,
//RAT Ranking
RPL_TRACE_CODE_RTP_STATUS_BAD,
RPL_TRACE_CODE_RTCP_STATUS_BAD,
RPL_TRACE_CODE_PING_STATUS_BAD,
RPL_TRACE_CODE_DPD_STATUS_BAD,
RPL_TRACE_CODE_PDN_ERROR_LOCAL_RELEASE,
//RAT Barring
RPL_TRACE_CODE_WLAN_UI_DISABLE,
RPL_TRACE_CODE_ESICPI_ERROR,
RPL_TRACE_CODE_FORCE_BAR_ENABLE,
//APN ANS
RPL_TRACE_CODE_RAT_PREFERENCE_NA,
RPL_TRACE_CODE_RAT_PREFERENCE_WLAN_ONLY,
RPL_TRACE_CODE_RAT_PREFERENCE_CELL_ONLY,
RPL_TRACE_CODE_VOLTE_DISABLE,
RPL_TRACE_CODE_PING_PCSCF_REPLY_LOSS,
RPL_TRACE_CODE_EPDG_CONNECTED,
RPL_TRACE_CODE_LOCATION_ROAMING,
RPL_TRACE_CODE_NO_LOCATION,
RPL_TRACE_CODE_NO_IMS_PDN,
RPL_TRACE_CODE_IN_AP_MODE,
RPL_TRACE_CODE_RF_OFF,
RPL_TRACE_CODE_WLAN_DPD_ERROR,
RPL_TRACE_CODE_CELL_ROAM_BAR,
RPL_TRACE_CODE_IMS_BAR_UGC_SRV, //ims blocking by UMTS/GSM/C2K
RPL_TRACE_CODE_OP_WIFI_ONLY_MODE, //operator specify wifi only
RPL_TRACE_CODE_NO_VOPS,
RPL_TRACE_CODE_WFO_DISABLE,
RPL_TRACE_CODE_WLAN_BAR_SRVCC_CALL,
RPL_TRACE_CODE_INCALL_PREFER_CURRENT_RAT,
RPL_TRACE_CODE_INCALL_CURRENT_RAT_POOR_HO,
//APN ANS Post
RPL_TRACE_CODE_WLAN_NO_SIG,
RPL_TRACE_CODE_CELL_NO_SIG,
RPL_TRACE_CODE_VOICE_CAPA_CHK,
RPL_TRACE_CODE_RECEIVE_CALL_HYSTERISIS_HO,
RPL_TRACE_CODE_NO_VCC,
RPL_TRACE_CODE_ROAMING_NO_HO_DREG,
RPL_TRACE_CODE_ROAMING_NO_HO,
RPL_TRACE_CODE_23G_SETUP_BAR,
RPL_TRACE_CODE_4G_VOPS_OFF_SETUP_BAR,
RPL_TRACE_CODE_VOPS_OFF_IDLE_HO_BAR,
RPL_TRACE_CODE_IRAT_ONGOING,
RPL_TRACE_CODE_ECC_TRY_CELL,
RPL_TRACE_CODE_ECC_NO_HO,
RPL_TRACE_CODE_1PDN_CELL,
RPL_TRACE_CODE_ECC_OVER_IMS_NO_HO,
RPL_TRACE_CODE_DTAG_REQID1_1, //Operator rpl trace code
RPL_TRACE_CODE_DTAG_REQID1_2,
RPL_TRACE_CODE_DTAG_REQID2_1,
RPL_TRACE_CODE_DTAG_REQID2_2,
RPL_TRACE_CODE_VDF_REQID1,
RPL_TRACE_CODE_RJIO_REQID1_1,
RPL_TRACE_CODE_RJIO_REQID1_2,
RPL_TRACE_CODE_RJIO_REQID2,
RPL_TRACE_CODE_EE_REQID1_1,
RPL_TRACE_CODE_EE_REQID1_2,
RPL_TRACE_CODE_EE_REQID2,
RPL_TRACE_CODE_VIDEO_HO_TO_WIFI,
RPL_TRACE_CODE_VIDEO_STAY_ON_LTE,
RPL_TRACE_CODE_VIDEO_HO_TO_LTE,
RPL_TRACE_CODE_VIDEO_STAY_ON_WIFI,
RPL_TRACE_CODE_ROAM_DEPEND_USER_PREF,
RPL_TRACE_CODE_SPRT_ECC_NO_HO_L2W_WHEN_LTE_AVAI,
//Rat Throttling
RPL_TRACE_CODE_WO_NRDY,
//IMS DREG
RPL_TRACE_CODE_CS_PREF,
RPL_TRACE_CODE_CS_PREF_DREG_WLAN,
RPL_TRACE_CODE_CS_PREF_DREG_CELL,
RPL_TRACE_CODE_WLAN_DEAD_ZONE,
//Assign Rat
RPL_TRACE_CODE_ASSIGN_RAT_CELL,
RPL_TRACE_CODE_ASSIGN_RAT_WLAN,
RPL_TRACE_CODE_ASSIGN_RAT_NA,
RPL_TRACE_CODE_MAX,
} rpl_trace_code_e;
typedef struct {
LOCAL_PARA_HDR
void *data;
} iwlan_timer_event_none_struct;
#if 0
/* under construction !*/
/* under construction !*/
/* under construction !*/
/* under construction !*/
/* under construction !*/
/* under construction !*/
/* under construction !*/
/* under construction !*/
/* under construction !*/
/* under construction !*/
/* under construction !*/
/* under construction !*/
/* under construction !*/
/* under construction !*/
/* under construction !*/
/* under construction !*/
/* under construction !*/
/* under construction !*/
/* under construction !*/
/* under construction !*/
/* under construction !*/
/* under construction !*/
/* under construction !*/
/* under construction !*/
/* under construction !*/
/* under construction !*/
/* under construction !*/
/* under construction !*/
/* under construction !*/
/* under construction !*/
/* under construction !*/
/* under construction !*/
/* under construction !*/
/* under construction !*/
/* under construction !*/
/* under construction !*/
/* under construction !*/
/* under construction !*/
/* under construction !*/
/* under construction !*/
/* under construction !*/
/* under construction !*/
/* under construction !*/
/* under construction !*/
/* under construction !*/
/* under construction !*/
/* under construction !*/
#endif
/* IF data structure with N3ANS */
typedef enum
{
N3_NONE = 0,
N3_EPDG,
N3_N3IWF,
N3_RAN_MAX
} n3_ran_e;
typedef enum {
RPL_PRIO_1ST,
RPL_PRIO_2ND,
RPL_PRIO_3RD,
RPL_PRIO_4TH,
RPL_PRIO_CNT,
} rpl_prio_e;
#define RPL_RAN_PRI RPL_PRIO_1ST
#define RPL_RAN_SEC RPL_PRIO_2ND
#define RPL_RAN_PRIOR_MAX RPL_PRIO_CNT
/* Subscribe */
typedef struct {
LOCAL_PARA_HDR
kal_uint8 cid;
iwlan_pdn_apn_type_e type;
} iwlan_n3ans_n3_priority_subscribe_req_struct;
typedef iwlan_n3ans_n3_priority_subscribe_req_struct iwlan_n3ans_n3_priority_subscribe_cnf_struct;
typedef struct {
LOCAL_PARA_HDR
kal_uint8 cid;
} iwlan_n3ans_n3_priority_unsubscribe_req_struct;
typedef iwlan_n3ans_n3_priority_unsubscribe_req_struct iwlan_n3ans_n3_priority_unsubscribe_cnf_struct;
/* Priority Acquire & Process */
typedef struct {
LOCAL_PARA_HDR
kal_uint8 cid;
iwlan_pdn_apn_type_e type;
} iwlan_n3ans_n3_priority_acquire_ntf_struct;
typedef struct {
LOCAL_PARA_HDR
kal_uint8 cid;
n3_ran_e n3pl[RPL_PRIO_CNT];
} iwlan_n3ans_n3_priority_process_ind_struct;
typedef struct {
LOCAL_PARA_HDR
kal_uint8 cid;
} iwlan_n3ans_n3_priority_process_rsp_struct;
#endif /* __IWLAN_PUBLIC_DEFS_H__ */