iavf: limit maximum number of queues to 32 30/40030/2
authorDamjan Marion <damarion@cisco.com>
Thu, 30 Nov 2023 17:16:20 +0000 (17:16 +0000)
committerAndrew Yourtchenko <ayourtch@gmail.com>
Fri, 1 Dec 2023 13:30:39 +0000 (13:30 +0000)
First genaration of AVF APIs we currently use doesn't support more...

Type: improvement
Change-Id: I1ae27f322403a2b455fcad8b028fa2004b449789
Signed-off-by: Damjan Marion <damarion@cisco.com>
src/plugins/dev_iavf/iavf.c

index 1a17f46..3bf1120 100644 (file)
@@ -19,6 +19,8 @@ VLIB_REGISTER_LOG_CLASS (iavf_log, static) = {
   .subclass_name = "init",
 };
 
+#define IAVF_MAX_QPAIRS 32
+
 static const u32 driver_cap_flags =
   /**/ VIRTCHNL_VF_CAP_ADV_LINK_SPEED |
   /**/ VIRTCHNL_VF_LARGE_NUM_QPAIRS |
@@ -151,15 +153,15 @@ iavf_init (vlib_main_t *vm, vnet_dev_t *dev)
     .rss_lut_size = res.rss_lut_size,
     .max_vectors = res.max_vectors,
     .vsi_id = res.vsi_res[0].vsi_id,
-    .num_qp = res.vsi_res[0].num_queue_pairs,
+    .num_qp = clib_min (IAVF_MAX_QPAIRS, res.vsi_res[0].num_queue_pairs),
   };
 
   vnet_dev_port_add_args_t port_add_args = {
     .port = {
       .attr = {
         .type = VNET_DEV_PORT_TYPE_ETHERNET,
-        .max_rx_queues = res.num_queue_pairs,
-        .max_tx_queues = res.num_queue_pairs,
+        .max_rx_queues = clib_min (IAVF_MAX_QPAIRS, res.num_queue_pairs),
+        .max_tx_queues = clib_min (IAVF_MAX_QPAIRS, res.num_queue_pairs),
         .max_supported_rx_frame_size = res.max_mtu,
         .caps.change_max_rx_frame_size = 1,
       },