• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * This file is auto-generated. Modifications will be lost.
3  *
4  * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
5  * for more information.
6  */
7 #ifndef _RMNET_IPA_FD_IOCTL_H
8 #define _RMNET_IPA_FD_IOCTL_H
9 #include <linux/ioctl.h>
10 #include <linux/ipa_qmi_service_v01.h>
11 #include <linux/msm_ipa.h>
12 #define WAN_IOC_MAGIC 0x69
13 #define WAN_IOCTL_ADD_FLT_RULE 0
14 #define WAN_IOCTL_ADD_FLT_INDEX 1
15 #define WAN_IOCTL_VOTE_FOR_BW_MBPS 2
16 #define WAN_IOCTL_POLL_TETHERING_STATS 3
17 #define WAN_IOCTL_SET_DATA_QUOTA 4
18 #define WAN_IOCTL_SET_TETHER_CLIENT_PIPE 5
19 #define WAN_IOCTL_QUERY_TETHER_STATS 6
20 #define WAN_IOCTL_RESET_TETHER_STATS 7
21 #define WAN_IOCTL_QUERY_DL_FILTER_STATS 8
22 #define WAN_IOCTL_ADD_FLT_RULE_EX 9
23 #define WAN_IOCTL_QUERY_TETHER_STATS_ALL 10
24 #define WAN_IOCTL_NOTIFY_WAN_STATE 11
25 #define WAN_IOCTL_ADD_UL_FLT_RULE 12
26 #define WAN_IOCTL_ENABLE_PER_CLIENT_STATS 13
27 #define WAN_IOCTL_QUERY_PER_CLIENT_STATS 14
28 #define WAN_IOCTL_SET_LAN_CLIENT_INFO 15
29 #define WAN_IOCTL_CLEAR_LAN_CLIENT_INFO 16
30 #define WAN_IOCTL_SEND_LAN_CLIENT_MSG 17
31 #define WAN_IOCTL_ADD_OFFLOAD_CONNECTION 18
32 #define WAN_IOCTL_RMV_OFFLOAD_CONNECTION 19
33 #ifndef IFNAMSIZ
34 #define IFNAMSIZ 16
35 #endif
36 struct wan_ioctl_poll_tethering_stats {
37   uint64_t polling_interval_secs;
38   uint8_t reset_stats;
39 };
40 struct wan_ioctl_set_data_quota {
41   char interface_name[IFNAMSIZ];
42   uint64_t quota_mbytes;
43   uint8_t set_quota;
44 };
45 struct wan_ioctl_set_tether_client_pipe {
46   enum ipacm_client_enum ipa_client;
47   uint8_t reset_client;
48   uint32_t ul_src_pipe_len;
49   uint32_t ul_src_pipe_list[QMI_IPA_MAX_PIPES_V01];
50   uint32_t dl_dst_pipe_len;
51   uint32_t dl_dst_pipe_list[QMI_IPA_MAX_PIPES_V01];
52 };
53 struct wan_ioctl_query_tether_stats {
54   char upstreamIface[IFNAMSIZ];
55   char tetherIface[IFNAMSIZ];
56   enum ipacm_client_enum ipa_client;
57   uint64_t ipv4_tx_packets;
58   uint64_t ipv4_tx_bytes;
59   uint64_t ipv4_rx_packets;
60   uint64_t ipv4_rx_bytes;
61   uint64_t ipv6_tx_packets;
62   uint64_t ipv6_tx_bytes;
63   uint64_t ipv6_rx_packets;
64   uint64_t ipv6_rx_bytes;
65 };
66 struct wan_ioctl_query_tether_stats_all {
67   char upstreamIface[IFNAMSIZ];
68   enum ipacm_client_enum ipa_client;
69   uint8_t reset_stats;
70   uint64_t tx_bytes;
71   uint64_t rx_bytes;
72 };
73 struct wan_ioctl_reset_tether_stats {
74   char upstreamIface[IFNAMSIZ];
75   uint8_t reset_stats;
76 };
77 struct wan_ioctl_query_dl_filter_stats {
78   uint8_t reset_stats;
79   struct ipa_get_data_stats_resp_msg_v01 stats_resp;
80   uint32_t index;
81 };
82 struct wan_ioctl_notify_wan_state {
83   uint8_t up;
84 };
85 struct wan_ioctl_send_lan_client_msg {
86   struct ipa_lan_client_msg lan_client;
87   enum ipa_per_client_stats_event client_event;
88 };
89 struct wan_ioctl_lan_client_info {
90   enum ipacm_per_client_device_type device_type;
91   uint8_t mac[IPA_MAC_ADDR_SIZE];
92   uint8_t client_init;
93   int8_t client_idx;
94   uint8_t hdr_len;
95   enum ipa_client_type ul_src_pipe;
96 };
97 struct wan_ioctl_per_client_info {
98   uint8_t mac[IPA_MAC_ADDR_SIZE];
99   uint64_t ipv4_tx_bytes;
100   uint64_t ipv4_rx_bytes;
101   uint64_t ipv6_tx_bytes;
102   uint64_t ipv6_rx_bytes;
103 };
104 struct wan_ioctl_query_per_client_stats {
105   enum ipacm_per_client_device_type device_type;
106   uint8_t reset_stats;
107   uint8_t disconnect_clnt;
108   uint8_t num_clients;
109   struct wan_ioctl_per_client_info client_info[IPA_MAX_NUM_HW_PATH_CLIENTS];
110 };
111 #define WAN_IOC_ADD_FLT_RULE _IOWR(WAN_IOC_MAGIC, WAN_IOCTL_ADD_FLT_RULE, struct ipa_install_fltr_rule_req_msg_v01 *)
112 #define WAN_IOC_ADD_FLT_RULE_INDEX _IOWR(WAN_IOC_MAGIC, WAN_IOCTL_ADD_FLT_INDEX, struct ipa_fltr_installed_notif_req_msg_v01 *)
113 #define WAN_IOC_VOTE_FOR_BW_MBPS _IOWR(WAN_IOC_MAGIC, WAN_IOCTL_VOTE_FOR_BW_MBPS, uint32_t *)
114 #define WAN_IOC_POLL_TETHERING_STATS _IOWR(WAN_IOC_MAGIC, WAN_IOCTL_POLL_TETHERING_STATS, struct wan_ioctl_poll_tethering_stats *)
115 #define WAN_IOC_SET_DATA_QUOTA _IOWR(WAN_IOC_MAGIC, WAN_IOCTL_SET_DATA_QUOTA, struct wan_ioctl_set_data_quota *)
116 #define WAN_IOC_SET_TETHER_CLIENT_PIPE _IOWR(WAN_IOC_MAGIC, WAN_IOCTL_SET_TETHER_CLIENT_PIPE, struct wan_ioctl_set_tether_client_pipe *)
117 #define WAN_IOC_QUERY_TETHER_STATS _IOWR(WAN_IOC_MAGIC, WAN_IOCTL_QUERY_TETHER_STATS, struct wan_ioctl_query_tether_stats *)
118 #define WAN_IOC_RESET_TETHER_STATS _IOWR(WAN_IOC_MAGIC, WAN_IOCTL_RESET_TETHER_STATS, struct wan_ioctl_reset_tether_stats *)
119 #define WAN_IOC_QUERY_DL_FILTER_STATS _IOWR(WAN_IOC_MAGIC, WAN_IOCTL_QUERY_DL_FILTER_STATS, struct wan_ioctl_query_dl_filter_stats *)
120 #define WAN_IOC_ADD_FLT_RULE_EX _IOWR(WAN_IOC_MAGIC, WAN_IOCTL_ADD_FLT_RULE_EX, struct ipa_install_fltr_rule_req_ex_msg_v01 *)
121 #define WAN_IOC_QUERY_TETHER_STATS_ALL _IOWR(WAN_IOC_MAGIC, WAN_IOCTL_QUERY_TETHER_STATS_ALL, struct wan_ioctl_query_tether_stats_all *)
122 #define WAN_IOC_NOTIFY_WAN_STATE _IOWR(WAN_IOC_MAGIC, WAN_IOCTL_NOTIFY_WAN_STATE, struct wan_ioctl_notify_wan_state *)
123 #define WAN_IOC_ADD_UL_FLT_RULE _IOWR(WAN_IOC_MAGIC, WAN_IOCTL_ADD_UL_FLT_RULE, struct ipa_configure_ul_firewall_rules_req_msg_v01 *)
124 #define WAN_IOC_ENABLE_PER_CLIENT_STATS _IOWR(WAN_IOC_MAGIC, WAN_IOCTL_ENABLE_PER_CLIENT_STATS, bool *)
125 #define WAN_IOC_QUERY_PER_CLIENT_STATS _IOWR(WAN_IOC_MAGIC, WAN_IOCTL_QUERY_PER_CLIENT_STATS, struct wan_ioctl_query_per_client_stats *)
126 #define WAN_IOC_SET_LAN_CLIENT_INFO _IOWR(WAN_IOC_MAGIC, WAN_IOCTL_SET_LAN_CLIENT_INFO, struct wan_ioctl_lan_client_info *)
127 #define WAN_IOC_SEND_LAN_CLIENT_MSG _IOWR(WAN_IOC_MAGIC, WAN_IOCTL_SEND_LAN_CLIENT_MSG, struct wan_ioctl_send_lan_client_msg *)
128 #define WAN_IOC_CLEAR_LAN_CLIENT_INFO _IOWR(WAN_IOC_MAGIC, WAN_IOCTL_CLEAR_LAN_CLIENT_INFO, struct wan_ioctl_lan_client_info *)
129 #define WAN_IOC_ADD_OFFLOAD_CONNECTION _IOWR(WAN_IOC_MAGIC, WAN_IOCTL_ADD_OFFLOAD_CONNECTION, struct ipa_add_offload_connection_req_msg_v01 *)
130 #define WAN_IOC_RMV_OFFLOAD_CONNECTION _IOWR(WAN_IOC_MAGIC, WAN_IOCTL_RMV_OFFLOAD_CONNECTION, struct ipa_remove_offload_connection_req_msg_v01 *)
131 #endif
132