From f5a45680ee1c9c586ab2b037e3d71354789e4403 Mon Sep 17 00:00:00 2001 From: Benoît Ganne Date: Wed, 17 Mar 2021 14:41:33 +0100 Subject: rdma: add support for RSS configuration MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Type: feature Change-Id: I911ee94b624ef5edf46b34666597eff93df1d1ed Signed-off-by: Benoît Ganne --- src/plugins/rdma/rdma.api | 66 +++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 64 insertions(+), 2 deletions(-) (limited to 'src/plugins/rdma/rdma.api') diff --git a/src/plugins/rdma/rdma.api b/src/plugins/rdma/rdma.api index 4519e2316d3..f2c70c7e514 100644 --- a/src/plugins/rdma/rdma.api +++ b/src/plugins/rdma/rdma.api @@ -15,7 +15,7 @@ *------------------------------------------------------------------ */ -option version = "2.0.0"; +option version = "3.0.0"; import "vnet/interface_types.api"; enum rdma_mode @@ -25,7 +25,6 @@ enum rdma_mode RDMA_API_MODE_DV = 2, }; - /** \brief @param client_index - opaque cookie to identify the sender @param context - sender context, to match reply w/ request @@ -67,6 +66,7 @@ define rdma_create define rdma_create_v2 { + option deprecated; u32 client_index; u32 context; @@ -81,6 +81,55 @@ define rdma_create_v2 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 + @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 +{ + 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 @@ -114,6 +163,19 @@ define rdma_create_v2_reply @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 +*/ + autoreply define rdma_delete { u32 client_index; -- cgit 1.2.3-korg