1 /****************************************************************************
2  ****************************************************************************
3  ***
4  ***   This header was automatically generated from a Linux kernel header
5  ***   of the same name, to make information necessary for userspace to
6  ***   call into the kernel available to libc.  It contains only constants,
7  ***   structures, and macros generated from the original header, and thus,
8  ***   contains no copyrightable information.
9  ***
10  ***   To edit the content of this header, modify the corresponding
11  ***   source file (e.g. under external/kernel-headers/original/) then
12  ***   run bionic/libc/kernel/tools/update_all.py
13  ***
14  ***   Any manual change here will be lost the next time this script will
15  ***   be run. You've been warned!
16  ***
17  ****************************************************************************
18  ****************************************************************************/
19 #ifndef _UAPI_MSM_IPA_H_
20 #define _UAPI_MSM_IPA_H_
21 #include <stdint.h>
22 #include <stddef.h>
23 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
24 #include <sys/stat.h>
25 #include <linux/ioctl.h>
26 #include <linux/types.h>
27 #include <linux/if_ether.h>
28 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
29 #define IPA_IOC_MAGIC 0xCF
30 #define IPA_DFLT_RT_TBL_NAME "ipa_dflt_rt"
31 #define IPA_IOCTL_ADD_HDR 0
32 #define IPA_IOCTL_DEL_HDR 1
33 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
34 #define IPA_IOCTL_ADD_RT_RULE 2
35 #define IPA_IOCTL_DEL_RT_RULE 3
36 #define IPA_IOCTL_ADD_FLT_RULE 4
37 #define IPA_IOCTL_DEL_FLT_RULE 5
38 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
39 #define IPA_IOCTL_COMMIT_HDR 6
40 #define IPA_IOCTL_RESET_HDR 7
41 #define IPA_IOCTL_COMMIT_RT 8
42 #define IPA_IOCTL_RESET_RT 9
43 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
44 #define IPA_IOCTL_COMMIT_FLT 10
45 #define IPA_IOCTL_RESET_FLT 11
46 #define IPA_IOCTL_DUMP 12
47 #define IPA_IOCTL_GET_RT_TBL 13
48 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
49 #define IPA_IOCTL_PUT_RT_TBL 14
50 #define IPA_IOCTL_COPY_HDR 15
51 #define IPA_IOCTL_QUERY_INTF 16
52 #define IPA_IOCTL_QUERY_INTF_TX_PROPS 17
53 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
54 #define IPA_IOCTL_QUERY_INTF_RX_PROPS 18
55 #define IPA_IOCTL_GET_HDR 19
56 #define IPA_IOCTL_PUT_HDR 20
57 #define IPA_IOCTL_SET_FLT 21
58 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
59 #define IPA_IOCTL_ALLOC_NAT_MEM 22
60 #define IPA_IOCTL_V4_INIT_NAT 23
61 #define IPA_IOCTL_NAT_DMA 24
62 #define IPA_IOCTL_V4_DEL_NAT 26
63 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
64 #define IPA_IOCTL_PULL_MSG 27
65 #define IPA_IOCTL_GET_NAT_OFFSET 28
66 #define IPA_IOCTL_RM_ADD_DEPENDENCY 29
67 #define IPA_IOCTL_RM_DEL_DEPENDENCY 30
68 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
69 #define IPA_IOCTL_GENERATE_FLT_EQ 31
70 #define IPA_IOCTL_QUERY_INTF_EXT_PROPS 32
71 #define IPA_IOCTL_QUERY_EP_MAPPING 33
72 #define IPA_IOCTL_QUERY_RT_TBL_INDEX 34
73 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
74 #define IPA_IOCTL_WRITE_QMAPID 35
75 #define IPA_IOCTL_MDFY_FLT_RULE 36
76 #define IPA_IOCTL_NOTIFY_WAN_UPSTREAM_ROUTE_ADD 37
77 #define IPA_IOCTL_NOTIFY_WAN_UPSTREAM_ROUTE_DEL 38
78 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
79 #define IPA_IOCTL_NOTIFY_WAN_EMBMS_CONNECTED 39
80 #define IPA_IOCTL_ADD_HDR_PROC_CTX 40
81 #define IPA_IOCTL_DEL_HDR_PROC_CTX 41
82 #define IPA_IOCTL_MDFY_RT_RULE 42
83 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
84 #define IPA_IOCTL_ADD_RT_RULE_AFTER 43
85 #define IPA_IOCTL_ADD_FLT_RULE_AFTER 44
86 #define IPA_IOCTL_GET_HW_VERSION 45
87 #define IPA_IOCTL_MAX 46
88 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
89 #define IPA_HDR_MAX_SIZE 64
90 #define IPA_RESOURCE_NAME_MAX 32
91 #define IPA_NUM_PROPS_MAX 35
92 #define IPA_MAC_ADDR_SIZE 6
93 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
94 #define IPA_MBIM_MAX_STREAM_NUM 8
95 #define IPA_FLT_TOS (1ul << 0)
96 #define IPA_FLT_PROTOCOL (1ul << 1)
97 #define IPA_FLT_SRC_ADDR (1ul << 2)
98 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
99 #define IPA_FLT_DST_ADDR (1ul << 3)
100 #define IPA_FLT_SRC_PORT_RANGE (1ul << 4)
101 #define IPA_FLT_DST_PORT_RANGE (1ul << 5)
102 #define IPA_FLT_TYPE (1ul << 6)
103 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
104 #define IPA_FLT_CODE (1ul << 7)
105 #define IPA_FLT_SPI (1ul << 8)
106 #define IPA_FLT_SRC_PORT (1ul << 9)
107 #define IPA_FLT_DST_PORT (1ul << 10)
108 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
109 #define IPA_FLT_TC (1ul << 11)
110 #define IPA_FLT_FLOW_LABEL (1ul << 12)
111 #define IPA_FLT_NEXT_HDR (1ul << 13)
112 #define IPA_FLT_META_DATA (1ul << 14)
113 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
114 #define IPA_FLT_FRAGMENT (1ul << 15)
115 #define IPA_FLT_TOS_MASKED (1ul << 16)
116 #define IPA_FLT_MAC_SRC_ADDR_ETHER_II (1ul << 17)
117 #define IPA_FLT_MAC_DST_ADDR_ETHER_II (1ul << 18)
118 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
119 #define IPA_FLT_MAC_SRC_ADDR_802_3 (1ul << 19)
120 #define IPA_FLT_MAC_DST_ADDR_802_3 (1ul << 20)
121 #define IPA_FLT_MAC_ETHER_TYPE (1ul << 21)
122 enum ipa_client_type {
123 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
124   IPA_CLIENT_PROD,
125   IPA_CLIENT_HSIC1_PROD = IPA_CLIENT_PROD,
126   IPA_CLIENT_WLAN1_PROD,
127   IPA_CLIENT_HSIC2_PROD,
128 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
129   IPA_CLIENT_USB2_PROD,
130   IPA_CLIENT_HSIC3_PROD,
131   IPA_CLIENT_USB3_PROD,
132   IPA_CLIENT_HSIC4_PROD,
133 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
134   IPA_CLIENT_USB4_PROD,
135   IPA_CLIENT_HSIC5_PROD,
136   IPA_CLIENT_USB_PROD,
137   IPA_CLIENT_A5_WLAN_AMPDU_PROD,
138 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
139   IPA_CLIENT_A2_EMBEDDED_PROD,
140   IPA_CLIENT_A2_TETHERED_PROD,
141   IPA_CLIENT_APPS_LAN_WAN_PROD,
142   IPA_CLIENT_APPS_CMD_PROD,
143 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
144   IPA_CLIENT_ODU_PROD,
145   IPA_CLIENT_MHI_PROD,
146   IPA_CLIENT_Q6_LAN_PROD,
147   IPA_CLIENT_Q6_WAN_PROD,
148 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
149   IPA_CLIENT_Q6_CMD_PROD,
150   IPA_CLIENT_MEMCPY_DMA_SYNC_PROD,
151   IPA_CLIENT_MEMCPY_DMA_ASYNC_PROD,
152   IPA_CLIENT_Q6_DECOMP_PROD,
153 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
154   IPA_CLIENT_Q6_DECOMP2_PROD,
155   IPA_CLIENT_UC_USB_PROD,
156   IPA_CLIENT_TEST_PROD,
157   IPA_CLIENT_TEST1_PROD,
158 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
159   IPA_CLIENT_TEST2_PROD,
160   IPA_CLIENT_TEST3_PROD,
161   IPA_CLIENT_TEST4_PROD,
162   IPA_CLIENT_CONS,
163 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
164   IPA_CLIENT_HSIC1_CONS = IPA_CLIENT_CONS,
165   IPA_CLIENT_WLAN1_CONS,
166   IPA_CLIENT_HSIC2_CONS,
167   IPA_CLIENT_USB2_CONS,
168 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
169   IPA_CLIENT_WLAN2_CONS,
170   IPA_CLIENT_HSIC3_CONS,
171   IPA_CLIENT_USB3_CONS,
172   IPA_CLIENT_WLAN3_CONS,
173 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
174   IPA_CLIENT_HSIC4_CONS,
175   IPA_CLIENT_USB4_CONS,
176   IPA_CLIENT_WLAN4_CONS,
177   IPA_CLIENT_HSIC5_CONS,
178 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
179   IPA_CLIENT_USB_CONS,
180   IPA_CLIENT_USB_DPL_CONS,
181   IPA_CLIENT_A2_EMBEDDED_CONS,
182   IPA_CLIENT_A2_TETHERED_CONS,
183 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
184   IPA_CLIENT_A5_LAN_WAN_CONS,
185   IPA_CLIENT_APPS_LAN_CONS,
186   IPA_CLIENT_APPS_WAN_CONS,
187   IPA_CLIENT_ODU_EMB_CONS,
188 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
189   IPA_CLIENT_ODU_TETH_CONS,
190   IPA_CLIENT_MHI_CONS,
191   IPA_CLIENT_Q6_LAN_CONS,
192   IPA_CLIENT_Q6_WAN_CONS,
193 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
194   IPA_CLIENT_Q6_DUN_CONS,
195   IPA_CLIENT_MEMCPY_DMA_SYNC_CONS,
196   IPA_CLIENT_MEMCPY_DMA_ASYNC_CONS,
197   IPA_CLIENT_Q6_DECOMP_CONS,
198 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
199   IPA_CLIENT_Q6_DECOMP2_CONS,
200   IPA_CLIENT_Q6_LTE_WIFI_AGGR_CONS,
201   IPA_CLIENT_TEST_CONS,
202   IPA_CLIENT_TEST1_CONS,
203 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
204   IPA_CLIENT_TEST2_CONS,
205   IPA_CLIENT_TEST3_CONS,
206   IPA_CLIENT_TEST4_CONS,
207   IPA_CLIENT_MAX,
208 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
209 };
210 #define IPA_CLIENT_IS_APPS_CONS(client) ((client) == IPA_CLIENT_APPS_LAN_CONS || (client) == IPA_CLIENT_APPS_WAN_CONS)
211 #define IPA_CLIENT_IS_USB_CONS(client) ((client) == IPA_CLIENT_USB_CONS || (client) == IPA_CLIENT_USB2_CONS || (client) == IPA_CLIENT_USB3_CONS || (client) == IPA_CLIENT_USB_DPL_CONS || (client) == IPA_CLIENT_USB4_CONS)
212 #define IPA_CLIENT_IS_WLAN_CONS(client) ((client) == IPA_CLIENT_WLAN1_CONS || (client) == IPA_CLIENT_WLAN2_CONS || (client) == IPA_CLIENT_WLAN3_CONS || (client) == IPA_CLIENT_WLAN4_CONS)
213 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
214 #define IPA_CLIENT_IS_ODU_CONS(client) ((client) == IPA_CLIENT_ODU_EMB_CONS || (client) == IPA_CLIENT_ODU_TETH_CONS)
215 #define IPA_CLIENT_IS_Q6_CONS(client) ((client) == IPA_CLIENT_Q6_LAN_CONS || (client) == IPA_CLIENT_Q6_WAN_CONS || (client) == IPA_CLIENT_Q6_DUN_CONS || (client) == IPA_CLIENT_Q6_DECOMP_CONS || (client) == IPA_CLIENT_Q6_DECOMP2_CONS || (client) == IPA_CLIENT_Q6_LTE_WIFI_AGGR_CONS)
216 #define IPA_CLIENT_IS_Q6_PROD(client) ((client) == IPA_CLIENT_Q6_LAN_PROD || (client) == IPA_CLIENT_Q6_WAN_PROD || (client) == IPA_CLIENT_Q6_CMD_PROD || (client) == IPA_CLIENT_Q6_DECOMP_PROD || (client) == IPA_CLIENT_Q6_DECOMP2_PROD)
217 #define IPA_CLIENT_IS_Q6_NON_ZIP_CONS(client) ((client) == IPA_CLIENT_Q6_LAN_CONS || (client) == IPA_CLIENT_Q6_WAN_CONS || (client) == IPA_CLIENT_Q6_DUN_CONS || (client) == IPA_CLIENT_Q6_LTE_WIFI_AGGR_CONS)
218 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
219 #define IPA_CLIENT_IS_Q6_ZIP_CONS(client) ((client) == IPA_CLIENT_Q6_DECOMP_CONS || (client) == IPA_CLIENT_Q6_DECOMP2_CONS)
220 #define IPA_CLIENT_IS_Q6_NON_ZIP_PROD(client) ((client) == IPA_CLIENT_Q6_LAN_PROD || (client) == IPA_CLIENT_Q6_WAN_PROD || (client) == IPA_CLIENT_Q6_CMD_PROD)
221 #define IPA_CLIENT_IS_Q6_ZIP_PROD(client) ((client) == IPA_CLIENT_Q6_DECOMP_PROD || (client) == IPA_CLIENT_Q6_DECOMP2_PROD)
222 #define IPA_CLIENT_IS_MEMCPY_DMA_CONS(client) ((client) == IPA_CLIENT_MEMCPY_DMA_SYNC_CONS || (client) == IPA_CLIENT_MEMCPY_DMA_ASYNC_CONS)
223 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
224 #define IPA_CLIENT_IS_MEMCPY_DMA_PROD(client) ((client) == IPA_CLIENT_MEMCPY_DMA_SYNC_PROD || (client) == IPA_CLIENT_MEMCPY_DMA_ASYNC_PROD)
225 #define IPA_CLIENT_IS_MHI_CONS(client) ((client) == IPA_CLIENT_MHI_CONS)
226 #define IPA_CLIENT_IS_MHI(client) ((client) == IPA_CLIENT_MHI_CONS || (client) == IPA_CLIENT_MHI_PROD)
227 #define IPA_CLIENT_IS_TEST_PROD(client) ((client) == IPA_CLIENT_TEST_PROD || (client) == IPA_CLIENT_TEST1_PROD || (client) == IPA_CLIENT_TEST2_PROD || (client) == IPA_CLIENT_TEST3_PROD || (client) == IPA_CLIENT_TEST4_PROD)
228 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
229 #define IPA_CLIENT_IS_TEST_CONS(client) ((client) == IPA_CLIENT_TEST_CONS || (client) == IPA_CLIENT_TEST1_CONS || (client) == IPA_CLIENT_TEST2_CONS || (client) == IPA_CLIENT_TEST3_CONS || (client) == IPA_CLIENT_TEST4_CONS)
230 #define IPA_CLIENT_IS_TEST(client) (IPA_CLIENT_IS_TEST_PROD(client) || IPA_CLIENT_IS_TEST_CONS(client))
231 enum ipa_ip_type {
232   IPA_IP_v4,
233 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
234   IPA_IP_v6,
235   IPA_IP_MAX
236 };
237 enum ipa_rule_type {
238 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
239   IPA_RULE_HASHABLE,
240   IPA_RULE_NON_HASHABLE,
241   IPA_RULE_TYPE_MAX
242 };
243 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
244 enum ipa_flt_action {
245   IPA_PASS_TO_ROUTING,
246   IPA_PASS_TO_SRC_NAT,
247   IPA_PASS_TO_DST_NAT,
248 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
249   IPA_PASS_TO_EXCEPTION
250 };
251 enum ipa_wlan_event {
252   WLAN_CLIENT_CONNECT,
253 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
254   WLAN_CLIENT_DISCONNECT,
255   WLAN_CLIENT_POWER_SAVE_MODE,
256   WLAN_CLIENT_NORMAL_MODE,
257   SW_ROUTING_ENABLE,
258 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
259   SW_ROUTING_DISABLE,
260   WLAN_AP_CONNECT,
261   WLAN_AP_DISCONNECT,
262   WLAN_STA_CONNECT,
263 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
264   WLAN_STA_DISCONNECT,
265   WLAN_CLIENT_CONNECT_EX,
266   WLAN_SWITCH_TO_SCC,
267   WLAN_SWITCH_TO_MCC,
268 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
269   WLAN_WDI_ENABLE,
270   WLAN_WDI_DISABLE,
271   IPA_WLAN_EVENT_MAX
272 };
273 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
274 enum ipa_wan_event {
275   WAN_UPSTREAM_ROUTE_ADD = IPA_WLAN_EVENT_MAX,
276   WAN_UPSTREAM_ROUTE_DEL,
277   WAN_EMBMS_CONNECT,
278 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
279   WAN_XLAT_CONNECT,
280   IPA_WAN_EVENT_MAX
281 };
282 enum ipa_ecm_event {
283 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
284   ECM_CONNECT = IPA_WAN_EVENT_MAX,
285   ECM_DISCONNECT,
286   IPA_ECM_EVENT_MAX,
287 };
288 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
289 enum ipa_tethering_stats_event {
290   IPA_TETHERING_STATS_UPDATE_STATS = IPA_ECM_EVENT_MAX,
291   IPA_TETHERING_STATS_UPDATE_NETWORK_STATS,
292   IPA_TETHERING_STATS_EVENT_MAX,
293 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
294   IPA_EVENT_MAX_NUM = IPA_TETHERING_STATS_EVENT_MAX
295 };
296 #define IPA_EVENT_MAX ((int) IPA_EVENT_MAX_NUM)
297 enum ipa_rm_resource_name {
298 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
299   IPA_RM_RESOURCE_PROD = 0,
300   IPA_RM_RESOURCE_Q6_PROD = IPA_RM_RESOURCE_PROD,
301   IPA_RM_RESOURCE_USB_PROD,
302   IPA_RM_RESOURCE_USB_DPL_DUMMY_PROD,
303 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
304   IPA_RM_RESOURCE_HSIC_PROD,
305   IPA_RM_RESOURCE_STD_ECM_PROD,
306   IPA_RM_RESOURCE_RNDIS_PROD,
307   IPA_RM_RESOURCE_WWAN_0_PROD,
308 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
309   IPA_RM_RESOURCE_WLAN_PROD,
310   IPA_RM_RESOURCE_ODU_ADAPT_PROD,
311   IPA_RM_RESOURCE_MHI_PROD,
312   IPA_RM_RESOURCE_PROD_MAX,
313 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
314   IPA_RM_RESOURCE_Q6_CONS = IPA_RM_RESOURCE_PROD_MAX,
315   IPA_RM_RESOURCE_USB_CONS,
316   IPA_RM_RESOURCE_USB_DPL_CONS,
317   IPA_RM_RESOURCE_HSIC_CONS,
318 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
319   IPA_RM_RESOURCE_WLAN_CONS,
320   IPA_RM_RESOURCE_APPS_CONS,
321   IPA_RM_RESOURCE_ODU_ADAPT_CONS,
322   IPA_RM_RESOURCE_MHI_CONS,
323 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
324   IPA_RM_RESOURCE_MAX
325 };
326 enum ipa_hw_type {
327   IPA_HW_None = 0,
328 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
329   IPA_HW_v1_0 = 1,
330   IPA_HW_v1_1 = 2,
331   IPA_HW_v2_0 = 3,
332   IPA_HW_v2_1 = 4,
333 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
334   IPA_HW_v2_5 = 5,
335   IPA_HW_v2_6 = IPA_HW_v2_5,
336   IPA_HW_v2_6L = 6,
337   IPA_HW_v3_0 = 10,
338 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
339   IPA_HW_v3_1 = 11,
340   IPA_HW_MAX
341 };
342 struct ipa_rule_attrib {
343 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
344   uint32_t attrib_mask;
345   uint16_t src_port_lo;
346   uint16_t src_port_hi;
347   uint16_t dst_port_lo;
348 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
349   uint16_t dst_port_hi;
350   uint8_t type;
351   uint8_t code;
352   uint8_t tos_value;
353 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
354   uint8_t tos_mask;
355   uint32_t spi;
356   uint16_t src_port;
357   uint16_t dst_port;
358 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
359   uint32_t meta_data;
360   uint32_t meta_data_mask;
361   uint8_t src_mac_addr[ETH_ALEN];
362   uint8_t src_mac_addr_mask[ETH_ALEN];
363 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
364   uint8_t dst_mac_addr[ETH_ALEN];
365   uint8_t dst_mac_addr_mask[ETH_ALEN];
366   uint16_t ether_type;
367   union {
368 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
369     struct {
370       uint8_t tos;
371       uint8_t protocol;
372       uint32_t src_addr;
373 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
374       uint32_t src_addr_mask;
375       uint32_t dst_addr;
376       uint32_t dst_addr_mask;
377     } v4;
378 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
379     struct {
380       uint8_t tc;
381       uint32_t flow_label;
382       uint8_t next_hdr;
383 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
384       uint32_t src_addr[4];
385       uint32_t src_addr_mask[4];
386       uint32_t dst_addr[4];
387       uint32_t dst_addr_mask[4];
388 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
389     } v6;
390   } u;
391 };
392 #define IPA_IPFLTR_NUM_MEQ_32_EQNS 2
393 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
394 #define IPA_IPFLTR_NUM_IHL_MEQ_32_EQNS 2
395 #define IPA_IPFLTR_NUM_MEQ_128_EQNS 2
396 #define IPA_IPFLTR_NUM_IHL_RANGE_16_EQNS 2
397 struct ipa_ipfltr_eq_16 {
398 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
399   int8_t offset;
400   uint16_t value;
401 };
402 struct ipa_ipfltr_eq_32 {
403 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
404   int8_t offset;
405   uint32_t value;
406 };
407 struct ipa_ipfltr_mask_eq_128 {
408 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
409   int8_t offset;
410   uint8_t mask[16];
411   uint8_t value[16];
412 };
413 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
414 struct ipa_ipfltr_mask_eq_32 {
415   int8_t offset;
416   uint32_t mask;
417   uint32_t value;
418 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
419 };
420 struct ipa_ipfltr_range_eq_16 {
421   int8_t offset;
422   uint16_t range_low;
423 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
424   uint16_t range_high;
425 };
426 struct ipa_ipfltri_rule_eq {
427   uint16_t rule_eq_bitmap;
428 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
429   uint8_t tos_eq_present;
430   uint8_t tos_eq;
431   uint8_t protocol_eq_present;
432   uint8_t protocol_eq;
433 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
434   uint8_t num_ihl_offset_range_16;
435   struct ipa_ipfltr_range_eq_16 ihl_offset_range_16[IPA_IPFLTR_NUM_IHL_RANGE_16_EQNS];
436   uint8_t num_offset_meq_32;
437   struct ipa_ipfltr_mask_eq_32 offset_meq_32[IPA_IPFLTR_NUM_MEQ_32_EQNS];
438 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
439   uint8_t tc_eq_present;
440   uint8_t tc_eq;
441   uint8_t fl_eq_present;
442   uint32_t fl_eq;
443 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
444   uint8_t ihl_offset_eq_16_present;
445   struct ipa_ipfltr_eq_16 ihl_offset_eq_16;
446   uint8_t ihl_offset_eq_32_present;
447   struct ipa_ipfltr_eq_32 ihl_offset_eq_32;
448 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
449   uint8_t num_ihl_offset_meq_32;
450   struct ipa_ipfltr_mask_eq_32 ihl_offset_meq_32[IPA_IPFLTR_NUM_IHL_MEQ_32_EQNS];
451   uint8_t num_offset_meq_128;
452   struct ipa_ipfltr_mask_eq_128 offset_meq_128[IPA_IPFLTR_NUM_MEQ_128_EQNS];
453 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
454   uint8_t metadata_meq32_present;
455   struct ipa_ipfltr_mask_eq_32 metadata_meq32;
456   uint8_t ipv4_frag_eq_present;
457 };
458 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
459 struct ipa_flt_rule {
460   uint8_t retain_hdr;
461   uint8_t to_uc;
462   enum ipa_flt_action action;
463 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
464   uint32_t rt_tbl_hdl;
465   struct ipa_rule_attrib attrib;
466   struct ipa_ipfltri_rule_eq eq_attrib;
467   uint32_t rt_tbl_idx;
468 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
469   uint8_t eq_attrib_type;
470   uint8_t max_prio;
471   uint8_t hashable;
472   uint16_t rule_id;
473 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
474 };
475 enum ipa_hdr_l2_type {
476   IPA_HDR_L2_NONE,
477   IPA_HDR_L2_ETHERNET_II,
478 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
479   IPA_HDR_L2_802_3,
480   IPA_HDR_L2_MAX,
481 };
482 enum ipa_hdr_proc_type {
483 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
484   IPA_HDR_PROC_NONE,
485   IPA_HDR_PROC_ETHII_TO_ETHII,
486   IPA_HDR_PROC_ETHII_TO_802_3,
487   IPA_HDR_PROC_802_3_TO_ETHII,
488 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
489   IPA_HDR_PROC_802_3_TO_802_3,
490   IPA_HDR_PROC_MAX,
491 };
492 struct ipa_rt_rule {
493 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
494   enum ipa_client_type dst;
495   uint32_t hdr_hdl;
496   uint32_t hdr_proc_ctx_hdl;
497   struct ipa_rule_attrib attrib;
498 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
499   uint8_t max_prio;
500   uint8_t hashable;
501   uint8_t retain_hdr;
502 };
503 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
504 struct ipa_hdr_add {
505   char name[IPA_RESOURCE_NAME_MAX];
506   uint8_t hdr[IPA_HDR_MAX_SIZE];
507   uint8_t hdr_len;
508 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
509   enum ipa_hdr_l2_type type;
510   uint8_t is_partial;
511   uint32_t hdr_hdl;
512   int status;
513 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
514   uint8_t is_eth2_ofst_valid;
515   uint16_t eth2_ofst;
516 };
517 struct ipa_ioc_add_hdr {
518 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
519   uint8_t commit;
520   uint8_t num_hdrs;
521   struct ipa_hdr_add hdr[0];
522 };
523 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
524 struct ipa_hdr_proc_ctx_add {
525   enum ipa_hdr_proc_type type;
526   uint32_t hdr_hdl;
527   uint32_t proc_ctx_hdl;
528 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
529   int status;
530 };
531 struct ipa_ioc_add_hdr_proc_ctx {
532   uint8_t commit;
533 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
534   uint8_t num_proc_ctxs;
535   struct ipa_hdr_proc_ctx_add proc_ctx[0];
536 };
537 struct ipa_ioc_copy_hdr {
538 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
539   char name[IPA_RESOURCE_NAME_MAX];
540   uint8_t hdr[IPA_HDR_MAX_SIZE];
541   uint8_t hdr_len;
542   enum ipa_hdr_l2_type type;
543 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
544   uint8_t is_partial;
545   uint8_t is_eth2_ofst_valid;
546   uint16_t eth2_ofst;
547 };
548 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
549 struct ipa_ioc_get_hdr {
550   char name[IPA_RESOURCE_NAME_MAX];
551   uint32_t hdl;
552 };
553 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
554 struct ipa_hdr_del {
555   uint32_t hdl;
556   int status;
557 };
558 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
559 struct ipa_ioc_del_hdr {
560   uint8_t commit;
561   uint8_t num_hdls;
562   struct ipa_hdr_del hdl[0];
563 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
564 };
565 struct ipa_hdr_proc_ctx_del {
566   uint32_t hdl;
567   int status;
568 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
569 };
570 struct ipa_ioc_del_hdr_proc_ctx {
571   uint8_t commit;
572   uint8_t num_hdls;
573 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
574   struct ipa_hdr_proc_ctx_del hdl[0];
575 };
576 struct ipa_rt_rule_add {
577   struct ipa_rt_rule rule;
578 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
579   uint8_t at_rear;
580   uint32_t rt_rule_hdl;
581   int status;
582 };
583 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
584 struct ipa_ioc_add_rt_rule {
585   uint8_t commit;
586   enum ipa_ip_type ip;
587   char rt_tbl_name[IPA_RESOURCE_NAME_MAX];
588 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
589   uint8_t num_rules;
590   struct ipa_rt_rule_add rules[0];
591 };
592 struct ipa_ioc_add_rt_rule_after {
593 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
594   uint8_t commit;
595   enum ipa_ip_type ip;
596   char rt_tbl_name[IPA_RESOURCE_NAME_MAX];
597   uint8_t num_rules;
598 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
599   uint32_t add_after_hdl;
600   struct ipa_rt_rule_add rules[0];
601 };
602 struct ipa_rt_rule_mdfy {
603 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
604   struct ipa_rt_rule rule;
605   uint32_t rt_rule_hdl;
606   int status;
607 };
608 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
609 struct ipa_ioc_mdfy_rt_rule {
610   uint8_t commit;
611   enum ipa_ip_type ip;
612   uint8_t num_rules;
613 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
614   struct ipa_rt_rule_mdfy rules[0];
615 };
616 struct ipa_rt_rule_del {
617   uint32_t hdl;
618 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
619   int status;
620 };
621 struct ipa_ioc_del_rt_rule {
622   uint8_t commit;
623 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
624   enum ipa_ip_type ip;
625   uint8_t num_hdls;
626   struct ipa_rt_rule_del hdl[0];
627 };
628 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
629 struct ipa_ioc_get_rt_tbl_indx {
630   enum ipa_ip_type ip;
631   char name[IPA_RESOURCE_NAME_MAX];
632   uint32_t idx;
633 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
634 };
635 struct ipa_flt_rule_add {
636   struct ipa_flt_rule rule;
637   uint8_t at_rear;
638 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
639   uint32_t flt_rule_hdl;
640   int status;
641 };
642 struct ipa_ioc_add_flt_rule {
643 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
644   uint8_t commit;
645   enum ipa_ip_type ip;
646   enum ipa_client_type ep;
647   uint8_t global;
648 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
649   uint8_t num_rules;
650   struct ipa_flt_rule_add rules[0];
651 };
652 struct ipa_ioc_add_flt_rule_after {
653 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
654   uint8_t commit;
655   enum ipa_ip_type ip;
656   enum ipa_client_type ep;
657   uint8_t num_rules;
658 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
659   uint32_t add_after_hdl;
660   struct ipa_flt_rule_add rules[0];
661 };
662 struct ipa_flt_rule_mdfy {
663 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
664   struct ipa_flt_rule rule;
665   uint32_t rule_hdl;
666   int status;
667 };
668 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
669 struct ipa_ioc_mdfy_flt_rule {
670   uint8_t commit;
671   enum ipa_ip_type ip;
672   uint8_t num_rules;
673 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
674   struct ipa_flt_rule_mdfy rules[0];
675 };
676 struct ipa_flt_rule_del {
677   uint32_t hdl;
678 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
679   int status;
680 };
681 struct ipa_ioc_del_flt_rule {
682   uint8_t commit;
683 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
684   enum ipa_ip_type ip;
685   uint8_t num_hdls;
686   struct ipa_flt_rule_del hdl[0];
687 };
688 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
689 struct ipa_ioc_get_rt_tbl {
690   enum ipa_ip_type ip;
691   char name[IPA_RESOURCE_NAME_MAX];
692   uint32_t hdl;
693 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
694 };
695 struct ipa_ioc_query_intf {
696   char name[IPA_RESOURCE_NAME_MAX];
697   uint32_t num_tx_props;
698 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
699   uint32_t num_rx_props;
700   uint32_t num_ext_props;
701   enum ipa_client_type excp_pipe;
702 };
703 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
704 struct ipa_ioc_tx_intf_prop {
705   enum ipa_ip_type ip;
706   struct ipa_rule_attrib attrib;
707   enum ipa_client_type dst_pipe;
708 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
709   enum ipa_client_type alt_dst_pipe;
710   char hdr_name[IPA_RESOURCE_NAME_MAX];
711   enum ipa_hdr_l2_type hdr_l2_type;
712 };
713 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
714 struct ipa_ioc_query_intf_tx_props {
715   char name[IPA_RESOURCE_NAME_MAX];
716   uint32_t num_tx_props;
717   struct ipa_ioc_tx_intf_prop tx[0];
718 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
719 };
720 struct ipa_ioc_ext_intf_prop {
721   enum ipa_ip_type ip;
722   struct ipa_ipfltri_rule_eq eq_attrib;
723 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
724   enum ipa_flt_action action;
725   uint32_t rt_tbl_idx;
726   uint8_t mux_id;
727   uint32_t filter_hdl;
728 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
729   uint8_t is_xlat_rule;
730   uint32_t rule_id;
731   uint8_t is_rule_hashable;
732 };
733 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
734 struct ipa_ioc_query_intf_ext_props {
735   char name[IPA_RESOURCE_NAME_MAX];
736   uint32_t num_ext_props;
737   struct ipa_ioc_ext_intf_prop ext[0];
738 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
739 };
740 struct ipa_ioc_rx_intf_prop {
741   enum ipa_ip_type ip;
742   struct ipa_rule_attrib attrib;
743 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
744   enum ipa_client_type src_pipe;
745   enum ipa_hdr_l2_type hdr_l2_type;
746 };
747 struct ipa_ioc_query_intf_rx_props {
748 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
749   char name[IPA_RESOURCE_NAME_MAX];
750   uint32_t num_rx_props;
751   struct ipa_ioc_rx_intf_prop rx[0];
752 };
753 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
754 struct ipa_ioc_nat_alloc_mem {
755   char dev_name[IPA_RESOURCE_NAME_MAX];
756   size_t size;
757   off_t offset;
758 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
759 };
760 struct ipa_ioc_v4_nat_init {
761   uint8_t tbl_index;
762   uint32_t ipv4_rules_offset;
763 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
764   uint32_t expn_rules_offset;
765   uint32_t index_offset;
766   uint32_t index_expn_offset;
767   uint16_t table_entries;
768 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
769   uint16_t expn_table_entries;
770   uint32_t ip_addr;
771 };
772 struct ipa_ioc_v4_nat_del {
773 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
774   uint8_t table_index;
775   uint32_t public_ip_addr;
776 };
777 struct ipa_ioc_nat_dma_one {
778 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
779   uint8_t table_index;
780   uint8_t base_addr;
781   uint32_t offset;
782   uint16_t data;
783 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
784 };
785 struct ipa_ioc_nat_dma_cmd {
786   uint8_t entries;
787   struct ipa_ioc_nat_dma_one dma[0];
788 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
789 };
790 struct ipa_msg_meta {
791   uint8_t msg_type;
792   uint8_t rsvd;
793 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
794   uint16_t msg_len;
795 };
796 struct ipa_wlan_msg {
797   char name[IPA_RESOURCE_NAME_MAX];
798 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
799   uint8_t mac_addr[IPA_MAC_ADDR_SIZE];
800 };
801 enum ipa_wlan_hdr_attrib_type {
802   WLAN_HDR_ATTRIB_MAC_ADDR,
803 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
804   WLAN_HDR_ATTRIB_STA_ID
805 };
806 struct ipa_wlan_hdr_attrib_val {
807   enum ipa_wlan_hdr_attrib_type attrib_type;
808 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
809   uint8_t offset;
810   union {
811     uint8_t mac_addr[IPA_MAC_ADDR_SIZE];
812     uint8_t sta_id;
813 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
814   } u;
815 };
816 struct ipa_wlan_msg_ex {
817   char name[IPA_RESOURCE_NAME_MAX];
818 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
819   uint8_t num_of_attribs;
820   struct ipa_wlan_hdr_attrib_val attribs[0];
821 };
822 struct ipa_ecm_msg {
823 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
824   char name[IPA_RESOURCE_NAME_MAX];
825   int ifindex;
826 };
827 struct ipa_wan_msg {
828 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
829   char upstream_ifname[IPA_RESOURCE_NAME_MAX];
830   char tethered_ifname[IPA_RESOURCE_NAME_MAX];
831   enum ipa_ip_type ip;
832 };
833 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
834 struct ipa_ioc_rm_dependency {
835   enum ipa_rm_resource_name resource_name;
836   enum ipa_rm_resource_name depends_on_name;
837 };
838 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
839 struct ipa_ioc_generate_flt_eq {
840   enum ipa_ip_type ip;
841   struct ipa_rule_attrib attrib;
842   struct ipa_ipfltri_rule_eq eq_attrib;
843 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
844 };
845 struct ipa_ioc_write_qmapid {
846   enum ipa_client_type client;
847   uint8_t qmap_id;
848 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
849 };
850 enum ipacm_client_enum {
851   IPACM_CLIENT_USB = 1,
852   IPACM_CLIENT_WLAN,
853 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
854   IPACM_CLIENT_MAX
855 };
856 #define IPA_IOC_ADD_HDR _IOWR(IPA_IOC_MAGIC, IPA_IOCTL_ADD_HDR, struct ipa_ioc_add_hdr *)
857 #define IPA_IOC_DEL_HDR _IOWR(IPA_IOC_MAGIC, IPA_IOCTL_DEL_HDR, struct ipa_ioc_del_hdr *)
858 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
859 #define IPA_IOC_ADD_RT_RULE _IOWR(IPA_IOC_MAGIC, IPA_IOCTL_ADD_RT_RULE, struct ipa_ioc_add_rt_rule *)
860 #define IPA_IOC_ADD_RT_RULE_AFTER _IOWR(IPA_IOC_MAGIC, IPA_IOCTL_ADD_RT_RULE_AFTER, struct ipa_ioc_add_rt_rule_after *)
861 #define IPA_IOC_DEL_RT_RULE _IOWR(IPA_IOC_MAGIC, IPA_IOCTL_DEL_RT_RULE, struct ipa_ioc_del_rt_rule *)
862 #define IPA_IOC_ADD_FLT_RULE _IOWR(IPA_IOC_MAGIC, IPA_IOCTL_ADD_FLT_RULE, struct ipa_ioc_add_flt_rule *)
863 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
864 #define IPA_IOC_ADD_FLT_RULE_AFTER _IOWR(IPA_IOC_MAGIC, IPA_IOCTL_ADD_FLT_RULE_AFTER, struct ipa_ioc_add_flt_rule_after *)
865 #define IPA_IOC_DEL_FLT_RULE _IOWR(IPA_IOC_MAGIC, IPA_IOCTL_DEL_FLT_RULE, struct ipa_ioc_del_flt_rule *)
866 #define IPA_IOC_COMMIT_HDR _IO(IPA_IOC_MAGIC, IPA_IOCTL_COMMIT_HDR)
867 #define IPA_IOC_RESET_HDR _IO(IPA_IOC_MAGIC, IPA_IOCTL_RESET_HDR)
868 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
869 #define IPA_IOC_COMMIT_RT _IOW(IPA_IOC_MAGIC, IPA_IOCTL_COMMIT_RT, enum ipa_ip_type)
870 #define IPA_IOC_RESET_RT _IOW(IPA_IOC_MAGIC, IPA_IOCTL_RESET_RT, enum ipa_ip_type)
871 #define IPA_IOC_COMMIT_FLT _IOW(IPA_IOC_MAGIC, IPA_IOCTL_COMMIT_FLT, enum ipa_ip_type)
872 #define IPA_IOC_RESET_FLT _IOW(IPA_IOC_MAGIC, IPA_IOCTL_RESET_FLT, enum ipa_ip_type)
873 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
874 #define IPA_IOC_DUMP _IO(IPA_IOC_MAGIC, IPA_IOCTL_DUMP)
875 #define IPA_IOC_GET_RT_TBL _IOWR(IPA_IOC_MAGIC, IPA_IOCTL_GET_RT_TBL, struct ipa_ioc_get_rt_tbl *)
876 #define IPA_IOC_PUT_RT_TBL _IOW(IPA_IOC_MAGIC, IPA_IOCTL_PUT_RT_TBL, uint32_t)
877 #define IPA_IOC_COPY_HDR _IOWR(IPA_IOC_MAGIC, IPA_IOCTL_COPY_HDR, struct ipa_ioc_copy_hdr *)
878 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
879 #define IPA_IOC_QUERY_INTF _IOWR(IPA_IOC_MAGIC, IPA_IOCTL_QUERY_INTF, struct ipa_ioc_query_intf *)
880 #define IPA_IOC_QUERY_INTF_TX_PROPS _IOWR(IPA_IOC_MAGIC, IPA_IOCTL_QUERY_INTF_TX_PROPS, struct ipa_ioc_query_intf_tx_props *)
881 #define IPA_IOC_QUERY_INTF_RX_PROPS _IOWR(IPA_IOC_MAGIC, IPA_IOCTL_QUERY_INTF_RX_PROPS, struct ipa_ioc_query_intf_rx_props *)
882 #define IPA_IOC_QUERY_INTF_EXT_PROPS _IOWR(IPA_IOC_MAGIC, IPA_IOCTL_QUERY_INTF_EXT_PROPS, struct ipa_ioc_query_intf_ext_props *)
883 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
884 #define IPA_IOC_GET_HDR _IOWR(IPA_IOC_MAGIC, IPA_IOCTL_GET_HDR, struct ipa_ioc_get_hdr *)
885 #define IPA_IOC_PUT_HDR _IOW(IPA_IOC_MAGIC, IPA_IOCTL_PUT_HDR, uint32_t)
886 #define IPA_IOC_ALLOC_NAT_MEM _IOWR(IPA_IOC_MAGIC, IPA_IOCTL_ALLOC_NAT_MEM, struct ipa_ioc_nat_alloc_mem *)
887 #define IPA_IOC_V4_INIT_NAT _IOWR(IPA_IOC_MAGIC, IPA_IOCTL_V4_INIT_NAT, struct ipa_ioc_v4_nat_init *)
888 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
889 #define IPA_IOC_NAT_DMA _IOWR(IPA_IOC_MAGIC, IPA_IOCTL_NAT_DMA, struct ipa_ioc_nat_dma_cmd *)
890 #define IPA_IOC_V4_DEL_NAT _IOWR(IPA_IOC_MAGIC, IPA_IOCTL_V4_DEL_NAT, struct ipa_ioc_v4_nat_del *)
891 #define IPA_IOC_GET_NAT_OFFSET _IOWR(IPA_IOC_MAGIC, IPA_IOCTL_GET_NAT_OFFSET, uint32_t *)
892 #define IPA_IOC_SET_FLT _IOW(IPA_IOC_MAGIC, IPA_IOCTL_SET_FLT, uint32_t)
893 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
894 #define IPA_IOC_PULL_MSG _IOWR(IPA_IOC_MAGIC, IPA_IOCTL_PULL_MSG, struct ipa_msg_meta *)
895 #define IPA_IOC_RM_ADD_DEPENDENCY _IOWR(IPA_IOC_MAGIC, IPA_IOCTL_RM_ADD_DEPENDENCY, struct ipa_ioc_rm_dependency *)
896 #define IPA_IOC_RM_DEL_DEPENDENCY _IOWR(IPA_IOC_MAGIC, IPA_IOCTL_RM_DEL_DEPENDENCY, struct ipa_ioc_rm_dependency *)
897 #define IPA_IOC_GENERATE_FLT_EQ _IOWR(IPA_IOC_MAGIC, IPA_IOCTL_GENERATE_FLT_EQ, struct ipa_ioc_generate_flt_eq *)
898 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
899 #define IPA_IOC_QUERY_EP_MAPPING _IOR(IPA_IOC_MAGIC, IPA_IOCTL_QUERY_EP_MAPPING, uint32_t)
900 #define IPA_IOC_QUERY_RT_TBL_INDEX _IOWR(IPA_IOC_MAGIC, IPA_IOCTL_QUERY_RT_TBL_INDEX, struct ipa_ioc_get_rt_tbl_indx *)
901 #define IPA_IOC_WRITE_QMAPID _IOWR(IPA_IOC_MAGIC, IPA_IOCTL_WRITE_QMAPID, struct ipa_ioc_write_qmapid *)
902 #define IPA_IOC_MDFY_FLT_RULE _IOWR(IPA_IOC_MAGIC, IPA_IOCTL_MDFY_FLT_RULE, struct ipa_ioc_mdfy_flt_rule *)
903 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
904 #define IPA_IOC_MDFY_RT_RULE _IOWR(IPA_IOC_MAGIC, IPA_IOCTL_MDFY_RT_RULE, struct ipa_ioc_mdfy_rt_rule *)
905 #define IPA_IOC_NOTIFY_WAN_UPSTREAM_ROUTE_ADD _IOWR(IPA_IOC_MAGIC, IPA_IOCTL_NOTIFY_WAN_UPSTREAM_ROUTE_ADD, struct ipa_wan_msg *)
906 #define IPA_IOC_NOTIFY_WAN_UPSTREAM_ROUTE_DEL _IOWR(IPA_IOC_MAGIC, IPA_IOCTL_NOTIFY_WAN_UPSTREAM_ROUTE_DEL, struct ipa_wan_msg *)
907 #define IPA_IOC_NOTIFY_WAN_EMBMS_CONNECTED _IOWR(IPA_IOC_MAGIC, IPA_IOCTL_NOTIFY_WAN_EMBMS_CONNECTED, struct ipa_wan_msg *)
908 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
909 #define IPA_IOC_ADD_HDR_PROC_CTX _IOWR(IPA_IOC_MAGIC, IPA_IOCTL_ADD_HDR_PROC_CTX, struct ipa_ioc_add_hdr_proc_ctx *)
910 #define IPA_IOC_DEL_HDR_PROC_CTX _IOWR(IPA_IOC_MAGIC, IPA_IOCTL_DEL_HDR_PROC_CTX, struct ipa_ioc_del_hdr_proc_ctx *)
911 #define IPA_IOC_GET_HW_VERSION _IOWR(IPA_IOC_MAGIC, IPA_IOCTL_GET_HW_VERSION, enum ipa_hw_type *)
912 #define TETH_BRIDGE_IOC_MAGIC 0xCE
913 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
914 #define TETH_BRIDGE_IOCTL_SET_BRIDGE_MODE 0
915 #define TETH_BRIDGE_IOCTL_SET_AGGR_PARAMS 1
916 #define TETH_BRIDGE_IOCTL_GET_AGGR_PARAMS 2
917 #define TETH_BRIDGE_IOCTL_GET_AGGR_CAPABILITIES 3
918 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
919 #define TETH_BRIDGE_IOCTL_MAX 4
920 enum teth_link_protocol_type {
921   TETH_LINK_PROTOCOL_IP,
922   TETH_LINK_PROTOCOL_ETHERNET,
923 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
924   TETH_LINK_PROTOCOL_MAX,
925 };
926 enum teth_aggr_protocol_type {
927   TETH_AGGR_PROTOCOL_NONE,
928 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
929   TETH_AGGR_PROTOCOL_MBIM,
930   TETH_AGGR_PROTOCOL_TLP,
931   TETH_AGGR_PROTOCOL_MAX,
932 };
933 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
934 struct teth_aggr_params_link {
935   enum teth_aggr_protocol_type aggr_prot;
936   uint32_t max_transfer_size_byte;
937   uint32_t max_datagrams;
938 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
939 };
940 struct teth_aggr_params {
941   struct teth_aggr_params_link ul;
942   struct teth_aggr_params_link dl;
943 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
944 };
945 struct teth_aggr_capabilities {
946   uint16_t num_protocols;
947   struct teth_aggr_params_link prot_caps[0];
948 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
949 };
950 struct teth_ioc_set_bridge_mode {
951   enum teth_link_protocol_type link_protocol;
952   uint16_t lcid;
953 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
954 };
955 struct teth_ioc_aggr_params {
956   struct teth_aggr_params aggr_params;
957   uint16_t lcid;
958 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
959 };
960 #define TETH_BRIDGE_IOC_SET_BRIDGE_MODE _IOW(TETH_BRIDGE_IOC_MAGIC, TETH_BRIDGE_IOCTL_SET_BRIDGE_MODE, struct teth_ioc_set_bridge_mode *)
961 #define TETH_BRIDGE_IOC_SET_AGGR_PARAMS _IOW(TETH_BRIDGE_IOC_MAGIC, TETH_BRIDGE_IOCTL_SET_AGGR_PARAMS, struct teth_ioc_aggr_params *)
962 #define TETH_BRIDGE_IOC_GET_AGGR_PARAMS _IOR(TETH_BRIDGE_IOC_MAGIC, TETH_BRIDGE_IOCTL_GET_AGGR_PARAMS, struct teth_ioc_aggr_params *)
963 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
964 #define TETH_BRIDGE_IOC_GET_AGGR_CAPABILITIES _IOWR(TETH_BRIDGE_IOC_MAGIC, TETH_BRIDGE_IOCTL_GET_AGGR_CAPABILITIES, struct teth_aggr_capabilities *)
965 #define ODU_BRIDGE_IOC_MAGIC 0xCD
966 #define ODU_BRIDGE_IOCTL_SET_MODE 0
967 #define ODU_BRIDGE_IOCTL_SET_LLV6_ADDR 1
968 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
969 #define ODU_BRIDGE_IOCTL_MAX 2
970 enum odu_bridge_mode {
971   ODU_BRIDGE_MODE_ROUTER,
972   ODU_BRIDGE_MODE_BRIDGE,
973 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
974   ODU_BRIDGE_MODE_MAX,
975 };
976 #define ODU_BRIDGE_IOC_SET_MODE _IOW(ODU_BRIDGE_IOC_MAGIC, ODU_BRIDGE_IOCTL_SET_MODE, enum odu_bridge_mode)
977 #define ODU_BRIDGE_IOC_SET_LLV6_ADDR _IOW(ODU_BRIDGE_IOC_MAGIC, ODU_BRIDGE_IOCTL_SET_LLV6_ADDR, struct in6_addr *)
978 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
979 #endif
980 
981