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
18option version = "1.0.0";
19import "vnet/interface_types.api";
20
21enum 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
40define 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
60define 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
73autoreply 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 */
87