4519e2316d317ac8f5254ee56587dfdafed50f01
[vpp.git] / src / plugins / rdma / rdma.api
1 /*
2  *------------------------------------------------------------------
3  * Copyright (c) 2019 Cisco and/or its affiliates.
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at:
7  *
8  *     http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  *------------------------------------------------------------------
16  */
17
18 option version = "2.0.0";
19 import "vnet/interface_types.api";
20
21 enum rdma_mode
22 {
23   RDMA_API_MODE_AUTO = 0,
24   RDMA_API_MODE_IBV = 1,
25   RDMA_API_MODE_DV = 2,
26 };
27
28
29 /** \brief
30     @param client_index - opaque cookie to identify the sender
31     @param context - sender context, to match reply w/ request
32     @param host_if - Linux netdev interface name
33     @param name - new rdma interface name
34     @param rxq_num - number of receive queues (optional)
35     @param rxq_size - receive queue size (optional)
36     @param txq_size - transmit queue size (optional)
37     @param mode - operation mode (optional)
38 */
39
40 define rdma_create
41 {
42   option deprecated="21.01";
43   u32 client_index;
44   u32 context;
45
46   string host_if[64];
47   string name[64];
48   u16 rxq_num [default=1];
49   u16 rxq_size [default=1024];
50   u16 txq_size [default=1024];
51   vl_api_rdma_mode_t mode [default=0];
52   option vat_help = "<host-if ifname> [name <name>] [rx-queue-size <size>] [tx-queue-size <size>] [num-rx-queues <size>] [mode <auto|ibv|dv>]";
53 };
54
55 /** \brief
56     @param client_index - opaque cookie to identify the sender
57     @param context - sender context, to match reply w/ request
58     @param host_if - Linux netdev interface name
59     @param name - new rdma interface name
60     @param rxq_num - number of receive queues (optional)
61     @param rxq_size - receive queue size (optional)
62     @param txq_size - transmit queue size (optional)
63     @param mode - operation mode (optional)
64     @param no_multi_seg (optional) - disable chained buffer RX
65     @param max_pktlen (optional) - maximal RX packet size.
66 */
67
68 define rdma_create_v2
69 {
70   u32 client_index;
71   u32 context;
72
73   string host_if[64];
74   string name[64];
75   u16 rxq_num [default=1];
76   u16 rxq_size [default=1024];
77   u16 txq_size [default=1024];
78   vl_api_rdma_mode_t mode [default=0];
79   bool no_multi_seg [default=0];
80   u16 max_pktlen [default=0];
81   option vat_help = "<host-if ifname> [name <name>] [rx-queue-size <size>] [tx-queue-size <size>] [num-rx-queues <size>] [mode <auto|ibv|dv>] [no-multi-seg] [max-pktlen <size>]";
82 };
83
84
85 /** \brief
86     @param context - sender context, to match reply w/ request
87     @param retval - return value for request
88     @param sw_if_index - software index for the new rdma interface
89 */
90
91 define rdma_create_reply
92 {
93   u32 context;
94   i32 retval;
95   vl_api_interface_index_t sw_if_index;
96 };
97
98 /** \brief
99     @param context - sender context, to match reply w/ request
100     @param retval - return value for request
101     @param sw_if_index - software index for the new rdma interface
102 */
103
104 define rdma_create_v2_reply
105 {
106   u32 context;
107   i32 retval;
108   vl_api_interface_index_t sw_if_index;
109 };
110
111 /** \brief
112     @param client_index - opaque cookie to identify the sender
113     @param context - sender context, to match reply w/ request
114     @param sw_if_index - interface index
115 */
116
117 autoreply define rdma_delete
118 {
119   u32 client_index;
120   u32 context;
121
122   vl_api_interface_index_t sw_if_index;
123   option vat_help = "<sw_if_index index>";
124 };
125
126 /*
127  * Local Variables:
128  * eval: (c-set-style "gnu")
129  * End:
130  */