summaryrefslogtreecommitdiffstats
path: root/ipacm/inc
diff options
context:
space:
mode:
authorSkylar Chang <chiaweic@codeaurora.org>2014-10-09 17:32:17 -0700
committerSkylar Chang <chiaweic@codeaurora.org>2014-10-10 11:41:10 -0700
commitc09b0f15d939c6c4283effb55a347e06563c7c98 (patch)
tree8f1f16a1be31f998998551a2340c49935b8bcd2f /ipacm/inc
parentf0a69fec911c8009afe3949c1ef3346367fa7376 (diff)
downloadandroid_vendor_qcom_opensource_data-ipa-cfg-mgr-c09b0f15d939c6c4283effb55a347e06563c7c98.tar.gz
android_vendor_qcom_opensource_data-ipa-cfg-mgr-c09b0f15d939c6c4283effb55a347e06563c7c98.tar.bz2
android_vendor_qcom_opensource_data-ipa-cfg-mgr-c09b0f15d939c6c4283effb55a347e06563c7c98.zip
IPACM: Fixes for Wi-Fi offload for AP-STA mode
1. fix ethernet offset issue 2. don't assume first event is always external router mac address 3. don't add routing rules for wan ip address Change-Id: If1ce15e329a9e6d66e32953403a77d788956e368
Diffstat (limited to 'ipacm/inc')
-rw-r--r--ipacm/inc/IPACM_Defs.h11
-rw-r--r--ipacm/inc/IPACM_IfaceManager.h2
-rw-r--r--ipacm/inc/IPACM_Wan.h7
3 files changed, 15 insertions, 5 deletions
diff --git a/ipacm/inc/IPACM_Defs.h b/ipacm/inc/IPACM_Defs.h
index 20cde8d..a956643 100644
--- a/ipacm/inc/IPACM_Defs.h
+++ b/ipacm/inc/IPACM_Defs.h
@@ -213,7 +213,7 @@ typedef struct _ipacm_event_data_all
int if_index;
uint32_t ipv4_addr;
uint32_t ipv6_addr[4];
- uint8_t mac_addr[6];
+ uint8_t mac_addr[IPA_MAC_ADDR_SIZE];
} ipacm_event_data_all;
class IPACM_Lan;
@@ -261,7 +261,7 @@ typedef struct _ipacm_event_data_addr
typedef struct _ipacm_event_data_mac
{
int if_index;
- uint8_t mac_addr[6];
+ uint8_t mac_addr[IPA_MAC_ADDR_SIZE];
} ipacm_event_data_mac;
typedef struct
@@ -287,4 +287,11 @@ typedef enum
ECM_WAN
} ipacm_wan_iface_type;
+typedef struct _ipacm_ifacemgr_data
+{
+ int if_index;
+ ipacm_wan_iface_type if_type;
+ uint8_t mac_addr[IPA_MAC_ADDR_SIZE];
+}ipacm_ifacemgr_data;
+
#endif /* IPA_CM_DEFS_H */
diff --git a/ipacm/inc/IPACM_IfaceManager.h b/ipacm/inc/IPACM_IfaceManager.h
index e621067..e65c5d5 100644
--- a/ipacm/inc/IPACM_IfaceManager.h
+++ b/ipacm/inc/IPACM_IfaceManager.h
@@ -77,7 +77,7 @@ public:
private:
- int create_iface_instance(int if_index, ipacm_wan_iface_type is_sta_mode);
+ int create_iface_instance(ipacm_ifacemgr_data *);
/* api to register instances */
int registr(int ipa_if_index, IPACM_Listener *obj);
diff --git a/ipacm/inc/IPACM_Wan.h b/ipacm/inc/IPACM_Wan.h
index 7888791..e3025b5 100644
--- a/ipacm/inc/IPACM_Wan.h
+++ b/ipacm/inc/IPACM_Wan.h
@@ -87,7 +87,7 @@ public:
static bool wan_up;
static bool wan_up_v6;
- IPACM_Wan(int iface_index, ipacm_wan_iface_type is_sta_mode);
+ IPACM_Wan(int, ipacm_wan_iface_type, uint8_t *);
virtual ~IPACM_Wan();
static bool isWanUP()
@@ -137,6 +137,9 @@ private:
bool header_set_v6;
bool header_partial_default_wan_v4;
bool header_partial_default_wan_v6;
+ uint8_t ext_router_mac_addr[IPA_MAC_ADDR_SIZE];
+ uint16_t eth2_ofst_v4;
+ uint16_t eth2_ofst_v6;
static int num_ipv4_modem_pdn;
@@ -273,7 +276,7 @@ private:
int handle_route_add_evt(ipa_ip_type iptype);
/* construct complete ethernet header */
- int handle_header_add_evt(uint8_t mac_addr[6]);
+ int handle_header_add_evt(uint8_t *mac_addr);
int config_dft_firewall_rules(ipa_ip_type iptype);