From: Michael Qiu <[email protected]>

When building with DPDK, and using xmalloc() to get a new packet,
field mbuf of the packet will not be initialized, but it's very important for
DPDK port when copying the data to DPDK mbuf, because if ol_flags
and other info are random values, DPDK driver may hang.

Signed-off-by: Michael Qiu <[email protected]>
---
 lib/dp-packet.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/lib/dp-packet.c b/lib/dp-packet.c
index 67aa406..ee2c449 100644
--- a/lib/dp-packet.c
+++ b/lib/dp-packet.c
@@ -134,6 +134,9 @@ struct dp_packet *
 dp_packet_new(size_t size)
 {
     struct dp_packet *b = xmalloc(sizeof *b);
+#ifdef DPDK_NETDEV
+    memset(&(b->mbuf), 0, sizeof(struct rte_mbuf));
+#endif
     dp_packet_init(b, size);
     return b;
 }
-- 
1.8.3.1

_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to