diff options
author | Skylar Chang <chiaweic@codeaurora.org> | 2014-09-23 00:44:01 -0700 |
---|---|---|
committer | Skylar Chang <chiaweic@codeaurora.org> | 2014-09-23 00:50:04 -0700 |
commit | 2736e166532dca2a9e66234ec60d3a212a2dd26c (patch) | |
tree | bf902bebc70ad0047ff99f206bb04824f9ef1f1d /ipacm/src/IPACM_Netlink.cpp | |
parent | d0dd21cb235ee8ffa0cc7401c443dab45af958af (diff) | |
download | ipacfg-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.cpp | 18 |
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) { |