aboutsummaryrefslogtreecommitdiffstats
path: root/src/vppinfra/error_bootstrap.h
diff options
context:
space:
mode:
authorDamjan Marion <damarion@cisco.com>2019-09-06 14:24:36 +0200
committerDamjan Marion <dmarion@me.com>2019-09-16 17:20:31 +0000
commitda9513af296b54ac0299206862e9654ae2431bf7 (patch)
tree1c163fa9dcedd9ffa592b594926742529b3568b7 /src/vppinfra/error_bootstrap.h
parent67e4df144b8fd9ef45a188937441ce11260c8b67 (diff)
dpdk: initialize rte_mbuf during mempool dequeue
In some cases it may happen that buffer is allocated by DPDK, and freed by VPP native code. In such cases dpdk metadata is not reset, so we need to do that during mempool dequeue. Template approach is taken to reduce cost of that operation. Type: fix Fixes: 910d369 Change-Id: Ic239007cfc8fbceb965021c56963cda9d53f63be Signed-off-by: Damjan Marion <damarion@cisco.com>
Diffstat (limited to 'src/vppinfra/error_bootstrap.h')
-rw-r--r--src/vppinfra/error_bootstrap.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/vppinfra/error_bootstrap.h b/src/vppinfra/error_bootstrap.h
index 18d2176812d..1cd91058574 100644
--- a/src/vppinfra/error_bootstrap.h
+++ b/src/vppinfra/error_bootstrap.h
@@ -88,6 +88,9 @@ do { \
#define STATIC_ASSERT_SIZEOF(d, s) \
STATIC_ASSERT (sizeof (d) == s, "Size of " #d " must be " # s " bytes")
+#define STATIC_ASSERT_SIZEOF_ELT(d, e, s) \
+ STATIC_ASSERT (sizeof (((d *)0)->e) == s, "Size of " #d "." #e " must be " # s " bytes")
+
#define STATIC_ASSERT_OFFSET_OF(s, e, o) \
STATIC_ASSERT (STRUCT_OFFSET_OF(s,e) == o, "Offset of " #s "." #e " must be " # o)