dpdk: fix rte mempool for rx_queues
[vpp.git] / src / plugins / dpdk / buffer.c
index fdd5cbd..9718451 100644 (file)
@@ -91,6 +91,7 @@ dpdk_buffer_pool_init (vlib_main_t * vm, vlib_buffer_pool_t * bp)
   rte_mempool_set_ops_byname (nmp, "vpp-no-cache", NULL);
 
   /* Call the mempool priv initializer */
+  memset (&priv, 0, sizeof (priv));
   priv.mbuf_data_room_size = VLIB_BUFFER_PRE_DATA_SIZE +
     vlib_buffer_get_default_data_size (vm);
   priv.mbuf_priv_size = VLIB_BUFFER_HDR_SIZE;
@@ -413,7 +414,15 @@ dpdk_ops_vpp_dequeue_no_cache (struct rte_mempool *mp, void **obj_table,
 static unsigned
 dpdk_ops_vpp_get_count (const struct rte_mempool *mp)
 {
-  clib_warning ("");
+  vlib_main_t *vm = vlib_get_main ();
+  if (mp)
+    {
+      vlib_buffer_pool_t *pool = vlib_get_buffer_pool (vm, mp->pool_id);
+      if (pool)
+       {
+         return pool->n_avail;
+       }
+    }
   return 0;
 }