Whamcloud - gitweb
LU-7734 lnet: handle non-MR peers
[fs/lustre-release.git] / lnet / utils / lnetconfig / liblnetconfig.c
index aa23ce0..335072d 100644 (file)
@@ -339,7 +339,7 @@ static int dispatch_peer_ni_cmd(lnet_nid_t knid, lnet_nid_t nid, __u32 cmd,
        return rc;
 }
 
-int lustre_lnet_config_peer_nid(char *knid, char **nid, int seq_no,
+int lustre_lnet_config_peer_nid(char *knid, char **nid, bool mr, int seq_no,
                                struct cYAML **err_rc)
 {
        struct lnet_ioctl_peer_cfg data;
@@ -370,6 +370,7 @@ int lustre_lnet_config_peer_nid(char *knid, char **nid, int seq_no,
        snprintf(err_str, sizeof(err_str), "\"Success\"");
 
        LIBCFS_IOC_INIT_V2(data, prcfg_hdr);
+       data.prcfg_mr = mr;
        if (nids[0] == LNET_NID_ANY) {
                rc = dispatch_peer_ni_cmd(LNET_NID_ANY, key_nid,
                                          IOC_LIBCFS_ADD_PEER_NI,
@@ -2657,7 +2658,7 @@ static int handle_yaml_config_peer(struct cYAML *tree, struct cYAML **show_rc,
 {
        char **nids = NULL;
        int num, rc;
-       struct cYAML *seq_no, *key_nid;
+       struct cYAML *seq_no, *key_nid, *non_mr;
 
        num = yaml_copy_peer_nids(tree, &nids);
        if (num < 0)
@@ -2665,9 +2666,11 @@ static int handle_yaml_config_peer(struct cYAML *tree, struct cYAML **show_rc,
 
        seq_no = cYAML_get_object_item(tree, "seq_no");
        key_nid = cYAML_get_object_item(tree, "key_nid");
+       non_mr = cYAML_get_object_item(tree, "non_mr");
 
        rc = lustre_lnet_config_peer_nid((key_nid) ? key_nid->cy_valuestring : NULL,
                                         nids,
+                                        (non_mr) ? false : true,
                                         (seq_no) ? seq_no->cy_valueint : -1,
                                         err_rc);