/* 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
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
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.
*
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
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 */