summaryrefslogtreecommitdiff
path: root/ipacm/inc
diff options
context:
space:
mode:
authorCyan_Hsieh <cyanhsieh@google.com>2019-05-22 13:08:59 +0800
committerCyan_Hsieh <cyanhsieh@google.com>2019-05-22 13:12:19 +0800
commit4b198c30a61b21c95e69ce0730df8709c1201b52 (patch)
treec3bc756c574a425837e77dc9ef88b10ab5ab22ef /ipacm/inc
parent7bac4a6a23f9da5fe731b441d3f4510f12ca36e3 (diff)
parentd37c13476275357ecd6cbdf37af45293821f2ff6 (diff)
downloadipacfg-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.h4
-rw-r--r--ipacm/inc/IPACM_Defs.h19
-rw-r--r--ipacm/inc/IPACM_Lan.h10
-rw-r--r--ipacm/inc/IPACM_LanToLan.h5
-rw-r--r--ipacm/inc/IPACM_Wan.h9
-rw-r--r--ipacm/inc/IPACM_Wlan.h5
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);