diff options
Diffstat (limited to 'data-ipa-cfg-mgr/ipacm/inc')
-rw-r--r-- | data-ipa-cfg-mgr/ipacm/inc/IPACM_Config.h | 2 | ||||
-rw-r--r-- | data-ipa-cfg-mgr/ipacm/inc/IPACM_Defs.h | 12 | ||||
-rw-r--r-- | data-ipa-cfg-mgr/ipacm/inc/IPACM_Iface.h | 3 | ||||
-rw-r--r-- | data-ipa-cfg-mgr/ipacm/inc/IPACM_Lan.h | 2 | ||||
-rw-r--r-- | data-ipa-cfg-mgr/ipacm/inc/IPACM_Routing.h | 3 | ||||
-rw-r--r-- | data-ipa-cfg-mgr/ipacm/inc/IPACM_Wan.h | 10 | ||||
-rw-r--r-- | data-ipa-cfg-mgr/ipacm/inc/IPACM_Xml.h | 4 |
7 files changed, 31 insertions, 5 deletions
diff --git a/data-ipa-cfg-mgr/ipacm/inc/IPACM_Config.h b/data-ipa-cfg-mgr/ipacm/inc/IPACM_Config.h index 8d054a0..5bcb4eb 100644 --- a/data-ipa-cfg-mgr/ipacm/inc/IPACM_Config.h +++ b/data-ipa-cfg-mgr/ipacm/inc/IPACM_Config.h @@ -115,6 +115,8 @@ public: bool ipacm_odu_embms_enable; + bool ipacm_ip_passthrough_mode; + int ipa_nat_iface_entries; /* Store the total number of wlan guest ap configured */ diff --git a/data-ipa-cfg-mgr/ipacm/inc/IPACM_Defs.h b/data-ipa-cfg-mgr/ipacm/inc/IPACM_Defs.h index a6e76d1..d2cc362 100644 --- a/data-ipa-cfg-mgr/ipacm/inc/IPACM_Defs.h +++ b/data-ipa-cfg-mgr/ipacm/inc/IPACM_Defs.h @@ -75,7 +75,7 @@ extern "C" #define IPA_ODU_HDR_NAME_v6 "IPACM_ODU_v6" -#define IPA_MAX_IFACE_ENTRIES 15 +#define IPA_MAX_IFACE_ENTRIES 20 #define IPA_MAX_PRIVATE_SUBNET_ENTRIES 3 #define IPA_MAX_ALG_ENTRIES 20 #define IPA_MAX_RM_ENTRY 6 @@ -95,7 +95,13 @@ extern "C" #define WWAN_QMI_IOCTL_DEVICE_NAME "/dev/wwan_ioctl" #define IPA_DEVICE_NAME "/dev/ipa" #define MAX_NUM_PROP 2 + +#ifndef FEATURE_IPA_V3 #define IPA_MAX_FLT_RULE 50 +#else +#define IPA_MAX_FLT_RULE 100 +#endif + #define TCP_FIN_SHIFT 16 #define TCP_SYN_SHIFT 17 #define TCP_RST_SHIFT 18 @@ -281,6 +287,10 @@ typedef struct _ipacm_event_data_iptype int if_index; int if_index_tether; enum ipa_ip_type iptype; +#ifdef IPA_WAN_MSG_IPv6_ADDR_GW_LEN + uint32_t ipv4_addr_gw; + uint32_t ipv6_addr_gw[4]; +#endif } ipacm_event_data_iptype; diff --git a/data-ipa-cfg-mgr/ipacm/inc/IPACM_Iface.h b/data-ipa-cfg-mgr/ipacm/inc/IPACM_Iface.h index 89bb26f..43b0da6 100644 --- a/data-ipa-cfg-mgr/ipacm/inc/IPACM_Iface.h +++ b/data-ipa-cfg-mgr/ipacm/inc/IPACM_Iface.h @@ -129,6 +129,9 @@ public: /*Configure the initial filter rules */ virtual int init_fl_rule(ipa_ip_type iptype); + /* Change IP Type.*/ + void config_ip_type(ipa_ip_type iptype); + /* Get interface index */ virtual int ipa_get_if_index(char * if_name, int * if_index); diff --git a/data-ipa-cfg-mgr/ipacm/inc/IPACM_Lan.h b/data-ipa-cfg-mgr/ipacm/inc/IPACM_Lan.h index 0076a01..6c54f5e 100644 --- a/data-ipa-cfg-mgr/ipacm/inc/IPACM_Lan.h +++ b/data-ipa-cfg-mgr/ipacm/inc/IPACM_Lan.h @@ -222,6 +222,8 @@ protected: uint32_t if_ipv4_subnet; + uint32_t ipv6_prefix[2]; + private: /* get hdr proc ctx type given source and destination l2 hdr type */ diff --git a/data-ipa-cfg-mgr/ipacm/inc/IPACM_Routing.h b/data-ipa-cfg-mgr/ipacm/inc/IPACM_Routing.h index 4f5488f..b5ffabc 100644 --- a/data-ipa-cfg-mgr/ipacm/inc/IPACM_Routing.h +++ b/data-ipa-cfg-mgr/ipacm/inc/IPACM_Routing.h @@ -61,7 +61,6 @@ public: bool Reset(enum ipa_ip_type ip); bool GetRoutingTable(struct ipa_ioc_get_rt_tbl *routingTable); - bool PutRoutingTable(uint32_t routingTableHandle); bool DeviceNodeIsOpened(); bool DeleteRoutingHdl(uint32_t rt_rule_hdl, ipa_ip_type ip); @@ -71,6 +70,8 @@ public: private: static const char *DEVICE_NAME; int m_fd; /* File descriptor of the IPA device node /dev/ipa */ + + bool PutRoutingTable(uint32_t routingTableHandle); }; #endif //IPACM_ROUTING_H diff --git a/data-ipa-cfg-mgr/ipacm/inc/IPACM_Wan.h b/data-ipa-cfg-mgr/ipacm/inc/IPACM_Wan.h index b4bf50e..fe6d35e 100644 --- a/data-ipa-cfg-mgr/ipacm/inc/IPACM_Wan.h +++ b/data-ipa-cfg-mgr/ipacm/inc/IPACM_Wan.h @@ -97,6 +97,7 @@ public: static uint8_t xlat_mux_id; /* IPACM interface name */ static char wan_up_dev_name[IF_NAME_LEN]; + static uint32_t curr_wan_ip; IPACM_Wan(int, ipacm_wan_iface_type, uint8_t *); virtual ~IPACM_Wan(); @@ -140,6 +141,11 @@ public: #endif } + static uint32_t getWANIP() + { + return curr_wan_ip; + } + static bool getXlat_Mux_Id() { return xlat_mux_id; @@ -176,6 +182,7 @@ public: private: + bool is_ipv6_frag_firewall_flt_rule_installed; uint32_t ipv6_frag_firewall_flt_rule_hdl; uint32_t *wan_route_rule_v4_hdl; uint32_t *wan_route_rule_v6_hdl; @@ -452,9 +459,6 @@ private: int config_dft_firewall_rules_ex(struct ipa_flt_rule_add* rules, int rule_offset, ipa_ip_type iptype); - /* Change IP Type.*/ - void config_ip_type(ipa_ip_type iptype); - /* init filtering rule in wan dl filtering table */ int init_fl_rule_ex(ipa_ip_type iptype); diff --git a/data-ipa-cfg-mgr/ipacm/inc/IPACM_Xml.h b/data-ipa-cfg-mgr/ipacm/inc/IPACM_Xml.h index f645ae1..64c00ed 100644 --- a/data-ipa-cfg-mgr/ipacm/inc/IPACM_Xml.h +++ b/data-ipa-cfg-mgr/ipacm/inc/IPACM_Xml.h @@ -178,6 +178,9 @@ if (!(a)) { \ #define IPACMNat_TAG "IPACMNAT" #define NAT_MaxEntries_TAG "MaxNatEntries" +#define IP_PassthroughFlag_TAG "IPPassthroughFlag" +#define IP_PassthroughMode_TAG "IPPassthroughMode" + /*--------------------------------------------------------------------------- IP protocol numbers - use in dss_socket() to identify protocols. Also contains the extension header types for IPv6. @@ -276,6 +279,7 @@ typedef struct _IPACM_conf_t bool router_mode_enable; bool odu_embms_enable; int num_wlan_guest_ap; + bool ip_passthrough_mode; } IPACM_conf_t; /* This function read IPACM XML configuration*/ |