Whamcloud - gitweb
LU-4972 lfsck: skip .lustre and children for namespace check
[fs/lustre-release.git] / lnet / utils / ptlctl.c
1 /*
2  * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
3  *
4  *   This file is part of Portals, http://www.sf.net/projects/lustre/
5  *
6  *   Portals is free software; you can redistribute it and/or
7  *   modify it under the terms of version 2 of the GNU General Public
8  *   License as published by the Free Software Foundation.
9  *
10  *   Portals is distributed in the hope that it will be useful,
11  *   but WITHOUT ANY WARRANTY; without even the implied warranty of
12  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13  *   GNU General Public License for more details.
14  *
15  *   You should have received a copy of the GNU General Public License
16  *   along with Portals; if not, write to the Free Software
17  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
18  *
19  */
20
21 #include <stdio.h>
22 #include <stdlib.h>
23 #include <lnet/lnetctl.h>
24 #include <libcfs/libcfsutil.h>
25
26
27 command_t list[] = {
28         {"network", jt_ptl_network, 0,"select/configure network (args: up|down|LND name)"},
29         {"net", jt_ptl_network, 0,"select/configure network (args: up|down|LND name)"},
30         {"list_nids", jt_ptl_list_nids, 0,"list local NIDs"},
31         {"which_nid", jt_ptl_which_nid, 0,"select the closest NID"},
32         {"print_interfaces", jt_ptl_print_interfaces, 0, "print interface entries (no args)"},
33         {"add_interface", jt_ptl_add_interface, 0, "add interface entry (args: ip [netmask])"},
34         {"del_interface", jt_ptl_del_interface, 0, "delete interface entries (args: [ip])"},
35         {"print_peers", jt_ptl_print_peers, 0, "print peer entries (no args)"},
36         {"add_peer", jt_ptl_add_peer, 0, "add peer entry (args: nid host port)"},
37         {"del_peer", jt_ptl_del_peer, 0, "delete peer entry (args: [nid] [host])"},
38         {"print_conns", jt_ptl_print_connections, 0, "print connections (no args)"},
39         {"disconnect", jt_ptl_disconnect, 0, "disconnect from a remote nid (args: [nid] [host]"},
40         {"push", jt_ptl_push_connection, 0, "flush connection to a remote nid (args: [nid]"},
41         {"active_tx", jt_ptl_print_active_txs, 0, "print active transmits (no args)"},
42         {"ping", jt_ptl_ping, 0, "ping (args: nid [timeout] [pid])"},
43         {"mynid", jt_ptl_mynid, 0, "inform the socknal of the local NID (args: [hostname])"},
44         {"add_route", jt_ptl_add_route, 0, 
45          "add an entry to the routing table (args: gatewayNID targetNID [targetNID])"},
46         {"del_route", jt_ptl_del_route, 0, 
47          "delete all routes via a gateway from the routing table (args: gatewayNID"},
48         {"set_route", jt_ptl_notify_router, 0, 
49          "enable/disable a route in the routing table (args: gatewayNID up/down [time]"},
50         {"print_routes", jt_ptl_print_routes, 0, "print the routing table (args: none)"},
51         {"dump", jt_ioc_dump, 0, "usage: dump file, save ioctl buffer to file"},
52         {"fail", jt_ptl_fail_nid, 0, "usage: fail nid|_all_ [count]"},
53         {"testprotocompat", jt_ptl_testprotocompat, 0, "usage: testprotocompat count"},
54         {"help", Parser_help, 0, "help"},
55         {"exit", Parser_quit, 0, "quit"},
56         {"quit", Parser_quit, 0, "quit"},
57         { 0, 0, 0, NULL }
58 };
59
60 int main(int argc, char **argv)
61 {
62         int rc = 0;
63
64         rc = libcfs_arch_init();
65         if (rc < 0)
66                 return rc;
67
68         rc = ptl_initialize(argc, argv);
69         if (rc < 0)
70                 goto errorout;
71
72         Parser_init("ptlctl > ", list);
73         if (argc > 1) {
74                 rc = Parser_execarg(argc - 1, &argv[1], list);
75                 goto errorout;
76         }
77
78         Parser_commands();
79
80 errorout:
81         libcfs_arch_cleanup();
82         return rc;
83 }