Merge "msm: ipa3: fix compatibility with ipa user space"
This commit is contained in:
commit
9875d5f19c
1 changed files with 136 additions and 61 deletions
|
@ -16,61 +16,82 @@
|
|||
#define IPA_IOC_MAGIC 0xCF
|
||||
|
||||
/**
|
||||
* IPA device full path
|
||||
*/
|
||||
#define IPA_DEV_NAME "/dev/ipa"
|
||||
|
||||
/**
|
||||
* IPA NAT table character device name
|
||||
*/
|
||||
#define IPA_NAT_DEV_NAME "ipaNatTable"
|
||||
|
||||
/**
|
||||
* IPA IPv6CT table character device name
|
||||
*/
|
||||
#define IPA_IPV6CT_DEV_NAME "ipaIpv6CTTable"
|
||||
|
||||
/**
|
||||
* name of the default routing tables for v4 and v6
|
||||
*/
|
||||
#define IPA_DFLT_RT_TBL_NAME "ipa_dflt_rt"
|
||||
|
||||
/**
|
||||
* the commands supported by IPA driver
|
||||
* commands supported by IPA driver
|
||||
*/
|
||||
#define IPA_IOCTL_ADD_HDR 0
|
||||
#define IPA_IOCTL_DEL_HDR 1
|
||||
#define IPA_IOCTL_ADD_RT_RULE 2
|
||||
#define IPA_IOCTL_DEL_RT_RULE 3
|
||||
#define IPA_IOCTL_ADD_FLT_RULE 4
|
||||
#define IPA_IOCTL_DEL_FLT_RULE 5
|
||||
#define IPA_IOCTL_COMMIT_HDR 6
|
||||
#define IPA_IOCTL_RESET_HDR 7
|
||||
#define IPA_IOCTL_COMMIT_RT 8
|
||||
#define IPA_IOCTL_RESET_RT 9
|
||||
#define IPA_IOCTL_COMMIT_FLT 10
|
||||
#define IPA_IOCTL_RESET_FLT 11
|
||||
#define IPA_IOCTL_DUMP 12
|
||||
#define IPA_IOCTL_GET_RT_TBL 13
|
||||
#define IPA_IOCTL_PUT_RT_TBL 14
|
||||
#define IPA_IOCTL_COPY_HDR 15
|
||||
#define IPA_IOCTL_QUERY_INTF 16
|
||||
#define IPA_IOCTL_QUERY_INTF_TX_PROPS 17
|
||||
#define IPA_IOCTL_QUERY_INTF_RX_PROPS 18
|
||||
#define IPA_IOCTL_GET_HDR 19
|
||||
#define IPA_IOCTL_PUT_HDR 20
|
||||
#define IPA_IOCTL_SET_FLT 21
|
||||
#define IPA_IOCTL_ALLOC_NAT_MEM 22
|
||||
#define IPA_IOCTL_V4_INIT_NAT 23
|
||||
#define IPA_IOCTL_NAT_DMA 24
|
||||
#define IPA_IOCTL_V4_DEL_NAT 26
|
||||
#define IPA_IOCTL_PULL_MSG 27
|
||||
#define IPA_IOCTL_GET_NAT_OFFSET 28
|
||||
#define IPA_IOCTL_RM_ADD_DEPENDENCY 29
|
||||
#define IPA_IOCTL_RM_DEL_DEPENDENCY 30
|
||||
#define IPA_IOCTL_GENERATE_FLT_EQ 31
|
||||
#define IPA_IOCTL_QUERY_INTF_EXT_PROPS 32
|
||||
#define IPA_IOCTL_QUERY_EP_MAPPING 33
|
||||
#define IPA_IOCTL_QUERY_RT_TBL_INDEX 34
|
||||
#define IPA_IOCTL_WRITE_QMAPID 35
|
||||
#define IPA_IOCTL_MDFY_FLT_RULE 36
|
||||
#define IPA_IOCTL_NOTIFY_WAN_UPSTREAM_ROUTE_ADD 37
|
||||
#define IPA_IOCTL_NOTIFY_WAN_UPSTREAM_ROUTE_DEL 38
|
||||
#define IPA_IOCTL_NOTIFY_WAN_EMBMS_CONNECTED 39
|
||||
#define IPA_IOCTL_ADD_HDR_PROC_CTX 40
|
||||
#define IPA_IOCTL_DEL_HDR_PROC_CTX 41
|
||||
#define IPA_IOCTL_MDFY_RT_RULE 42
|
||||
#define IPA_IOCTL_ADD_RT_RULE_AFTER 43
|
||||
#define IPA_IOCTL_ADD_FLT_RULE_AFTER 44
|
||||
#define IPA_IOCTL_GET_HW_VERSION 45
|
||||
#define IPA_IOCTL_ADD_RT_RULE_EXT 46
|
||||
#define IPA_IOCTL_NAT_MODIFY_PDN 47
|
||||
#define IPA_IOCTL_MAX 48
|
||||
#define IPA_IOCTL_ADD_HDR 0
|
||||
#define IPA_IOCTL_DEL_HDR 1
|
||||
#define IPA_IOCTL_ADD_RT_RULE 2
|
||||
#define IPA_IOCTL_DEL_RT_RULE 3
|
||||
#define IPA_IOCTL_ADD_FLT_RULE 4
|
||||
#define IPA_IOCTL_DEL_FLT_RULE 5
|
||||
#define IPA_IOCTL_COMMIT_HDR 6
|
||||
#define IPA_IOCTL_RESET_HDR 7
|
||||
#define IPA_IOCTL_COMMIT_RT 8
|
||||
#define IPA_IOCTL_RESET_RT 9
|
||||
#define IPA_IOCTL_COMMIT_FLT 10
|
||||
#define IPA_IOCTL_RESET_FLT 11
|
||||
#define IPA_IOCTL_DUMP 12
|
||||
#define IPA_IOCTL_GET_RT_TBL 13
|
||||
#define IPA_IOCTL_PUT_RT_TBL 14
|
||||
#define IPA_IOCTL_COPY_HDR 15
|
||||
#define IPA_IOCTL_QUERY_INTF 16
|
||||
#define IPA_IOCTL_QUERY_INTF_TX_PROPS 17
|
||||
#define IPA_IOCTL_QUERY_INTF_RX_PROPS 18
|
||||
#define IPA_IOCTL_GET_HDR 19
|
||||
#define IPA_IOCTL_PUT_HDR 20
|
||||
#define IPA_IOCTL_SET_FLT 21
|
||||
#define IPA_IOCTL_ALLOC_NAT_MEM 22
|
||||
#define IPA_IOCTL_V4_INIT_NAT 23
|
||||
#define IPA_IOCTL_TABLE_DMA_CMD 24
|
||||
#define IPA_IOCTL_NAT_DMA IPA_IOCTL_TABLE_DMA_CMD
|
||||
#define IPA_IOCTL_INIT_IPV6CT_TABLE 25
|
||||
#define IPA_IOCTL_V4_DEL_NAT 26
|
||||
#define IPA_IOCTL_PULL_MSG 27
|
||||
#define IPA_IOCTL_GET_NAT_OFFSET 28
|
||||
#define IPA_IOCTL_RM_ADD_DEPENDENCY 29
|
||||
#define IPA_IOCTL_RM_DEL_DEPENDENCY 30
|
||||
#define IPA_IOCTL_GENERATE_FLT_EQ 31
|
||||
#define IPA_IOCTL_QUERY_INTF_EXT_PROPS 32
|
||||
#define IPA_IOCTL_QUERY_EP_MAPPING 33
|
||||
#define IPA_IOCTL_QUERY_RT_TBL_INDEX 34
|
||||
#define IPA_IOCTL_WRITE_QMAPID 35
|
||||
#define IPA_IOCTL_MDFY_FLT_RULE 36
|
||||
#define IPA_IOCTL_NOTIFY_WAN_UPSTREAM_ROUTE_ADD 37
|
||||
#define IPA_IOCTL_NOTIFY_WAN_UPSTREAM_ROUTE_DEL 38
|
||||
#define IPA_IOCTL_NOTIFY_WAN_EMBMS_CONNECTED 39
|
||||
#define IPA_IOCTL_ADD_HDR_PROC_CTX 40
|
||||
#define IPA_IOCTL_DEL_HDR_PROC_CTX 41
|
||||
#define IPA_IOCTL_MDFY_RT_RULE 42
|
||||
#define IPA_IOCTL_ADD_RT_RULE_AFTER 43
|
||||
#define IPA_IOCTL_ADD_FLT_RULE_AFTER 44
|
||||
#define IPA_IOCTL_GET_HW_VERSION 45
|
||||
#define IPA_IOCTL_ADD_RT_RULE_EXT 46
|
||||
#define IPA_IOCTL_NAT_MODIFY_PDN 47
|
||||
#define IPA_IOCTL_ALLOC_NAT_TABLE 48
|
||||
#define IPA_IOCTL_ALLOC_IPV6CT_TABLE 49
|
||||
#define IPA_IOCTL_DEL_NAT_TABLE 50
|
||||
#define IPA_IOCTL_DEL_IPV6CT_TABLE 51
|
||||
#define IPA_IOCTL_MAX 52
|
||||
|
||||
/**
|
||||
* max size of the header to be inserted
|
||||
|
@ -1314,15 +1335,26 @@ struct ipa_ioc_nat_alloc_mem {
|
|||
};
|
||||
|
||||
/**
|
||||
* struct ipa_ioc_v4_nat_init - nat table initialization
|
||||
* parameters
|
||||
* struct ipa_ioc_nat_ipv6ct_table_alloc - NAT/IPv6CT table memory allocation
|
||||
* properties
|
||||
* @size: input parameter, size of table in bytes
|
||||
* @offset: output parameter, offset into page in case of system memory
|
||||
*/
|
||||
struct ipa_ioc_nat_ipv6ct_table_alloc {
|
||||
size_t size;
|
||||
off_t offset;
|
||||
};
|
||||
|
||||
/**
|
||||
* struct ipa_ioc_v4_nat_init - nat table initialization parameters
|
||||
* @tbl_index: input parameter, index of the table
|
||||
* @ipv4_rules_offset: input parameter, ipv4 rules address offset
|
||||
* @expn_rules_offset: input parameter, ipv4 expansion rules address offset
|
||||
* @index_offset: input parameter, index rules offset
|
||||
* @index_expn_offset: input parameter, index expansion rules offset
|
||||
* @table_entries: input parameter, ipv4 rules table size in entries
|
||||
* @expn_table_entries: input parameter, ipv4 expansion rules table size
|
||||
* @table_entries: input parameter, ipv4 rules table number of entries
|
||||
* @expn_table_entries: input parameter, ipv4 expansion rules table number of
|
||||
* entries
|
||||
* @ip_addr: input parameter, public ip address
|
||||
*/
|
||||
struct ipa_ioc_v4_nat_init {
|
||||
|
@ -1338,6 +1370,23 @@ struct ipa_ioc_v4_nat_init {
|
|||
uint32_t ip_addr;
|
||||
};
|
||||
|
||||
/**
|
||||
* struct ipa_ioc_ipv6ct_init - IPv6CT table initialization parameters
|
||||
* @tbl_index: input parameter, index of the table
|
||||
* @base_table_offset: input parameter, IPv6CT base table address offset
|
||||
* @expn_table_offset: input parameter, IPv6CT expansion table address offset
|
||||
* @table_entries: input parameter, IPv6CT table number of entries
|
||||
* @expn_table_entries: input parameter, IPv6CT expansion table number of
|
||||
* entries
|
||||
*/
|
||||
struct ipa_ioc_ipv6ct_init {
|
||||
uint8_t tbl_index;
|
||||
uint32_t base_table_offset;
|
||||
uint32_t expn_table_offset;
|
||||
uint16_t table_entries;
|
||||
uint16_t expn_table_entries;
|
||||
};
|
||||
|
||||
/**
|
||||
* struct ipa_ioc_v4_nat_del - nat table delete parameter
|
||||
* @table_index: input parameter, index of the table
|
||||
|
@ -1349,7 +1398,15 @@ struct ipa_ioc_v4_nat_del {
|
|||
};
|
||||
|
||||
/**
|
||||
* struct ipa_ioc_nat_dma_one - nat dma command parameter
|
||||
* struct ipa_ioc_nat_ipv6ct_table_del - NAT/IPv6CT table delete parameter
|
||||
* @table_index: input parameter, index of the table
|
||||
*/
|
||||
struct ipa_ioc_nat_ipv6ct_table_del {
|
||||
uint8_t table_index;
|
||||
};
|
||||
|
||||
/**
|
||||
* struct ipa_ioc_nat_dma_one - nat/ipv6ct dma command parameter
|
||||
* @table_index: input parameter, index of the table
|
||||
* @base_addr: type of table, from which the base address of the table
|
||||
* can be inferred
|
||||
|
@ -1366,7 +1423,7 @@ struct ipa_ioc_nat_dma_one {
|
|||
};
|
||||
|
||||
/**
|
||||
* struct ipa_ioc_nat_dma_cmd - To hold multiple nat dma commands
|
||||
* struct ipa_ioc_nat_dma_cmd - To hold multiple nat/ipv6ct dma commands
|
||||
* @entries: number of dma commands in use
|
||||
* @dma: data pointer to the dma commands
|
||||
*/
|
||||
|
@ -1377,12 +1434,12 @@ struct ipa_ioc_nat_dma_cmd {
|
|||
};
|
||||
|
||||
/**
|
||||
* struct ipa_ioc_nat_pdn_entry - PDN entry modification data
|
||||
* @pdn_index: index of the entry in the PDN config table to be changed
|
||||
* @public_ip: PDN's public ip
|
||||
* @src_metadata: PDN's source NAT metadata for metadata replacement
|
||||
* @dst_metadata: PDN's destination NAT metadata for metadata replacement
|
||||
*/
|
||||
* struct ipa_ioc_nat_pdn_entry - PDN entry modification data
|
||||
* @pdn_index: index of the entry in the PDN config table to be changed
|
||||
* @public_ip: PDN's public ip
|
||||
* @src_metadata: PDN's source NAT metadata for metadata replacement
|
||||
* @dst_metadata: PDN's destination NAT metadata for metadata replacement
|
||||
*/
|
||||
struct ipa_ioc_nat_pdn_entry {
|
||||
uint8_t pdn_index;
|
||||
uint32_t public_ip;
|
||||
|
@ -1600,15 +1657,33 @@ enum ipacm_client_enum {
|
|||
#define IPA_IOC_ALLOC_NAT_MEM _IOWR(IPA_IOC_MAGIC, \
|
||||
IPA_IOCTL_ALLOC_NAT_MEM, \
|
||||
struct ipa_ioc_nat_alloc_mem *)
|
||||
#define IPA_IOC_ALLOC_NAT_TABLE _IOWR(IPA_IOC_MAGIC, \
|
||||
IPA_IOCTL_ALLOC_NAT_TABLE, \
|
||||
struct ipa_ioc_nat_ipv6ct_table_alloc *)
|
||||
#define IPA_IOC_ALLOC_IPV6CT_TABLE _IOWR(IPA_IOC_MAGIC, \
|
||||
IPA_IOCTL_ALLOC_IPV6CT_TABLE, \
|
||||
struct ipa_ioc_nat_ipv6ct_table_alloc *)
|
||||
#define IPA_IOC_V4_INIT_NAT _IOWR(IPA_IOC_MAGIC, \
|
||||
IPA_IOCTL_V4_INIT_NAT, \
|
||||
struct ipa_ioc_v4_nat_init *)
|
||||
#define IPA_IOC_INIT_IPV6CT_TABLE _IOWR(IPA_IOC_MAGIC, \
|
||||
IPA_IOCTL_INIT_IPV6CT_TABLE, \
|
||||
struct ipa_ioc_ipv6ct_init *)
|
||||
#define IPA_IOC_NAT_DMA _IOWR(IPA_IOC_MAGIC, \
|
||||
IPA_IOCTL_NAT_DMA, \
|
||||
struct ipa_ioc_nat_dma_cmd *)
|
||||
#define IPA_IOC_TABLE_DMA_CMD _IOWR(IPA_IOC_MAGIC, \
|
||||
IPA_IOCTL_TABLE_DMA_CMD, \
|
||||
struct ipa_ioc_nat_dma_cmd *)
|
||||
#define IPA_IOC_V4_DEL_NAT _IOWR(IPA_IOC_MAGIC, \
|
||||
IPA_IOCTL_V4_DEL_NAT, \
|
||||
struct ipa_ioc_v4_nat_del *)
|
||||
#define IPA_IOC_DEL_NAT_TABLE _IOWR(IPA_IOC_MAGIC, \
|
||||
IPA_IOCTL_DEL_NAT_TABLE, \
|
||||
struct ipa_ioc_nat_ipv6ct_table_del *)
|
||||
#define IPA_IOC_DEL_IPV6CT_TABLE _IOWR(IPA_IOC_MAGIC, \
|
||||
IPA_IOCTL_DEL_IPV6CT_TABLE, \
|
||||
struct ipa_ioc_nat_ipv6ct_table_del *)
|
||||
#define IPA_IOC_GET_NAT_OFFSET _IOWR(IPA_IOC_MAGIC, \
|
||||
IPA_IOCTL_GET_NAT_OFFSET, \
|
||||
uint32_t *)
|
||||
|
|
Loading…
Add table
Reference in a new issue