INIT_LIST_HEAD(&the_lnet.ln_test_peers);
INIT_LIST_HEAD(&the_lnet.ln_peers);
+ INIT_LIST_HEAD(&the_lnet.ln_remote_peer_ni_list);
INIT_LIST_HEAD(&the_lnet.ln_nets);
INIT_LIST_HEAD(&the_lnet.ln_routers);
INIT_LIST_HEAD(&the_lnet.ln_drop_rules);
lnet_res_container_cleanup(&the_lnet.ln_eq_container);
lnet_msg_containers_destroy();
- lnet_peer_tables_destroy();
+ lnet_peer_uninit();
lnet_rtrpools_free(0);
if (the_lnet.ln_counters != NULL) {
return lnet_get_rtr_pool_cfg(config->cfg_count, pool_cfg);
}
+ case IOC_LIBCFS_ADD_PEER_NI: {
+ struct lnet_ioctl_peer_cfg *cfg = arg;
+
+ if (cfg->prcfg_hdr.ioc_len < sizeof(*cfg))
+ return -EINVAL;
+
+ return lnet_add_peer_ni_to_peer(cfg->prcfg_key_nid,
+ cfg->prcfg_cfg_nid);
+ }
+
+ case IOC_LIBCFS_DEL_PEER_NI: {
+ struct lnet_ioctl_peer_cfg *cfg = arg;
+
+ if (cfg->prcfg_hdr.ioc_len < sizeof(*cfg))
+ return -EINVAL;
+
+ return lnet_del_peer_ni_from_peer(cfg->prcfg_key_nid,
+ cfg->prcfg_cfg_nid);
+ }
+
case IOC_LIBCFS_GET_PEER_INFO: {
struct lnet_ioctl_peer *peer_info = arg;
if (peer_info->pr_hdr.ioc_len < sizeof(*peer_info))
return -EINVAL;
- return lnet_get_peer_info(
+ return lnet_get_peer_ni_info(
peer_info->pr_count,
&peer_info->pr_nid,
peer_info->pr_lnd_u.pr_peer_credits.cr_aliveness,
&peer_info->pr_lnd_u.pr_peer_credits.cr_peer_tx_qnob);
}
+ case IOC_LIBCFS_GET_PEER_NI: {
+ struct lnet_ioctl_peer_cfg *cfg = arg;
+ struct lnet_peer_ni_credit_info *lpni_cri;
+ size_t total = sizeof(*cfg) + sizeof(*lpni_cri);
+
+ if (cfg->prcfg_hdr.ioc_len < total)
+ return -EINVAL;
+
+ lpni_cri = (struct lnet_peer_ni_credit_info*) cfg->prcfg_bulk;
+
+ return lnet_get_peer_info(cfg->prcfg_idx, &cfg->prcfg_key_nid,
+ &cfg->prcfg_cfg_nid, lpni_cri);
+ }
+
case IOC_LIBCFS_NOTIFY_ROUTER: {
unsigned long jiffies_passed;