/* *------------------------------------------------------------------ * 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 = " [name ] [rx-queue-size ] [tx-queue-size ] [num-rx-queues ] [mode ]"; }; /** \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 = " [name ] [rx-queue-size ] [tx-queue-size ] [num-rx-queues ] [mode ] [no-multi-seg] [max-pktlen ]"; }; 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 = " [name ] [rx-queue-size ] [tx-queue-size ] [num-rx-queues ] [mode ] [no-multi-seg] [max-pktlen ] [rss ] [rss ]"; }; /** \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 = " [name ] [rx-queue-size ] [tx-queue-size ] [num-rx-queues ] [mode ] [no-multi-seg] [max-pktlen ] [rss ] [rss ]"; }; /** \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 = ""; }; /* * Local Variables: * eval: (c-set-style "gnu") * End: */