[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__ */