Whamcloud - gitweb
LU-13502 lnet: Add response tracking param to lnetctl
[fs/lustre-release.git] / lnet / utils / lnetconfig / liblnetconfig.h
index 163a146..b6ea68b 100644 (file)
@@ -75,8 +75,6 @@ struct lnet_dlc_intf_descr {
 /* forward declaration of the cYAML structure. */
 struct cYAML;
 
-int tokenize_nidstr(char *nidstr, char *out[LNET_MAX_STR_LEN], char *err_str);
-
 /*
  * lustre_lnet_config_lib_init()
  *   Initialize the Library to enable communication with the LNET kernel
@@ -393,11 +391,18 @@ int lustre_lnet_config_retry_count(int count, int seq_no, struct cYAML **err_rc)
 int lustre_lnet_show_retry_count(int seq_no, struct cYAML **show_rc,
                                 struct cYAML **err_rc);
 
+int lustre_lnet_show_lnd_timeout(int seq_no, struct cYAML **show_rc,
+                                struct cYAML **err_rc);
+
 int lustre_lnet_show_local_ni_recovq(int seq_no, struct cYAML **show_rc,
                                     struct cYAML **err_rc);
 
 int lustre_lnet_show_peer_ni_recovq(int seq_no, struct cYAML **show_rc,
                                    struct cYAML **err_rc);
+int lustre_lnet_config_response_tracking(int count, int seq_no,
+                                        struct cYAML **err_rc);
+int lustre_lnet_show_response_tracking(int seq_no, struct cYAML **show_rc,
+                                      struct cYAML **err_rc);
 
 /*
  * lustre_lnet_config_max_intf
@@ -424,6 +429,12 @@ int lustre_lnet_show_max_intf(int seq_no, struct cYAML **show_rc,
                              struct cYAML **err_rc);
 
 /*
+ * lustre_lnet_calc_service_id
+ *    Calculate the lustre service id to be used for qos
+ */
+int lustre_lnet_calc_service_id(__u64 *service_id);
+
+/*
  * lustre_lnet_config_discovery
  *   Enable or disable peer discovery. Peer discovery is enabled by default.
  *
@@ -512,88 +523,35 @@ int lustre_lnet_show_stats(int seq_no, struct cYAML **show_rc,
                           struct cYAML **err_rc);
 
 /*
- * lustre_lnet_config_peer_nid
- *   Add a peer nid to a peer with primary nid pnid. If no pnid is given
- *   then the first nid in the nid list becomes the primary nid for
- *   a newly created peer.
- *   Otherwise if pnid is provided and it's unique then a new peer is
- *   created with pnid as the primary NID and the nids in the nid list as
- *   secondary nids.
- *   If any of the peers nids provided in with exception to the pnid is
- *   not unique the operation fails. Some peer nids might have already
- *   been added. It's the role of the caller of this API to remove the
- *   added NIDs if they wish.
- *
- *     pnid - Primary NID of the peer
- *     nid - list of nids to add
- *     num_nids - number of nids in the nid array
- *     mr - true if this peer is MR capable.
- *     ip2nets - true if a list of nid expressions are given to configure
- *     multiple peers
- *     seq_no - sequence number of the command
- *     err_rc - YAML strucutre of the resultant return code.
- */
-int lustre_lnet_config_peer_nid(char *pnid, char **nid, int num_nids,
-                               bool mr, bool ip2nets, int seq_no,
-                               struct cYAML **err_rc);
-
-/*
- * lustre_lnet_config_peer_nidlist
- *  Add a peer NID to a peer with primary NID pnid. If a pnid is not provided
- *  then the first NID in the NID list becomes the primary NID for a newly
- *  created peer.
- *  Otherwise, if the provided primary NID is unique, then a new peer is
+ * lustre_lnet_modify_peer
+ *  Handle a peer config or delete operation.
+ *
+ *  Config Operation:
+ *  Add a peer NID to a peer with primary NID pnid. 
+ *  If the provided primary NID is unique, then a new peer is
  *  created with this primary NID, and the NIDs in the NID list are added as
  *  secondary NIDs to this new peer.
  *  If any of the NIDs in the NID list are not unique then the operation
  *  fails. Some peer NIDs might have already been added. It's the responsibility
  *  of the caller of this API to remove the added NIDs if so desired.
  *
- *     pnid - The desired primary NID of a new peer, or the primary NID of
- *            an existing peer.
- *     lnet_nidlist - List of LNet NIDs to add to the peer
- *     num_nids - The number of LNet NIDs in the lnet_nidlist array
- *     mr - Specifies whether this peer is MR capable.
- *     seq_no - sequence number of the command
- *     err_rc - YAML structure of the resultant return code
- */
-int lustre_lnet_config_peer_nidlist(char *pnid, lnet_nid_t *lnet_nidlist,
-                                   int num_nids, bool mr, int seq_no,
-                                   struct cYAML **err_rc);
-
-/*
- * lustre_lnet_del_peer_nid
- *  Delete the nids given in the nid list from the peer with primary NID
- *  pnid. If pnid is NULL or it doesn't identify a peer the operation
- *  fails and no change happens to the system.
- *  The operation is aborted on the first NID that fails to be deleted.
- *
- *     pnid - Primary NID of the peer
- *     nid - list of nids to add
- *     num_nids - number of nids in the nid array
- *     ip2nets - used to specify a range of nids
- *     seq_no - sequence number of the command
- *     err_rc - YAML strucutre of the resultant return code.
- */
-int lustre_lnet_del_peer_nid(char *pnid, char **nid, int num_nids,
-                            bool ip2nets, int seq_no, struct cYAML **err_rc);
-
-/*
- * lustre_lnet_del_peer_nidlist
+ *  Delete Operation:
  *  Delete the NIDs given in the NID list from the peer with the primary NID
  *  pnid. If pnid is NULL, or it doesn't identify a peer, the operation fails,
  *  and no change happens to the system.
  *  The operation is aborted on the first NID that fails to be deleted.
  *
- *     pnid - The primary NID of the peer to be modified
- *     lnet_nidlist - The list of LNet NIDs to delete from the peer
- *     num_nids - the number of nids in the lnet_nidlist array
+ *     prim_nid - The desired primary NID of a new peer, or the primary NID of
+ *                an existing peer.
+ *     nids - a comma separated string of nids
+ *     is_mr - Specifies whether this peer is MR capable.
+ *     cmd - CONFIG or DELETE
  *     seq_no - sequence number of the command
  *     err_rc - YAML structure of the resultant return code
  */
-int lustre_lnet_del_peer_nidlist(char *pnid, lnet_nid_t *lnet_nidlist,
-                                int num_nids, int seq_no,
-                                struct cYAML **err_rc);
+int lustre_lnet_modify_peer(char *prim_nid, char *nids, bool is_mr,
+                           int cmd, int seq_no, struct cYAML **err_rc);
+
 /*
  * lustre_lnet_show_peer
  *   Show the peer identified by nid, knid. If knid is NULL all
@@ -742,22 +700,4 @@ int lustre_lnet_parse_interfaces(char *intf_str,
 int lustre_lnet_parse_nidstr(char *nidstr, lnet_nid_t *lnet_nidlist,
                             int max_nids, char *err_str);
 
-/*
- * lustre_lnet_parse_nids
- *     Parse a set of nids into a locally allocated array and return the
- *     pointer of the array to the caller. The caller is responsible for
- *     freeing the array. If an initial array is provided then copy over
- *     the contents of that array into the new array and append to it the
- *     new content.
- *     The nids can be of the form "nid [,nid, nid, nid]"
- *             nids: nids string to be parsed
- *             array: initial array of content
- *             size: num of elements in the array
- *             out_array: [OUT] new allocated array.
- *     Returns size of array
- *             sets the out_array to NULL on failure.
- */
-int lustre_lnet_parse_nids(char *nids, char **array, int size,
-                          char ***out_array);
-
 #endif /* LIB_LNET_CONFIG_API_H */