Remove the hack in makefile, now IPACM will support dynamically
both WLAN has RX_prop or none
Change-Id: I15609b0f2939c6a7d457dad190fc220318fe51a2
diff --git a/ipacm/inc/IPACM_Config.h b/ipacm/inc/IPACM_Config.h
index d9f8989..27c7ff3 100644
--- a/ipacm/inc/IPACM_Config.h
+++ b/ipacm/inc/IPACM_Config.h
@@ -57,9 +57,10 @@
ipa_rm_resource_name consumer_rm1;
ipa_rm_resource_name producer_rm2;
ipa_rm_resource_name consumer_rm2;
- bool producer_up;
- bool consumer_up;
- bool rm_set;
+ bool producer1_up; /* only monitor producer_rm1, not monitor producer_rm2 */
+ bool consumer1_up; /* only monitor consumer_rm1, not monitor consumer_rm2 */
+ bool rm_set; /* once producer1_up and consumer1_up, will add bi-directional dependency */
+ bool rx_bypass_ipa; /* support WLAN may not register RX-property, should not add dependency */
}ipa_rm_client;
/* iface */
@@ -124,7 +125,7 @@
int GetNonNatIfaces(int nPorts, NonNatIfaces *ifaces);
/* for IPACM resource manager dependency usage */
- void AddRmDepend(ipa_rm_resource_name rm1);
+ void AddRmDepend(ipa_rm_resource_name rm1,bool rx_bypass_ipa);
void DelRmDepend(ipa_rm_resource_name rm1);
diff --git a/ipacm/src/IPACM_Config.cpp b/ipacm/src/IPACM_Config.cpp
index 6455b5b..ae658b2 100644
--- a/ipacm/src/IPACM_Config.cpp
+++ b/ipacm/src/IPACM_Config.cpp
@@ -271,8 +271,9 @@
}
/* for IPACM resource manager dependency usage
- add either Tx or Rx ipa_rm_resource_name */
-void IPACM_Config::AddRmDepend(ipa_rm_resource_name rm1)
+ add either Tx or Rx ipa_rm_resource_name and
+ also indicate that endpoint property if valid */
+void IPACM_Config::AddRmDepend(ipa_rm_resource_name rm1,bool rx_bypass_ipa)
{
int retval = 0;
int m_fd = 0; /* File descriptor of the IPA device node /dev/ipa */
@@ -294,112 +295,93 @@
for(int i=0;i<IPA_MAX_PRIVATE_SUBNET_ENTRIES;i++)
{
- if(rm1 == ipa_rm_tbl[i].producer_rm1)
+ if(rm1 == ipa_rm_tbl[i].producer_rm1)
{
- ipa_rm_tbl[i].producer_up = true;
- IPACMDBG("Matched RM_table entry: %d's producer_rm1 \n", i);
+ ipa_rm_tbl[i].producer1_up = true;
+
+ /* entry1's producer actually dun have registered Rx-property */
+ ipa_rm_tbl[i].rx_bypass_ipa = rx_bypass_ipa;
+ IPACMDBG("Matched RM_table entry: %d's producer_rm1 with non_rx_prop: %d \n", i,ipa_rm_tbl[i].rx_bypass_ipa);
- if(ipa_rm_tbl[i].consumer_up == true && ipa_rm_tbl[i].rm_set == false)
- {
- IPACMDBG("SETUP RM_table entry %d's bi-direction dependency \n", i);
- /* add bi-directional dependency*/
-#ifdef WLAN_SW_RX
- if(ipa_rm_tbl[i].producer_rm1 == IPA_RM_RESOURCE_HSIC_PROD)
- {
+ if(ipa_rm_tbl[i].consumer1_up == true && ipa_rm_tbl[i].rm_set == false)
+ {
+ IPACMDBG("SETUP RM_table entry %d's bi-direction dependency \n", i);
+ /* add bi-directional dependency*/
+ if(ipa_rm_tbl[i].rx_bypass_ipa)
+ {
IPACMDBG("Skip ADD entry %d's dependency between WLAN-Pro: %d, Con: %d \n", i, ipa_rm_tbl[i].producer_rm1,ipa_rm_tbl[i].consumer_rm1);
- }
- else
- {
- memset(&dep, 0, sizeof(dep));
- dep.resource_name = ipa_rm_tbl[i].producer_rm1;
- dep.depends_on_name = ipa_rm_tbl[i].consumer_rm1;
- retval = ioctl(m_fd, IPA_IOC_RM_ADD_DEPENDENCY, &dep);
+ }
+ else
+ {
+ memset(&dep, 0, sizeof(dep));
+ dep.resource_name = ipa_rm_tbl[i].producer_rm1;
+ dep.depends_on_name = ipa_rm_tbl[i].consumer_rm1;
+ retval = ioctl(m_fd, IPA_IOC_RM_ADD_DEPENDENCY, &dep);
+ IPACMDBG("ADD entry %d's dependency between Pro: %d, Con: %d \n", i,dep.resource_name,dep.depends_on_name);
+ if (retval)
+ {
+ IPACMERR("Failed adding dependecny for RM_table entry %d's bi-direction dependency (error:%d) \n", i,retval);
+ }
+ }
+
+ memset(&dep, 0, sizeof(dep));
+ dep.resource_name = ipa_rm_tbl[i].producer_rm2;
+ dep.depends_on_name = ipa_rm_tbl[i].consumer_rm2;
+ retval = ioctl(m_fd, IPA_IOC_RM_ADD_DEPENDENCY, &dep);
IPACMDBG("ADD entry %d's dependency between Pro: %d, Con: %d \n", i,dep.resource_name,dep.depends_on_name);
- if (retval)
- {
- IPACMERR("Failed adding dependecny for RM_table entry %d's bi-direction dependency (error:%d) \n", i,retval);
- }
- }
-#else
- memset(&dep, 0, sizeof(dep));
- dep.resource_name = ipa_rm_tbl[i].producer_rm1;
- dep.depends_on_name = ipa_rm_tbl[i].consumer_rm1;
- retval = ioctl(m_fd, IPA_IOC_RM_ADD_DEPENDENCY, &dep);
- IPACMDBG("ADD entry %d's dependency between Pro: %d, Con: %d \n", i,dep.resource_name,dep.depends_on_name);
- if (retval)
- {
- IPACMERR("Failed adding dependecny for RM_table entry %d's bi-direction dependency (error:%d) \n", i,retval);
- }
-#endif
- memset(&dep, 0, sizeof(dep));
- dep.resource_name = ipa_rm_tbl[i].producer_rm2;
- dep.depends_on_name = ipa_rm_tbl[i].consumer_rm2;
- retval = ioctl(m_fd, IPA_IOC_RM_ADD_DEPENDENCY, &dep);
- IPACMDBG("ADD entry %d's dependency between Pro: %d, Con: %d \n", i,dep.resource_name,dep.depends_on_name);
- if (retval)
- {
- IPACMERR("Failed adding dependecny for RM_table entry %d's bi-direction dependency (error:%d) \n", i,retval);
- }
- ipa_rm_tbl[i].rm_set = true;
- }
- else
- {
- IPACMDBG("Not SETUP RM_table entry %d: prod_up:%d, cons_up:%d, rm_set: %d \n", i,ipa_rm_tbl[i].producer_up, ipa_rm_tbl[i].consumer_up, ipa_rm_tbl[i].rm_set);
- }
+ if (retval)
+ {
+ IPACMERR("Failed adding dependecny for RM_table entry %d's bi-direction dependency (error:%d) \n", i,retval);
+ }
+ ipa_rm_tbl[i].rm_set = true;
+ }
+ else
+ {
+ IPACMDBG("Not SETUP RM_table entry %d: prod_up:%d, cons_up:%d, rm_set: %d \n", i,ipa_rm_tbl[i].producer1_up, ipa_rm_tbl[i].consumer1_up, ipa_rm_tbl[i].rm_set);
+ }
}
- if(rm1 == ipa_rm_tbl[i].consumer_rm1)
+ if(rm1 == ipa_rm_tbl[i].consumer_rm1)
{
- ipa_rm_tbl[i].consumer_up = true;
- IPACMDBG("Matched RM_table entry: %d's consumer_rm1 \n", i);
+ ipa_rm_tbl[i].consumer1_up = true;
+ IPACMDBG("Matched RM_table entry: %d's consumer_rm1 \n", i);
- if(ipa_rm_tbl[i].producer_up == true && ipa_rm_tbl[i].rm_set == false)
- {
- IPACMDBG("SETUP RM_table entry %d's bi-direction dependency \n", i);
- /* add bi-directional dependency*/
-#ifdef WLAN_SW_RX
- if(ipa_rm_tbl[i].producer_rm1 == IPA_RM_RESOURCE_HSIC_PROD)
- {
+ if(ipa_rm_tbl[i].producer1_up == true && ipa_rm_tbl[i].rm_set == false)
+ {
+ IPACMDBG("SETUP RM_table entry %d's bi-direction dependency \n", i);
+ /* add bi-directional dependency*/
+ if(ipa_rm_tbl[i].rx_bypass_ipa)
+ {
IPACMDBG("Skip ADD entry %d's dependency between WLAN-Pro: %d, Con: %d \n", i, ipa_rm_tbl[i].producer_rm1,ipa_rm_tbl[i].consumer_rm1);
- }
- else
- {
- memset(&dep, 0, sizeof(dep));
- dep.resource_name = ipa_rm_tbl[i].producer_rm1;
- dep.depends_on_name = ipa_rm_tbl[i].consumer_rm1;
- retval = ioctl(m_fd, IPA_IOC_RM_ADD_DEPENDENCY, &dep);
+ }
+ else
+ {
+ memset(&dep, 0, sizeof(dep));
+ dep.resource_name = ipa_rm_tbl[i].producer_rm1;
+ dep.depends_on_name = ipa_rm_tbl[i].consumer_rm1;
+ retval = ioctl(m_fd, IPA_IOC_RM_ADD_DEPENDENCY, &dep);
+ IPACMDBG("ADD entry %d's dependency between Pro: %d, Con: %d \n", i,dep.resource_name,dep.depends_on_name);
+ if (retval)
+ {
+ IPACMERR("Failed adding dependecny for RM_table entry %d's bi-direction dependency (error:%d) \n", i,retval);
+ }
+ }
+
+ memset(&dep, 0, sizeof(dep));
+ dep.resource_name = ipa_rm_tbl[i].producer_rm2;
+ dep.depends_on_name = ipa_rm_tbl[i].consumer_rm2;
+ retval = ioctl(m_fd, IPA_IOC_RM_ADD_DEPENDENCY, &dep);
IPACMDBG("ADD entry %d's dependency between Pro: %d, Con: %d \n", i,dep.resource_name,dep.depends_on_name);
- if (retval)
- {
- IPACMERR("Failed adding dependecny for RM_table entry %d's bi-direction dependency (error:%d) \n", i,retval);
- }
- }
-#else
- memset(&dep, 0, sizeof(dep));
- dep.resource_name = ipa_rm_tbl[i].producer_rm1;
- dep.depends_on_name = ipa_rm_tbl[i].consumer_rm1;
- retval = ioctl(m_fd, IPA_IOC_RM_ADD_DEPENDENCY, &dep);
- IPACMDBG("ADD entry %d's dependency between Pro: %d, Con: %d \n", i,dep.resource_name,dep.depends_on_name);
- if (retval)
- {
- IPACMERR("Failed adding dependecny for RM_table entry %d's bi-direction dependency (error:%d) \n", i,retval);
- }
-#endif
- memset(&dep, 0, sizeof(dep));
- dep.resource_name = ipa_rm_tbl[i].producer_rm2;
- dep.depends_on_name = ipa_rm_tbl[i].consumer_rm2;
- retval = ioctl(m_fd, IPA_IOC_RM_ADD_DEPENDENCY, &dep);
- IPACMDBG("ADD entry %d's dependency between Pro: %d, Con: %d \n", i,dep.resource_name,dep.depends_on_name);
- if (retval)
- {
- IPACMERR("Failed adding dependecny for RM_table entry %d's bi-direction dependency (error:%d) \n", i,retval);
- }
- ipa_rm_tbl[i].rm_set = true;
- }
- else
- {
- IPACMDBG("Not SETUP RM_table entry %d: prod_up:%d, cons_up:%d, rm_set: %d \n", i,ipa_rm_tbl[i].producer_up, ipa_rm_tbl[i].consumer_up, ipa_rm_tbl[i].rm_set);
- }
+ if (retval)
+ {
+ IPACMERR("Failed adding dependecny for RM_table entry %d's bi-direction dependency (error:%d) \n", i,retval);
+ }
+ ipa_rm_tbl[i].rm_set = true;
+ }
+ else
+ {
+ IPACMDBG("Not SETUP RM_table entry %d: prod_up:%d, cons_up:%d, rm_set: %d \n", i,ipa_rm_tbl[i].producer1_up, ipa_rm_tbl[i].consumer1_up, ipa_rm_tbl[i].rm_set);
+ }
}
}
@@ -433,110 +415,89 @@
for(int i=0;i<IPA_MAX_PRIVATE_SUBNET_ENTRIES;i++)
{
- if(rm1 == ipa_rm_tbl[i].producer_rm1)
+ if(rm1 == ipa_rm_tbl[i].producer_rm1)
{
- if(ipa_rm_tbl[i].rm_set == true)
+ if(ipa_rm_tbl[i].rm_set == true)
{
- IPACMDBG("Matched RM_table entry: %d's producer_rm1 and dependency is up \n", i);
- ipa_rm_tbl[i].rm_set = false;
- /* delete bi-directional dependency*/
-#ifdef WLAN_SW_RX
- if(ipa_rm_tbl[i].producer_rm1 == IPA_RM_RESOURCE_HSIC_PROD)
- {
- IPACMDBG("Skip DEL entry %d's dependency between WLAN-Pro: %d, Con: %d \n", i, ipa_rm_tbl[i].producer_rm1,ipa_rm_tbl[i].consumer_rm1);
- }
- else
- {
- memset(&dep, 0, sizeof(dep));
- dep.resource_name = ipa_rm_tbl[i].producer_rm1;
- dep.depends_on_name = ipa_rm_tbl[i].consumer_rm1;
- retval = ioctl(m_fd, IPA_IOC_RM_DEL_DEPENDENCY, &dep);
- IPACMDBG("Delete entry %d's dependency between Pro: %d, Con: %d \n", i,dep.resource_name,dep.depends_on_name);
- if (retval)
- {
+ IPACMDBG("Matched RM_table entry: %d's producer_rm1 and dependency is up \n", i);
+ ipa_rm_tbl[i].rm_set = false;
+
+ /* delete bi-directional dependency*/
+ if(ipa_rm_tbl[i].rx_bypass_ipa)
+ {
+ IPACMDBG("Skip DEL entry %d's dependency between WLAN-Pro: %d, Con: %d \n", i, ipa_rm_tbl[i].producer_rm1,ipa_rm_tbl[i].consumer_rm1);
+ }
+ else
+ {
+ memset(&dep, 0, sizeof(dep));
+ dep.resource_name = ipa_rm_tbl[i].producer_rm1;
+ dep.depends_on_name = ipa_rm_tbl[i].consumer_rm1;
+ retval = ioctl(m_fd, IPA_IOC_RM_DEL_DEPENDENCY, &dep);
+ IPACMDBG("Delete entry %d's dependency between Pro: %d, Con: %d \n", i,dep.resource_name,dep.depends_on_name);
+ if (retval)
+ {
+ IPACMERR("Failed deleting dependecny for RM_table entry %d's bi-direction dependency (error:%d) \n", i,retval);
+ }
+ }
+ memset(&dep, 0, sizeof(dep));
+ dep.resource_name = ipa_rm_tbl[i].producer_rm2;
+ dep.depends_on_name = ipa_rm_tbl[i].consumer_rm2;
+ retval = ioctl(m_fd, IPA_IOC_RM_DEL_DEPENDENCY, &dep);
+ IPACMDBG("Delete entry %d's dependency between Pro: %d, Con: %d \n", i,dep.resource_name,dep.depends_on_name);
+ if (retval)
+ {
IPACMERR("Failed deleting dependecny for RM_table entry %d's bi-direction dependency (error:%d) \n", i,retval);
- }
- }
-#else
- memset(&dep, 0, sizeof(dep));
- dep.resource_name = ipa_rm_tbl[i].producer_rm1;
- dep.depends_on_name = ipa_rm_tbl[i].consumer_rm1;
- retval = ioctl(m_fd, IPA_IOC_RM_DEL_DEPENDENCY, &dep);
- IPACMDBG("Delete entry %d's dependency between Pro: %d, Con: %d \n", i,dep.resource_name,dep.depends_on_name);
- if (retval)
- {
- IPACMERR("Failed deleting dependecny for RM_table entry %d's bi-direction dependency (error:%d) \n", i,retval);
+ }
}
-#endif
- memset(&dep, 0, sizeof(dep));
- dep.resource_name = ipa_rm_tbl[i].producer_rm2;
- dep.depends_on_name = ipa_rm_tbl[i].consumer_rm2;
- retval = ioctl(m_fd, IPA_IOC_RM_DEL_DEPENDENCY, &dep);
- IPACMDBG("Delete entry %d's dependency between Pro: %d, Con: %d \n", i,dep.resource_name,dep.depends_on_name);
- if (retval)
- {
- IPACMERR("Failed deleting dependecny for RM_table entry %d's bi-direction dependency (error:%d) \n", i,retval);
- }
- }
- ipa_rm_tbl[i].producer_up = false;
-
+ ipa_rm_tbl[i].producer1_up = false;
+ ipa_rm_tbl[i].rx_bypass_ipa = false;
}
- if(rm1 == ipa_rm_tbl[i].consumer_rm1)
+ if(rm1 == ipa_rm_tbl[i].consumer_rm1)
{
- /* ipa_rm_a2_check: IPA_RM_RESOURCE_A2_CONS*/
- if(ipa_rm_tbl[i].consumer_rm1 == IPA_RM_RESOURCE_A2_CONS && ipa_rm_a2_check == 1)
- {
- IPACMDBG(" still have %d default RT routing from A2 \n", ipa_rm_a2_check);
- continue;
- }
+ /* ipa_rm_a2_check: IPA_RM_RESOURCE_A2_CONS*/
+ if(ipa_rm_tbl[i].consumer_rm1 == IPA_RM_RESOURCE_A2_CONS && ipa_rm_a2_check == 1)
+ {
+ IPACMDBG(" still have %d default RT routing from A2 \n", ipa_rm_a2_check);
+ continue;
+ }
- if(ipa_rm_tbl[i].rm_set == true)
+ if(ipa_rm_tbl[i].rm_set == true)
{
- IPACMDBG("Matched RM_table entry: %d's consumer_rm1 and dependency is up \n", i);
- ipa_rm_tbl[i].rm_set = false;
- /* delete bi-directional dependency*/
-#ifdef WLAN_SW_RX
- if(ipa_rm_tbl[i].producer_rm1 == IPA_RM_RESOURCE_HSIC_PROD)
- {
- IPACMDBG("Skip DEL entry %d's dependency between WLAN-Pro: %d, Con: %d \n", i, ipa_rm_tbl[i].producer_rm1,ipa_rm_tbl[i].consumer_rm1);
- }
- else
- {
- memset(&dep, 0, sizeof(dep));
- dep.resource_name = ipa_rm_tbl[i].producer_rm1;
- dep.depends_on_name = ipa_rm_tbl[i].consumer_rm1;
- retval = ioctl(m_fd, IPA_IOC_RM_DEL_DEPENDENCY, &dep);
- IPACMDBG("Delete entry %d's dependency between Pro: %d, Con: %d \n", i,dep.resource_name,dep.depends_on_name);
- if (retval)
- {
- IPACMERR("Failed deleting dependecny for RM_table entry %d's bi-direction dependency (error:%d) \n", i,retval);
- }
- }
-#else
- memset(&dep, 0, sizeof(dep));
- dep.resource_name = ipa_rm_tbl[i].producer_rm1;
- dep.depends_on_name = ipa_rm_tbl[i].consumer_rm1;
- retval = ioctl(m_fd, IPA_IOC_RM_DEL_DEPENDENCY, &dep);
- IPACMDBG("Delete entry %d's dependency between Pro: %d, Con: %d \n", i,dep.resource_name,dep.depends_on_name);
- if (retval)
- {
+ IPACMDBG("Matched RM_table entry: %d's consumer_rm1 and dependency is up \n", i);
+ ipa_rm_tbl[i].rm_set = false;
+
+ /* delete bi-directional dependency*/
+ if(ipa_rm_tbl[i].rx_bypass_ipa)
+ {
+ IPACMDBG("Skip DEL entry %d's dependency between WLAN-Pro: %d, Con: %d \n", i, ipa_rm_tbl[i].producer_rm1,ipa_rm_tbl[i].consumer_rm1);
+ }
+ else
+ {
+ memset(&dep, 0, sizeof(dep));
+ dep.resource_name = ipa_rm_tbl[i].producer_rm1;
+ dep.depends_on_name = ipa_rm_tbl[i].consumer_rm1;
+ retval = ioctl(m_fd, IPA_IOC_RM_DEL_DEPENDENCY, &dep);
+ IPACMDBG("Delete entry %d's dependency between Pro: %d, Con: %d \n", i,dep.resource_name,dep.depends_on_name);
+ if (retval)
+ {
+ IPACMERR("Failed deleting dependecny for RM_table entry %d's bi-direction dependency (error:%d) \n", i,retval);
+ }
+ }
+
+ memset(&dep, 0, sizeof(dep));
+ dep.resource_name = ipa_rm_tbl[i].producer_rm2;
+ dep.depends_on_name = ipa_rm_tbl[i].consumer_rm2;
+ retval = ioctl(m_fd, IPA_IOC_RM_DEL_DEPENDENCY, &dep);
+ IPACMDBG("Delete entry %d's dependency between Pro: %d, Con: %d \n", i,dep.resource_name,dep.depends_on_name);
+ if (retval)
+ {
IPACMERR("Failed deleting dependecny for RM_table entry %d's bi-direction dependency (error:%d) \n", i,retval);
- }
-#endif
- memset(&dep, 0, sizeof(dep));
- dep.resource_name = ipa_rm_tbl[i].producer_rm2;
- dep.depends_on_name = ipa_rm_tbl[i].consumer_rm2;
- retval = ioctl(m_fd, IPA_IOC_RM_DEL_DEPENDENCY, &dep);
- IPACMDBG("Delete entry %d's dependency between Pro: %d, Con: %d \n", i,dep.resource_name,dep.depends_on_name);
- if (retval)
- {
- IPACMERR("Failed deleting dependecny for RM_table entry %d's bi-direction dependency (error:%d) \n", i,retval);
- }
+ }
}
- ipa_rm_tbl[i].consumer_up = false;
- }
+ ipa_rm_tbl[i].consumer1_up = false;
+ }
}
return ;
diff --git a/ipacm/src/IPACM_Iface.cpp b/ipacm/src/IPACM_Iface.cpp
index 736c84a..d717007 100644
--- a/ipacm/src/IPACM_Iface.cpp
+++ b/ipacm/src/IPACM_Iface.cpp
@@ -519,11 +519,11 @@
int res = IPACM_SUCCESS, len = 0;
struct ipa_flt_rule_add flt_rule_entry;
ipa_ioc_add_flt_rule *m_pFilteringTable;
-#ifdef WLAN_SW_RX
- /* Adding this hack because WLAN may not registered for Rx-endpoint, other ifaces will always have*/
+ /* Adding this hack because WLAN may not registered for Rx-endpoint, other ifaces will always have*/
char *dev_wlan0="wlan0";
char *dev_wlan1="wlan1";
-#endif
+ char *dev_ecm0="ecm0";
+
/* update the iface ip-type to be IPA_IP_v4, IPA_IP_v6 or both*/
if (iptype == IPA_IP_v4)
{
@@ -567,23 +567,26 @@
}
/* ADD corresponding ipa_rm_resource_name of RX-endpoint before adding all IPV4V6 FT-rules */
-#ifdef WLAN_SW_RX
- if(strcmp(dev_name,dev_wlan0) == 0 || strcmp(dev_name,dev_wlan1) == 0)
+ if(rx_prop != NULL)
{
- /* dev_name == dev2 (wlan0)*/
- IPACMDBG(" work-around setup iface %s rx property\n", dev_wlan0);
- IPACM_Iface::ipacmcfg->AddRmDepend(IPA_RM_RESOURCE_HSIC_PROD);
+ IPACM_Iface::ipacmcfg->AddRmDepend(IPACM_Iface::ipacmcfg->ipa_client_rm_map_tbl[rx_prop->rx[0].src_pipe],false);
+ IPACMDBG(" add producer dependency from %s with registered rx-prop\n", dev_name);
}
else
{
- if(rx_prop != NULL)
+ /* only wlan may take software-path, not register Rx-property*/
+ if(strcmp(dev_name,dev_wlan0) == 0 || strcmp(dev_name,dev_wlan1) == 0)
{
- IPACM_Iface::ipacmcfg->AddRmDepend(IPACM_Iface::ipacmcfg->ipa_client_rm_map_tbl[rx_prop->rx[0].src_pipe]);
+ IPACM_Iface::ipacmcfg->AddRmDepend(IPA_RM_RESOURCE_HSIC_PROD,true);
+ IPACMDBG(" add producer dependency from %s without registered rx-prop \n", dev_name);
+ }
+
+ if(strcmp(dev_name,dev_ecm0) == 0)
+ {
+ IPACM_Iface::ipacmcfg->AddRmDepend(IPA_RM_RESOURCE_USB_PROD,true);
+ IPACMDBG(" add producer dependency from %s without registered rx-prop \n", dev_name);
}
}
-#else
- IPACM_Iface::ipacmcfg->AddRmDepend(IPACM_Iface::ipacmcfg->ipa_client_rm_map_tbl[rx_prop->rx[0].src_pipe]);
-#endif
if (rx_prop == NULL)
{
diff --git a/ipacm/src/IPACM_Lan.cpp b/ipacm/src/IPACM_Lan.cpp
index 95f042a..37cd8de 100644
--- a/ipacm/src/IPACM_Lan.cpp
+++ b/ipacm/src/IPACM_Lan.cpp
@@ -331,7 +331,7 @@
}
/* Add corresponding ipa_rm_resource_name of TX-endpoint up before IPV6 RT-rule set */
- IPACM_Iface::ipacmcfg->AddRmDepend(IPACM_Iface::ipacmcfg->ipa_client_rm_map_tbl[tx_prop->tx[0].dst_pipe]);
+ IPACM_Iface::ipacmcfg->AddRmDepend(IPACM_Iface::ipacmcfg->ipa_client_rm_map_tbl[tx_prop->tx[0].dst_pipe],false);
/* not see this ipv6 before for LAN client*/
v6_addr[ipv6_set][0] = data->ipv6_addr[0];
@@ -510,7 +510,7 @@
}
/* Add corresponding ipa_rm_resource_name of TX-endpoint up before IPV4 RT-rule set */
- IPACM_Iface::ipacmcfg->AddRmDepend(IPACM_Iface::ipacmcfg->ipa_client_rm_map_tbl[tx_prop->tx[0].dst_pipe]);
+ IPACM_Iface::ipacmcfg->AddRmDepend(IPACM_Iface::ipacmcfg->ipa_client_rm_map_tbl[tx_prop->tx[0].dst_pipe],false);
/* unicast RT rule add start */
rt_rule = (struct ipa_ioc_add_rt_rule *)
diff --git a/ipacm/src/IPACM_Wan.cpp b/ipacm/src/IPACM_Wan.cpp
index f8e180d..f2edb55 100644
--- a/ipacm/src/IPACM_Wan.cpp
+++ b/ipacm/src/IPACM_Wan.cpp
@@ -615,7 +615,7 @@
}
/* Add corresponding ipa_rm_resource_name of TX-endpoint up before IPV6 RT-rule set */
- IPACM_Iface::ipacmcfg->AddRmDepend(IPACM_Iface::ipacmcfg->ipa_client_rm_map_tbl[tx_prop->tx[0].dst_pipe]);
+ IPACM_Iface::ipacmcfg->AddRmDepend(IPACM_Iface::ipacmcfg->ipa_client_rm_map_tbl[tx_prop->tx[0].dst_pipe],false);
return IPACM_SUCCESS;
}
@@ -964,18 +964,6 @@
if (IPACM_SUCCESS == IPACM_read_firewall_xml(firewall_config.firewall_config_file, &firewall_config))
{
IPACMDBG("QCMAP Firewall XML read OK \n");
- }
- else
- {
- IPACMERR("QCMAP Firewall XML read failed, no that file, use default configuration \n");
- }
- }
- else
- {
- IPACMERR("No firewall xml mentioned \n");
- return IPACM_FAILURE;
- }
-
/* find the number of v4/v6 firewall rules */
for (i = 0; i < firewall_config.num_extd_firewall_entries; i++)
{
@@ -988,8 +976,18 @@
rule_v6++;
}
}
-
IPACMDBG("firewall rule v4:%d v6:%d total:%d\n", rule_v4, rule_v6, firewall_config.num_extd_firewall_entries);
+ }
+ else
+ {
+ IPACMERR("QCMAP Firewall XML read failed, no that file, use default configuration \n");
+ }
+ }
+ else
+ {
+ IPACMERR("No firewall xml mentioned \n");
+ return IPACM_FAILURE;
+ }
/* construct ipa_ioc_add_flt_rule with N firewall rules */
ipa_ioc_add_flt_rule *m_pFilteringTable;
diff --git a/ipacm/src/Makefile.am b/ipacm/src/Makefile.am
index 02959e8..1eac45a 100644
--- a/ipacm/src/Makefile.am
+++ b/ipacm/src/Makefile.am
@@ -2,7 +2,6 @@
-I$(top_srcdir)/ipanat/inc \
${LIBXML_CFLAGS}
AM_CPPFLAGS += -Wall -Wundef -Wno-trigraphs
-AM_CPPFLAGS += -DWLAN_SW_RX
AM_CPPFLAGS += -DDEBUG
ipacm_SOURCES = IPACM_Main.cpp \