You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nuttx.apache.org by gn...@apache.org on 2020/04/10 15:22:16 UTC

[incubator-nuttx-apps] 01/03: netlib: correct netlink usage to follow Linux convention

This is an automated email from the ASF dual-hosted git repository.

gnutt pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-nuttx-apps.git

commit 300bc2729a89158f616387929c4a7b0e8eeca607
Author: Xiang Xiao <xi...@xiaomi.com>
AuthorDate: Thu Apr 9 06:37:04 2020 -0400

    netlib: correct netlink usage to follow Linux convention
    
    Signed-off-by: Xiang Xiao <xi...@xiaomi.com>
    Change-Id: Iae98b0a008dc42dddb77f47d79511ae4fb4bbfca
---
 netutils/netlib/netlib_getarptab.c |  5 ++---
 netutils/netlib/netlib_getdevs.c   | 13 +------------
 netutils/netlib/netlib_getnbtab.c  |  5 ++---
 netutils/netlib/netlib_getroute.c  |  5 +----
 4 files changed, 6 insertions(+), 22 deletions(-)

diff --git a/netutils/netlib/netlib_getarptab.c b/netutils/netlib/netlib_getarptab.c
index 39c3c66..3385eef 100644
--- a/netutils/netlib/netlib_getarptab.c
+++ b/netutils/netlib/netlib_getarptab.c
@@ -44,7 +44,6 @@
 #include <unistd.h>
 #include <string.h>
 #include <errno.h>
-#include <errno.h>
 
 #include <netpacket/netlink.h>
 
@@ -142,7 +141,7 @@ ssize_t netlib_get_arptable(FAR struct arp_entry_s *arptab,
   addr.nl_family = AF_NETLINK;
   addr.nl_pad    = 0;
   addr.nl_pid    = pid;
-  addr.nl_groups = RTM_GETNEIGH;
+  addr.nl_groups = 0;
 
   ret = bind(fd, (FAR const struct sockaddr *)&addr,
              sizeof( struct sockaddr_nl));
@@ -160,7 +159,7 @@ ssize_t netlib_get_arptable(FAR struct arp_entry_s *arptab,
 
   memset(&req, 0, sizeof(req));
   req.hdr.nlmsg_len   = NLMSG_LENGTH(sizeof(struct ndmsg));
-  req.hdr.nlmsg_flags = NLM_F_REQUEST | NLM_F_ROOT | NLM_F_REQUEST;
+  req.hdr.nlmsg_flags = NLM_F_REQUEST | NLM_F_DUMP;
   req.hdr.nlmsg_seq   = thiseq;
   req.hdr.nlmsg_type  = RTM_GETNEIGH;
   req.hdr.nlmsg_pid   = pid;
diff --git a/netutils/netlib/netlib_getdevs.c b/netutils/netlib/netlib_getdevs.c
index 958ec22..6093547 100644
--- a/netutils/netlib/netlib_getdevs.c
+++ b/netutils/netlib/netlib_getdevs.c
@@ -129,7 +129,7 @@ ssize_t netlib_get_devices(FAR struct netlib_device_s *devlist,
   addr.nl_family = AF_NETLINK;
   addr.nl_pad    = 0;
   addr.nl_pid    = pid;
-  addr.nl_groups = RTM_GETLINK;
+  addr.nl_groups = 0;
 
   ret = bind(fd, (FAR const struct sockaddr *)&addr,
              sizeof( struct sockaddr_nl));
@@ -256,17 +256,6 @@ ssize_t netlib_get_devices(FAR struct netlib_device_s *devlist,
             }
             break;
 
-          /* RTM_NEWROUTE provides routing information for the device
-           * (address, gateway, etc.)
-           */
-
-          case RTM_NEWROUTE:
-            {
-              fprintf(stderr, "WARNING: RTM_NEWLINK Message type not "
-                              "implemented\n");
-            }
-            break;
-
           default:
             fprintf(stderr, "ERROR: Message type %u, length %lu\n",
                     resp.hdr.nlmsg_type, (unsigned long)resp.hdr.nlmsg_len);
diff --git a/netutils/netlib/netlib_getnbtab.c b/netutils/netlib/netlib_getnbtab.c
index acb070c..bcbf8b4 100644
--- a/netutils/netlib/netlib_getnbtab.c
+++ b/netutils/netlib/netlib_getnbtab.c
@@ -44,7 +44,6 @@
 #include <unistd.h>
 #include <string.h>
 #include <errno.h>
-#include <errno.h>
 
 #include <netpacket/netlink.h>
 
@@ -143,7 +142,7 @@ ssize_t netlib_get_nbtable(FAR struct neighbor_entry_s *nbtab,
   addr.nl_family = AF_NETLINK;
   addr.nl_pad    = 0;
   addr.nl_pid    = pid;
-  addr.nl_groups = RTM_GETNEIGH;
+  addr.nl_groups = 0;
 
   ret = bind(fd, (FAR const struct sockaddr *)&addr,
              sizeof( struct sockaddr_nl));
@@ -161,7 +160,7 @@ ssize_t netlib_get_nbtable(FAR struct neighbor_entry_s *nbtab,
 
   memset(&req, 0, sizeof(req));
   req.hdr.nlmsg_len   = NLMSG_LENGTH(sizeof(struct ndmsg));
-  req.hdr.nlmsg_flags = NLM_F_REQUEST | NLM_F_ROOT | NLM_F_REQUEST;
+  req.hdr.nlmsg_flags = NLM_F_REQUEST | NLM_F_DUMP;
   req.hdr.nlmsg_seq   = thiseq;
   req.hdr.nlmsg_type  = RTM_GETNEIGH;
   req.hdr.nlmsg_pid   = pid;
diff --git a/netutils/netlib/netlib_getroute.c b/netutils/netlib/netlib_getroute.c
index 954f6ff..502aec4 100644
--- a/netutils/netlib/netlib_getroute.c
+++ b/netutils/netlib/netlib_getroute.c
@@ -158,7 +158,7 @@ ssize_t netlib_get_route(FAR struct rtentry *rtelist,
   addr.nl_family = AF_NETLINK;
   addr.nl_pad    = 0;
   addr.nl_pid    = pid;
-  addr.nl_groups = RTM_GETROUTE;
+  addr.nl_groups = 0;
 
   ret = bind(fd, (FAR const struct sockaddr *)&addr,
              sizeof( struct sockaddr_nl));
@@ -247,9 +247,6 @@ ssize_t netlib_get_route(FAR struct rtentry *rtelist,
             enddump = true;
             break;
 
-          case RTM_NEWLINK:
-            break;  /* Ignore any link information */
-
           case RTM_NEWROUTE:
             {
               FAR struct rtentry *dest;