blob: d87a6732aacfc845d4c78ca496a60a1ba856534f [file] [log] [blame]
rjw6c1fd8f2022-11-30 14:33:01 +08001#ifndef __IWLAN_PUBLIC_DEFS_H__
2#define __IWLAN_PUBLIC_DEFS_H__
3
4//it's for simpler log printing
5#define MULTI_ENUM_DEF_2(_e1, _e2, _assign_value) \
6 _e1 _assign_value, \
7 _e2 = _e1
8
9#define MULTI_ENUM_DEF_3(_e1, _e2, _e3, _assign_value) \
10 _e1 _assign_value, \
11 _e2 = _e1, \
12 _e3 = _e1
13
14#define MULTI_ENUM_DEF_4(_e1, _e2, _e3, _e4, _assign_value) \
15 _e1 _assign_value, \
16 _e2 = _e1, \
17 _e3 = _e1, \
18 _e4 = _e1
19
20typedef enum {
21 MULTI_ENUM_DEF_2(UNSPEC, IWLAN_RAN_UNSPEC,),
22 MULTI_ENUM_DEF_2(CELL, IWLAN_RAN_CELL,),
23 IWLAN_RAN_MOBILE_3GPP = CELL, //legacy name, should ask other module to remove
24 MULTI_ENUM_DEF_2(WLAN, IWLAN_RAN_WLAN,),
25 IWLAN_RAN_WIFI = WLAN,
26
27 RESERVED_3GPP_2,
28 DATA_1,
29 DATA_2,
30 DATA_3,
31 DATA_4,
32
33 IWLAN_RAN_CNT,
34 IWLAN_RAN_TYPE_CNT = IWLAN_RAN_CNT,
35
36 MULTI_ENUM_DEF_2(NONE, IWLAN_RAN_NONE, = 254),
37 IWLAN_RAN_TYPE_NONE = NONE,
38 MULTI_ENUM_DEF_2(ERR, IWLAN_RAN_ERR, = 255),
39 IWLAN_RAN_TYPE_ERR = ERR,
40} iwlan_ran_e;
41
42typedef enum {
43 MULTI_ENUM_DEF_3(UNKNOWN, IWLAN_PDN_APN_TYPE_UNKNOWN, IWLAN_PDN_APN_TYPE_BASE,),
44 MULTI_ENUM_DEF_2(DEFAULT, IWLAN_PDN_APN_TYPE_DEFAULT,),
45 MULTI_ENUM_DEF_2(IMS, IWLAN_PDN_APN_TYPE_IMS,),
46 MULTI_ENUM_DEF_2(MMS, IWLAN_PDN_APN_TYPE_MMS,),
47 MULTI_ENUM_DEF_2(EMERGENCY, IWLAN_PDN_APN_TYPE_EMERGENCY,),
48 MULTI_ENUM_DEF_2(XCAP, IWLAN_PDN_APN_TYPE_XCAP,),
49 MULTI_ENUM_DEF_2(RCS, IWLAN_PDN_APN_TYPE_RCS,),
50 MULTI_ENUM_DEF_2(BIP, IWLAN_PDN_APN_TYPE_BIP,),
51 MULTI_ENUM_DEF_2(SUPL, IWLAN_PDN_APN_TYPE_SUPL,),
52 MULTI_ENUM_DEF_2(_VSIM, IWLAN_PDN_APN_TYPE_VSIM,),
53 IWLAN_PDN_APN_TYPE_PTT,
54
55 IWLAN_PDN_APN_TYPE_MAX,
56} iwlan_pdn_apn_type_e; //also update customer_iwlan_config.h
57
58
59typedef enum {
60 RPL_REQ_NONE = 0,
61 RPL_REQ_SBSCRIBE,
62 RPL_REQ_UPDATE,
63 RPL_REQ_UNSBSCRIBE,
64} rpl_reqtype_e;
65
66typedef enum {
67 IWLAN_PDN_TYPRSV,
68 IWLAN_PDN_TYPNONIMS,
69 IWLAN_PDN_TYPIMS,
70 IWLAN_PDN_TYPEMGIMS,
71} iwlan_pdntype_e;
72
73//it's for simpler log printing
74
75typedef enum {
76 MULTI_ENUM_DEF_4(NREG, QLT_LV_NREG, WLAN_LV_NREG, CELL_LV_NREG,),
77 MULTI_ENUM_DEF_4(POOR, QLT_LV_POOR, WLAN_LV_POOR, CELL_LV_POOR,),
78 MULTI_ENUM_DEF_4(FAIR, QLT_LV_FAIR, WLAN_LV_FAIR, CELL_LV_FAIR,),
79 MULTI_ENUM_DEF_4(GOOD, QLT_LV_GOOD, WLAN_LV_GOOD, CELL_LV_GOOD,),
80 MULTI_ENUM_DEF_4(PERF, QLT_LV_PERF, WLAN_LV_PERF, CELL_LV_PERF,), //perfect
81
82 /*
83 * LV_MAX: RAT MAX Quality Level
84 * LV_CNT: RAT Quality Level Count
85 */
86 WLAN_LV_MAX = WLAN_LV_GOOD, // Current no WIFI_GOOD_THR
87 CELL_LV_MAX = CELL_LV_PERF,
88
89 QLT_LV_CNT,
90 WLAN_LV_CNT = WLAN_LV_MAX + 1,
91 CELL_LV_CNT = CELL_LV_MAX + 1,
92} quality_level_e;
93
94typedef enum {
95 RPL_WLAN_PREF = 0,
96 RPL_CELL_PREF = 1,
97 RPL_PREF_CNT
98} iwlan_rpl_preference_e;
99
100typedef enum {
101 RPL_TRACE_CODE_NA = 0,
102 //RAT Ranking
103 RPL_TRACE_CODE_RTP_STATUS_BAD,
104 RPL_TRACE_CODE_RTCP_STATUS_BAD,
105 RPL_TRACE_CODE_PING_STATUS_BAD,
106 RPL_TRACE_CODE_DPD_STATUS_BAD,
107 RPL_TRACE_CODE_PDN_ERROR_LOCAL_RELEASE,
108
109 //RAT Barring
110 RPL_TRACE_CODE_WLAN_UI_DISABLE,
111 RPL_TRACE_CODE_ESICPI_ERROR,
112 RPL_TRACE_CODE_FORCE_BAR_ENABLE,
113
114 //APN ANS
115 RPL_TRACE_CODE_RAT_PREFERENCE_NA,
116 RPL_TRACE_CODE_RAT_PREFERENCE_WLAN_ONLY,
117 RPL_TRACE_CODE_RAT_PREFERENCE_CELL_ONLY,
118
119 RPL_TRACE_CODE_VOLTE_DISABLE,
120 RPL_TRACE_CODE_PING_PCSCF_REPLY_LOSS,
121 RPL_TRACE_CODE_EPDG_CONNECTED,
122 RPL_TRACE_CODE_LOCATION_ROAMING,
123 RPL_TRACE_CODE_NO_LOCATION,
124 RPL_TRACE_CODE_NO_IMS_PDN,
125 RPL_TRACE_CODE_IN_AP_MODE,
126 RPL_TRACE_CODE_RF_OFF,
127 RPL_TRACE_CODE_WLAN_DPD_ERROR,
128 RPL_TRACE_CODE_CELL_ROAM_BAR,
129 RPL_TRACE_CODE_IMS_BAR_UGC_SRV, //ims blocking by UMTS/GSM/C2K
130 RPL_TRACE_CODE_OP_WIFI_ONLY_MODE, //operator specify wifi only
131 RPL_TRACE_CODE_NO_VOPS,
132 RPL_TRACE_CODE_WFO_DISABLE,
133 RPL_TRACE_CODE_WLAN_BAR_SRVCC_CALL,
134
135 RPL_TRACE_CODE_INCALL_PREFER_CURRENT_RAT,
136 RPL_TRACE_CODE_INCALL_CURRENT_RAT_POOR_HO,
137
138 //APN ANS Post
139 RPL_TRACE_CODE_WLAN_NO_SIG,
140 RPL_TRACE_CODE_CELL_NO_SIG,
141 RPL_TRACE_CODE_VOICE_CAPA_CHK,
142 RPL_TRACE_CODE_RECEIVE_CALL_HYSTERISIS_HO,
143 RPL_TRACE_CODE_NO_VCC,
144 RPL_TRACE_CODE_ROAMING_NO_HO_DREG,
145 RPL_TRACE_CODE_ROAMING_NO_HO,
146 RPL_TRACE_CODE_23G_SETUP_BAR,
147 RPL_TRACE_CODE_4G_VOPS_OFF_SETUP_BAR,
148 RPL_TRACE_CODE_VOPS_OFF_IDLE_HO_BAR,
149 RPL_TRACE_CODE_IRAT_ONGOING,
150 RPL_TRACE_CODE_ECC_TRY_CELL,
151 RPL_TRACE_CODE_ECC_NO_HO,
152 RPL_TRACE_CODE_1PDN_CELL,
153 RPL_TRACE_CODE_ECC_OVER_IMS_NO_HO,
154
155 RPL_TRACE_CODE_DTAG_REQID1_1, //Operator rpl trace code
156 RPL_TRACE_CODE_DTAG_REQID1_2,
157 RPL_TRACE_CODE_DTAG_REQID2_1,
158 RPL_TRACE_CODE_DTAG_REQID2_2,
159 RPL_TRACE_CODE_VDF_REQID1,
160 RPL_TRACE_CODE_RJIO_REQID1_1,
161 RPL_TRACE_CODE_RJIO_REQID1_2,
162 RPL_TRACE_CODE_RJIO_REQID2,
163 RPL_TRACE_CODE_EE_REQID1_1,
164 RPL_TRACE_CODE_EE_REQID1_2,
165 RPL_TRACE_CODE_EE_REQID2,
166 RPL_TRACE_CODE_VIDEO_HO_TO_WIFI,
167 RPL_TRACE_CODE_VIDEO_STAY_ON_LTE,
168 RPL_TRACE_CODE_VIDEO_HO_TO_LTE,
169 RPL_TRACE_CODE_VIDEO_STAY_ON_WIFI,
170 RPL_TRACE_CODE_ROAM_DEPEND_USER_PREF,
171 RPL_TRACE_CODE_SPRT_ECC_NO_HO_L2W_WHEN_LTE_AVAI,
172
173 //Rat Throttling
174 RPL_TRACE_CODE_WO_NRDY,
175
176 //IMS DREG
177 RPL_TRACE_CODE_CS_PREF,
178 RPL_TRACE_CODE_CS_PREF_DREG_WLAN,
179 RPL_TRACE_CODE_CS_PREF_DREG_CELL,
180 RPL_TRACE_CODE_WLAN_DEAD_ZONE,
181
182 //Assign Rat
183 RPL_TRACE_CODE_ASSIGN_RAT_CELL,
184 RPL_TRACE_CODE_ASSIGN_RAT_WLAN,
185 RPL_TRACE_CODE_ASSIGN_RAT_NA,
186
187 RPL_TRACE_CODE_MAX,
188} rpl_trace_code_e;
189
190typedef struct {
191 LOCAL_PARA_HDR
192 void *data;
193} iwlan_timer_event_none_struct;
194
195#if 0
196/* under construction !*/
197/* under construction !*/
198/* under construction !*/
199/* under construction !*/
200/* under construction !*/
201/* under construction !*/
202/* under construction !*/
203/* under construction !*/
204/* under construction !*/
205/* under construction !*/
206/* under construction !*/
207/* under construction !*/
208/* under construction !*/
209/* under construction !*/
210/* under construction !*/
211/* under construction !*/
212/* under construction !*/
213/* under construction !*/
214/* under construction !*/
215/* under construction !*/
216/* under construction !*/
217/* under construction !*/
218/* under construction !*/
219/* under construction !*/
220/* under construction !*/
221/* under construction !*/
222/* under construction !*/
223/* under construction !*/
224/* under construction !*/
225/* under construction !*/
226/* under construction !*/
227/* under construction !*/
228/* under construction !*/
229/* under construction !*/
230/* under construction !*/
231/* under construction !*/
232/* under construction !*/
233/* under construction !*/
234/* under construction !*/
235/* under construction !*/
236/* under construction !*/
237/* under construction !*/
238/* under construction !*/
239/* under construction !*/
240/* under construction !*/
241/* under construction !*/
242/* under construction !*/
243#endif
244
245/* IF data structure with N3ANS */
246typedef enum
247{
248 N3_NONE = 0,
249 N3_EPDG,
250 N3_N3IWF,
251
252 N3_RAN_MAX
253} n3_ran_e;
254
255typedef enum {
256 RPL_PRIO_1ST,
257 RPL_PRIO_2ND,
258 RPL_PRIO_3RD,
259 RPL_PRIO_4TH,
260 RPL_PRIO_CNT,
261} rpl_prio_e;
262
263#define RPL_RAN_PRI RPL_PRIO_1ST
264#define RPL_RAN_SEC RPL_PRIO_2ND
265#define RPL_RAN_PRIOR_MAX RPL_PRIO_CNT
266
267/* Subscribe */
268typedef struct {
269 LOCAL_PARA_HDR
270 kal_uint8 cid;
271 iwlan_pdn_apn_type_e type;
272} iwlan_n3ans_n3_priority_subscribe_req_struct;
273typedef iwlan_n3ans_n3_priority_subscribe_req_struct iwlan_n3ans_n3_priority_subscribe_cnf_struct;
274
275typedef struct {
276 LOCAL_PARA_HDR
277 kal_uint8 cid;
278} iwlan_n3ans_n3_priority_unsubscribe_req_struct;
279typedef iwlan_n3ans_n3_priority_unsubscribe_req_struct iwlan_n3ans_n3_priority_unsubscribe_cnf_struct;
280
281/* Priority Acquire & Process */
282typedef struct {
283 LOCAL_PARA_HDR
284 kal_uint8 cid;
285 iwlan_pdn_apn_type_e type;
286} iwlan_n3ans_n3_priority_acquire_ntf_struct;
287
288typedef struct {
289 LOCAL_PARA_HDR
290 kal_uint8 cid;
291 n3_ran_e n3pl[RPL_PRIO_CNT];
292} iwlan_n3ans_n3_priority_process_ind_struct;
293
294typedef struct {
295 LOCAL_PARA_HDR
296 kal_uint8 cid;
297} iwlan_n3ans_n3_priority_process_rsp_struct;
298
299#endif /* __IWLAN_PUBLIC_DEFS_H__ */