diff options
author | Skylar Chang <chiaweic@codeaurora.org> | 2014-10-09 17:32:17 -0700 |
---|---|---|
committer | Skylar Chang <chiaweic@codeaurora.org> | 2014-10-10 11:41:10 -0700 |
commit | c09b0f15d939c6c4283effb55a347e06563c7c98 (patch) | |
tree | 8f1f16a1be31f998998551a2340c49935b8bcd2f /ipacm/inc | |
parent | f0a69fec911c8009afe3949c1ef3346367fa7376 (diff) | |
download | android_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.h | 11 | ||||
-rw-r--r-- | ipacm/inc/IPACM_IfaceManager.h | 2 | ||||
-rw-r--r-- | ipacm/inc/IPACM_Wan.h | 7 |
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); |