Whamcloud - gitweb
LU-2456 lnet: Dynamic LNet Configuration (DLC) show command
[fs/lustre-release.git] / lnet / utils / portals.c
index 7161f6b..42d2f67 100644 (file)
@@ -22,6 +22,7 @@
 #include <lnet/api-support.h>
 #include <lnet/lnetctl.h>
 #include <lnet/socklnd.h>
+#include <lnet/lib-dlc.h>
 
 unsigned int libcfs_debug;
 unsigned int libcfs_printk = D_CANTMASK;
@@ -1087,12 +1088,12 @@ jt_ptl_fail_nid (int argc, char **argv)
 int
 jt_ptl_add_route (int argc, char **argv)
 {
-        struct libcfs_ioctl_data data;
-        lnet_nid_t               gateway_nid;
-        unsigned int             hops = 1;
+       struct lnet_ioctl_config_data data;
+       lnet_nid_t               gateway_nid;
+       unsigned int             hops = 1;
        unsigned int             priority = 0;
-        char                    *end;
-        int                      rc;
+       char                    *end;
+       int                      rc;
 
        if (argc < 2 || argc > 4) {
                fprintf(stderr, "usage: %s gateway [hopcount [priority]]\n",
@@ -1100,14 +1101,14 @@ jt_ptl_add_route (int argc, char **argv)
                return -1;
        }
 
-        if (!g_net_is_set(argv[0]))
-                return (-1);
+       if (g_net_is_set(argv[0]) == 0)
+               return -1;
 
-        gateway_nid = libcfs_str2nid(argv[1]);
-        if (gateway_nid == LNET_NID_ANY) {
-                fprintf (stderr, "Can't parse gateway NID \"%s\"\n", argv[1]);
-                return (-1);
-        }
+       gateway_nid = libcfs_str2nid(argv[1]);
+       if (gateway_nid == LNET_NID_ANY) {
+               fprintf(stderr, "Can't parse gateway NID \"%s\"\n", argv[1]);
+               return -1;
+       }
 
        if (argc > 2) {
                hops = strtoul(argv[2], &end, 0);
@@ -1127,51 +1128,52 @@ jt_ptl_add_route (int argc, char **argv)
                }
        }
 
-       LIBCFS_IOC_INIT(data);
-       data.ioc_net = g_net;
-       data.ioc_count = hops;
-       data.ioc_nid = gateway_nid;
-       data.ioc_priority = priority;
+       LIBCFS_IOC_INIT_V2(data, cfg_hdr);
+       data.cfg_net = g_net;
+       data.cfg_config_u.cfg_route.rtr_hop = hops;
+       data.cfg_nid = gateway_nid;
+       data.cfg_config_u.cfg_route.rtr_priority = priority;
 
-        rc = l_ioctl(LNET_DEV_ID, IOC_LIBCFS_ADD_ROUTE, &data);
-        if (rc != 0) {
-                fprintf (stderr, "IOC_LIBCFS_ADD_ROUTE failed: %s\n", strerror (errno));
-                return (-1);
-        }
+       rc = l_ioctl(LNET_DEV_ID, IOC_LIBCFS_ADD_ROUTE, &data);
+       if (rc != 0) {
+               fprintf(stderr, "IOC_LIBCFS_ADD_ROUTE failed: %s\n",
+                       strerror(errno));
+               return -1;
+       }
 
-        return (0);
+       return 0;
 }
 
 int
 jt_ptl_del_route (int argc, char **argv)
 {
-        struct libcfs_ioctl_data data;
-        lnet_nid_t               nid;
-        int                      rc;
+       struct lnet_ioctl_config_data data;
+       lnet_nid_t               nid;
+       int                      rc;
 
-        if (argc != 2) {
-                fprintf (stderr, "usage: %s gatewayNID\n", argv[0]);
-                return (0);
-        }
+       if (argc != 2) {
+               fprintf(stderr, "usage: %s gatewayNID\n", argv[0]);
+               return 0;
+       }
 
-        if (!libcfs_str2anynid(&nid, argv[1])) {
-                fprintf (stderr, "Can't parse gateway NID "
-                         "\"%s\"\n", argv[1]);
-                return -1;
-        }
+       if (libcfs_str2anynid(&nid, argv[1]) == 0) {
+               fprintf(stderr, "Can't parse gateway NID "
+                       "\"%s\"\n", argv[1]);
+               return -1;
+       }
 
-        LIBCFS_IOC_INIT(data);
-        data.ioc_net = g_net_set ? g_net : LNET_NIDNET(LNET_NID_ANY);
-        data.ioc_nid = nid;
+       LIBCFS_IOC_INIT_V2(data, cfg_hdr);
+       data.cfg_net = g_net_set ? g_net : LNET_NIDNET(LNET_NID_ANY);
+       data.cfg_nid = nid;
 
-        rc = l_ioctl(LNET_DEV_ID, IOC_LIBCFS_DEL_ROUTE, &data);
-        if (rc != 0) {
-                fprintf (stderr, "IOC_LIBCFS_DEL_ROUTE (%s) failed: %s\n",
-                         libcfs_nid2str(nid), strerror (errno));
-                return (-1);
-        }
+       rc = l_ioctl(LNET_DEV_ID, IOC_LIBCFS_DEL_ROUTE, &data);
+       if (rc != 0) {
+               fprintf(stderr, "IOC_LIBCFS_DEL_ROUTE (%s) failed: %s\n",
+                       libcfs_nid2str(nid), strerror(errno));
+               return -1;
+       }
 
-        return (0);
+       return 0;
 }
 
 int
@@ -1236,40 +1238,39 @@ jt_ptl_notify_router (int argc, char **argv)
 int
 jt_ptl_print_routes (int argc, char **argv)
 {
-        struct libcfs_ioctl_data  data;
-        int                       rc;
-        int                       index;
-        __u32                     net;
-        lnet_nid_t                nid;
-        unsigned int              hops;
-        int                       alive;
+       struct lnet_ioctl_config_data  data;
+       int                       rc;
+       int                       index;
+       __u32                     net;
+       lnet_nid_t                nid;
+       unsigned int              hops;
+       int                       alive;
        unsigned int              pri;
 
-        for (index = 0;;index++)
-        {
-                LIBCFS_IOC_INIT(data);
-                data.ioc_count = index;
+       for (index = 0; ; index++) {
+               LIBCFS_IOC_INIT_V2(data, cfg_hdr);
+               data.cfg_count = index;
 
-                rc = l_ioctl(LNET_DEV_ID, IOC_LIBCFS_GET_ROUTE, &data);
-                if (rc != 0)
-                        break;
+               rc = l_ioctl(LNET_DEV_ID, IOC_LIBCFS_GET_ROUTE, &data);
+               if (rc != 0)
+                       break;
 
-                net     = data.ioc_net;
-                hops    = data.ioc_count;
-                nid     = data.ioc_nid;
-                alive   = data.ioc_flags;
-               pri     = data.ioc_priority;
+               net     = data.cfg_net;
+               hops    = data.cfg_config_u.cfg_route.rtr_hop;
+               nid     = data.cfg_nid;
+               alive   = data.cfg_config_u.cfg_route.rtr_flags;
+               pri     = data.cfg_config_u.cfg_route.rtr_priority;
 
                printf("net %18s hops %u gw %32s %s pri %u\n",
                       libcfs_net2str(net), hops,
                       libcfs_nid2str(nid), alive ? "up" : "down", pri);
-        }
+       }
 
-        if (errno != ENOENT)
-                fprintf(stderr, "Error getting routes: %s: check dmesg.\n",
-                        strerror(errno));
+       if (errno != ENOENT)
+               fprintf(stderr, "Error getting routes: %s: check dmesg.\n",
+                       strerror(errno));
 
-        return (0);
+       return 0;
 }
 
 double