Whamcloud - gitweb
LU-7304 ldiskfs: fix bug when bigalloc is enabled
[fs/lustre-release.git] / lnet / include / lnet / lib-dlc.h
1 /*
2  * LGPL HEADER START
3  *
4  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
5  *
6  * Copyright (c) 2014, Intel Corporation.
7  *
8  * This library is free software; you can redistribute it and/or
9  * modify it under the terms of the GNU Lesser General Public
10  * License as published by the Free Software Foundation; either
11  * version 3.0 of the License, or (at your option) any later version.
12  *
13  * This library is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16  * Lesser General Public License for more details.
17  *
18  * You should have received a copy of the GNU Lesser General Public
19  * License along with this library.
20  *
21  * LGPL HEADER END
22  *
23  * Contributers:
24  *   Amir Shehata
25  */
26
27 #ifndef LNET_DLC_H
28 #define LNET_DLC_H
29
30 #include <libcfs/libcfs_ioctl.h>
31 #include <lnet/types.h>
32
33 #define MAX_NUM_SHOW_ENTRIES    32
34 #define LNET_MAX_STR_LEN        128
35 #define LNET_MAX_SHOW_NUM_CPT   128
36
37 struct lnet_ioctl_net_config {
38         char ni_interfaces[LNET_MAX_INTERFACES][LNET_MAX_STR_LEN];
39         __u32 ni_status;
40         __u32 ni_cpts[LNET_MAX_SHOW_NUM_CPT];
41 };
42
43 #define LNET_TINY_BUF_IDX       0
44 #define LNET_SMALL_BUF_IDX      1
45 #define LNET_LARGE_BUF_IDX      2
46
47 /* # different router buffer pools */
48 #define LNET_NRBPOOLS           (LNET_LARGE_BUF_IDX + 1)
49
50 struct lnet_ioctl_pool_cfg {
51         struct {
52                 __u32 pl_npages;
53                 __u32 pl_nbuffers;
54                 __u32 pl_credits;
55                 __u32 pl_mincredits;
56         } pl_pools[LNET_NRBPOOLS];
57         __u32 pl_routing;
58 };
59
60 struct lnet_ioctl_config_data {
61         struct libcfs_ioctl_hdr cfg_hdr;
62
63         __u32 cfg_net;
64         __u32 cfg_count;
65         __u64 cfg_nid;
66         __u32 cfg_ncpts;
67
68         union {
69                 struct {
70                         __u32 rtr_hop;
71                         __u32 rtr_priority;
72                         __u32 rtr_flags;
73                 } cfg_route;
74                 struct {
75                         char net_intf[LNET_MAX_STR_LEN];
76                         __s32 net_peer_timeout;
77                         __s32 net_peer_tx_credits;
78                         __s32 net_peer_rtr_credits;
79                         __s32 net_max_tx_credits;
80                         __u32 net_cksum_algo;
81                         __u32 net_pad;
82                 } cfg_net;
83                 struct {
84                         __u32 buf_enable;
85                         __s32 buf_tiny;
86                         __s32 buf_small;
87                         __s32 buf_large;
88                 } cfg_buffers;
89         } cfg_config_u;
90
91         char cfg_bulk[0];
92 };
93
94 struct lnet_ioctl_peer {
95         struct libcfs_ioctl_hdr pr_hdr;
96         __u32 pr_count;
97         __u32 pr_pad;
98         __u64 pr_nid;
99
100         union {
101                 struct {
102                         char cr_aliveness[LNET_MAX_STR_LEN];
103                         __u32 cr_refcount;
104                         __u32 cr_ni_peer_tx_credits;
105                         __u32 cr_peer_tx_credits;
106                         __u32 cr_peer_rtr_credits;
107                         __u32 cr_peer_min_rtr_credits;
108                         __u32 cr_peer_tx_qnob;
109                         __u32 cr_ncpt;
110                 } pr_peer_credits;
111         } pr_lnd_u;
112 };
113
114 struct lnet_ioctl_lnet_stats {
115         struct libcfs_ioctl_hdr st_hdr;
116         struct lnet_counters st_cntrs;
117 };
118
119 #endif /* LNET_DLC_H */