rdma: api: prepare support for direct verb
[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 = "1.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   u32 client_index;
43   u32 context;
44
45   string host_if[64];
46   string name[64];
47   u16 rxq_num [default=1];
48   u16 rxq_size [default=1024];
49   u16 txq_size [default=1024];
50   vl_api_rdma_mode_t mode [default=0];
51   option vat_help = "<host-if ifname> [name <name>] [rx-queue-size <size>] [tx-queue-size <size>] [num-rx-queues <size>] [mode <auto|ibv|dv>]";
52 };
53
54 /** \brief
55     @param context - sender context, to match reply w/ request
56     @param retval - return value for request
57     @param sw_if_index - software index for the new rdma interface
58 */
59
60 define rdma_create_reply
61 {
62   u32 context;
63   i32 retval;
64   vl_api_interface_index_t sw_if_index;
65 };
66
67 /** \brief
68     @param client_index - opaque cookie to identify the sender
69     @param context - sender context, to match reply w/ request
70     @param sw_if_index - interface index
71 */
72
73 autoreply define rdma_delete
74 {
75   u32 client_index;
76   u32 context;
77
78   vl_api_interface_index_t sw_if_index;
79   option vat_help = "<sw_if_index index>";
80 };
81
82 /*
83  * Local Variables:
84  * eval: (c-set-style "gnu")
85  * End:
86  */