diff options
author | Cyan_Hsieh <cyanhsieh@google.com> | 2019-05-22 13:08:59 +0800 |
---|---|---|
committer | Cyan_Hsieh <cyanhsieh@google.com> | 2019-05-22 13:12:19 +0800 |
commit | 4b198c30a61b21c95e69ce0730df8709c1201b52 (patch) | |
tree | c3bc756c574a425837e77dc9ef88b10ab5ab22ef /ipacm/inc | |
parent | 7bac4a6a23f9da5fe731b441d3f4510f12ca36e3 (diff) | |
parent | d37c13476275357ecd6cbdf37af45293821f2ff6 (diff) | |
download | ipacfg-mgr-4b198c30a61b21c95e69ce0730df8709c1201b52.tar.gz |
Merge remote-tracking branch 'goog/qcom/release/LA.UM.8.1.C9.09.00.00.518.158' into qt-r1-dev
Bug: 132954074
Change-Id: If77548c6d39e38c30b98d00abbf66810562ff72b
Diffstat (limited to 'ipacm/inc')
-rw-r--r-- | ipacm/inc/IPACM_Config.h | 4 | ||||
-rw-r--r-- | ipacm/inc/IPACM_Defs.h | 19 | ||||
-rw-r--r-- | ipacm/inc/IPACM_Lan.h | 10 | ||||
-rw-r--r-- | ipacm/inc/IPACM_LanToLan.h | 5 | ||||
-rw-r--r-- | ipacm/inc/IPACM_Wan.h | 9 | ||||
-rw-r--r-- | ipacm/inc/IPACM_Wlan.h | 5 |
6 files changed, 42 insertions, 10 deletions
diff --git a/ipacm/inc/IPACM_Config.h b/ipacm/inc/IPACM_Config.h index 524f4ac..af1b616 100644 --- a/ipacm/inc/IPACM_Config.h +++ b/ipacm/inc/IPACM_Config.h @@ -1,5 +1,5 @@ /* -Copyright (c) 2013-2018, The Linux Foundation. All rights reserved. +Copyright (c) 2013-2019, The Linux Foundation. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are @@ -99,7 +99,7 @@ public: /* Store the non nat iface names */ NatIfaces *pNatIfaces; - /* Store the bridge iface names */ + /* Store the bridge iface name */ char ipa_virtual_iface_name[IPA_IFACE_NAME_LEN]; /* Store the number of interface IPACM read from XML file */ diff --git a/ipacm/inc/IPACM_Defs.h b/ipacm/inc/IPACM_Defs.h index 051184d..59a8bb2 100644 --- a/ipacm/inc/IPACM_Defs.h +++ b/ipacm/inc/IPACM_Defs.h @@ -1,5 +1,5 @@ /* -Copyright (c) 2013-2018, The Linux Foundation. All rights reserved. +Copyright (c) 2013-2019, The Linux Foundation. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are @@ -197,6 +197,8 @@ typedef enum #endif IPA_WLAN_FWR_SSR_BEFORE_SHUTDOWN_NOTICE, IPA_LAN_DELETE_SELF, /* ipacm_event_data_fid */ + IPA_WIGIG_CLIENT_ADD_EVENT, /* ipacm_event_data_mac_ep */ + IPA_WIGIG_FST_SWITCH, /* ipacm_event_data_fst */ IPACM_EVENT_MAX } ipa_cm_event_id; @@ -275,6 +277,7 @@ typedef struct ipa_ip_type iptype; uint8_t mac_addr[6]; char iface_name[IPA_IFACE_NAME_LEN]; + int ep; } ipacm_event_eth_bridge; typedef struct @@ -328,6 +331,20 @@ typedef struct _ipacm_event_data_mac uint8_t mac_addr[IPA_MAC_ADDR_SIZE]; } ipacm_event_data_mac; +typedef struct _ipacm_event_data_mac_ep +{ + int if_index; + enum ipa_client_type client; + uint8_t mac_addr[IPA_MAC_ADDR_SIZE]; +} ipacm_event_data_mac_ep; + +typedef struct _ipacm_event_data_fst +{ + int if_index; + bool to_wigig; + uint8_t mac_addr[IPA_MAC_ADDR_SIZE]; +} ipacm_event_data_fst; + typedef struct { int if_index; diff --git a/ipacm/inc/IPACM_Lan.h b/ipacm/inc/IPACM_Lan.h index 03219c5..700dfbc 100644 --- a/ipacm/inc/IPACM_Lan.h +++ b/ipacm/inc/IPACM_Lan.h @@ -1,5 +1,5 @@ /* -Copyright (c) 2013-2018, The Linux Foundation. All rights reserved. +Copyright (c) 2013-2019, The Linux Foundation. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are @@ -151,7 +151,7 @@ public: /* add routing rule and return handle to lan2lan controller */ int eth_bridge_add_rt_rule(uint8_t *mac, char *rt_tbl_name, uint32_t hdr_proc_ctx_hdl, - ipa_hdr_l2_type peer_l2_hdr_type, ipa_ip_type iptype, uint32_t *rt_rule_hdl, int *rt_rule_count); + ipa_hdr_l2_type peer_l2_hdr_type, ipa_ip_type iptype, uint32_t *rt_rule_hdl, int *rt_rule_count, int ep); /* modify routing rule*/ int eth_bridge_modify_rt_rule(uint8_t *mac, uint32_t hdr_proc_ctx_hdl, @@ -209,7 +209,7 @@ protected: /* mac address has to be provided for client related events */ void eth_bridge_post_event(ipa_cm_event_id evt, ipa_ip_type iptype, uint8_t *mac, - uint32_t *ipv6_addr, char *iface_name); + uint32_t *ipv6_addr, char *iface_name, int ep); #ifdef FEATURE_L2TP /* check if the event is associated with vlan interface */ @@ -282,6 +282,10 @@ protected: private: + int set_client_pipe(enum ipa_client_type client, uint32_t *pipe); + int set_tether_client(wan_ioctl_set_tether_client_pipe *tether_client); + int set_tether_client_wigig(wan_ioctl_set_tether_client_pipe *tether_client); + /* get hdr proc ctx type given source and destination l2 hdr type */ ipa_hdr_proc_type eth_bridge_get_hdr_proc_type(ipa_hdr_l2_type t1, ipa_hdr_l2_type t2); diff --git a/ipacm/inc/IPACM_LanToLan.h b/ipacm/inc/IPACM_LanToLan.h index e517e97..66a1835 100644 --- a/ipacm/inc/IPACM_LanToLan.h +++ b/ipacm/inc/IPACM_LanToLan.h @@ -1,5 +1,5 @@ /* -Copyright (c) 2014-2017, The Linux Foundation. All rights reserved. +Copyright (c) 2014-2019, The Linux Foundation. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are @@ -102,6 +102,7 @@ struct client_info bool is_l2tp_client; l2tp_vlan_mapping_info *mapping_info; l2tp_rt_rule_info l2tp_rt_rule_hdl[IPA_HDR_L2_MAX]; + int ep; }; struct flt_rule_info @@ -141,7 +142,7 @@ public: void handle_new_iface_up(char rt_tbl_name_for_flt[][IPA_RESOURCE_NAME_MAX], char rt_tbl_name_for_rt[][IPA_RESOURCE_NAME_MAX], IPACM_LanToLan_Iface *peer_iface); - void handle_client_add(uint8_t *mac, bool is_l2tp_client, l2tp_vlan_mapping_info *mapping_info); + void handle_client_add(uint8_t *mac, bool is_l2tp_client, l2tp_vlan_mapping_info *mapping_info, int ep); void handle_client_del(uint8_t *mac); diff --git a/ipacm/inc/IPACM_Wan.h b/ipacm/inc/IPACM_Wan.h index 29b1341..1b917c6 100644 --- a/ipacm/inc/IPACM_Wan.h +++ b/ipacm/inc/IPACM_Wan.h @@ -1,5 +1,5 @@ /* -Copyright (c) 2013-2018, The Linux Foundation. All rights reserved. +Copyright (c) 2013-2019, The Linux Foundation. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are @@ -226,6 +226,13 @@ public: return xlat_mux_id; } + static void clearExtProp() + { + IPACM_Wan::is_ext_prop_set = false; + IPACM_Iface::ipacmcfg->DelExtProp(IPA_IP_v4); + IPACM_Iface::ipacmcfg->DelExtProp(IPA_IP_v6); + } + void event_callback(ipa_cm_event_id event, void *data); diff --git a/ipacm/inc/IPACM_Wlan.h b/ipacm/inc/IPACM_Wlan.h index 94623f9..f3c6d65 100644 --- a/ipacm/inc/IPACM_Wlan.h +++ b/ipacm/inc/IPACM_Wlan.h @@ -1,5 +1,5 @@ /* -Copyright (c) 2013-2016, The Linux Foundation. All rights reserved. +Copyright (c) 2013-2019, The Linux Foundation. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are @@ -71,6 +71,7 @@ typedef struct _ipa_wlan_client bool ipv4_header_set; bool ipv6_header_set; bool power_save_set; + enum ipa_client_type wigig_ipa_client; wlan_client_rt_hdl wifi_rt_hdl[0]; /* depends on number of tx properties */ }ipa_wlan_client; @@ -211,6 +212,8 @@ private: return IPACM_SUCCESS; } + int handle_wigig_client_add(ipacm_event_data_mac_ep *data); + /* for handle wifi client initial,copy all partial headers (tx property) */ int handle_wlan_client_init_ex(ipacm_event_data_wlan_ex *data); |