From: Bruce Richardson <bruce.richardson@intel.com>
To: dev@dpdk.org
Subject: [dpdk-dev] [PATCH 3/6] mbuf: remove rte_ctrlmbuf
Date: Wed, 27 Aug 2014 16:50:25 +0100 [thread overview]
Message-ID: <1409154628-30825-4-git-send-email-bruce.richardson@intel.com> (raw)
In-Reply-To: <1409154628-30825-1-git-send-email-bruce.richardson@intel.com>
From: Olivier Matz <olivier.matz@6wind.com>
The initial role of rte_ctrlmbuf is to carry generic messages (data
pointer + data length) but it's not used by the DPDK or it applications.
Keeping it implies:
- loosing 1 byte in the rte_mbuf structure
- having some dead code rte_mbuf.[ch]
This patch removes this feature. Thanks to it, it is now possible to
simplify the rte_mbuf structure by merging the rte_pktmbuf structure
in it. This is done in next commit.
Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
* Updated patch to HEAD.
* Modified patch to retain the old function names for ctrl mbufs as
macros. This helps with app compatibility, and allows the concept
of a control mbuf to be reintroduced via a single-bit flag in
a future change.
* Updated the packet framework ip_pipeline example application to
work following this change.
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
---
app/test-pmd/cmdline.c | 1 -
app/test-pmd/flowgen.c | 2 +-
app/test-pmd/testpmd.c | 2 -
app/test-pmd/txonly.c | 2 +-
app/test/commands.c | 1 -
app/test/test_mbuf.c | 72 +------------
examples/ip_pipeline/cmdline.c | 44 ++++----
examples/ip_pipeline/init.c | 2 +-
examples/ip_pipeline/pipeline_firewall.c | 4 +-
.../ip_pipeline/pipeline_flow_classification.c | 4 +-
examples/ip_pipeline/pipeline_routing.c | 4 +-
examples/ip_pipeline/pipeline_rx.c | 4 +-
examples/ipv4_multicast/main.c | 2 +-
lib/librte_mbuf/rte_mbuf.c | 60 +++--------
lib/librte_mbuf/rte_mbuf.h | 117 +++++++--------------
lib/librte_pmd_e1000/em_rxtx.c | 2 +-
lib/librte_pmd_e1000/igb_rxtx.c | 2 +-
lib/librte_pmd_i40e/i40e_rxtx.c | 4 +-
lib/librte_pmd_ixgbe/ixgbe_rxtx.c | 4 +-
lib/librte_pmd_virtio/virtio_rxtx.c | 2 +-
lib/librte_pmd_vmxnet3/vmxnet3_rxtx.c | 2 +-
lib/librte_pmd_xenvirt/rte_eth_xenvirt.c | 2 +-
22 files changed, 96 insertions(+), 243 deletions(-)
diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c
index 345be11..6dd576a 100644
--- a/app/test-pmd/cmdline.c
+++ b/app/test-pmd/cmdline.c
@@ -6377,7 +6377,6 @@ dump_struct_sizes(void)
#define DUMP_SIZE(t) printf("sizeof(" #t ") = %u\n", (unsigned)sizeof(t));
DUMP_SIZE(struct rte_mbuf);
DUMP_SIZE(struct rte_pktmbuf);
- DUMP_SIZE(struct rte_ctrlmbuf);
DUMP_SIZE(struct rte_mempool);
DUMP_SIZE(struct rte_ring);
#undef DUMP_SIZE
diff --git a/app/test-pmd/flowgen.c b/app/test-pmd/flowgen.c
index 04911ff..a8f2a65 100644
--- a/app/test-pmd/flowgen.c
+++ b/app/test-pmd/flowgen.c
@@ -96,7 +96,7 @@ tx_mbuf_alloc(struct rte_mempool *mp)
struct rte_mbuf *m;
m = __rte_mbuf_raw_alloc(mp);
- __rte_mbuf_sanity_check_raw(m, RTE_MBUF_PKT, 0);
+ __rte_mbuf_sanity_check_raw(m, 0);
return (m);
}
diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c
index e8a4b45..5368d01 100644
--- a/app/test-pmd/testpmd.c
+++ b/app/test-pmd/testpmd.c
@@ -398,13 +398,11 @@ testpmd_mbuf_ctor(struct rte_mempool *mp,
mb_ctor_arg = (struct mbuf_ctor_arg *) opaque_arg;
mb = (struct rte_mbuf *) raw_mbuf;
- mb->type = RTE_MBUF_PKT;
mb->pool = mp;
mb->buf_addr = (void *) ((char *)mb + mb_ctor_arg->seg_buf_offset);
mb->buf_physaddr = (uint64_t) (rte_mempool_virt2phy(mp, mb) +
mb_ctor_arg->seg_buf_offset);
mb->buf_len = mb_ctor_arg->seg_buf_size;
- mb->type = RTE_MBUF_PKT;
mb->ol_flags = 0;
mb->pkt.data = (char *) mb->buf_addr + RTE_PKTMBUF_HEADROOM;
mb->pkt.nb_segs = 1;
diff --git a/app/test-pmd/txonly.c b/app/test-pmd/txonly.c
index ef93741..d634096 100644
--- a/app/test-pmd/txonly.c
+++ b/app/test-pmd/txonly.c
@@ -93,7 +93,7 @@ tx_mbuf_alloc(struct rte_mempool *mp)
struct rte_mbuf *m;
m = __rte_mbuf_raw_alloc(mp);
- __rte_mbuf_sanity_check_raw(m, RTE_MBUF_PKT, 0);
+ __rte_mbuf_sanity_check_raw(m, 0);
return (m);
}
diff --git a/app/test/commands.c b/app/test/commands.c
index 5f23420..f38d419 100644
--- a/app/test/commands.c
+++ b/app/test/commands.c
@@ -276,7 +276,6 @@ dump_struct_sizes(void)
#define DUMP_SIZE(t) printf("sizeof(" #t ") = %u\n", (unsigned)sizeof(t));
DUMP_SIZE(struct rte_mbuf);
DUMP_SIZE(struct rte_pktmbuf);
- DUMP_SIZE(struct rte_ctrlmbuf);
DUMP_SIZE(struct rte_mempool);
DUMP_SIZE(struct rte_ring);
#undef DUMP_SIZE
diff --git a/app/test/test_mbuf.c b/app/test/test_mbuf.c
index 678c382..6b32d9d 100644
--- a/app/test/test_mbuf.c
+++ b/app/test/test_mbuf.c
@@ -80,7 +80,6 @@
#define MAKE_STRING(x) # x
static struct rte_mempool *pktmbuf_pool = NULL;
-static struct rte_mempool *ctrlmbuf_pool = NULL;
#if defined RTE_MBUF_REFCNT && defined RTE_MBUF_REFCNT_ATOMIC
@@ -272,8 +271,8 @@ test_one_pktmbuf(void)
GOTO_FAIL("Buffer should be continuous");
memset(hdr, 0x55, MBUF_TEST_HDR2_LEN);
- rte_mbuf_sanity_check(m, RTE_MBUF_PKT, 1);
- rte_mbuf_sanity_check(m, RTE_MBUF_PKT, 0);
+ rte_mbuf_sanity_check(m, 1);
+ rte_mbuf_sanity_check(m, 0);
rte_pktmbuf_dump(stdout, m, 0);
/* this prepend should fail */
@@ -320,48 +319,6 @@ fail:
return -1;
}
-/*
- * test control mbuf
- */
-static int
-test_one_ctrlmbuf(void)
-{
- struct rte_mbuf *m = NULL;
- char message[] = "This is a message carried by a ctrlmbuf";
-
- printf("Test ctrlmbuf API\n");
-
- /* alloc a mbuf */
-
- m = rte_ctrlmbuf_alloc(ctrlmbuf_pool);
- if (m == NULL)
- GOTO_FAIL("Cannot allocate mbuf");
- if (rte_ctrlmbuf_len(m) != 0)
- GOTO_FAIL("Bad length");
-
- /* set data */
- rte_ctrlmbuf_data(m) = &message;
- rte_ctrlmbuf_len(m) = sizeof(message);
-
- /* read data */
- if (rte_ctrlmbuf_data(m) != message)
- GOTO_FAIL("Invalid data pointer");
- if (rte_ctrlmbuf_len(m) != sizeof(message))
- GOTO_FAIL("Invalid len");
-
- rte_mbuf_sanity_check(m, RTE_MBUF_CTRL, 0);
-
- /* free mbuf */
- rte_ctrlmbuf_free(m);
- m = NULL;
- return 0;
-
-fail:
- if (m)
- rte_ctrlmbuf_free(m);
- return -1;
-}
-
static int
testclone_testupdate_testdetach(void)
{
@@ -744,7 +701,7 @@ verify_mbuf_check_panics(struct rte_mbuf *buf)
pid = fork();
if (pid == 0) {
- rte_mbuf_sanity_check(buf, RTE_MBUF_PKT, 1); /* should panic */
+ rte_mbuf_sanity_check(buf, 1); /* should panic */
exit(0); /* return normally if it doesn't panic */
} else if (pid < 0){
printf("Fork Failed\n");
@@ -781,13 +738,6 @@ test_failing_mbuf_sanity_check(void)
}
badbuf = *buf;
- badbuf.type = (uint8_t)-1;
- if (verify_mbuf_check_panics(&badbuf)) {
- printf("Error with bad-type mbuf test\n");
- return -1;
- }
-
- badbuf = *buf;
badbuf.pool = NULL;
if (verify_mbuf_check_panics(&badbuf)) {
printf("Error with bad-pool mbuf test\n");
@@ -889,22 +839,6 @@ test_mbuf(void)
return -1;
}
- /* create ctrlmbuf pool if it does not exist */
- if (ctrlmbuf_pool == NULL) {
- ctrlmbuf_pool =
- rte_mempool_create("test_ctrlmbuf_pool", NB_MBUF,
- sizeof(struct rte_mbuf), 32, 0,
- NULL, NULL,
- rte_ctrlmbuf_init, NULL,
- SOCKET_ID_ANY, 0);
- }
-
- /* test control mbuf */
- if (test_one_ctrlmbuf() < 0) {
- printf("test_one_ctrlmbuf() failed\n");
- return -1;
- }
-
/* test free pktmbuf segment one by one */
if (test_pktmbuf_free_segment() < 0) {
printf("test_pktmbuf_free_segment() failed.\n");
diff --git a/examples/ip_pipeline/cmdline.c b/examples/ip_pipeline/cmdline.c
index e10a0cf..a56335e 100644
--- a/examples/ip_pipeline/cmdline.c
+++ b/examples/ip_pipeline/cmdline.c
@@ -345,7 +345,7 @@ cmd_link_enable_parsed(
rte_panic("Unable to allocate new message\n");
/* Fill request message */
- req = (struct app_msg_req *) ((struct rte_mbuf *)msg)->ctrl.data;
+ req = (struct app_msg_req *)rte_ctrlmbuf_data((struct rte_mbuf *)msg);
req->type = APP_MSG_REQ_RX_PORT_ENABLE;
req->rx_up.port = params->port;
@@ -358,7 +358,7 @@ cmd_link_enable_parsed(
do {
status = rte_ring_sc_dequeue(ring_resp, &msg);
} while (status != 0);
- resp = (struct app_msg_resp *) ((struct rte_mbuf *)msg)->ctrl.data;
+ resp = (struct app_msg_resp *)rte_ctrlmbuf_data((struct rte_mbuf *)msg);
/* Check response */
if (resp->result != 0)
printf("Request LINK_UP failed (%u)\n", resp->result);
@@ -433,7 +433,7 @@ cmd_link_disable_parsed(
rte_panic("Unable to allocate new message\n");
/* Fill request message */
- req = (struct app_msg_req *) ((struct rte_mbuf *)msg)->ctrl.data;
+ req = (struct app_msg_req *)rte_ctrlmbuf_data((struct rte_mbuf *)msg);
req->type = APP_MSG_REQ_RX_PORT_DISABLE;
req->rx_down.port = params->port;
@@ -446,7 +446,7 @@ cmd_link_disable_parsed(
do {
status = rte_ring_sc_dequeue(ring_resp, &msg);
} while (status != 0);
- resp = (struct app_msg_resp *) ((struct rte_mbuf *)msg)->ctrl.data;
+ resp = (struct app_msg_resp *)rte_ctrlmbuf_data((struct rte_mbuf *)msg);
/* Check response */
if (resp->result != 0)
@@ -543,7 +543,7 @@ cmd_arp_add_parsed(
rte_panic("Unable to allocate new message\n");
/* Fill request message */
- req = (struct app_msg_req *) ((struct rte_mbuf *)msg)->ctrl.data;
+ req = (struct app_msg_req *)rte_ctrlmbuf_data((struct rte_mbuf *)msg);
req->type = APP_MSG_REQ_ARP_ADD;
req->arp_add.out_iface = rule.arp.key.out_iface;
req->arp_add.nh_ip = rule.arp.key.nh_ip;
@@ -558,7 +558,7 @@ cmd_arp_add_parsed(
do {
status = rte_ring_sc_dequeue(ring_resp, &msg);
} while (status != 0);
- resp = (struct app_msg_resp *) ((struct rte_mbuf *)msg)->ctrl.data;
+ resp = (struct app_msg_resp *)rte_ctrlmbuf_data((struct rte_mbuf *)msg);
/* Check response */
if (resp->result != 0)
@@ -672,7 +672,7 @@ cmd_arp_del_parsed(
rte_panic("Unable to allocate new message\n");
/* Fill request message */
- req = (struct app_msg_req *) ((struct rte_mbuf *)msg)->ctrl.data;
+ req = (struct app_msg_req *)rte_ctrlmbuf_data((struct rte_mbuf *)msg);
req->type = APP_MSG_REQ_ARP_DEL;
req->arp_del.out_iface = rule.arp.key.out_iface;
req->arp_del.nh_ip = rule.arp.key.nh_ip;
@@ -686,7 +686,7 @@ cmd_arp_del_parsed(
do {
status = rte_ring_sc_dequeue(ring_resp, &msg);
} while (status != 0);
- resp = (struct app_msg_resp *) ((struct rte_mbuf *)msg)->ctrl.data;
+ resp = (struct app_msg_resp *)rte_ctrlmbuf_data((struct rte_mbuf *)msg);
/* Check response */
if (resp->result != 0)
@@ -834,7 +834,7 @@ cmd_route_add_parsed(
rte_panic("Unable to allocate new message\n");
/* Fill request message */
- req = (struct app_msg_req *) ((struct rte_mbuf *)msg)->ctrl.data;
+ req = (struct app_msg_req *)rte_ctrlmbuf_data((struct rte_mbuf *)msg);
req->type = APP_MSG_REQ_RT_ADD;
req->routing_add.ip = rule.routing.key.ip;
req->routing_add.depth = rule.routing.key.depth;
@@ -850,7 +850,7 @@ cmd_route_add_parsed(
do {
status = rte_ring_sc_dequeue(ring_resp, &msg);
} while (status != 0);
- resp = (struct app_msg_resp *) ((struct rte_mbuf *)msg)->ctrl.data;
+ resp = (struct app_msg_resp *)rte_ctrlmbuf_data((struct rte_mbuf *)msg);
/* Check response */
if (resp->result != 0)
@@ -972,7 +972,7 @@ cmd_route_del_parsed(
rte_panic("Unable to allocate new message\n");
/* Fill request message */
- req = (struct app_msg_req *) ((struct rte_mbuf *)msg)->ctrl.data;
+ req = (struct app_msg_req *)rte_ctrlmbuf_data((struct rte_mbuf *)msg);
req->type = APP_MSG_REQ_RT_DEL;
req->routing_del.ip = rule.routing.key.ip;
req->routing_del.depth = rule.routing.key.depth;
@@ -986,7 +986,7 @@ cmd_route_del_parsed(
do {
status = rte_ring_sc_dequeue(ring_resp, &msg);
} while (status != 0);
- resp = (struct app_msg_resp *) ((struct rte_mbuf *)msg)->ctrl.data;
+ resp = (struct app_msg_resp *)rte_ctrlmbuf_data((struct rte_mbuf *)msg);
/* Check response */
if (resp->result != 0)
@@ -1149,7 +1149,7 @@ cmd_firewall_add_parsed(
rte_panic("Unable to allocate new message\n");
/* Fill request message */
- req = (struct app_msg_req *) msg->ctrl.data;
+ req = (struct app_msg_req *)rte_ctrlmbuf_data(msg);
req->type = APP_MSG_REQ_FW_ADD;
req->firewall_add.add_params.priority = rule.firewall.priority;
req->firewall_add.add_params.field_value[1].value.u32 =
@@ -1183,7 +1183,7 @@ cmd_firewall_add_parsed(
do {
status = rte_ring_sc_dequeue(ring_resp, (void **) &msg);
} while (status != 0);
- resp = (struct app_msg_resp *) msg->ctrl.data;
+ resp = (struct app_msg_resp *)rte_ctrlmbuf_data(msg);
/* Check response */
if (resp->result != 0)
@@ -1347,7 +1347,7 @@ cmd_firewall_del_parsed(
rte_panic("Unable to allocate new message\n");
/* Fill request message */
- req = (struct app_msg_req *) msg->ctrl.data;
+ req = (struct app_msg_req *)rte_ctrlmbuf_data(msg);
memset(&req->firewall_del, 0, sizeof(req->firewall_del));
req->type = APP_MSG_REQ_FW_DEL;
req->firewall_del.delete_params.field_value[1].value.u32 =
@@ -1380,7 +1380,7 @@ cmd_firewall_del_parsed(
do {
status = rte_ring_sc_dequeue(ring_resp, (void **) &msg);
} while (status != 0);
- resp = (struct app_msg_resp *) msg->ctrl.data;
+ resp = (struct app_msg_resp *)rte_ctrlmbuf_data(msg);
/* Check response */
if (resp->result != 0)
@@ -1525,7 +1525,7 @@ cmd_flow_add_all_parsed(
rte_panic("Unable to allocate new message\n");
/* Fill request message */
- req = (struct app_msg_req *) ((struct rte_mbuf *)msg)->ctrl.data;
+ req = (struct app_msg_req *)rte_ctrlmbuf_data((struct rte_mbuf *)msg);
memset(req, 0, sizeof(struct app_msg_req));
req->type = APP_MSG_REQ_FC_ADD_ALL;
@@ -1539,7 +1539,7 @@ cmd_flow_add_all_parsed(
do {
status = rte_ring_sc_dequeue(ring_resp, &msg);
} while (status != 0);
- resp = (struct app_msg_resp *) ((struct rte_mbuf *)msg)->ctrl.data;
+ resp = (struct app_msg_resp *)rte_ctrlmbuf_data((struct rte_mbuf *)msg);
/* Check response */
if (resp->result != 0)
@@ -1641,7 +1641,7 @@ cmd_flow_add_parsed(
rte_panic("Unable to allocate new message\n");
/* Fill request message */
- req = (struct app_msg_req *) ((struct rte_mbuf *)msg)->ctrl.data;
+ req = (struct app_msg_req *)rte_ctrlmbuf_data((struct rte_mbuf *)msg);
memset(req, 0, sizeof(struct app_msg_req));
req->type = APP_MSG_REQ_FC_ADD;
@@ -1663,7 +1663,7 @@ cmd_flow_add_parsed(
do {
status = rte_ring_sc_dequeue(ring_resp, &msg);
} while (status != 0);
- resp = (struct app_msg_resp *) ((struct rte_mbuf *)msg)->ctrl.data;
+ resp = (struct app_msg_resp *)rte_ctrlmbuf_data((struct rte_mbuf *)msg);
/* Check response */
if (resp->result != 0)
@@ -1790,7 +1790,7 @@ cmd_flow_del_parsed(
rte_panic("Unable to allocate new message\n");
/* Fill request message */
- req = (struct app_msg_req *) ((struct rte_mbuf *)msg)->ctrl.data;
+ req = (struct app_msg_req *)rte_ctrlmbuf_data((struct rte_mbuf *)msg);
memset(req, 0, sizeof(struct app_msg_req));
req->type = APP_MSG_REQ_FC_DEL;
@@ -1811,7 +1811,7 @@ cmd_flow_del_parsed(
do {
status = rte_ring_sc_dequeue(ring_resp, &msg);
} while (status != 0);
- resp = (struct app_msg_resp *) ((struct rte_mbuf *)msg)->ctrl.data;
+ resp = (struct app_msg_resp *)rte_ctrlmbuf_data((struct rte_mbuf *)msg);
/* Check response */
if (resp->result != 0)
diff --git a/examples/ip_pipeline/init.c b/examples/ip_pipeline/init.c
index d00027f..e3ebd46 100644
--- a/examples/ip_pipeline/init.c
+++ b/examples/ip_pipeline/init.c
@@ -561,7 +561,7 @@ app_ping(void)
rte_panic("Unable to allocate new message\n");
req = (struct app_msg_req *)
- ((struct rte_mbuf *)msg)->ctrl.data;
+ rte_ctrlmbuf_data((struct rte_mbuf *)msg);
req->type = APP_MSG_REQ_PING;
/* Send request */
diff --git a/examples/ip_pipeline/pipeline_firewall.c b/examples/ip_pipeline/pipeline_firewall.c
index ecc15a7..b70260e 100644
--- a/examples/ip_pipeline/pipeline_firewall.c
+++ b/examples/ip_pipeline/pipeline_firewall.c
@@ -264,7 +264,7 @@ app_message_handle(struct app_core_firewall_message_handle_params *params)
table_id = params->table_id;
/* Handle request */
- req = (struct app_msg_req *) msg->ctrl.data;
+ req = (struct app_msg_req *)rte_ctrlmbuf_data(msg);
switch (req->type) {
case APP_MSG_REQ_PING:
{
@@ -303,7 +303,7 @@ app_message_handle(struct app_core_firewall_message_handle_params *params)
}
/* Fill in response message */
- resp = (struct app_msg_resp *) msg->ctrl.data;
+ resp = (struct app_msg_resp *)rte_ctrlmbuf_data(msg);
resp->result = result;
/* Send response */
diff --git a/examples/ip_pipeline/pipeline_flow_classification.c b/examples/ip_pipeline/pipeline_flow_classification.c
index 68d4f93..cc0cbf1 100644
--- a/examples/ip_pipeline/pipeline_flow_classification.c
+++ b/examples/ip_pipeline/pipeline_flow_classification.c
@@ -250,7 +250,7 @@ app_message_handle(struct app_core_fc_message_handle_params *params)
table_id = params->table_id;
/* Handle request */
- req = (struct app_msg_req *) ((struct rte_mbuf *)msg)->ctrl.data;
+ req = (struct app_msg_req *)rte_ctrlmbuf_data((struct rte_mbuf *)msg);
switch (req->type) {
case APP_MSG_REQ_PING:
{
@@ -296,7 +296,7 @@ app_message_handle(struct app_core_fc_message_handle_params *params)
}
/* Fill in response message */
- resp = (struct app_msg_resp *) ((struct rte_mbuf *)msg)->ctrl.data;
+ resp = (struct app_msg_resp *)rte_ctrlmbuf_data((struct rte_mbuf *)msg);
resp->result = result;
/* Send response */
diff --git a/examples/ip_pipeline/pipeline_routing.c b/examples/ip_pipeline/pipeline_routing.c
index f19506d..b1ce624 100644
--- a/examples/ip_pipeline/pipeline_routing.c
+++ b/examples/ip_pipeline/pipeline_routing.c
@@ -370,7 +370,7 @@ app_message_handle(struct app_core_routing_message_handle_params *params)
arp_table_id = params->arp_table_id;
/* Handle request */
- req = (struct app_msg_req *) ((struct rte_mbuf *)msg)->ctrl.data;
+ req = (struct app_msg_req *)rte_ctrlmbuf_data((struct rte_mbuf *)msg);
switch (req->type) {
case APP_MSG_REQ_PING:
{
@@ -464,7 +464,7 @@ app_message_handle(struct app_core_routing_message_handle_params *params)
}
/* Fill in response message */
- resp = (struct app_msg_resp *) ((struct rte_mbuf *)msg)->ctrl.data;
+ resp = (struct app_msg_resp *)rte_ctrlmbuf_data((struct rte_mbuf *)msg);
resp->result = result;
/* Send response */
diff --git a/examples/ip_pipeline/pipeline_rx.c b/examples/ip_pipeline/pipeline_rx.c
index ba5fa0a..e43ebfa 100644
--- a/examples/ip_pipeline/pipeline_rx.c
+++ b/examples/ip_pipeline/pipeline_rx.c
@@ -348,7 +348,7 @@ app_message_handle(struct app_core_rx_message_handle_params *params)
port_in_id = params->port_in_id;
/* Handle request */
- req = (struct app_msg_req *) ((struct rte_mbuf *)msg)->ctrl.data;
+ req = (struct app_msg_req *)rte_ctrlmbuf_data((struct rte_mbuf *)msg);
switch (req->type) {
case APP_MSG_REQ_PING:
{
@@ -375,7 +375,7 @@ app_message_handle(struct app_core_rx_message_handle_params *params)
}
/* Fill in response message */
- resp = (struct app_msg_resp *) ((struct rte_mbuf *)msg)->ctrl.data;
+ resp = (struct app_msg_resp *)rte_ctrlmbuf_data((struct rte_mbuf *)msg);
resp->result = result;
/* Send response */
diff --git a/examples/ipv4_multicast/main.c b/examples/ipv4_multicast/main.c
index dfa0075..7b53296 100644
--- a/examples/ipv4_multicast/main.c
+++ b/examples/ipv4_multicast/main.c
@@ -343,7 +343,7 @@ mcast_out_pkt(struct rte_mbuf *pkt, int use_clone)
hdr->ol_flags = pkt->ol_flags;
- __rte_mbuf_sanity_check(hdr, RTE_MBUF_PKT, 1);
+ __rte_mbuf_sanity_check(hdr, 1);
return (hdr);
}
diff --git a/lib/librte_mbuf/rte_mbuf.c b/lib/librte_mbuf/rte_mbuf.c
index a4967e3..39865c1 100644
--- a/lib/librte_mbuf/rte_mbuf.c
+++ b/lib/librte_mbuf/rte_mbuf.c
@@ -65,24 +65,11 @@
*/
void
rte_ctrlmbuf_init(struct rte_mempool *mp,
- __attribute__((unused)) void *opaque_arg,
- void *_m,
- __attribute__((unused)) unsigned i)
+ __attribute__((unused)) void *opaque_arg,
+ void *_m,
+ __attribute__((unused)) unsigned i)
{
- struct rte_mbuf *m = _m;
-
- memset(m, 0, mp->elt_size);
-
- /* start of buffer is just after mbuf structure */
- m->buf_addr = (char *)m + sizeof(struct rte_mbuf);
- m->buf_physaddr = rte_mempool_virt2phy(mp, m) +
- sizeof(struct rte_mbuf);
- m->buf_len = (uint16_t) (mp->elt_size - sizeof(struct rte_mbuf));
-
- /* init some constant fields */
- m->type = RTE_MBUF_CTRL;
- m->ctrl.data = (char *)m->buf_addr;
- m->pool = (struct rte_mempool *)mp;
+ rte_pktmbuf_init(mp, opaque_arg, _m, i);
}
/*
@@ -133,7 +120,6 @@ rte_pktmbuf_init(struct rte_mempool *mp,
m->pkt.data = (char*) m->buf_addr + RTE_MIN(RTE_PKTMBUF_HEADROOM, m->buf_len);
/* init some constant fields */
- m->type = RTE_MBUF_PKT;
m->pool = mp;
m->pkt.nb_segs = 1;
m->pkt.in_port = 0xff;
@@ -141,16 +127,13 @@ rte_pktmbuf_init(struct rte_mempool *mp,
/* do some sanity checks on a mbuf: panic if it fails */
void
-rte_mbuf_sanity_check(const struct rte_mbuf *m, enum rte_mbuf_type t,
- int is_header)
+rte_mbuf_sanity_check(const struct rte_mbuf *m, int is_header)
{
const struct rte_mbuf *m_seg;
unsigned nb_segs;
if (m == NULL)
rte_panic("mbuf is NULL\n");
- if (m->type != (uint8_t)t)
- rte_panic("bad mbuf type\n");
/* generic checks */
if (m->pool == NULL)
@@ -166,29 +149,18 @@ rte_mbuf_sanity_check(const struct rte_mbuf *m, enum rte_mbuf_type t,
rte_panic("bad ref cnt\n");
#endif
- /* nothing to check for ctrl messages */
- if (m->type == RTE_MBUF_CTRL)
+ /* nothing to check for sub-segments */
+ if (is_header == 0)
return;
- /* check pkt consistency */
- else if (m->type == RTE_MBUF_PKT) {
-
- /* nothing to check for sub-segments */
- if (is_header == 0)
- return;
-
- nb_segs = m->pkt.nb_segs;
- m_seg = m;
- while (m_seg && nb_segs != 0) {
- m_seg = m_seg->pkt.next;
- nb_segs --;
- }
- if (nb_segs != 0)
- rte_panic("bad nb_segs\n");
- return;
+ nb_segs = m->pkt.nb_segs;
+ m_seg = m;
+ while (m_seg && nb_segs != 0) {
+ m_seg = m_seg->pkt.next;
+ nb_segs --;
}
-
- rte_panic("unknown mbuf type\n");
+ if (nb_segs != 0)
+ rte_panic("bad nb_segs\n");
}
/* dump a mbuf on console */
@@ -198,7 +170,7 @@ rte_pktmbuf_dump(FILE *f, const struct rte_mbuf *m, unsigned dump_len)
unsigned int len;
unsigned nb_segs;
- __rte_mbuf_sanity_check(m, RTE_MBUF_PKT, 1);
+ __rte_mbuf_sanity_check(m, 1);
fprintf(f, "dump mbuf at 0x%p, phys=%"PRIx64", buf_len=%u\n",
m, (uint64_t)m->buf_physaddr, (unsigned)m->buf_len);
@@ -208,7 +180,7 @@ rte_pktmbuf_dump(FILE *f, const struct rte_mbuf *m, unsigned dump_len)
nb_segs = m->pkt.nb_segs;
while (m && nb_segs != 0) {
- __rte_mbuf_sanity_check(m, RTE_MBUF_PKT, 0);
+ __rte_mbuf_sanity_check(m, 0);
fprintf(f, " segment at 0x%p, data=0x%p, data_len=%u\n",
m, m->pkt.data, (unsigned)m->pkt.data_len);
diff --git a/lib/librte_mbuf/rte_mbuf.h b/lib/librte_mbuf/rte_mbuf.h
index fbd1c7b..cdb92dc 100644
--- a/lib/librte_mbuf/rte_mbuf.h
+++ b/lib/librte_mbuf/rte_mbuf.h
@@ -43,18 +43,13 @@
* buffers. The message buffers are stored in a mempool, using the
* RTE mempool library.
*
- * This library provide an API to allocate/free mbufs, manipulate
- * control message buffer (ctrlmbuf), which are generic message
- * buffers, and packet buffers (pktmbuf), which are used to carry
- * network packets.
+ * This library provide an API to allocate/free packet mbufs, which are
+ * used to carry network packets.
*
* To understand the concepts of packet buffers or mbufs, you
* should read "TCP/IP Illustrated, Volume 2: The Implementation,
* Addison-Wesley, 1995, ISBN 0-201-63354-X from Richard Stevens"
* http://www.kohala.com/start/tcpipiv2.html
- *
- * The main modification of this implementation is the use of mbuf for
- * transports other than packets. mbufs can have other types.
*/
#include <stdint.h>
@@ -70,15 +65,6 @@ extern "C" {
/* deprecated feature, renamed in RTE_MBUF_REFCNT */
#pragma GCC poison RTE_MBUF_SCATTER_GATHER
-/**
- * A control message buffer.
- */
-struct rte_ctrlmbuf {
- void *data; /**< Pointer to data. */
- uint32_t data_len; /**< Length of data. */
-};
-
-
/*
* Packet Offload Features Flags. It also carry packet type information.
* Critical resources. Both rx/tx shared these bits. Be cautious on any change
@@ -173,15 +159,7 @@ struct rte_pktmbuf {
};
/**
- * This enum indicates the mbuf type.
- */
-enum rte_mbuf_type {
- RTE_MBUF_CTRL, /**< Control mbuf. */
- RTE_MBUF_PKT, /**< Packet mbuf. */
-};
-
-/**
- * The generic rte_mbuf, containing a packet mbuf or a control mbuf.
+ * The generic rte_mbuf, containing a packet mbuf.
*/
struct rte_mbuf {
struct rte_mempool *pool; /**< Pool from which mbuf was allocated. */
@@ -204,14 +182,10 @@ struct rte_mbuf {
#else
uint16_t refcnt_reserved; /**< Do not use this field */
#endif
- uint8_t type; /**< Type of mbuf. */
- uint8_t reserved; /**< Unused field. Required for padding. */
+ uint16_t reserved; /**< Unused field. Required for padding */
uint16_t ol_flags; /**< Offload features. */
- union {
- struct rte_ctrlmbuf ctrl;
- struct rte_pktmbuf pkt;
- };
+ struct rte_pktmbuf pkt;
union {
uint8_t metadata[0];
@@ -274,12 +248,12 @@ struct rte_pktmbuf_pool_private {
#ifdef RTE_LIBRTE_MBUF_DEBUG
/** check mbuf type in debug mode */
-#define __rte_mbuf_sanity_check(m, t, is_h) rte_mbuf_sanity_check(m, t, is_h)
+#define __rte_mbuf_sanity_check(m, is_h) rte_mbuf_sanity_check(m, is_h)
/** check mbuf type in debug mode if mbuf pointer is not null */
-#define __rte_mbuf_sanity_check_raw(m, t, is_h) do { \
+#define __rte_mbuf_sanity_check_raw(m, is_h) do { \
if ((m) != NULL) \
- rte_mbuf_sanity_check(m, t, is_h); \
+ rte_mbuf_sanity_check(m, is_h); \
} while (0)
/** MBUF asserts in debug mode */
@@ -291,10 +265,10 @@ if (!(exp)) { \
#else /* RTE_LIBRTE_MBUF_DEBUG */
/** check mbuf type in debug mode */
-#define __rte_mbuf_sanity_check(m, t, is_h) do { } while(0)
+#define __rte_mbuf_sanity_check(m, is_h) do { } while(0)
/** check mbuf type in debug mode if mbuf pointer is not null */
-#define __rte_mbuf_sanity_check_raw(m, t, is_h) do { } while(0)
+#define __rte_mbuf_sanity_check_raw(m, is_h) do { } while(0)
/** MBUF asserts in debug mode */
#define RTE_MBUF_ASSERT(exp) do { } while(0)
@@ -401,20 +375,17 @@ rte_mbuf_refcnt_set(struct rte_mbuf *m, uint16_t new_value)
*
* @param m
* The mbuf to be checked.
- * @param t
- * The expected type of the mbuf.
* @param is_header
* True if the mbuf is a packet header, false if it is a sub-segment
* of a packet (in this case, some fields like nb_segs are not checked)
*/
void
-rte_mbuf_sanity_check(const struct rte_mbuf *m, enum rte_mbuf_type t,
- int is_header);
+rte_mbuf_sanity_check(const struct rte_mbuf *m, int is_header);
/**
* @internal Allocate a new mbuf from mempool *mp*.
* The use of that function is reserved for RTE internal needs.
- * Please use either rte_ctrlmbuf_alloc() or rte_pktmbuf_alloc().
+ * Please use rte_pktmbuf_alloc().
*
* @param mp
* The mempool from which mbuf is allocated.
@@ -439,7 +410,7 @@ static inline struct rte_mbuf *__rte_mbuf_raw_alloc(struct rte_mempool *mp)
/**
* @internal Put mbuf back into its original mempool.
* The use of that function is reserved for RTE internal needs.
- * Please use either rte_ctrlmbuf_free() or rte_pktmbuf_free().
+ * Please use rte_pktmbuf_free().
*
* @param m
* The mbuf to be freed.
@@ -475,7 +446,7 @@ __rte_mbuf_raw_free(struct rte_mbuf *m)
* The index of the mbuf in the pool table.
*/
void rte_ctrlmbuf_init(struct rte_mempool *mp, void *opaque_arg,
- void *m, unsigned i);
+ void *m, unsigned i);
/**
* Allocate a new mbuf (type is ctrl) from mempool *mp*.
@@ -489,16 +460,7 @@ void rte_ctrlmbuf_init(struct rte_mempool *mp, void *opaque_arg,
* - The pointer to the new mbuf on success.
* - NULL if allocation failed.
*/
-static inline struct rte_mbuf *rte_ctrlmbuf_alloc(struct rte_mempool *mp)
-{
- struct rte_mbuf *m;
- if ((m = __rte_mbuf_raw_alloc(mp)) != NULL) {
- m->ctrl.data = m->buf_addr;
- m->ctrl.data_len = 0;
- __rte_mbuf_sanity_check(m, RTE_MBUF_CTRL, 0);
- }
- return (m);
-}
+#define rte_ctrlmbuf_alloc(mp) rte_pktmbuf_alloc(mp)
/**
* Free a control mbuf back into its original mempool.
@@ -506,14 +468,7 @@ static inline struct rte_mbuf *rte_ctrlmbuf_alloc(struct rte_mempool *mp)
* @param m
* The control mbuf to be freed.
*/
-static inline void rte_ctrlmbuf_free(struct rte_mbuf *m)
-{
- __rte_mbuf_sanity_check(m, RTE_MBUF_CTRL, 0);
-#ifdef RTE_MBUF_REFCNT
- if (rte_mbuf_refcnt_update(m, -1) == 0)
-#endif /* RTE_MBUF_REFCNT */
- __rte_mbuf_raw_free(m);
-}
+#define rte_ctrlmbuf_free(m) rte_pktmbuf_free(m)
/**
* A macro that returns the pointer to the carried data.
@@ -523,7 +478,7 @@ static inline void rte_ctrlmbuf_free(struct rte_mbuf *m)
* @param m
* The control mbuf.
*/
-#define rte_ctrlmbuf_data(m) ((m)->ctrl.data)
+#define rte_ctrlmbuf_data(m) ((m)->pkt.data)
/**
* A macro that returns the length of the carried data.
@@ -533,15 +488,15 @@ static inline void rte_ctrlmbuf_free(struct rte_mbuf *m)
* @param m
* The control mbuf.
*/
-#define rte_ctrlmbuf_len(m) ((m)->ctrl.data_len)
+#define rte_ctrlmbuf_len(m) rte_pktmbuf_data_len(m)
/* Operations on pkt mbuf */
/**
* The packet mbuf constructor.
*
- * This function initializes some fields in the mbuf structure that are not
- * modified by the user once created (mbuf type, origin pool, buffer start
+ * This function initializes some fields in the mbuf structure that are
+ * not modified by the user once created (origin pool, buffer start
* address, and so on). This function is given as a callback function to
* rte_mempool_create() at pool creation time.
*
@@ -602,11 +557,11 @@ static inline void rte_pktmbuf_reset(struct rte_mbuf *m)
m->pkt.data = (char*) m->buf_addr + buf_ofs;
m->pkt.data_len = 0;
- __rte_mbuf_sanity_check(m, RTE_MBUF_PKT, 1);
+ __rte_mbuf_sanity_check(m, 1);
}
/**
- * Allocate a new mbuf (type is pkt) from a mempool.
+ * Allocate a new mbuf from a mempool.
*
* This new mbuf contains one segment, which has a length of 0. The pointer
* to data is initialized to have some bytes of headroom in the buffer
@@ -662,8 +617,8 @@ static inline void rte_pktmbuf_attach(struct rte_mbuf *mi, struct rte_mbuf *md)
mi->pkt.nb_segs = 1;
mi->ol_flags = md->ol_flags;
- __rte_mbuf_sanity_check(mi, RTE_MBUF_PKT, 1);
- __rte_mbuf_sanity_check(md, RTE_MBUF_PKT, 0);
+ __rte_mbuf_sanity_check(mi, 1);
+ __rte_mbuf_sanity_check(md, 0);
}
/**
@@ -700,7 +655,7 @@ static inline void rte_pktmbuf_detach(struct rte_mbuf *m)
static inline struct rte_mbuf* __attribute__((always_inline))
__rte_pktmbuf_prefree_seg(struct rte_mbuf *m)
{
- __rte_mbuf_sanity_check(m, RTE_MBUF_PKT, 0);
+ __rte_mbuf_sanity_check(m, 0);
#ifdef RTE_MBUF_REFCNT
if (likely (rte_mbuf_refcnt_read(m) == 1) ||
@@ -755,7 +710,7 @@ static inline void rte_pktmbuf_free(struct rte_mbuf *m)
{
struct rte_mbuf *m_next;
- __rte_mbuf_sanity_check(m, RTE_MBUF_PKT, 1);
+ __rte_mbuf_sanity_check(m, 1);
while (m != NULL) {
m_next = m->pkt.next;
@@ -816,7 +771,7 @@ static inline struct rte_mbuf *rte_pktmbuf_clone(struct rte_mbuf *md,
return (NULL);
}
- __rte_mbuf_sanity_check(mc, RTE_MBUF_PKT, 1);
+ __rte_mbuf_sanity_check(mc, 1);
return (mc);
}
@@ -833,7 +788,7 @@ static inline struct rte_mbuf *rte_pktmbuf_clone(struct rte_mbuf *md,
*/
static inline void rte_pktmbuf_refcnt_update(struct rte_mbuf *m, int16_t v)
{
- __rte_mbuf_sanity_check(m, RTE_MBUF_PKT, 1);
+ __rte_mbuf_sanity_check(m, 1);
do {
rte_mbuf_refcnt_update(m, v);
@@ -852,7 +807,7 @@ static inline void rte_pktmbuf_refcnt_update(struct rte_mbuf *m, int16_t v)
*/
static inline uint16_t rte_pktmbuf_headroom(const struct rte_mbuf *m)
{
- __rte_mbuf_sanity_check(m, RTE_MBUF_PKT, 1);
+ __rte_mbuf_sanity_check(m, 1);
return (uint16_t) ((char*) m->pkt.data - (char*) m->buf_addr);
}
@@ -866,7 +821,7 @@ static inline uint16_t rte_pktmbuf_headroom(const struct rte_mbuf *m)
*/
static inline uint16_t rte_pktmbuf_tailroom(const struct rte_mbuf *m)
{
- __rte_mbuf_sanity_check(m, RTE_MBUF_PKT, 1);
+ __rte_mbuf_sanity_check(m, 1);
return (uint16_t)(m->buf_len - rte_pktmbuf_headroom(m) -
m->pkt.data_len);
}
@@ -883,7 +838,7 @@ static inline struct rte_mbuf *rte_pktmbuf_lastseg(struct rte_mbuf *m)
{
struct rte_mbuf *m2 = (struct rte_mbuf *)m;
- __rte_mbuf_sanity_check(m, RTE_MBUF_PKT, 1);
+ __rte_mbuf_sanity_check(m, 1);
while (m2->pkt.next != NULL)
m2 = m2->pkt.next;
return m2;
@@ -941,7 +896,7 @@ static inline struct rte_mbuf *rte_pktmbuf_lastseg(struct rte_mbuf *m)
static inline char *rte_pktmbuf_prepend(struct rte_mbuf *m,
uint16_t len)
{
- __rte_mbuf_sanity_check(m, RTE_MBUF_PKT, 1);
+ __rte_mbuf_sanity_check(m, 1);
if (unlikely(len > rte_pktmbuf_headroom(m)))
return NULL;
@@ -973,7 +928,7 @@ static inline char *rte_pktmbuf_append(struct rte_mbuf *m, uint16_t len)
void *tail;
struct rte_mbuf *m_last;
- __rte_mbuf_sanity_check(m, RTE_MBUF_PKT, 1);
+ __rte_mbuf_sanity_check(m, 1);
m_last = rte_pktmbuf_lastseg(m);
if (unlikely(len > rte_pktmbuf_tailroom(m_last)))
@@ -1001,7 +956,7 @@ static inline char *rte_pktmbuf_append(struct rte_mbuf *m, uint16_t len)
*/
static inline char *rte_pktmbuf_adj(struct rte_mbuf *m, uint16_t len)
{
- __rte_mbuf_sanity_check(m, RTE_MBUF_PKT, 1);
+ __rte_mbuf_sanity_check(m, 1);
if (unlikely(len > m->pkt.data_len))
return NULL;
@@ -1030,7 +985,7 @@ static inline int rte_pktmbuf_trim(struct rte_mbuf *m, uint16_t len)
{
struct rte_mbuf *m_last;
- __rte_mbuf_sanity_check(m, RTE_MBUF_PKT, 1);
+ __rte_mbuf_sanity_check(m, 1);
m_last = rte_pktmbuf_lastseg(m);
if (unlikely(len > m_last->pkt.data_len))
@@ -1052,7 +1007,7 @@ static inline int rte_pktmbuf_trim(struct rte_mbuf *m, uint16_t len)
*/
static inline int rte_pktmbuf_is_contiguous(const struct rte_mbuf *m)
{
- __rte_mbuf_sanity_check(m, RTE_MBUF_PKT, 1);
+ __rte_mbuf_sanity_check(m, 1);
return !!(m->pkt.nb_segs == 1);
}
diff --git a/lib/librte_pmd_e1000/em_rxtx.c b/lib/librte_pmd_e1000/em_rxtx.c
index f254858..3304f50 100644
--- a/lib/librte_pmd_e1000/em_rxtx.c
+++ b/lib/librte_pmd_e1000/em_rxtx.c
@@ -85,7 +85,7 @@ rte_rxmbuf_alloc(struct rte_mempool *mp)
struct rte_mbuf *m;
m = __rte_mbuf_raw_alloc(mp);
- __rte_mbuf_sanity_check_raw(m, RTE_MBUF_PKT, 0);
+ __rte_mbuf_sanity_check_raw(m, 0);
return (m);
}
diff --git a/lib/librte_pmd_e1000/igb_rxtx.c b/lib/librte_pmd_e1000/igb_rxtx.c
index 977c4a2..b0112be 100644
--- a/lib/librte_pmd_e1000/igb_rxtx.c
+++ b/lib/librte_pmd_e1000/igb_rxtx.c
@@ -90,7 +90,7 @@ rte_rxmbuf_alloc(struct rte_mempool *mp)
struct rte_mbuf *m;
m = __rte_mbuf_raw_alloc(mp);
- __rte_mbuf_sanity_check_raw(m, RTE_MBUF_PKT, 0);
+ __rte_mbuf_sanity_check_raw(m, 0);
return (m);
}
diff --git a/lib/librte_pmd_i40e/i40e_rxtx.c b/lib/librte_pmd_i40e/i40e_rxtx.c
index 83b9462..76ff019 100644
--- a/lib/librte_pmd_i40e/i40e_rxtx.c
+++ b/lib/librte_pmd_i40e/i40e_rxtx.c
@@ -473,7 +473,7 @@ rte_rxmbuf_alloc(struct rte_mempool *mp)
struct rte_mbuf *m;
m = __rte_mbuf_raw_alloc(mp);
- __rte_mbuf_sanity_check_raw(m, RTE_MBUF_PKT, 0);
+ __rte_mbuf_sanity_check_raw(m, 0);
return m;
}
@@ -687,7 +687,6 @@ i40e_rx_alloc_bufs(struct i40e_rx_queue *rxq)
for (i = 0; i < rxq->rx_free_thresh; i++) {
mb = rxep[i].mbuf;
rte_mbuf_refcnt_set(mb, 1);
- mb->type = RTE_MBUF_PKT;
mb->pkt.next = NULL;
mb->pkt.data = (char *)mb->buf_addr + RTE_PKTMBUF_HEADROOM;
mb->pkt.nb_segs = 1;
@@ -2020,7 +2019,6 @@ i40e_alloc_rx_queue_mbufs(struct i40e_rx_queue *rxq)
}
rte_mbuf_refcnt_set(mbuf, 1);
- mbuf->type = RTE_MBUF_PKT;
mbuf->pkt.next = NULL;
mbuf->pkt.data = (char *)mbuf->buf_addr + RTE_PKTMBUF_HEADROOM;
mbuf->pkt.nb_segs = 1;
diff --git a/lib/librte_pmd_ixgbe/ixgbe_rxtx.c b/lib/librte_pmd_ixgbe/ixgbe_rxtx.c
index dfc2076..40ea4f8 100644
--- a/lib/librte_pmd_ixgbe/ixgbe_rxtx.c
+++ b/lib/librte_pmd_ixgbe/ixgbe_rxtx.c
@@ -96,7 +96,7 @@ rte_rxmbuf_alloc(struct rte_mempool *mp)
struct rte_mbuf *m;
m = __rte_mbuf_raw_alloc(mp);
- __rte_mbuf_sanity_check_raw(m, RTE_MBUF_PKT, 0);
+ __rte_mbuf_sanity_check_raw(m, 0);
return (m);
}
@@ -995,7 +995,6 @@ ixgbe_rx_alloc_bufs(struct igb_rx_queue *rxq)
/* populate the static rte mbuf fields */
mb = rxep[i].mbuf;
rte_mbuf_refcnt_set(mb, 1);
- mb->type = RTE_MBUF_PKT;
mb->pkt.next = NULL;
mb->pkt.data = (char *)mb->buf_addr + RTE_PKTMBUF_HEADROOM;
mb->pkt.nb_segs = 1;
@@ -3213,7 +3212,6 @@ ixgbe_alloc_rx_queue_mbufs(struct igb_rx_queue *rxq)
}
rte_mbuf_refcnt_set(mbuf, 1);
- mbuf->type = RTE_MBUF_PKT;
mbuf->pkt.next = NULL;
mbuf->pkt.data = (char *)mbuf->buf_addr + RTE_PKTMBUF_HEADROOM;
mbuf->pkt.nb_segs = 1;
diff --git a/lib/librte_pmd_virtio/virtio_rxtx.c b/lib/librte_pmd_virtio/virtio_rxtx.c
index fcd8bd1..186514d 100644
--- a/lib/librte_pmd_virtio/virtio_rxtx.c
+++ b/lib/librte_pmd_virtio/virtio_rxtx.c
@@ -227,7 +227,7 @@ rte_rxmbuf_alloc(struct rte_mempool *mp)
struct rte_mbuf *m;
m = __rte_mbuf_raw_alloc(mp);
- __rte_mbuf_sanity_check_raw(m, RTE_MBUF_PKT, 0);
+ __rte_mbuf_sanity_check_raw(m, 0);
return m;
}
diff --git a/lib/librte_pmd_vmxnet3/vmxnet3_rxtx.c b/lib/librte_pmd_vmxnet3/vmxnet3_rxtx.c
index 2d9f5e0..2470c8e 100644
--- a/lib/librte_pmd_vmxnet3/vmxnet3_rxtx.c
+++ b/lib/librte_pmd_vmxnet3/vmxnet3_rxtx.c
@@ -100,7 +100,7 @@ rte_rxmbuf_alloc(struct rte_mempool *mp)
struct rte_mbuf *m;
m = __rte_mbuf_raw_alloc(mp);
- __rte_mbuf_sanity_check_raw(m, RTE_MBUF_PKT, 0);
+ __rte_mbuf_sanity_check_raw(m, 0);
return m;
}
diff --git a/lib/librte_pmd_xenvirt/rte_eth_xenvirt.c b/lib/librte_pmd_xenvirt/rte_eth_xenvirt.c
index 450332a..ba82319 100644
--- a/lib/librte_pmd_xenvirt/rte_eth_xenvirt.c
+++ b/lib/librte_pmd_xenvirt/rte_eth_xenvirt.c
@@ -81,7 +81,7 @@ rte_rxmbuf_alloc(struct rte_mempool *mp)
struct rte_mbuf *m;
m = __rte_mbuf_raw_alloc(mp);
- __rte_mbuf_sanity_check_raw(m, RTE_MBUF_PKT, 0);
+ __rte_mbuf_sanity_check_raw(m, 0);
return m;
}
--
1.9.3
next prev parent reply other threads:[~2014-08-27 15:47 UTC|newest]
Thread overview: 35+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-08-27 15:50 [dpdk-dev] [PATCH 0/6] Mbuf structure Rework, part 1 Bruce Richardson
2014-08-27 15:50 ` [dpdk-dev] [PATCH 1/6] ixgbe: put only non-zero initializer in definition Bruce Richardson
2014-08-27 15:50 ` [dpdk-dev] [PATCH 2/6] mbuf: rename RTE_MBUF_SCATTER_GATHER into RTE_MBUF_REFCNT Bruce Richardson
2014-08-27 15:50 ` Bruce Richardson [this message]
2014-08-27 15:50 ` [dpdk-dev] [PATCH 4/6] mbuf: remove the rte_pktmbuf structure Bruce Richardson
2014-08-27 15:50 ` [dpdk-dev] [PATCH 5/6] mbuf: rename in_port to just port Bruce Richardson
2014-08-27 15:50 ` [dpdk-dev] [PATCH 6/6] mbuf: flatten struct vlan_macip into mbuf struct Bruce Richardson
2014-08-28 15:42 ` [dpdk-dev] [PATCH v2 0/6] Mbuf structure Rework, part 1 Bruce Richardson
2014-09-17 9:30 ` Thomas Monjalon
2014-08-28 15:42 ` [dpdk-dev] [PATCH v2 1/6] ixgbe: put only non-zero initializer in definition Bruce Richardson
2014-09-05 16:14 ` De Lara Guarch, Pablo
2014-09-08 7:55 ` Olivier MATZ
2014-08-28 15:42 ` [dpdk-dev] [PATCH v2 2/6] mbuf: rename RTE_MBUF_SCATTER_GATHER into RTE_MBUF_REFCNT Bruce Richardson
2014-09-05 16:14 ` De Lara Guarch, Pablo
2014-09-08 8:01 ` Olivier MATZ
2014-08-28 15:42 ` [dpdk-dev] [PATCH v2 3/6] mbuf: remove rte_ctrlmbuf Bruce Richardson
2014-09-05 16:15 ` De Lara Guarch, Pablo
2014-09-08 8:21 ` Olivier MATZ
2014-09-09 8:48 ` Richardson, Bruce
2014-08-28 15:42 ` [dpdk-dev] [PATCH v2 4/6] mbuf: remove the rte_pktmbuf structure Bruce Richardson
2014-09-04 13:25 ` [dpdk-dev] [PATCH v3 " Bruce Richardson
2014-09-05 16:17 ` De Lara Guarch, Pablo
2014-09-08 8:29 ` Olivier MATZ
2014-09-05 16:15 ` [dpdk-dev] [PATCH v2 " De Lara Guarch, Pablo
2014-08-28 15:42 ` [dpdk-dev] [PATCH v2 5/6] mbuf: rename in_port to just port Bruce Richardson
2014-09-05 16:16 ` De Lara Guarch, Pablo
2014-09-08 8:45 ` Olivier MATZ
2014-08-28 15:42 ` [dpdk-dev] [PATCH v2 6/6] mbuf: flatten struct vlan_macip into mbuf struct Bruce Richardson
2014-09-05 16:21 ` De Lara Guarch, Pablo
2014-09-07 19:40 ` Richardson, Bruce
2014-09-08 9:07 ` Olivier MATZ
2014-09-09 14:40 ` [dpdk-dev] [PATCH v3 " Bruce Richardson
2014-09-09 15:20 ` De Lara Guarch, Pablo
2014-09-08 12:32 ` [dpdk-dev] [PATCH 0/6] Mbuf structure Rework, part 1 Olivier MATZ
2014-09-09 9:03 ` Richardson, Bruce
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1409154628-30825-4-git-send-email-bruce.richardson@intel.com \
--to=bruce.richardson@intel.com \
--cc=dev@dpdk.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).