summaryrefslogtreecommitdiff
path: root/ipacm/src/IPACM_Netlink.cpp
diff options
context:
space:
mode:
authorSkylar Chang <chiaweic@codeaurora.org>2014-09-23 00:44:01 -0700
committerSkylar Chang <chiaweic@codeaurora.org>2014-09-23 00:50:04 -0700
commit2736e166532dca2a9e66234ec60d3a212a2dd26c (patch)
treebf902bebc70ad0047ff99f206bb04824f9ef1f1d /ipacm/src/IPACM_Netlink.cpp
parentd0dd21cb235ee8ffa0cc7401c443dab45af958af (diff)
downloadipacfg-mgr-2736e166532dca2a9e66234ec60d3a212a2dd26c.tar.gz
IPACM: filter out AF_BRIDGE netlink message
In android platform, we observed the unexpected dellink event is coming when usb-tethering is on and enable wlan-AP hotspot next. Therefore IPACM will think usb iface is down and clean up all the rules on USB-RX pipe in IPA-HW. The fix is to filter out these unexpected events which comes with IP family: AF_BRIDGE. Change-Id: Id97c5c57d69d6ebf578d58ae134838166d4218e0
Diffstat (limited to 'ipacm/src/IPACM_Netlink.cpp')
-rw-r--r--ipacm/src/IPACM_Netlink.cpp18
1 files changed, 18 insertions, 0 deletions
diff --git a/ipacm/src/IPACM_Netlink.cpp b/ipacm/src/IPACM_Netlink.cpp
index b5d7060..a82a904 100644
--- a/ipacm/src/IPACM_Netlink.cpp
+++ b/ipacm/src/IPACM_Netlink.cpp
@@ -640,6 +640,12 @@ static int ipa_nl_decode_nlmsg
IPACMDBG("RTM_NEWLINK, ifi_index:%d\n", msg_ptr->nl_link_info.metainfo.ifi_index);
IPACMDBG("RTM_NEWLINK, family:%d\n", msg_ptr->nl_link_info.metainfo.ifi_family);
+ if (msg_ptr->nl_link_info.metainfo.ifi_family == AF_BRIDGE)
+ {
+ IPACMERR(" ignore this RTM_NEWLINK msg \n");
+ return IPACM_SUCCESS;
+ }
+
if(IFF_UP & msg_ptr->nl_link_info.metainfo.ifi_change)
{
IPACMDBG("GOT useful newlink event\n");
@@ -757,6 +763,18 @@ static int ipa_nl_decode_nlmsg
}
else
{
+ IPACMDBG("Got RTM_DELLINK with below values\n");
+ IPACMDBG("RTM_DELLINK, ifi_change:%d\n", msg_ptr->nl_link_info.metainfo.ifi_change);
+ IPACMDBG("RTM_DELLINK, ifi_flags:%d\n", msg_ptr->nl_link_info.metainfo.ifi_flags);
+ IPACMDBG("RTM_DELLINK, ifi_index:%d\n", msg_ptr->nl_link_info.metainfo.ifi_index);
+ IPACMDBG("RTM_DELLINK, family:%d\n", msg_ptr->nl_link_info.metainfo.ifi_family);
+
+ if (msg_ptr->nl_link_info.metainfo.ifi_family == AF_BRIDGE)
+ {
+ IPACMERR(" ignore this RTM_DELLINK msg \n");
+ return IPACM_SUCCESS;
+ }
+
ret_val = ipa_get_if_name(dev_name, msg_ptr->nl_link_info.metainfo.ifi_index);
if(ret_val != IPACM_SUCCESS)
{