Whamcloud - gitweb
LU-2456 lnet: Dynamic LNet Configuration (DLC) show command
[fs/lustre-release.git] / lnet / lnet / api-ni.c
index 58a4aa1..19e1a9c 100644 (file)
@@ -36,6 +36,7 @@
 
 #define DEBUG_SUBSYSTEM S_LNET
 #include <lnet/lib-lnet.h>
+#include <lnet/lib-dlc.h>
 #ifdef __KERNEL__
 #include <linux/log2.h>
 #endif
@@ -1979,6 +1980,7 @@ int
 LNetCtl(unsigned int cmd, void *arg)
 {
        struct libcfs_ioctl_data *data = arg;
+       struct lnet_ioctl_config_data *config;
        lnet_process_id_t         id = {0};
        lnet_ni_t                *ni;
        int                       rc;
@@ -2002,16 +2004,53 @@ LNetCtl(unsigned int cmd, void *arg)
                return (rc != 0) ? rc : lnet_check_routes();
 
        case IOC_LIBCFS_DEL_ROUTE:
+               config = arg;
                LNET_MUTEX_LOCK(&the_lnet.ln_api_mutex);
-               rc = lnet_del_route(data->ioc_net, data->ioc_nid);
+               rc = lnet_del_route(config->cfg_net, config->cfg_nid);
                LNET_MUTEX_UNLOCK(&the_lnet.ln_api_mutex);
                return rc;
 
        case IOC_LIBCFS_GET_ROUTE:
-               return lnet_get_route(data->ioc_count,
-                                     &data->ioc_net, &data->ioc_count,
-                                     &data->ioc_nid, &data->ioc_flags,
-                                     &data->ioc_priority);
+               config = arg;
+               return lnet_get_route(config->cfg_count,
+                                     &config->cfg_net,
+                                     &config->cfg_config_u.cfg_route.rtr_hop,
+                                     &config->cfg_nid,
+                                     &config->cfg_config_u.cfg_route.rtr_flags,
+                                     &config->cfg_config_u.cfg_route.
+                                       rtr_priority);
+
+       case IOC_LIBCFS_ADD_NET:
+               return 0;
+
+       case IOC_LIBCFS_DEL_NET:
+               return 0;
+
+       case IOC_LIBCFS_GET_NET:
+               return 0;
+
+       case IOC_LIBCFS_GET_LNET_STATS:
+       {
+               struct lnet_ioctl_lnet_stats *lnet_stats = arg;
+
+               lnet_counters_get(&lnet_stats->st_cntrs);
+               return 0;
+       }
+
+#if defined(__KERNEL__) && defined(LNET_ROUTER)
+       case IOC_LIBCFS_CONFIG_RTR:
+               return 0;
+
+       case IOC_LIBCFS_ADD_BUF:
+               return 0;
+#endif
+
+       case IOC_LIBCFS_GET_BUF:
+               return 0;
+
+       case IOC_LIBCFS_GET_PEER_INFO:
+               return 0;
+
        case IOC_LIBCFS_NOTIFY_ROUTER:
                return lnet_notify(NULL, data->ioc_nid, data->ioc_flags,
                                   cfs_time_current() -