1 | /* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */ |
2 | /* |
3 | * Copyright (c) 2003-2007 Network Appliance, Inc. All rights reserved. |
4 | * |
5 | * This software is available to you under a choice of one of two |
6 | * licenses. You may choose to be licensed under the terms of the GNU |
7 | * General Public License (GPL) Version 2, available from the file |
8 | * COPYING in the main directory of this source tree, or the BSD-type |
9 | * license below: |
10 | * |
11 | * Redistribution and use in source and binary forms, with or without |
12 | * modification, are permitted provided that the following conditions |
13 | * are met: |
14 | * |
15 | * Redistributions of source code must retain the above copyright |
16 | * notice, this list of conditions and the following disclaimer. |
17 | * |
18 | * Redistributions in binary form must reproduce the above |
19 | * copyright notice, this list of conditions and the following |
20 | * disclaimer in the documentation and/or other materials provided |
21 | * with the distribution. |
22 | * |
23 | * Neither the name of the Network Appliance, Inc. nor the names of |
24 | * its contributors may be used to endorse or promote products |
25 | * derived from this software without specific prior written |
26 | * permission. |
27 | * |
28 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
29 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |
30 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |
31 | * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |
32 | * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
33 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |
34 | * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
35 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
36 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
37 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
38 | * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
39 | */ |
40 | |
41 | #ifndef _LINUX_SUNRPC_XPRTRDMA_H |
42 | #define _LINUX_SUNRPC_XPRTRDMA_H |
43 | |
44 | /* |
45 | * Constants. Max RPC/NFS header is big enough to account for |
46 | * additional marshaling buffers passed down by Linux client. |
47 | * |
48 | * RDMA header is currently fixed max size, and is big enough for a |
49 | * fully-chunked NFS message (read chunks are the largest). Note only |
50 | * a single chunk type per message is supported currently. |
51 | */ |
52 | #define RPCRDMA_MIN_SLOT_TABLE (4U) |
53 | #define RPCRDMA_DEF_SLOT_TABLE (128U) |
54 | #define RPCRDMA_MAX_SLOT_TABLE (16384U) |
55 | |
56 | #define RPCRDMA_MIN_INLINE (1024) /* min inline thresh */ |
57 | #define RPCRDMA_DEF_INLINE (4096) /* default inline thresh */ |
58 | #define RPCRDMA_MAX_INLINE (65536) /* max inline thresh */ |
59 | |
60 | /* Memory registration strategies, by number. |
61 | * This is part of a kernel / user space API. Do not remove. */ |
62 | enum rpcrdma_memreg { |
63 | RPCRDMA_BOUNCEBUFFERS = 0, |
64 | RPCRDMA_REGISTER, |
65 | RPCRDMA_MEMWINDOWS, |
66 | RPCRDMA_MEMWINDOWS_ASYNC, |
67 | RPCRDMA_MTHCAFMR, |
68 | RPCRDMA_FRWR, |
69 | RPCRDMA_ALLPHYSICAL, |
70 | RPCRDMA_LAST |
71 | }; |
72 | |
73 | #endif /* _LINUX_SUNRPC_XPRTRDMA_H */ |
74 | |