[Feature]Upload Modem source code
Change-Id: Id4294f30faced84d3e6fd6d5e61e1111bf287a37
diff --git a/mcu/protocol/interface/iwlan/iwlan_public_defs.h b/mcu/protocol/interface/iwlan/iwlan_public_defs.h
new file mode 100644
index 0000000..d87a673
--- /dev/null
+++ b/mcu/protocol/interface/iwlan/iwlan_public_defs.h
@@ -0,0 +1,299 @@
+#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__ */