*
* LGPL HEADER END
*
- * Copyright (c) 2014, 2016, Intel Corporation.
+ * Copyright (c) 2014, 2017, Intel Corporation.
*
* Author:
* Amir Shehata <amir.shehata@intel.com>
#ifndef LIB_LNET_CONFIG_API_H
#define LIB_LNET_CONFIG_API_H
-#include <lnet/lnet.h>
+#include <libcfs/util/string.h>
+#include <linux/lnet/lnet-dlc.h>
+#include <linux/lnet/nidstr.h>
#define LUSTRE_CFG_RC_NO_ERR 0
#define LUSTRE_CFG_RC_BAD_PARAM -1
#define LUSTRE_CFG_RC_NO_MATCH -6
#define LUSTRE_CFG_RC_MATCH -7
-#include <lnet/lnet.h>
-#include <libcfs/util/string.h>
-
struct lnet_dlc_network_descr {
struct list_head network_on_rule;
__u32 nw_id;
* seq_no - sequence number of the request
* show_rc - [OUT] The show output in YAML. Must be freed by caller.
* err_rc - [OUT] struct cYAML tree describing the error. Freed by caller
+ * backup - true to output only what's necessary for reconfiguring
+ * a node.
*/
int lustre_lnet_show_route(char *nw, char *gw,
int hops, int prio, int detail,
int seq_no, struct cYAML **show_rc,
- struct cYAML **err_rc);
+ struct cYAML **err_rc, bool backup);
/*
* lustre_lnet_config_ni
* seq_no - sequence number of the request
* show_rc - [OUT] The show output in YAML. Must be freed by caller.
* err_rc - [OUT] struct cYAML tree describing the error. Freed by caller
+ * backup - true to output only what's necessary for reconfiguring
+ * a node.
*/
int lustre_lnet_show_net(char *nw, int detail, int seq_no,
- struct cYAML **show_rc, struct cYAML **err_rc);
+ struct cYAML **show_rc, struct cYAML **err_rc,
+ bool backup);
/*
* lustre_lnet_enable_routing
struct cYAML **err_rc);
/*
+ * lustre_lnet_config_max_intf
+ * Sets the maximum number of interfaces per node. this tunable is
+ * primarily useful for sanity checks prior to allocating memory.
+ *
+ * max - maximum value to configure
+ * seq_no - sequence number of the request
+ * err_rc - [OUT] struct cYAML tree describing the error. Freed by
+ * caller
+ */
+int lustre_lnet_config_max_intf(int max, int seq_no, struct cYAML **err_rc);
+
+/*
+ * lustre_lnet_show_max_intf
+ * show current maximum interface setting
+ *
+ * seq_no - sequence number of the request
+ * show_rc - [OUT] struct cYAML tree containing NUMA range info
+ * err_rc - [OUT] struct cYAML tree describing the error. Freed by
+ * caller
+ */
+int lustre_lnet_show_max_intf(int seq_no, struct cYAML **show_rc,
+ struct cYAML **err_rc);
+
+/*
+ * lustre_lnet_config_discovery
+ * Enable or disable peer discovery. Peer discovery is enabled by default.
+ *
+ * enable - non-0 enables, 0 disables
+ * seq_no - sequence number of the request
+ * err_rc - [OUT] struct cYAML tree describing the error. Freed by
+ * caller
+ */
+int lustre_lnet_config_discovery(int enable, int seq_no, struct cYAML **err_rc);
+
+/*
+ * lustre_lnet_show_discovery
+ * show current peer discovery setting
+ *
+ * seq_no - sequence number of the request
+ * show_rc - [OUT] struct cYAML tree containing NUMA range info
+ * err_rc - [OUT] struct cYAML tree describing the error. Freed by
+ * caller
+ */
+int lustre_lnet_show_discovery(int seq_no, struct cYAML **show_rc,
+ struct cYAML **err_rc);
+
+/*
* lustre_lnet_config_buffers
* Send down an IOCTL to configure routing buffer sizes. A value of 0 means
* default that particular buffer to default size. A value of -1 means
* seq_no - sequence number of the request
* show_rc - [OUT] The show output in YAML. Must be freed by caller.
* err_rc - [OUT] struct cYAML tree describing the error. Freed by caller
+ * backup - true to output only what's necessary for reconfiguring
+ * a node.
*/
int lustre_lnet_show_routing(int seq_no, struct cYAML **show_rc,
- struct cYAML **err_rc);
+ struct cYAML **err_rc, bool backup);
/*
* lustre_lnet_show_stats
* seq_no - sequence number of the command
* show_rc - YAML structure of the resultant show
* err_rc - YAML strucutre of the resultant return code.
+ * backup - true to output only what's necessary for reconfiguring
+ * a node.
*
*/
int lustre_lnet_show_peer(char *knid, int detail, int seq_no,
+ struct cYAML **show_rc, struct cYAML **err_rc,
+ bool backup);
+
+/*
+ * lustre_lnet_list_peer
+ * List the known peers.
+ *
+ * seq_no - sequence number of the command
+ * show_rc - YAML structure of the resultant show
+ * err_rc - YAML strucutre of the resultant return code.
+ *
+ */
+int lustre_lnet_list_peer(int seq_no,
struct cYAML **show_rc, struct cYAML **err_rc);
+/* lustre_lnet_ping_nid
+ * Ping the nid list, pnids.
+ *
+ * pnids - NID list to ping.
+ * timeout - timeout(seconds) for ping.
+ * seq_no - sequence number of the command.
+ * show_rc - YAML structure of the resultant show.
+ * err_rc - YAML strucutre of the resultant return code.
+ *
+ */
+int lustre_lnet_ping_nid(char *pnid, int timeout, int seq_no,
+ struct cYAML **show_rc, struct cYAML **err_rc);
+
+/* lustre_lnet_discover_nid
+ * Discover the nid list, pnids.
+ *
+ * pnids - NID list to discover.
+ * force - force discovery.
+ * seq_no - sequence number of the command.
+ * show_rc - YAML structure of the resultant show.
+ * err_rc - YAML strucutre of the resultant return code.
+ *
+ */
+int lustre_lnet_discover_nid(char *pnid, int force, int seq_no,
+ struct cYAML **show_rc, struct cYAML **err_rc);
+
/*
* lustre_yaml_config
* Parses the provided YAML file and then calls the specific APIs
struct cYAML **err_rc);
/*
+ * lustre_yaml_exec
+ * Parses the provided YAML file and then calls the specific APIs
+ * to execute the entities identified in the file
+ *
+ * f - YAML file
+ * show_rc - [OUT] The show output in YAML. Must be freed by caller.
+ * err_rc - [OUT] struct cYAML tree describing the error. Freed by caller
+ */
+int lustre_yaml_exec(char *f, struct cYAML **show_rc,
+ struct cYAML **err_rc);
+
+/*
* lustre_lnet_init_nw_descr
* initialize the network descriptor structure for use
*/