aboutsummaryrefslogtreecommitdiff
path: root/platform/linux-dpdk/include
diff options
context:
space:
mode:
Diffstat (limited to 'platform/linux-dpdk/include')
-rw-r--r--platform/linux-dpdk/include/odp/api/plat/packet_inline_types.h7
-rw-r--r--platform/linux-dpdk/include/odp_buffer_internal.h1
-rw-r--r--platform/linux-dpdk/include/odp_eventdev_internal.h4
-rw-r--r--platform/linux-dpdk/include/odp_packet_internal.h27
-rw-r--r--platform/linux-dpdk/include/odp_packet_io_internal.h4
-rw-r--r--platform/linux-dpdk/include/odp_queue_basic_internal.h4
6 files changed, 29 insertions, 18 deletions
diff --git a/platform/linux-dpdk/include/odp/api/plat/packet_inline_types.h b/platform/linux-dpdk/include/odp/api/plat/packet_inline_types.h
index 06e322066..e0169579a 100644
--- a/platform/linux-dpdk/include/odp/api/plat/packet_inline_types.h
+++ b/platform/linux-dpdk/include/odp/api/plat/packet_inline_types.h
@@ -113,7 +113,7 @@ typedef union {
uint32_t all_flags;
struct {
- uint32_t reserved1: 6;
+ uint32_t reserved1: 7;
/*
* Init flags
@@ -144,14 +144,13 @@ typedef union {
uint32_t udp_err: 1; /* UDP error */
uint32_t sctp_err: 1; /* SCTP error */
uint32_t l4_chksum_err: 1; /* L4 checksum error */
- uint32_t crypto_err: 1; /* Crypto packet operation error */
};
/* Flag groups */
struct {
- uint32_t reserved2: 6;
+ uint32_t reserved2: 7;
uint32_t other: 18; /* All other flags */
- uint32_t error: 8; /* All error flags */
+ uint32_t error: 7; /* All error flags */
} all;
} _odp_packet_flags_t;
diff --git a/platform/linux-dpdk/include/odp_buffer_internal.h b/platform/linux-dpdk/include/odp_buffer_internal.h
index 42b686a2a..3b99961c1 100644
--- a/platform/linux-dpdk/include/odp_buffer_internal.h
+++ b/platform/linux-dpdk/include/odp_buffer_internal.h
@@ -27,7 +27,6 @@ extern "C" {
#include <odp/api/std_types.h>
#include <odp/api/thread.h>
-#include <odp_align_internal.h>
#include <odp_config_internal.h>
#include <odp_event_internal.h>
diff --git a/platform/linux-dpdk/include/odp_eventdev_internal.h b/platform/linux-dpdk/include/odp_eventdev_internal.h
index f6b01ec81..66da6daee 100644
--- a/platform/linux-dpdk/include/odp_eventdev_internal.h
+++ b/platform/linux-dpdk/include/odp_eventdev_internal.h
@@ -25,9 +25,9 @@ extern "C" {
#include <odp/api/thread.h>
#include <odp/api/ticketlock.h>
-#include <odp_align_internal.h>
#include <odp_config_internal.h>
#include <odp_forward_typedefs_internal.h>
+#include <odp_macros_internal.h>
#include <odp_packet_io_internal.h>
#include <odp_ptr_ring_mpmc_internal.h>
#include <odp_queue_if.h>
@@ -88,7 +88,7 @@ struct queue_entry_s {
union queue_entry_u {
struct queue_entry_s s;
- uint8_t pad[ROUNDUP_CACHE_LINE(sizeof(struct queue_entry_s))];
+ uint8_t pad[_ODP_ROUNDUP_CACHE_LINE(sizeof(struct queue_entry_s))];
};
/* Eventdev global data */
diff --git a/platform/linux-dpdk/include/odp_packet_internal.h b/platform/linux-dpdk/include/odp_packet_internal.h
index a381386fc..02d7ff7b0 100644
--- a/platform/linux-dpdk/include/odp_packet_internal.h
+++ b/platform/linux-dpdk/include/odp_packet_internal.h
@@ -20,20 +20,23 @@ extern "C" {
#include <odp/api/align.h>
#include <odp/api/debug.h>
+#include <odp/api/hints.h>
#include <odp/api/ipsec.h>
#include <odp/api/packet.h>
-#include <odp/api/plat/packet_inline_types.h>
#include <odp/api/packet_io.h>
#include <odp/api/crypto.h>
#include <odp/api/comp.h>
#include <odp/api/std.h>
+#include <odp/api/plat/packet_inline_types.h>
+
#include <odp_config_internal.h>
#include <odp_debug_internal.h>
#include <odp_event_internal.h>
#include <odp_pool_internal.h>
#include <protocols/eth.h>
+#include <stdint.h>
#include <string.h>
#include <rte_config.h>
@@ -158,13 +161,11 @@ typedef struct odp_packet_hdr_t {
int8_t subtype;
union {
- struct {
- /* Result for crypto packet op */
- odp_crypto_packet_result_t crypto_op_result;
+ /* Result for crypto packet op */
+ odp_crypto_packet_result_t crypto_op_result;
- /* Context for IPsec */
- odp_ipsec_packet_result_t ipsec_ctx;
- };
+ /* Context for IPsec */
+ odp_ipsec_packet_result_t ipsec_ctx;
/* Result for comp packet op */
odp_comp_packet_result_t comp_op_result;
@@ -271,7 +272,10 @@ static inline void _odp_packet_copy_md(odp_packet_hdr_t *dst_hdr,
odp_packet_hdr_t *src_hdr,
odp_bool_t uarea_copy)
{
+ const int8_t subtype = src_hdr->subtype;
+
dst_hdr->input = src_hdr->input;
+ dst_hdr->subtype = subtype;
dst_hdr->dst_queue = src_hdr->dst_queue;
dst_hdr->cos = src_hdr->cos;
dst_hdr->cls_mark = src_hdr->cls_mark;
@@ -321,6 +325,15 @@ static inline void _odp_packet_copy_md(odp_packet_hdr_t *dst_hdr,
dst_hdr->uarea_addr = src_uarea;
}
}
+
+ if (odp_unlikely(subtype != ODP_EVENT_PACKET_BASIC)) {
+ if (subtype == ODP_EVENT_PACKET_IPSEC)
+ dst_hdr->ipsec_ctx = src_hdr->ipsec_ctx;
+ else if (subtype == ODP_EVENT_PACKET_CRYPTO)
+ dst_hdr->crypto_op_result = src_hdr->crypto_op_result;
+ else if (subtype == ODP_EVENT_PACKET_COMP)
+ dst_hdr->comp_op_result = src_hdr->comp_op_result;
+ }
}
static inline void _odp_packet_copy_cls_md(odp_packet_hdr_t *dst_hdr,
diff --git a/platform/linux-dpdk/include/odp_packet_io_internal.h b/platform/linux-dpdk/include/odp_packet_io_internal.h
index 1f3fb650d..59410eef6 100644
--- a/platform/linux-dpdk/include/odp_packet_io_internal.h
+++ b/platform/linux-dpdk/include/odp_packet_io_internal.h
@@ -26,10 +26,10 @@ extern "C" {
#include <odp/api/plat/packet_io_inlines.h>
-#include <odp_align_internal.h>
#include <odp_classification_datamodel.h>
#include <odp_config_internal.h>
#include <odp_debug_internal.h>
+#include <odp_macros_internal.h>
#include <odp_queue_if.h>
#include <inttypes.h>
@@ -159,7 +159,7 @@ struct pktio_entry {
typedef union {
struct pktio_entry s;
- uint8_t pad[ROUNDUP_CACHE_LINE(sizeof(struct pktio_entry))];
+ uint8_t pad[_ODP_ROUNDUP_CACHE_LINE(sizeof(struct pktio_entry))];
} pktio_entry_t;
typedef struct {
diff --git a/platform/linux-dpdk/include/odp_queue_basic_internal.h b/platform/linux-dpdk/include/odp_queue_basic_internal.h
index 72c77d985..36ef7c6b5 100644
--- a/platform/linux-dpdk/include/odp_queue_basic_internal.h
+++ b/platform/linux-dpdk/include/odp_queue_basic_internal.h
@@ -20,10 +20,10 @@ extern "C" {
#include <odp/api/shared_memory.h>
#include <odp/api/ticketlock.h>
-#include <odp_align_internal.h>
#include <odp_buffer_internal.h>
#include <odp_config_internal.h>
#include <odp_forward_typedefs_internal.h>
+#include <odp_macros_internal.h>
#include <odp_ptr_ring_mpmc_internal.h>
#include <odp_ptr_ring_st_internal.h>
#include <odp_ptr_ring_spsc_internal.h>
@@ -70,7 +70,7 @@ struct queue_entry_s {
union queue_entry_u {
struct queue_entry_s s;
- uint8_t pad[ROUNDUP_CACHE_LINE(sizeof(struct queue_entry_s))];
+ uint8_t pad[_ODP_ROUNDUP_CACHE_LINE(sizeof(struct queue_entry_s))];
};
typedef struct queue_global_t {