The mbuf pool private area must always be populated in a mbuf pool.
The applications or drivers may expect that for a mbuf pool, the mbuf
pool private area (mbuf_data_room_size and mbuf_priv_size) are
properly filled.

Signed-off-by: Olivier Matz <olivier.matz at 6wind.com>
---
 examples/ip_fragmentation/main.c | 4 ++--
 examples/ip_pipeline/init.c      | 8 ++++++--
 examples/ipv4_multicast/main.c   | 6 ++++--
 3 files changed, 12 insertions(+), 6 deletions(-)

diff --git a/examples/ip_fragmentation/main.c b/examples/ip_fragmentation/main.c
index 93ea2a1..cf63718 100644
--- a/examples/ip_fragmentation/main.c
+++ b/examples/ip_fragmentation/main.c
@@ -764,8 +764,8 @@ init_mem(void)

                        mp = rte_mempool_create(buf, NB_MBUF,
                                                           sizeof(struct 
rte_mbuf), 32,
-                                                          0,
-                                                          NULL, NULL,
+                                                          sizeof(struct 
rte_pktmbuf_pool_private),
+                                                          
rte_pktmbuf_pool_init, NULL,
                                                           rte_pktmbuf_init, 
NULL,
                                                           socket, 0);
                        if (mp == NULL) {
diff --git a/examples/ip_pipeline/init.c b/examples/ip_pipeline/init.c
index 96aee2b..61d71c3 100644
--- a/examples/ip_pipeline/init.c
+++ b/examples/ip_pipeline/init.c
@@ -363,6 +363,8 @@ app_get_ring_resp(uint32_t core_id)
 static void
 app_init_mbuf_pools(void)
 {
+       struct rte_pktmbuf_pool_private indirect_mbp_priv;
+
        /* Init the buffer pool */
        RTE_LOG(INFO, USER1, "Creating the mbuf pool ...\n");
        app.pool = rte_mempool_create(
@@ -380,13 +382,15 @@ app_init_mbuf_pools(void)

        /* Init the indirect buffer pool */
        RTE_LOG(INFO, USER1, "Creating the indirect mbuf pool ...\n");
+       indirect_mbp_priv.mbuf_data_room_size = 0;
+       indirect_mbp_priv.mbuf_priv_size = sizeof(struct app_pkt_metadata);
        app.indirect_pool = rte_mempool_create(
                "indirect mempool",
                app.pool_size,
                sizeof(struct rte_mbuf) + sizeof(struct app_pkt_metadata),
                app.pool_cache_size,
-               0,
-               NULL, NULL,
+               sizeof(struct rte_pktmbuf_pool_private),
+               rte_pktmbuf_pool_init, &indirect_mbp_priv,
                rte_pktmbuf_init, NULL,
                rte_socket_id(),
                0);
diff --git a/examples/ipv4_multicast/main.c b/examples/ipv4_multicast/main.c
index eed5611..19832d8 100644
--- a/examples/ipv4_multicast/main.c
+++ b/examples/ipv4_multicast/main.c
@@ -699,14 +699,16 @@ main(int argc, char **argv)
                rte_exit(EXIT_FAILURE, "Cannot init packet mbuf pool\n");

        header_pool = rte_mempool_create("header_pool", NB_HDR_MBUF,
-           HDR_MBUF_SIZE, 32, 0, NULL, NULL, rte_pktmbuf_init, NULL,
+           HDR_MBUF_SIZE, 32, sizeof(struct rte_pktmbuf_pool_private),
+           rte_pktmbuf_pool_init, NULL, rte_pktmbuf_init, NULL,
            rte_socket_id(), 0);

        if (header_pool == NULL)
                rte_exit(EXIT_FAILURE, "Cannot init header mbuf pool\n");

        clone_pool = rte_mempool_create("clone_pool", NB_CLONE_MBUF,
-           CLONE_MBUF_SIZE, 32, 0, NULL, NULL, rte_pktmbuf_init, NULL,
+           CLONE_MBUF_SIZE, 32, sizeof(struct rte_pktmbuf_pool_private),
+           rte_pktmbuf_pool_init, NULL, rte_pktmbuf_init, NULL,
            rte_socket_id(), 0);

        if (clone_pool == NULL)
-- 
2.1.4

Reply via email to