diff options
author | Vratko Polak <vrpolak@cisco.com> | 2023-12-14 17:11:38 +0100 |
---|---|---|
committer | Beno�t Ganne <bganne@cisco.com> | 2023-12-15 08:44:10 +0000 |
commit | 04d262d1eba969538950da7183cfa77ff3d70dff (patch) | |
tree | 093b6db0909074f5731c2e67c5060a9738c3b8d4 /src/plugins/rdma/rdma.api | |
parent | 6d14c0cc5af3185563c4c7a00fe297cb1301ea03 (diff) |
rdma: add rdma_create_v4 that handles flags properly
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>
Diffstat (limited to 'src/plugins/rdma/rdma.api')
-rw-r--r-- | src/plugins/rdma/rdma.api | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/src/plugins/rdma/rdma.api b/src/plugins/rdma/rdma.api index b83e8ee4148..4c06d8c6658 100644 --- a/src/plugins/rdma/rdma.api +++ b/src/plugins/rdma/rdma.api @@ -98,6 +98,8 @@ enum rdma_rss6 }; /** \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 @@ -114,6 +116,9 @@ enum rdma_rss6 define rdma_create_v3 { + option deprecated; + option replaced_by="rdma_create_v4"; + u32 client_index; u32 context; @@ -130,6 +135,38 @@ define rdma_create_v3 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 @@ -180,6 +217,19 @@ define rdma_create_v3_reply @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; |