The _v3 was not handling endianness on flags (e.g. mode). Marking _v3 as deprecated, but keeping it as there might be users who learned to preprocess their flag values. + Also, format PCI product_name as a vector, not a string. Type: fix Change-Id: I50c4b44f3570f02518dbd9a43239c1a37612d24a Signed-off-by: Vratko Polak <vrpolak@cisco.com>
247 lines
7.2 KiB
Plaintext
247 lines
7.2 KiB
Plaintext
/*
|
|
*------------------------------------------------------------------
|
|
* Copyright (c) 2019 Cisco and/or its affiliates.
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
* you may not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at:
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
|
*------------------------------------------------------------------
|
|
*/
|
|
|
|
option version = "3.0.0";
|
|
import "vnet/interface_types.api";
|
|
|
|
enum rdma_mode
|
|
{
|
|
RDMA_API_MODE_AUTO = 0,
|
|
RDMA_API_MODE_IBV = 1,
|
|
RDMA_API_MODE_DV = 2,
|
|
};
|
|
|
|
/** \brief
|
|
@param client_index - opaque cookie to identify the sender
|
|
@param context - sender context, to match reply w/ request
|
|
@param host_if - Linux netdev interface name
|
|
@param name - new rdma interface name
|
|
@param rxq_num - number of receive queues (optional)
|
|
@param rxq_size - receive queue size (optional)
|
|
@param txq_size - transmit queue size (optional)
|
|
@param mode - operation mode (optional)
|
|
*/
|
|
|
|
define rdma_create
|
|
{
|
|
option deprecated="21.01";
|
|
u32 client_index;
|
|
u32 context;
|
|
|
|
string host_if[64];
|
|
string name[64];
|
|
u16 rxq_num [default=1];
|
|
u16 rxq_size [default=1024];
|
|
u16 txq_size [default=1024];
|
|
vl_api_rdma_mode_t mode [default=0];
|
|
option vat_help = "<host-if ifname> [name <name>] [rx-queue-size <size>] [tx-queue-size <size>] [num-rx-queues <size>] [mode <auto|ibv|dv>]";
|
|
};
|
|
|
|
/** \brief
|
|
@param client_index - opaque cookie to identify the sender
|
|
@param context - sender context, to match reply w/ request
|
|
@param host_if - Linux netdev interface name
|
|
@param name - new rdma interface name
|
|
@param rxq_num - number of receive queues (optional)
|
|
@param rxq_size - receive queue size (optional)
|
|
@param txq_size - transmit queue size (optional)
|
|
@param mode - operation mode (optional)
|
|
@param no_multi_seg (optional) - disable chained buffer RX
|
|
@param max_pktlen (optional) - maximal RX packet size.
|
|
*/
|
|
|
|
define rdma_create_v2
|
|
{
|
|
option deprecated;
|
|
u32 client_index;
|
|
u32 context;
|
|
|
|
string host_if[64];
|
|
string name[64];
|
|
u16 rxq_num [default=1];
|
|
u16 rxq_size [default=1024];
|
|
u16 txq_size [default=1024];
|
|
vl_api_rdma_mode_t mode [default=0];
|
|
bool no_multi_seg [default=0];
|
|
u16 max_pktlen [default=0];
|
|
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>]";
|
|
};
|
|
|
|
enum rdma_rss4
|
|
{
|
|
RDMA_API_RSS4_AUTO = 0,
|
|
RDMA_API_RSS4_IP = 1,
|
|
RDMA_API_RSS4_IP_UDP = 2,
|
|
RDMA_API_RSS4_IP_TCP = 3,
|
|
};
|
|
|
|
enum rdma_rss6
|
|
{
|
|
RDMA_API_RSS6_AUTO = 0,
|
|
RDMA_API_RSS6_IP = 1,
|
|
RDMA_API_RSS6_IP_UDP = 2,
|
|
RDMA_API_RSS6_IP_TCP = 3,
|
|
};
|
|
|
|
/** \brief
|
|
Same as v4, just not an autoendian (expect buggy handling of flag values).
|
|
|
|
@param client_index - opaque cookie to identify the sender
|
|
@param context - sender context, to match reply w/ request
|
|
@param host_if - Linux netdev interface name
|
|
@param name - new rdma interface name
|
|
@param rxq_num - number of receive queues (optional)
|
|
@param rxq_size - receive queue size (optional)
|
|
@param txq_size - transmit queue size (optional)
|
|
@param mode - operation mode (optional)
|
|
@param no_multi_seg (optional) - disable chained buffer RX
|
|
@param max_pktlen (optional) - maximal RX packet size.
|
|
@param rss4 (optional) - IPv4 RSS
|
|
@param rss6 (optional) - IPv6 RSS
|
|
*/
|
|
|
|
define rdma_create_v3
|
|
{
|
|
option deprecated;
|
|
option replaced_by="rdma_create_v4";
|
|
|
|
u32 client_index;
|
|
u32 context;
|
|
|
|
string host_if[64];
|
|
string name[64];
|
|
u16 rxq_num [default=1];
|
|
u16 rxq_size [default=1024];
|
|
u16 txq_size [default=1024];
|
|
vl_api_rdma_mode_t mode [default=0];
|
|
bool no_multi_seg [default=0];
|
|
u16 max_pktlen [default=0];
|
|
vl_api_rdma_rss4_t rss4 [default=0];
|
|
vl_api_rdma_rss6_t rss6 [default=0];
|
|
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>]";
|
|
};
|
|
|
|
/** \brief
|
|
@param client_index - opaque cookie to identify the sender
|
|
@param context - sender context, to match reply w/ request
|
|
@param host_if - Linux netdev interface name
|
|
@param name - new rdma interface name
|
|
@param rxq_num - number of receive queues (optional)
|
|
@param rxq_size - receive queue size (optional)
|
|
@param txq_size - transmit queue size (optional)
|
|
@param mode - operation mode (optional)
|
|
@param no_multi_seg (optional) - disable chained buffer RX
|
|
@param max_pktlen (optional) - maximal RX packet size.
|
|
@param rss4 (optional) - IPv4 RSS
|
|
@param rss6 (optional) - IPv6 RSS
|
|
*/
|
|
|
|
autoendian define rdma_create_v4
|
|
{
|
|
u32 client_index;
|
|
u32 context;
|
|
|
|
string host_if[64];
|
|
string name[64];
|
|
u16 rxq_num [default=1];
|
|
u16 rxq_size [default=1024];
|
|
u16 txq_size [default=1024];
|
|
vl_api_rdma_mode_t mode [default=0];
|
|
bool no_multi_seg [default=0];
|
|
u16 max_pktlen [default=0];
|
|
vl_api_rdma_rss4_t rss4 [default=0];
|
|
vl_api_rdma_rss6_t rss6 [default=0];
|
|
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>]";
|
|
};
|
|
|
|
/** \brief
|
|
@param context - sender context, to match reply w/ request
|
|
@param retval - return value for request
|
|
@param sw_if_index - software index for the new rdma interface
|
|
*/
|
|
|
|
define rdma_create_reply
|
|
{
|
|
option deprecated;
|
|
|
|
u32 context;
|
|
i32 retval;
|
|
vl_api_interface_index_t sw_if_index;
|
|
};
|
|
|
|
/** \brief
|
|
@param context - sender context, to match reply w/ request
|
|
@param retval - return value for request
|
|
@param sw_if_index - software index for the new rdma interface
|
|
*/
|
|
|
|
define rdma_create_v2_reply
|
|
{
|
|
option deprecated;
|
|
|
|
u32 context;
|
|
i32 retval;
|
|
vl_api_interface_index_t sw_if_index;
|
|
};
|
|
|
|
/** \brief
|
|
@param client_index - opaque cookie to identify the sender
|
|
@param context - sender context, to match reply w/ request
|
|
@param sw_if_index - interface index
|
|
*/
|
|
|
|
define rdma_create_v3_reply
|
|
{
|
|
u32 context;
|
|
i32 retval;
|
|
vl_api_interface_index_t sw_if_index;
|
|
};
|
|
|
|
/** \brief
|
|
@param client_index - opaque cookie to identify the sender
|
|
@param context - sender context, to match reply w/ request
|
|
@param sw_if_index - interface index
|
|
*/
|
|
|
|
autoendian define rdma_create_v4_reply
|
|
{
|
|
u32 context;
|
|
i32 retval;
|
|
vl_api_interface_index_t sw_if_index;
|
|
};
|
|
|
|
/** \brief
|
|
@param client_index - opaque cookie to identify the sender
|
|
@param context - sender context, to match reply w/ request
|
|
@param sw_if_index - interface index
|
|
*/
|
|
|
|
autoreply define rdma_delete
|
|
{
|
|
u32 client_index;
|
|
u32 context;
|
|
|
|
vl_api_interface_index_t sw_if_index;
|
|
option vat_help = "<sw_if_index index>";
|
|
};
|
|
|
|
/*
|
|
* Local Variables:
|
|
* eval: (c-set-style "gnu")
|
|
* End:
|
|
*/
|