diff options
author | Skylar Chang <chiaweic@codeaurora.org> | 2014-05-13 13:41:24 -0700 |
---|---|---|
committer | Skylar Chang <chiaweic@codeaurora.org> | 2014-05-21 03:26:12 -0700 |
commit | 5a569ca5e6addd99e4123c5b0f7b0f748b4e2dd8 (patch) | |
tree | 14143d7a5434f0d61669f9037a8f25efc05c1863 /ipacm/src/IPACM_Netlink.cpp | |
parent | f13f7ae478c1302d6c863dd7a1e12a96637ab208 (diff) | |
download | ipacfg-mgr-5a569ca5e6addd99e4123c5b0f7b0f748b4e2dd8.tar.gz |
IPACM: support usb dynamic config w.o plug-in/out
In order to support dynamically change from ecm-thethering
to ecm-backhaul without usb-cable plug-in/plug-out, IPACM
needs to propagate configuration change event to all ifaces
and each iface will clean/delete its own rules if its
category is changed and open a new instance to install
the new routing/filtering rules.
Change-Id: I38fc8087587e45b219cfe702bc37f762b06f0303
Diffstat (limited to 'ipacm/src/IPACM_Netlink.cpp')
-rw-r--r-- | ipacm/src/IPACM_Netlink.cpp | 160 |
1 files changed, 79 insertions, 81 deletions
diff --git a/ipacm/src/IPACM_Netlink.cpp b/ipacm/src/IPACM_Netlink.cpp index ae3902c..012668e 100644 --- a/ipacm/src/IPACM_Netlink.cpp +++ b/ipacm/src/IPACM_Netlink.cpp @@ -1,4 +1,4 @@ -/* +/* Copyright (c) 2013, The Linux Foundation. All rights reserved. Redistribution and use in source and binary forms, with or without @@ -147,8 +147,7 @@ static int ipa_nl_open_socket if (setsockopt(*p_sk_fd, SOL_SOCKET, SO_RCVBUF, &buf_size, sizeof(int)) == -1) { IPACMERR("Error setting socket opts\n"); } - - + /* Initialize socket addresses to null */ memset(p_sk_addr_loc, 0, sizeof(struct sockaddr_nl)); @@ -158,7 +157,7 @@ static int ipa_nl_open_socket p_sk_addr_loc->nl_groups = grps; /* Bind socket to the local address, i.e. specified groups. This ensures - that multicast messages for these groups are delivered over this + that multicast messages for these groups are delivered over this socket. */ if(bind(*p_sk_fd, @@ -394,7 +393,7 @@ static int ipa_nl_recv return IPACM_SUCCESS; -/* An error occurred while receiving the message. Free all memory before +/* An error occurred while receiving the message. Free all memory before returning. */ error: ipa_nl_release_msg(msgh); @@ -433,7 +432,7 @@ static int ipa_nl_decode_rtm_addr { struct nlmsghdr *nlh = (struct nlmsghdr *)buffer; /* NL message header */ struct rtattr *rtah = NULL; - + /* Extract the header data */ addr_info->metainfo = *((struct ifaddrmsg *)NLMSG_DATA(nlh)); buflen -= sizeof(struct nlmsghdr); @@ -475,7 +474,7 @@ static int ipa_nl_decode_rtm_neigh { struct nlmsghdr *nlh = (struct nlmsghdr *)buffer; /* NL message header */ struct rtattr *rtah = NULL; - + /* Extract the header data */ neigh_info->metainfo = *((struct ndmsg *)NLMSG_DATA(nlh)); buflen -= sizeof(struct nlmsghdr); @@ -523,7 +522,7 @@ static int ipa_nl_decode_rtm_route { struct nlmsghdr *nlh = (struct nlmsghdr *)buffer; /* NL message header */ struct rtattr *rtah = NULL; - + /* Extract the header data */ route_info->metainfo = *((struct rtmsg *)NLMSG_DATA(nlh)); buflen -= sizeof(struct nlmsghdr); @@ -632,7 +631,7 @@ static int ipa_nl_decode_nlmsg { IPACMDBG("\n GOT useful newlink event\n"); ret_val = ipa_get_if_name(dev_name, msg_ptr->nl_link_info.metainfo.ifi_index); - + data_fid = (ipacm_event_data_fid *)malloc(sizeof(ipacm_event_data_fid)); if(data_fid == NULL) { @@ -640,7 +639,7 @@ static int ipa_nl_decode_nlmsg return IPACM_FAILURE; } data_fid->if_index = msg_ptr->nl_link_info.metainfo.ifi_index; - + if(msg_ptr->nl_link_info.metainfo.ifi_flags & IFF_UP) { IPACMDBG("Interface %s bring up with IP-family: %d \n", dev_name, msg_ptr->nl_link_info.metainfo.ifi_family); @@ -662,8 +661,8 @@ static int ipa_nl_decode_nlmsg IPACM_EvtDispatcher::PostEvt(&evt_data); } - - /* Add IPACM support for ECM plug-in/plug_out */ + + /* Add IPACM support for ECM plug-in/plug_out */ /*-------------------------------------------------------------------------- Check if the interface is running.If its a RTM_NEWLINK and the interface is running then it means that its a link up event @@ -671,7 +670,7 @@ static int ipa_nl_decode_nlmsg if((msg_ptr->nl_link_info.metainfo.ifi_flags & IFF_RUNNING) && (msg_ptr->nl_link_info.metainfo.ifi_flags & IFF_LOWER_UP)) { - + data_fid = (ipacm_event_data_fid *)malloc(sizeof(ipacm_event_data_fid)); if(data_fid == NULL) { @@ -679,17 +678,17 @@ static int ipa_nl_decode_nlmsg return IPACM_FAILURE; } data_fid->if_index = msg_ptr->nl_link_info.metainfo.ifi_index; - + ret_val = ipa_get_if_name(dev_name, msg_ptr->nl_link_info.metainfo.ifi_index); IPACMDBG("Got a ECM link_up event (Interface %s) \n", dev_name); - + /*-------------------------------------------------------------------------- Post LAN iface (ECM) link up event ---------------------------------------------------------------------------*/ evt_data.event = IPA_USB_LINK_UP_EVENT; evt_data.evt_data = data_fid; IPACM_EvtDispatcher::PostEvt(&evt_data); - } + } else if(!(msg_ptr->nl_link_info.metainfo.ifi_flags & IFF_LOWER_UP)) { data_fid = (ipacm_event_data_fid *)malloc(sizeof(ipacm_event_data_fid)); @@ -703,14 +702,14 @@ static int ipa_nl_decode_nlmsg ret_val = ipa_get_if_name(dev_name, msg_ptr->nl_link_info.metainfo.ifi_index); IPACMDBG("Got a ECM link_down event (Interface %s) \n", dev_name); - /*-------------------------------------------------------------------------- - Post LAN iface (ECM) link down event - ---------------------------------------------------------------------------*/ - evt_data.event = IPA_LINK_DOWN_EVENT; + /*-------------------------------------------------------------------------- + Post LAN iface (ECM) link down event + ---------------------------------------------------------------------------*/ + evt_data.event = IPA_LINK_DOWN_EVENT; evt_data.evt_data = data_fid; - IPACM_EvtDispatcher::PostEvt(&evt_data); - } - + IPACM_EvtDispatcher::PostEvt(&evt_data); + } + } break; @@ -783,7 +782,7 @@ static int ipa_nl_decode_nlmsg data_addr->ipv6_addr[0] = ntohl(data_addr->ipv6_addr[0]); data_addr->ipv6_addr[1] = ntohl(data_addr->ipv6_addr[1]); data_addr->ipv6_addr[2] = ntohl(data_addr->ipv6_addr[2]); - data_addr->ipv6_addr[3] = ntohl(data_addr->ipv6_addr[3]); + data_addr->ipv6_addr[3] = ntohl(data_addr->ipv6_addr[3]); } else { @@ -791,7 +790,7 @@ static int ipa_nl_decode_nlmsg IPACM_NL_REPORT_ADDR( "IFA_ADDRESS:", msg_ptr->nl_addr_info.attr_info.prefix_addr ); IPACM_EVENT_COPY_ADDR_v4( data_addr->ipv4_addr, msg_ptr->nl_addr_info.attr_info.prefix_addr); data_addr->ipv4_addr = ntohl(data_addr->ipv4_addr); - + } evt_data.event = IPA_ADDR_ADD_EVENT; @@ -803,7 +802,7 @@ static int ipa_nl_decode_nlmsg data_addr->ipv6_addr[0], data_addr->ipv6_addr[1], data_addr->ipv6_addr[2], - data_addr->ipv6_addr[3]); + data_addr->ipv6_addr[3]); } else { @@ -832,11 +831,11 @@ static int ipa_nl_decode_nlmsg IPACMDBG("rtm_table: %d\n", msg_ptr->nl_route_info.metainfo.rtm_table); IPACMDBG("rtm_family: %d\n", msg_ptr->nl_route_info.metainfo.rtm_family); IPACMDBG("param_mask: 0x%x\n", msg_ptr->nl_route_info.attr_info.param_mask); - + /* take care of route add default route & uniroute */ - if((msg_ptr->nl_route_info.metainfo.rtm_type == RTN_UNICAST) && - (msg_ptr->nl_route_info.metainfo.rtm_protocol == RTPROT_BOOT) && - (msg_ptr->nl_route_info.metainfo.rtm_scope == RT_SCOPE_UNIVERSE) && + if((msg_ptr->nl_route_info.metainfo.rtm_type == RTN_UNICAST) && + (msg_ptr->nl_route_info.metainfo.rtm_protocol == RTPROT_BOOT) && + (msg_ptr->nl_route_info.metainfo.rtm_scope == RT_SCOPE_UNIVERSE) && (msg_ptr->nl_route_info.metainfo.rtm_table == RT_TABLE_MAIN)) { IPACMDBG("\n GOT RTM_NEWROUTE event\n"); @@ -849,8 +848,8 @@ static int ipa_nl_decode_nlmsg IPACMERR("Error while getting interface name\n"); } - IPACM_NL_REPORT_ADDR( "route add -host", msg_ptr->nl_route_info.attr_info.dst_addr ); - IPACM_NL_REPORT_ADDR( "gw", msg_ptr->nl_route_info.attr_info.gateway_addr ); + IPACM_NL_REPORT_ADDR( "route add -host", msg_ptr->nl_route_info.attr_info.dst_addr ); + IPACM_NL_REPORT_ADDR( "gw", msg_ptr->nl_route_info.attr_info.gateway_addr ); IPACMDBG("dev %s\n",dev_name ); /* insert to command queue */ IPACM_EVENT_COPY_ADDR_v4( if_ipv4_addr, msg_ptr->nl_route_info.attr_info.dst_addr); @@ -917,13 +916,13 @@ static int ipa_nl_decode_nlmsg data_addr->ipv6_addr_mask[0] = ntohl(data_addr->ipv6_addr_mask[0]); data_addr->ipv6_addr_mask[1] = ntohl(data_addr->ipv6_addr_mask[1]); data_addr->ipv6_addr_mask[2] = ntohl(data_addr->ipv6_addr_mask[2]); - data_addr->ipv6_addr_mask[3] = ntohl(data_addr->ipv6_addr_mask[3]); + data_addr->ipv6_addr_mask[3] = ntohl(data_addr->ipv6_addr_mask[3]); evt_data.event = IPA_ROUTE_ADD_EVENT; data_addr->if_index = msg_ptr->nl_route_info.attr_info.oif_index; data_addr->iptype = IPA_IP_v6; - IPACMDBG("Posting IPA_ROUTE_ADD_EVENT with if index:%d, ipv6 address\n", + IPACMDBG("Posting IPA_ROUTE_ADD_EVENT with if index:%d, ipv6 address\n", data_addr->if_index); evt_data.evt_data = data_addr; IPACM_EvtDispatcher::PostEvt(&evt_data); @@ -932,8 +931,8 @@ static int ipa_nl_decode_nlmsg } else { - IPACM_NL_REPORT_ADDR( "route add default gw", msg_ptr->nl_route_info.attr_info.gateway_addr ); - IPACMDBG("dev %s", dev_name); + IPACM_NL_REPORT_ADDR( "route add default gw \n", msg_ptr->nl_route_info.attr_info.gateway_addr ); + IPACMDBG("dev %s \n", dev_name); IPACM_NL_REPORT_ADDR( "dstIP:", msg_ptr->nl_route_info.attr_info.dst_addr ); /* insert to command queue */ @@ -944,8 +943,8 @@ static int ipa_nl_decode_nlmsg return IPACM_FAILURE; } - IPACM_EVENT_COPY_ADDR_v4( if_ipv4_addr, msg_ptr->nl_route_info.attr_info.dst_addr); - IPACM_EVENT_COPY_ADDR_v4( if_ipipv4_addr_mask, msg_ptr->nl_route_info.attr_info.dst_addr); + IPACM_EVENT_COPY_ADDR_v4( if_ipv4_addr, msg_ptr->nl_route_info.attr_info.dst_addr); + IPACM_EVENT_COPY_ADDR_v4( if_ipipv4_addr_mask, msg_ptr->nl_route_info.attr_info.dst_addr); evt_data.event = IPA_ROUTE_ADD_EVENT; data_addr->if_index = msg_ptr->nl_route_info.attr_info.oif_index; @@ -965,9 +964,9 @@ static int ipa_nl_decode_nlmsg } /* ipv6 routing table */ - if((AF_INET6 == msg_ptr->nl_route_info.metainfo.rtm_family) && - (msg_ptr->nl_route_info.metainfo.rtm_type == RTN_UNICAST) && - (msg_ptr->nl_route_info.metainfo.rtm_protocol == RTPROT_KERNEL) && + if((AF_INET6 == msg_ptr->nl_route_info.metainfo.rtm_family) && + (msg_ptr->nl_route_info.metainfo.rtm_type == RTN_UNICAST) && + (msg_ptr->nl_route_info.metainfo.rtm_protocol == RTPROT_KERNEL) && (msg_ptr->nl_route_info.metainfo.rtm_table == RT_TABLE_MAIN)) { IPACMDBG("\n GOT valid v6-RTM_NEWROUTE event\n"); @@ -985,7 +984,7 @@ static int ipa_nl_decode_nlmsg msg_ptr->nl_route_info.metainfo.rtm_dst_len, msg_ptr->nl_route_info.attr_info.priority, dev_name); - + /* insert to command queue */ data_addr = (ipacm_event_data_addr *)malloc(sizeof(ipacm_event_data_addr)); if(data_addr == NULL) @@ -999,7 +998,7 @@ static int ipa_nl_decode_nlmsg data_addr->ipv6_addr[0] = ntohl(data_addr->ipv6_addr[0]); data_addr->ipv6_addr[1] = ntohl(data_addr->ipv6_addr[1]); data_addr->ipv6_addr[2] = ntohl(data_addr->ipv6_addr[2]); - data_addr->ipv6_addr[3] = ntohl(data_addr->ipv6_addr[3]); + data_addr->ipv6_addr[3] = ntohl(data_addr->ipv6_addr[3]); mask_value_v6 = msg_ptr->nl_route_info.metainfo.rtm_dst_len; for(mask_index = 0; mask_index < 4; mask_index++) @@ -1026,8 +1025,8 @@ static int ipa_nl_decode_nlmsg data_addr->ipv6_addr_mask[0] = ntohl(data_addr->ipv6_addr_mask[0]); data_addr->ipv6_addr_mask[1] = ntohl(data_addr->ipv6_addr_mask[1]); data_addr->ipv6_addr_mask[2] = ntohl(data_addr->ipv6_addr_mask[2]); - data_addr->ipv6_addr_mask[3] = ntohl(data_addr->ipv6_addr_mask[3]); - + data_addr->ipv6_addr_mask[3] = ntohl(data_addr->ipv6_addr_mask[3]); + evt_data.event = IPA_ROUTE_ADD_EVENT; data_addr->if_index = msg_ptr->nl_route_info.attr_info.oif_index; data_addr->iptype = IPA_IP_v6; @@ -1044,7 +1043,7 @@ static int ipa_nl_decode_nlmsg IPACMDBG(" metric %d, dev %s\n", msg_ptr->nl_route_info.attr_info.priority, dev_name); - + /* insert to command queue */ data_addr = (ipacm_event_data_addr *)malloc(sizeof(ipacm_event_data_addr)); if(data_addr == NULL) @@ -1055,17 +1054,17 @@ static int ipa_nl_decode_nlmsg IPACM_EVENT_COPY_ADDR_v6( data_addr->ipv6_addr, msg_ptr->nl_route_info.attr_info.dst_addr); - data_addr->ipv6_addr[0]=ntohl(data_addr->ipv6_addr[0]); - data_addr->ipv6_addr[1]=ntohl(data_addr->ipv6_addr[1]); - data_addr->ipv6_addr[2]=ntohl(data_addr->ipv6_addr[2]); - data_addr->ipv6_addr[3]=ntohl(data_addr->ipv6_addr[3]); + data_addr->ipv6_addr[0]=ntohl(data_addr->ipv6_addr[0]); + data_addr->ipv6_addr[1]=ntohl(data_addr->ipv6_addr[1]); + data_addr->ipv6_addr[2]=ntohl(data_addr->ipv6_addr[2]); + data_addr->ipv6_addr[3]=ntohl(data_addr->ipv6_addr[3]); IPACM_EVENT_COPY_ADDR_v6( data_addr->ipv6_addr_mask, msg_ptr->nl_route_info.attr_info.dst_addr); - data_addr->ipv6_addr_mask[0]=ntohl(data_addr->ipv6_addr_mask[0]); - data_addr->ipv6_addr_mask[1]=ntohl(data_addr->ipv6_addr_mask[1]); - data_addr->ipv6_addr_mask[2]=ntohl(data_addr->ipv6_addr_mask[2]); - data_addr->ipv6_addr_mask[3]=ntohl(data_addr->ipv6_addr_mask[3]); + data_addr->ipv6_addr_mask[0]=ntohl(data_addr->ipv6_addr_mask[0]); + data_addr->ipv6_addr_mask[1]=ntohl(data_addr->ipv6_addr_mask[1]); + data_addr->ipv6_addr_mask[2]=ntohl(data_addr->ipv6_addr_mask[2]); + data_addr->ipv6_addr_mask[3]=ntohl(data_addr->ipv6_addr_mask[3]); evt_data.event = IPA_ROUTE_ADD_EVENT; data_addr->if_index = msg_ptr->nl_route_info.attr_info.oif_index; @@ -1087,9 +1086,9 @@ static int ipa_nl_decode_nlmsg return IPACM_FAILURE; } /* take care of route delete of default route & uniroute */ - if((msg_ptr->nl_route_info.metainfo.rtm_type == RTN_UNICAST) && - (msg_ptr->nl_route_info.metainfo.rtm_protocol == RTPROT_BOOT) && - (msg_ptr->nl_route_info.metainfo.rtm_scope == 0) && + if((msg_ptr->nl_route_info.metainfo.rtm_type == RTN_UNICAST) && + (msg_ptr->nl_route_info.metainfo.rtm_protocol == RTPROT_BOOT) && + (msg_ptr->nl_route_info.metainfo.rtm_scope == 0) && (msg_ptr->nl_route_info.metainfo.rtm_table == RT_TABLE_MAIN)) { @@ -1162,19 +1161,19 @@ static int ipa_nl_decode_nlmsg data_addr->ipv6_addr[0] = ntohl(data_addr->ipv6_addr[0]); data_addr->ipv6_addr[1] = ntohl(data_addr->ipv6_addr[1]); data_addr->ipv6_addr[2] = ntohl(data_addr->ipv6_addr[2]); - data_addr->ipv6_addr[3] = ntohl(data_addr->ipv6_addr[3]); + data_addr->ipv6_addr[3] = ntohl(data_addr->ipv6_addr[3]); IPACM_EVENT_COPY_ADDR_v6( data_addr->ipv6_addr_mask, msg_ptr->nl_route_info.attr_info.dst_addr); data_addr->ipv6_addr_mask[0] = ntohl(data_addr->ipv6_addr_mask[0]); data_addr->ipv6_addr_mask[1] = ntohl(data_addr->ipv6_addr_mask[1]); data_addr->ipv6_addr_mask[2] = ntohl(data_addr->ipv6_addr_mask[2]); - data_addr->ipv6_addr_mask[3] = ntohl(data_addr->ipv6_addr_mask[3]); + data_addr->ipv6_addr_mask[3] = ntohl(data_addr->ipv6_addr_mask[3]); data_addr->iptype = IPA_IP_v6; } else { - IPACM_NL_REPORT_ADDR( "route del default gw", msg_ptr->nl_route_info.attr_info.gateway_addr); + IPACM_NL_REPORT_ADDR( "route del default gw", msg_ptr->nl_route_info.attr_info.gateway_addr); IPACMDBG("dev %s\n", dev_name); IPACM_EVENT_COPY_ADDR_v4( data_addr->ipv4_addr, msg_ptr->nl_route_info.attr_info.dst_addr); @@ -1198,9 +1197,9 @@ static int ipa_nl_decode_nlmsg } /* ipv6 routing table */ - if((AF_INET6 == msg_ptr->nl_route_info.metainfo.rtm_family) && - (msg_ptr->nl_route_info.metainfo.rtm_type == RTN_UNICAST) && - (msg_ptr->nl_route_info.metainfo.rtm_protocol == RTPROT_KERNEL) && + if((AF_INET6 == msg_ptr->nl_route_info.metainfo.rtm_family) && + (msg_ptr->nl_route_info.metainfo.rtm_type == RTN_UNICAST) && + (msg_ptr->nl_route_info.metainfo.rtm_protocol == RTPROT_KERNEL) && (msg_ptr->nl_route_info.metainfo.rtm_table == RT_TABLE_MAIN)) { IPACMDBG("\n GOT valid v6-RTM_DELROUTE event\n"); @@ -1231,7 +1230,7 @@ static int ipa_nl_decode_nlmsg data_addr->ipv6_addr[0] = ntohl(data_addr->ipv6_addr[0]); data_addr->ipv6_addr[1] = ntohl(data_addr->ipv6_addr[1]); data_addr->ipv6_addr[2] = ntohl(data_addr->ipv6_addr[2]); - data_addr->ipv6_addr[3] = ntohl(data_addr->ipv6_addr[3]); + data_addr->ipv6_addr[3] = ntohl(data_addr->ipv6_addr[3]); mask_value_v6 = msg_ptr->nl_route_info.metainfo.rtm_dst_len; for(mask_index = 0; mask_index < 4; mask_index++) @@ -1269,8 +1268,8 @@ static int ipa_nl_decode_nlmsg data_addr->ipv6_addr_mask[0] = ntohl(data_addr->ipv6_addr_mask[0]); data_addr->ipv6_addr_mask[1] = ntohl(data_addr->ipv6_addr_mask[1]); data_addr->ipv6_addr_mask[2] = ntohl(data_addr->ipv6_addr_mask[2]); - data_addr->ipv6_addr_mask[3] = ntohl(data_addr->ipv6_addr_mask[3]); - + data_addr->ipv6_addr_mask[3] = ntohl(data_addr->ipv6_addr_mask[3]); + evt_data.event = IPA_ROUTE_DEL_EVENT; data_addr->if_index = msg_ptr->nl_route_info.attr_info.oif_index; data_addr->iptype = IPA_IP_v6; @@ -1310,21 +1309,21 @@ static int ipa_nl_decode_nlmsg return IPACM_FAILURE; } - memset(data_all, 0, sizeof(ipacm_event_data_all)); + memset(data_all, 0, sizeof(ipacm_event_data_all)); if(msg_ptr->nl_neigh_info.attr_info.local_addr.ss_family == AF_INET6) { IPACM_NL_REPORT_ADDR( " ", msg_ptr->nl_neigh_info.attr_info.local_addr); IPACM_EVENT_COPY_ADDR_v6( data_all->ipv6_addr, msg_ptr->nl_neigh_info.attr_info.local_addr); - - data_all->ipv6_addr[0]=ntohl(data_all->ipv6_addr[0]); - data_all->ipv6_addr[1]=ntohl(data_all->ipv6_addr[1]); - data_all->ipv6_addr[2]=ntohl(data_all->ipv6_addr[2]); - data_all->ipv6_addr[3]=ntohl(data_all->ipv6_addr[3]); + + data_all->ipv6_addr[0]=ntohl(data_all->ipv6_addr[0]); + data_all->ipv6_addr[1]=ntohl(data_all->ipv6_addr[1]); + data_all->ipv6_addr[2]=ntohl(data_all->ipv6_addr[2]); + data_all->ipv6_addr[3]=ntohl(data_all->ipv6_addr[3]); data_all->iptype = IPA_IP_v6; } else if (msg_ptr->nl_neigh_info.attr_info.local_addr.ss_family == AF_INET) { - IPACM_NL_REPORT_ADDR( " ", msg_ptr->nl_neigh_info.attr_info.local_addr); + IPACM_NL_REPORT_ADDR( " ", msg_ptr->nl_neigh_info.attr_info.local_addr); IPACM_EVENT_COPY_ADDR_v4( data_all->ipv4_addr, msg_ptr->nl_neigh_info.attr_info.local_addr); data_all->ipv4_addr = ntohl(data_all->ipv4_addr); data_all->iptype = IPA_IP_v4; @@ -1375,7 +1374,7 @@ static int ipa_nl_decode_nlmsg { IPACMDBG("\n GOT RTM_DELNEIGH event (%s) ip %d\n",dev_name,msg_ptr->nl_neigh_info.attr_info.local_addr.ss_family); } - + /* insert to command queue */ data_all = (ipacm_event_data_all *)malloc(sizeof(ipacm_event_data_all)); if(data_all == NULL) @@ -1384,21 +1383,21 @@ static int ipa_nl_decode_nlmsg return IPACM_FAILURE; } - memset(data_all, 0, sizeof(ipacm_event_data_all)); + memset(data_all, 0, sizeof(ipacm_event_data_all)); if(msg_ptr->nl_neigh_info.attr_info.local_addr.ss_family == AF_INET6) { - IPACM_NL_REPORT_ADDR( " ", msg_ptr->nl_neigh_info.attr_info.local_addr); + IPACM_NL_REPORT_ADDR( " ", msg_ptr->nl_neigh_info.attr_info.local_addr); IPACM_EVENT_COPY_ADDR_v6( data_all->ipv6_addr, msg_ptr->nl_neigh_info.attr_info.local_addr); data_all->ipv6_addr[0] = ntohl(data_all->ipv6_addr[0]); data_all->ipv6_addr[1] = ntohl(data_all->ipv6_addr[1]); data_all->ipv6_addr[2] = ntohl(data_all->ipv6_addr[2]); - data_all->ipv6_addr[3] = ntohl(data_all->ipv6_addr[3]); + data_all->ipv6_addr[3] = ntohl(data_all->ipv6_addr[3]); data_all->iptype = IPA_IP_v6; } else if (msg_ptr->nl_neigh_info.attr_info.local_addr.ss_family == AF_INET) { - IPACM_NL_REPORT_ADDR( " ", msg_ptr->nl_neigh_info.attr_info.local_addr); + IPACM_NL_REPORT_ADDR( " ", msg_ptr->nl_neigh_info.attr_info.local_addr); IPACM_EVENT_COPY_ADDR_v4( data_all->ipv4_addr, msg_ptr->nl_neigh_info.attr_info.local_addr); data_all->ipv4_addr = ntohl(data_all->ipv4_addr); data_all->iptype = IPA_IP_v4; @@ -1407,7 +1406,7 @@ static int ipa_nl_decode_nlmsg { data_all->iptype = IPA_IP_v6; } - + IPACMDBG("NDA_LLADDR:MAC %02x:%02x:%02x:%02x:%02x:%02x\n", (unsigned char)(msg_ptr->nl_neigh_info.attr_info.lladdr_hwaddr).sa_data[0], (unsigned char)(msg_ptr->nl_neigh_info.attr_info.lladdr_hwaddr).sa_data[1], @@ -1415,7 +1414,6 @@ static int ipa_nl_decode_nlmsg (unsigned char)(msg_ptr->nl_neigh_info.attr_info.lladdr_hwaddr).sa_data[3], (unsigned char)(msg_ptr->nl_neigh_info.attr_info.lladdr_hwaddr).sa_data[4], (unsigned char)(msg_ptr->nl_neigh_info.attr_info.lladdr_hwaddr).sa_data[5]); - memcpy(data_all->mac_addr, msg_ptr->nl_neigh_info.attr_info.lladdr_hwaddr.sa_data, @@ -1553,7 +1551,7 @@ int ipa_nl_listener_init return IPACM_FAILURE; } - /* Add NETLINK socket to the list of sockets that the listener + /* Add NETLINK socket to the list of sockets that the listener thread should listen on. */ if(ipa_nl_addfd_map(sk_fdset, sk_info.sk_fd, read_f) != IPACM_SUCCESS) |