aboutsummaryrefslogtreecommitdiff
path: root/data-ipa-cfg-mgr/ipacm/inc
diff options
context:
space:
mode:
Diffstat (limited to 'data-ipa-cfg-mgr/ipacm/inc')
-rw-r--r--data-ipa-cfg-mgr/ipacm/inc/IPACM_Config.h2
-rw-r--r--data-ipa-cfg-mgr/ipacm/inc/IPACM_Defs.h12
-rw-r--r--data-ipa-cfg-mgr/ipacm/inc/IPACM_Iface.h3
-rw-r--r--data-ipa-cfg-mgr/ipacm/inc/IPACM_Lan.h2
-rw-r--r--data-ipa-cfg-mgr/ipacm/inc/IPACM_Routing.h3
-rw-r--r--data-ipa-cfg-mgr/ipacm/inc/IPACM_Wan.h10
-rw-r--r--data-ipa-cfg-mgr/ipacm/inc/IPACM_Xml.h4
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*/