ipacm: Disable L2TP Feature support in Android-O

Remove L2TP feature support as this feature
is not required in Android-O

Change-Id: Ib1caaefd1aa263c63f328ee6833083144549b373
Acked-by: Pooja Kumari <kumarip@qti.qualcomm.com>
Signed-off-by: Mohammed Javid <mjavid@codeaurora.org>
diff --git a/ipacm/inc/IPACM_Defs.h b/ipacm/inc/IPACM_Defs.h
index 39c7298..266e69f 100644
--- a/ipacm/inc/IPACM_Defs.h
+++ b/ipacm/inc/IPACM_Defs.h
@@ -189,12 +189,14 @@
 	IPA_LAN_DELETE_SELF,                      /* ipacm_event_data_fid */
 	IPA_DOWNSTREAM_ADD,                       /* ipacm_event_ipahal_stream */
 	IPA_DOWNSTREAM_DEL,                       /* ipacm_event_ipahal_stream */
+#ifdef FEATURE_L2TP
 	IPA_ADD_VLAN_IFACE,                       /* ipa_ioc_vlan_iface_info */
 	IPA_DEL_VLAN_IFACE,                       /* ipa_ioc_vlan_iface_info */
 	IPA_ADD_L2TP_VLAN_MAPPING,                /* ipa_ioc_l2tp_vlan_mapping_info */
 	IPA_DEL_L2TP_VLAN_MAPPING,                /* ipa_ioc_l2tp_vlan_mapping_info */
 	IPA_HANDLE_VLAN_CLIENT_INFO,              /* ipacm_event_data_all */
 	IPA_HANDLE_VLAN_IFACE_INFO,               /* ipacm_event_data_all */
+#endif
 	IPACM_EVENT_MAX
 } ipa_cm_event_id;
 
diff --git a/ipacm/inc/IPACM_Lan.h b/ipacm/inc/IPACM_Lan.h
index cb63e34..2146689 100644
--- a/ipacm/inc/IPACM_Lan.h
+++ b/ipacm/inc/IPACM_Lan.h
@@ -169,6 +169,7 @@
 	/* delete header processing context */
 	int eth_bridge_del_hdr_proc_ctx(uint32_t hdr_proc_ctx_hdl);
 
+#ifdef FEATURE_L2TP
 	/* add l2tp rt rule for l2tp client */
 	int add_l2tp_rt_rule(ipa_ip_type iptype, uint8_t *dst_mac, ipa_hdr_l2_type peer_l2_hdr_type,
 		uint32_t l2tp_session_id, uint32_t vlan_id, uint8_t *vlan_client_mac, uint32_t *vlan_iface_ipv6_addr,
@@ -198,6 +199,7 @@
 
 	/* delete l2tp flt rule on non l2tp interface */
 	int del_l2tp_flt_rule(ipa_ip_type iptype, uint32_t first_pass_flt_rule_hdl, uint32_t second_pass_flt_rule_hdl);
+#endif
 
 protected:
 
@@ -209,15 +211,16 @@
 	void eth_bridge_post_event(ipa_cm_event_id evt, ipa_ip_type iptype, uint8_t *mac,
 		uint32_t *ipv6_addr, char *iface_name);
 
+#ifdef FEATURE_L2TP
 	/* check if the event is associated with vlan interface */
 	bool is_vlan_event(char *event_iface_name);
-
 	/* check if the event is associated with l2tp interface */
 	bool is_l2tp_event(char *event_iface_name);
 
 	/* check if the IPv6 address is unique local address */
 	bool is_unique_local_ipv6_addr(uint32_t *ipv6_addr);
 
+#endif
 	virtual int add_dummy_private_subnet_flt_rule(ipa_ip_type iptype);
 
 	int handle_private_subnet_android(ipa_ip_type iptype);
diff --git a/ipacm/inc/IPACM_LanToLan.h b/ipacm/inc/IPACM_LanToLan.h
index b055cdd..e517e97 100644
--- a/ipacm/inc/IPACM_LanToLan.h
+++ b/ipacm/inc/IPACM_LanToLan.h
@@ -160,7 +160,7 @@
 	void increment_ref_cnt_peer_l2_hdr_type(ipa_hdr_l2_type peer_l2_type);
 
 	void decrement_ref_cnt_peer_l2_hdr_type(ipa_hdr_l2_type peer_l2_type);
-
+#ifdef FEATURE_L2TP
 	void switch_to_l2tp_iface();
 
 	bool set_l2tp_iface(char *vlan_iface_name);
@@ -170,7 +170,7 @@
 	void handle_l2tp_enable();
 
 	void handle_l2tp_disable();
-
+#endif
 private:
 
 	IPACM_Lan *m_p_iface;
@@ -223,7 +223,9 @@
 
 	static IPACM_LanToLan* p_instance;
 	static IPACM_LanToLan* get_instance();
+#ifdef FEATURE_L2TP
 	bool has_l2tp_iface();
+#endif
 
 private:
 
@@ -251,6 +253,7 @@
 
 	void handle_wlan_scc_mcc_switch(ipacm_event_eth_bridge *data);
 
+#ifdef FEATURE_L2TP
 	void handle_add_vlan_iface(ipa_ioc_vlan_iface_info *data);
 
 	void handle_del_vlan_iface(ipa_ioc_vlan_iface_info *data);
@@ -262,6 +265,7 @@
 	void handle_vlan_client_info(ipacm_event_data_all *data);
 
 	void handle_vlan_iface_info(ipacm_event_data_all *data);
+#endif
 
 	void handle_new_iface_up(IPACM_LanToLan_Iface *new_iface, IPACM_LanToLan_Iface *exist_iface);
 
diff --git a/ipacm/src/IPACM_Config.cpp b/ipacm/src/IPACM_Config.cpp
index 64534ee..d3fa58d 100644
--- a/ipacm/src/IPACM_Config.cpp
+++ b/ipacm/src/IPACM_Config.cpp
@@ -107,12 +107,14 @@
 	__stringify(IPA_ETH_BRIDGE_CLIENT_DEL),                /* ipacm_event_eth_bridge*/
 	__stringify(IPA_ETH_BRIDGE_WLAN_SCC_MCC_SWITCH),       /* ipacm_event_eth_bridge*/
 	__stringify(IPA_LAN_DELETE_SELF),                      /* ipacm_event_data_fid */
+#ifdef FEATURE_L2TP
 	__stringify(IPA_ADD_VLAN_IFACE),                       /* ipa_ioc_vlan_iface_info */
 	__stringify(IPA_DEL_VLAN_IFACE),                       /* ipa_ioc_vlan_iface_info */
 	__stringify(IPA_ADD_L2TP_VLAN_MAPPING),                /* ipa_ioc_l2tp_vlan_mapping_info */
 	__stringify(IPA_DEL_L2TP_VLAN_MAPPING),                /* ipa_ioc_l2tp_vlan_mapping_info */
 	__stringify(IPA_VLAN_CLIENT_INFO),                     /* ipacm_event_data_all */
 	__stringify(IPA_VLAN_IFACE_INFO),                      /* ipacm_event_data_all */
+#endif
 	__stringify(IPACM_EVENT_MAX),
 };
 
diff --git a/ipacm/src/IPACM_Lan.cpp b/ipacm/src/IPACM_Lan.cpp
index e5ff98a..1da02c2 100644
--- a/ipacm/src/IPACM_Lan.cpp
+++ b/ipacm/src/IPACM_Lan.cpp
@@ -871,8 +871,12 @@
 				}
 			}
 
-			if (ipa_interface_index == ipa_if_num || is_vlan_event(data->iface_name)
-				|| (is_l2tp_event(data->iface_name) && ipa_if_cate == ODU_IF))
+			if (ipa_interface_index == ipa_if_num
+#ifdef FEATURE_L2TP
+				|| is_vlan_event(data->iface_name)
+				|| (is_l2tp_event(data->iface_name) && ipa_if_cate == ODU_IF)
+#endif
+				)
 			{
 				IPACMDBG_H("ETH iface got client \n");
 				if(ipa_interface_index == ipa_if_num)
@@ -931,7 +935,10 @@
 			}
 
 			if (ipa_interface_index == ipa_if_num
-				|| (is_l2tp_event(data->iface_name) && ipa_if_cate == ODU_IF))
+#ifdef FEATURE_L2TP
+				|| (is_l2tp_event(data->iface_name) && ipa_if_cate == ODU_IF)
+#endif
+				)
 			{
 				if(ipa_interface_index == ipa_if_num)
 				{
@@ -2171,7 +2178,7 @@
 		   	        continue;
 		    }
 
-  	   	    rt_rule_entry = &rt_rule->rules[0];
+			rt_rule_entry = &rt_rule->rules[0];
 			rt_rule_entry->at_rear = 0;
 
 			if (iptype == IPA_IP_v4)
@@ -2197,20 +2204,19 @@
 #ifdef FEATURE_IPA_V3
 				rt_rule_entry->rule.hashable = false;
 #endif
-			    if (false == m_routing.AddRoutingRule(rt_rule))
-  	            {
-  	          	            IPACMERR("Routing rule addition failed!\n");
-  	          	            free(rt_rule);
-  	          	            return IPACM_FAILURE;
-			    }
+				if (false == m_routing.AddRoutingRule(rt_rule))
+				{
+					IPACMERR("Routing rule addition failed!\n");
+					free(rt_rule);
+					return IPACM_FAILURE;
+				}
 
 			    /* copy ipv4 RT hdl */
 		        get_client_memptr(eth_client, eth_index)->eth_rt_hdl[tx_index].eth_rt_rule_hdl_v4 =
   	   	        rt_rule->rules[0].rt_rule_hdl;
 		        IPACMDBG_H("tx:%d, rt rule hdl=%x ip-type: %d\n", tx_index,
 		      	get_client_memptr(eth_client, eth_index)->eth_rt_hdl[tx_index].eth_rt_rule_hdl_v4, iptype);
-
-  	   	    } else {
+			} else {
 
 		        for(v6_num = get_client_memptr(eth_client, eth_index)->route_rule_set_v6;v6_num < get_client_memptr(eth_client, eth_index)->ipv6_set;v6_num++)
 			    {
@@ -2239,12 +2245,12 @@
 #ifdef FEATURE_IPA_V3
 					rt_rule_entry->rule.hashable = true;
 #endif
-   	                if (false == m_routing.AddRoutingRule(rt_rule))
-  	                {
-  	                	    IPACMERR("Routing rule addition failed!\n");
-  	                	    free(rt_rule);
-  	                	    return IPACM_FAILURE;
-			        }
+			if (false == m_routing.AddRoutingRule(rt_rule))
+			{
+				IPACMERR("Routing rule addition failed!\n");
+				free(rt_rule);
+				return IPACM_FAILURE;
+			}
 
 		            get_client_memptr(eth_client, eth_index)->eth_rt_hdl[tx_index].eth_rt_rule_hdl_v6[v6_num] = rt_rule->rules[0].rt_rule_hdl;
 		            IPACMDBG_H("tx:%d, rt rule hdl=%x ip-type: %d\n", tx_index,
@@ -2284,7 +2290,7 @@
 			    }
 			}
 
-  	    } /* end of for loop */
+		} /* end of for loop */
 
 		free(rt_rule);
 
@@ -2651,7 +2657,7 @@
 	{
 			IPACMDBG_H("Clean Nat Rules for ipv4:0x%x\n", get_client_memptr(eth_client, clt_indx)->v4_addr);
 			CtList->HandleNeighIpAddrDelEvt(get_client_memptr(eth_client, clt_indx)->v4_addr);
- 	}
+	}
 
 	if (delete_eth_rtrules(clt_indx, IPA_IP_v4))
 	{
@@ -4327,6 +4333,7 @@
 	memset(&eth_bridge_evt, 0, sizeof(ipacm_cmd_q_data));
 	eth_bridge_evt.event = evt;
 
+#ifdef FEATURE_L2TP
 	if(evt == IPA_HANDLE_VLAN_CLIENT_INFO || evt == IPA_HANDLE_VLAN_IFACE_INFO)
 	{
 		evt_data_all = (ipacm_event_data_all*)malloc(sizeof(*evt_data_all));
@@ -4357,6 +4364,7 @@
 		eth_bridge_evt.evt_data = (void*)evt_data_all;
 	}
 	else
+#endif
 	{
 		evt_data_eth_bridge = (ipacm_event_eth_bridge*)malloc(sizeof(*evt_data_eth_bridge));
 		if(evt_data_eth_bridge == NULL)
@@ -4382,7 +4390,6 @@
 		}
 		eth_bridge_evt.evt_data = (void*)evt_data_eth_bridge;
 	}
-
 	IPACMDBG_H("Posting event %s\n",
 		IPACM_Iface::ipacmcfg->getEventName(evt));
 	IPACM_EvtDispatcher::PostEvt(&eth_bridge_evt);
@@ -4726,6 +4733,7 @@
 	return IPACM_SUCCESS;
 }
 
+#ifdef FEATURE_L2TP
 /* check if the event is associated with vlan interface */
 bool IPACM_Lan::is_vlan_event(char *event_iface_name)
 {
@@ -5545,6 +5553,7 @@
 	}
 	return false;
 }
+#endif
 
 /* add tcp syn flt rule */
 int IPACM_Lan::add_tcp_syn_flt_rule(ipa_ip_type iptype)
diff --git a/ipacm/src/IPACM_LanToLan.cpp b/ipacm/src/IPACM_LanToLan.cpp
index c3369e7..2902268 100644
--- a/ipacm/src/IPACM_LanToLan.cpp
+++ b/ipacm/src/IPACM_LanToLan.cpp
@@ -94,15 +94,15 @@
 	IPACM_EvtDispatcher::registr(IPA_ETH_BRIDGE_CLIENT_ADD, this);
 	IPACM_EvtDispatcher::registr(IPA_ETH_BRIDGE_CLIENT_DEL, this);
 	IPACM_EvtDispatcher::registr(IPA_ETH_BRIDGE_WLAN_SCC_MCC_SWITCH, this);
+#ifdef FEATURE_L2TP
 	IPACM_EvtDispatcher::registr(IPA_ADD_VLAN_IFACE, this);
 	IPACM_EvtDispatcher::registr(IPA_DEL_VLAN_IFACE, this);
 	IPACM_EvtDispatcher::registr(IPA_ADD_L2TP_VLAN_MAPPING, this);
 	IPACM_EvtDispatcher::registr(IPA_DEL_L2TP_VLAN_MAPPING, this);
 	IPACM_EvtDispatcher::registr(IPA_HANDLE_VLAN_CLIENT_INFO, this);
 	IPACM_EvtDispatcher::registr(IPA_HANDLE_VLAN_IFACE_INFO, this);
-
+#endif
 	m_has_l2tp_iface = false;
-
 	return;
 }
 
@@ -122,6 +122,7 @@
 	return p_instance;
 }
 
+#ifdef FEATURE_L2TP
 bool IPACM_LanToLan::has_l2tp_iface()
 {
 	list<IPACM_LanToLan_Iface>::iterator it;
@@ -137,12 +138,16 @@
 	}
 	return has_l2tp_iface;
 }
+#endif
 
 void IPACM_LanToLan::event_callback(ipa_cm_event_id event, void* param)
 {
 	ipacm_event_eth_bridge *eth_bridge_data;
 	ipa_ioc_vlan_iface_info *vlan_iface_data;
+
+#ifdef FEATURE_L2TP
 	ipa_ioc_l2tp_vlan_mapping_info *l2tp_vlan_mapping_data;
+#endif
 	ipacm_event_data_all *vlan_data;
 
 	IPACMDBG_H("Get %s event.\n", IPACM_Iface::ipacmcfg->getEventName(event));
@@ -184,6 +189,7 @@
 			break;
 		}
 
+#ifdef FEATURE_L2TP
 		case IPA_ADD_VLAN_IFACE:
 		{
 			vlan_iface_data = (ipa_ioc_vlan_iface_info*)param;
@@ -197,14 +203,12 @@
 			handle_del_vlan_iface(vlan_iface_data);
 			break;
 		}
-
 		case IPA_ADD_L2TP_VLAN_MAPPING:
 		{
 			l2tp_vlan_mapping_data = (ipa_ioc_l2tp_vlan_mapping_info*)param;
 			handle_add_l2tp_vlan_mapping(l2tp_vlan_mapping_data);
 			break;
 		}
-
 		case IPA_DEL_L2TP_VLAN_MAPPING:
 		{
 			l2tp_vlan_mapping_data = (ipa_ioc_l2tp_vlan_mapping_info*)param;
@@ -223,6 +227,7 @@
 			handle_vlan_iface_info(vlan_data);
 			break;
 		}
+#endif
 		default:
 			break;
 	}
@@ -377,7 +382,6 @@
 			break;
 		}
 	}
-
 	if(m_has_l2tp_iface == true && has_l2tp_iface == false)
 	{
 		IPACMDBG_H("There is no l2tp iface now, delete rt rules for l2tp iface.\n");
@@ -525,6 +529,7 @@
 	return;
 }
 
+#ifdef FEATURE_L2TP
 void IPACM_LanToLan::handle_add_vlan_iface(ipa_ioc_vlan_iface_info *data)
 {
 	list<vlan_iface_info>::iterator it_vlan;
@@ -588,7 +593,6 @@
 	}
 	return;
 }
-
 void IPACM_LanToLan::handle_add_l2tp_vlan_mapping(ipa_ioc_l2tp_vlan_mapping_info *data)
 {
 	list<l2tp_vlan_mapping_info>::iterator it_mapping;
@@ -686,7 +690,6 @@
 	}
 	return;
 }
-
 void IPACM_LanToLan::handle_vlan_client_info(ipacm_event_data_all *data)
 {
 	list<l2tp_vlan_mapping_info>::iterator it_mapping;
@@ -763,6 +766,7 @@
 	}
 	return;
 }
+#endif
 
 void IPACM_LanToLan::handle_cached_client_add_event(IPACM_Lan *p_iface)
 {
@@ -817,6 +821,7 @@
 
 	IPACMDBG_H("Is there l2tp interface? %d\n", m_has_l2tp_iface);
 
+#ifdef FEATURE_L2TP
 	IPACMDBG_H("There are %d vlan interfaces.\n", m_vlan_iface.size());
 	for(it_vlan = m_vlan_iface.begin(); it_vlan != m_vlan_iface.end(); it_vlan++)
 	{
@@ -845,7 +850,7 @@
 		IPACMDBG_H("L2tp client mac: 0x%02x%02x%02x%02x%02x%02x\n", it_mapping->l2tp_client_mac[0], it_mapping->l2tp_client_mac[1],
 			it_mapping->l2tp_client_mac[2], it_mapping->l2tp_client_mac[3], it_mapping->l2tp_client_mac[4], it_mapping->l2tp_client_mac[5]);
 	}
-
+#endif
 	IPACMDBG_H("There are %d interfaces in total.\n", m_iface.size());
 	for(it = m_iface.begin(); it != m_iface.end(); it++)
 	{
@@ -956,6 +961,7 @@
 	return;
 }
 
+#ifdef FEATURE_L2TP
 void IPACM_LanToLan_Iface::add_l2tp_client_rt_rule(peer_iface_info *peer, client_info *client)
 {
 	ipa_hdr_l2_type peer_l2_hdr_type;
@@ -989,6 +995,7 @@
 	}
 	return;
 }
+#endif
 
 void IPACM_LanToLan_Iface::add_all_inter_interface_client_flt_rule(ipa_ip_type iptype)
 {
@@ -1072,18 +1079,22 @@
 		l2tp_second_pass_flt_rule_hdl = it_flt->l2tp_second_pass_flt_rule_hdl;
 	}
 
+#ifdef FEATURE_L2TP
 	if(m_is_l2tp_iface)
 	{
 		m_p_iface->add_l2tp_flt_rule(client->mac_addr, &l2tp_first_pass_flt_rule_hdl);
 	}
 	else
+#endif
 	{
+#ifdef FEATURE_L2TP
 		if(client->is_l2tp_client)
 		{
 			m_p_iface->add_l2tp_flt_rule(iptype, client->mac_addr, client->mapping_info->vlan_client_ipv6_addr,
 				&l2tp_first_pass_flt_rule_hdl, &l2tp_second_pass_flt_rule_hdl);
 		}
 		else
+#endif
 		{
 			rt_tbl.ip = iptype;
 			memcpy(rt_tbl.name, peer->rt_tbl_name_for_flt[iptype], sizeof(rt_tbl.name));
@@ -1155,6 +1166,7 @@
 				}
 				else
 				{
+#ifdef FEATURE_L2TP
 					if(client->is_l2tp_client)
 					{
 						m_p_iface->del_l2tp_flt_rule(IPA_IP_v4, it_flt->l2tp_first_pass_flt_rule_hdl[IPA_IP_v4],
@@ -1164,6 +1176,7 @@
 							it_flt->l2tp_first_pass_flt_rule_hdl[IPA_IP_v4], it_flt->l2tp_second_pass_flt_rule_hdl);
 					}
 					else
+#endif
 					{
 						m_p_iface->eth_bridge_del_flt_rule(it_flt->flt_rule_hdl[IPA_IP_v4], IPA_IP_v4);
 						IPACMDBG_H("Deleted IPv4 flt rule %d.\n", it_flt->flt_rule_hdl[IPA_IP_v4]);
@@ -1172,13 +1185,16 @@
 			}
 			if(m_is_ip_addr_assigned[IPA_IP_v6])
 			{
+#ifdef FEATURE_L2TP
 				if(m_is_l2tp_iface)
 				{
 					m_p_iface->del_l2tp_flt_rule(it_flt->l2tp_first_pass_flt_rule_hdl[IPA_IP_v6]);
 					IPACMDBG_H("Deleted IPv6 flt rule %d.\n", it_flt->l2tp_first_pass_flt_rule_hdl[IPA_IP_v6]);
 				}
 				else
+#endif
 				{
+#ifdef FEATURE_L2TP
 					if(client->is_l2tp_client)
 					{
 						m_p_iface->del_l2tp_flt_rule(IPA_IP_v6, it_flt->l2tp_first_pass_flt_rule_hdl[IPA_IP_v6],
@@ -1187,6 +1203,7 @@
 							it_flt->l2tp_first_pass_flt_rule_hdl[IPA_IP_v6], it_flt->l2tp_second_pass_flt_rule_hdl);
 					}
 					else
+#endif
 					{
 						m_p_iface->eth_bridge_del_flt_rule(it_flt->flt_rule_hdl[IPA_IP_v6], IPA_IP_v6);
 						IPACMDBG_H("Deleted IPv6 flt rule %d.\n", it_flt->flt_rule_hdl[IPA_IP_v6]);
@@ -1228,15 +1245,17 @@
 				IPACMDBG_H("IPv6 rt rule %d is deleted.\n", client->inter_iface_rt_rule_hdl[peer_l2_hdr_type].rule_hdl[IPA_IP_v6][i]);
 			}
 			client->inter_iface_rt_rule_hdl[peer_l2_hdr_type].num_hdl[IPA_IP_v6] = 0;
-
+#ifdef FEATURE_L2TP
 			if(IPACM_LanToLan::get_instance()->has_l2tp_iface() == true)
 			{
 				m_p_iface->del_l2tp_rt_rule(IPA_IP_v6, client->l2tp_rt_rule_hdl[peer_l2_hdr_type].num_rt_hdl[IPA_IP_v6],
 					client->l2tp_rt_rule_hdl[peer_l2_hdr_type].first_pass_rt_rule_hdl[IPA_IP_v6]);
 			}
+#endif
 		}
 		else
 		{
+#ifdef FEATURE_L2TP
 			m_p_iface->del_l2tp_rt_rule(IPA_IP_v4, client->l2tp_rt_rule_hdl[peer_l2_hdr_type].first_pass_hdr_hdl,
 				client->l2tp_rt_rule_hdl[peer_l2_hdr_type].first_pass_hdr_proc_ctx_hdl[IPA_IP_v4], client->l2tp_rt_rule_hdl[peer_l2_hdr_type].second_pass_hdr_hdl,
 				client->l2tp_rt_rule_hdl[peer_l2_hdr_type].num_rt_hdl[IPA_IP_v4], client->l2tp_rt_rule_hdl[peer_l2_hdr_type].first_pass_rt_rule_hdl[IPA_IP_v4],
@@ -1245,6 +1264,7 @@
 			m_p_iface->del_l2tp_rt_rule(IPA_IP_v6, 0, client->l2tp_rt_rule_hdl[peer_l2_hdr_type].first_pass_hdr_proc_ctx_hdl[IPA_IP_v6],
 				0, client->l2tp_rt_rule_hdl[peer_l2_hdr_type].num_rt_hdl[IPA_IP_v6], client->l2tp_rt_rule_hdl[peer_l2_hdr_type].first_pass_rt_rule_hdl[IPA_IP_v6],
 				NULL);
+#endif
 		}
 	}
 	else
@@ -1348,6 +1368,7 @@
 			}
 			else
 			{
+#ifdef FEATURE_L2TP
 				if(it->p_client->is_l2tp_client)
 				{
 					m_p_iface->del_l2tp_flt_rule(IPA_IP_v4, it->l2tp_first_pass_flt_rule_hdl[IPA_IP_v4],
@@ -1357,6 +1378,7 @@
 						it->l2tp_first_pass_flt_rule_hdl[IPA_IP_v4], it->l2tp_second_pass_flt_rule_hdl);
 				}
 				else
+#endif
 				{
 					m_p_iface->eth_bridge_del_flt_rule(it->flt_rule_hdl[IPA_IP_v4], IPA_IP_v4);
 					IPACMDBG_H("Deleted IPv4 flt rule %d.\n", it->flt_rule_hdl[IPA_IP_v4]);
@@ -1365,13 +1387,16 @@
 		}
 		if(m_is_ip_addr_assigned[IPA_IP_v6])
 		{
+#ifdef FEATURE_L2TP
 			if(m_is_l2tp_iface)
 			{
 				m_p_iface->del_l2tp_flt_rule(it->l2tp_first_pass_flt_rule_hdl[IPA_IP_v6]);
 				IPACMDBG_H("Deleted IPv6 flt rule %d.\n", it->l2tp_first_pass_flt_rule_hdl[IPA_IP_v6]);
 			}
 			else
+#endif
 			{
+#ifdef FEATURE_L2TP
 				if(it->p_client->is_l2tp_client)
 				{
 					m_p_iface->del_l2tp_flt_rule(IPA_IP_v6, it->l2tp_first_pass_flt_rule_hdl[IPA_IP_v6],
@@ -1380,6 +1405,7 @@
 						it->l2tp_first_pass_flt_rule_hdl[IPA_IP_v6], it->l2tp_second_pass_flt_rule_hdl);
 				}
 				else
+#endif
 				{
 					m_p_iface->eth_bridge_del_flt_rule(it->flt_rule_hdl[IPA_IP_v6], IPA_IP_v6);
 					IPACMDBG_H("Deleted IPv6 flt rule %d.\n", it->flt_rule_hdl[IPA_IP_v6]);
@@ -1403,11 +1429,13 @@
 		{
 			del_client_rt_rule(peer, &(*it));
 		}
+#ifdef FEATURE_L2TP
 		if(IPACM_LanToLan::get_instance()->has_l2tp_iface() == true)
 		{
 			m_p_iface->eth_bridge_del_hdr_proc_ctx(hdr_proc_ctx_for_l2tp);
 			hdr_proc_ctx_for_l2tp = 0;
 		}
+#endif
 	}
 
 	return;
@@ -1650,12 +1678,14 @@
 				{
 					IPACMDBG_H("Delete client routing rule for peer interface.\n");
 					del_client_rt_rule(&(*it_peer_info), &(*it_client));
+#ifdef FEATURE_L2TP
 					if(it_client->is_l2tp_client == false && IPACM_LanToLan::get_instance()->has_l2tp_iface() == true
 						&& m_client_info.size() == 1)
 					{
 						m_p_iface->eth_bridge_del_hdr_proc_ctx(hdr_proc_ctx_for_l2tp);
 						hdr_proc_ctx_for_l2tp = 0;
 					}
+#endif
 					flag[it_peer_info->peer->get_iface_pointer()->tx_prop->tx[0].hdr_l2_type] = true;
 				}
 			}
@@ -1772,6 +1802,7 @@
 						IPACMDBG_H("%d\n", it_client->inter_iface_rt_rule_hdl[j].rule_hdl[IPA_IP_v6][k]);
 					}
 
+#ifdef FEATURE_L2TP
 					if(it_client->is_l2tp_client)
 					{
 						IPACMDBG_H("Printing l2tp hdr info for l2tp client.\n");
@@ -1819,6 +1850,7 @@
 							}
 						}
 					}
+#endif
 				}
 			}
 		}
@@ -1934,6 +1966,7 @@
 	return;
 }
 
+#ifdef FEATURE_L2TP
 bool IPACM_LanToLan_Iface::set_l2tp_iface(char *vlan_iface_name)
 {
 	IPACMDBG_H("Self iface %s, vlan iface %s\n", m_p_iface->dev_name,
@@ -1979,7 +2012,6 @@
 	}
 	return;
 }
-
 void IPACM_LanToLan_Iface::handle_l2tp_enable()
 {
 	int i;
@@ -2049,3 +2081,4 @@
 	}
 	return;
 }
+#endif
diff --git a/ipacm/src/IPACM_Main.cpp b/ipacm/src/IPACM_Main.cpp
index 562ff82..a05876f 100644
--- a/ipacm/src/IPACM_Main.cpp
+++ b/ipacm/src/IPACM_Main.cpp
@@ -234,9 +234,11 @@
 	ipacm_event_data_wlan_ex *data_ex;
 	ipa_get_data_stats_resp_msg_v01 *data_tethering_stats = NULL;
 	ipa_get_apn_data_stats_resp_msg_v01 *data_network_stats = NULL;
+
+#ifdef FEATURE_L2TP
 	ipa_ioc_vlan_iface_info *vlan_info = NULL;
 	ipa_ioc_l2tp_vlan_mapping_info *mapping = NULL;
-
+#endif
 	ipacm_cmd_q_data new_neigh_evt;
 	ipacm_event_data_all* new_neigh_data;