api: Mark old message versions as deprecated
[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 = "3.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 /** \brief
29     @param client_index - opaque cookie to identify the sender
30     @param context - sender context, to match reply w/ request
31     @param host_if - Linux netdev interface name
32     @param name - new rdma interface name
33     @param rxq_num - number of receive queues (optional)
34     @param rxq_size - receive queue size (optional)
35     @param txq_size - transmit queue size (optional)
36     @param mode - operation mode (optional)
37 */
38
39 define rdma_create
40 {
41   option deprecated="21.01";
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 client_index - opaque cookie to identify the sender
56     @param context - sender context, to match reply w/ request
57     @param host_if - Linux netdev interface name
58     @param name - new rdma interface name
59     @param rxq_num - number of receive queues (optional)
60     @param rxq_size - receive queue size (optional)
61     @param txq_size - transmit queue size (optional)
62     @param mode - operation mode (optional)
63     @param no_multi_seg (optional) - disable chained buffer RX
64     @param max_pktlen (optional) - maximal RX packet size.
65 */
66
67 define rdma_create_v2
68 {
69   option deprecated;
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 enum rdma_rss4
85 {
86   RDMA_API_RSS4_AUTO = 0,
87   RDMA_API_RSS4_IP = 1,
88   RDMA_API_RSS4_IP_UDP = 2,
89   RDMA_API_RSS4_IP_TCP = 3,
90 };
91
92 enum rdma_rss6
93 {
94   RDMA_API_RSS6_AUTO = 0,
95   RDMA_API_RSS6_IP = 1,
96   RDMA_API_RSS6_IP_UDP = 2,
97   RDMA_API_RSS6_IP_TCP = 3,
98 };
99
100 /** \brief
101     @param client_index - opaque cookie to identify the sender
102     @param context - sender context, to match reply w/ request
103     @param host_if - Linux netdev interface name
104     @param name - new rdma interface name
105     @param rxq_num - number of receive queues (optional)
106     @param rxq_size - receive queue size (optional)
107     @param txq_size - transmit queue size (optional)
108     @param mode - operation mode (optional)
109     @param no_multi_seg (optional) - disable chained buffer RX
110     @param max_pktlen (optional) - maximal RX packet size.
111     @param rss4 (optional) - IPv4 RSS
112     @param rss6 (optional) - IPv6 RSS
113 */
114
115 define rdma_create_v3
116 {
117   u32 client_index;
118   u32 context;
119
120   string host_if[64];
121   string name[64];
122   u16 rxq_num [default=1];
123   u16 rxq_size [default=1024];
124   u16 txq_size [default=1024];
125   vl_api_rdma_mode_t mode [default=0];
126   bool no_multi_seg [default=0];
127   u16 max_pktlen [default=0];
128   vl_api_rdma_rss4_t rss4 [default=0];
129   vl_api_rdma_rss6_t rss6 [default=0];
130   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>] [rss <ipv4|ipv4-udp|ipv4-tcp>] [rss <ipv6|ipv6-udp|ipv6-tcp>]";
131 };
132
133
134 /** \brief
135     @param context - sender context, to match reply w/ request
136     @param retval - return value for request
137     @param sw_if_index - software index for the new rdma interface
138 */
139
140 define rdma_create_reply
141 {
142   option deprecated;
143
144   u32 context;
145   i32 retval;
146   vl_api_interface_index_t sw_if_index;
147 };
148
149 /** \brief
150     @param context - sender context, to match reply w/ request
151     @param retval - return value for request
152     @param sw_if_index - software index for the new rdma interface
153 */
154
155 define rdma_create_v2_reply
156 {
157   option deprecated;
158
159   u32 context;
160   i32 retval;
161   vl_api_interface_index_t sw_if_index;
162 };
163
164 /** \brief
165     @param client_index - opaque cookie to identify the sender
166     @param context - sender context, to match reply w/ request
167     @param sw_if_index - interface index
168 */
169
170 define rdma_create_v3_reply
171 {
172   u32 context;
173   i32 retval;
174   vl_api_interface_index_t sw_if_index;
175 };
176
177 /** \brief
178     @param client_index - opaque cookie to identify the sender
179     @param context - sender context, to match reply w/ request
180     @param sw_if_index - interface index
181 */
182
183 autoreply define rdma_delete
184 {
185   u32 client_index;
186   u32 context;
187
188   vl_api_interface_index_t sw_if_index;
189   option vat_help = "<sw_if_index index>";
190 };
191
192 /*
193  * Local Variables:
194  * eval: (c-set-style "gnu")
195  * End:
196  */