150 lines
3.2 KiB
C
150 lines
3.2 KiB
C
/*
|
|
* LGPL HEADER START
|
|
*
|
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
*
|
|
* This library is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU Lesser General Public
|
|
* License as published by the Free Software Foundation; either
|
|
* version 2.1 of the License, or (at your option) any later version.
|
|
*
|
|
* This library is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
* Lesser General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU Lesser General Public
|
|
* License along with this library.
|
|
*
|
|
* LGPL HEADER END
|
|
*
|
|
*/
|
|
/*
|
|
* Copyright (c) 2014, Intel Corporation.
|
|
*/
|
|
/*
|
|
* Author: Amir Shehata <amir.shehata@intel.com>
|
|
*/
|
|
|
|
#ifndef LNET_DLC_H
|
|
#define LNET_DLC_H
|
|
|
|
#include "../libcfs/libcfs_ioctl.h"
|
|
#include "types.h"
|
|
|
|
#define MAX_NUM_SHOW_ENTRIES 32
|
|
#define LNET_MAX_STR_LEN 128
|
|
#define LNET_MAX_SHOW_NUM_CPT 128
|
|
#define LNET_UNDEFINED_HOPS ((__u32)(-1))
|
|
|
|
struct lnet_ioctl_config_lnd_cmn_tunables {
|
|
__u32 lct_version;
|
|
__u32 lct_peer_timeout;
|
|
__u32 lct_peer_tx_credits;
|
|
__u32 lct_peer_rtr_credits;
|
|
__u32 lct_max_tx_credits;
|
|
};
|
|
|
|
struct lnet_ioctl_config_o2iblnd_tunables {
|
|
__u32 lnd_version;
|
|
__u32 lnd_peercredits_hiw;
|
|
__u32 lnd_map_on_demand;
|
|
__u32 lnd_concurrent_sends;
|
|
__u32 lnd_fmr_pool_size;
|
|
__u32 lnd_fmr_flush_trigger;
|
|
__u32 lnd_fmr_cache;
|
|
__u32 pad;
|
|
};
|
|
|
|
struct lnet_ioctl_config_lnd_tunables {
|
|
struct lnet_ioctl_config_lnd_cmn_tunables lt_cmn;
|
|
union {
|
|
struct lnet_ioctl_config_o2iblnd_tunables lt_o2ib;
|
|
} lt_tun_u;
|
|
};
|
|
|
|
struct lnet_ioctl_net_config {
|
|
char ni_interfaces[LNET_MAX_INTERFACES][LNET_MAX_STR_LEN];
|
|
__u32 ni_status;
|
|
__u32 ni_cpts[LNET_MAX_SHOW_NUM_CPT];
|
|
char cfg_bulk[0];
|
|
};
|
|
|
|
#define LNET_TINY_BUF_IDX 0
|
|
#define LNET_SMALL_BUF_IDX 1
|
|
#define LNET_LARGE_BUF_IDX 2
|
|
|
|
/* # different router buffer pools */
|
|
#define LNET_NRBPOOLS (LNET_LARGE_BUF_IDX + 1)
|
|
|
|
struct lnet_ioctl_pool_cfg {
|
|
struct {
|
|
__u32 pl_npages;
|
|
__u32 pl_nbuffers;
|
|
__u32 pl_credits;
|
|
__u32 pl_mincredits;
|
|
} pl_pools[LNET_NRBPOOLS];
|
|
__u32 pl_routing;
|
|
};
|
|
|
|
struct lnet_ioctl_config_data {
|
|
struct libcfs_ioctl_hdr cfg_hdr;
|
|
|
|
__u32 cfg_net;
|
|
__u32 cfg_count;
|
|
__u64 cfg_nid;
|
|
__u32 cfg_ncpts;
|
|
|
|
union {
|
|
struct {
|
|
__u32 rtr_hop;
|
|
__u32 rtr_priority;
|
|
__u32 rtr_flags;
|
|
} cfg_route;
|
|
struct {
|
|
char net_intf[LNET_MAX_STR_LEN];
|
|
__s32 net_peer_timeout;
|
|
__s32 net_peer_tx_credits;
|
|
__s32 net_peer_rtr_credits;
|
|
__s32 net_max_tx_credits;
|
|
__u32 net_cksum_algo;
|
|
__u32 net_interface_count;
|
|
} cfg_net;
|
|
struct {
|
|
__u32 buf_enable;
|
|
__s32 buf_tiny;
|
|
__s32 buf_small;
|
|
__s32 buf_large;
|
|
} cfg_buffers;
|
|
} cfg_config_u;
|
|
|
|
char cfg_bulk[0];
|
|
};
|
|
|
|
struct lnet_ioctl_peer {
|
|
struct libcfs_ioctl_hdr pr_hdr;
|
|
__u32 pr_count;
|
|
__u32 pr_pad;
|
|
__u64 pr_nid;
|
|
|
|
union {
|
|
struct {
|
|
char cr_aliveness[LNET_MAX_STR_LEN];
|
|
__u32 cr_refcount;
|
|
__u32 cr_ni_peer_tx_credits;
|
|
__u32 cr_peer_tx_credits;
|
|
__u32 cr_peer_rtr_credits;
|
|
__u32 cr_peer_min_rtr_credits;
|
|
__u32 cr_peer_tx_qnob;
|
|
__u32 cr_ncpt;
|
|
} pr_peer_credits;
|
|
} pr_lnd_u;
|
|
};
|
|
|
|
struct lnet_ioctl_lnet_stats {
|
|
struct libcfs_ioctl_hdr st_hdr;
|
|
struct lnet_counters st_cntrs;
|
|
};
|
|
|
|
#endif /* LNET_DLC_H */
|