aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--platform/linux-generic/include/odp_event_internal.h3
-rw-r--r--platform/linux-generic/include/odp_packet_internal.h5
-rw-r--r--platform/linux-generic/odp_packet.c10
-rw-r--r--platform/linux-generic/odp_pool.c3
4 files changed, 12 insertions, 9 deletions
diff --git a/platform/linux-generic/include/odp_event_internal.h b/platform/linux-generic/include/odp_event_internal.h
index fa7e5f354..1f88a10ce 100644
--- a/platform/linux-generic/include/odp_event_internal.h
+++ b/platform/linux-generic/include/odp_event_internal.h
@@ -1,4 +1,4 @@
-/* Copyright (c) 2021, Nokia
+/* Copyright (c) 2021-2022, Nokia
* All rights reserved.
*
* SPDX-License-Identifier: BSD-3-Clause
@@ -51,7 +51,6 @@ typedef struct _odp_event_hdr_t {
void *pool_ptr;
/* --- Mostly read only data --- */
- const void *user_ptr;
/* Initial buffer tail pointer */
uint8_t *buf_end;
diff --git a/platform/linux-generic/include/odp_packet_internal.h b/platform/linux-generic/include/odp_packet_internal.h
index 7c9b7735e..6372705db 100644
--- a/platform/linux-generic/include/odp_packet_internal.h
+++ b/platform/linux-generic/include/odp_packet_internal.h
@@ -1,5 +1,5 @@
/* Copyright (c) 2013-2018, Linaro Limited
- * Copyright (c) 2019-2021, Nokia
+ * Copyright (c) 2019-2022, Nokia
* All rights reserved.
*
* SPDX-License-Identifier: BSD-3-Clause
@@ -120,6 +120,9 @@ typedef struct ODP_ALIGNED_CACHE odp_packet_hdr_t {
/* Flow hash value */
uint32_t flow_hash;
+ /* User context pointer */
+ const void *user_ptr;
+
/* Classifier mark */
uint16_t cls_mark;
diff --git a/platform/linux-generic/odp_packet.c b/platform/linux-generic/odp_packet.c
index a15508ca2..4f20e97b1 100644
--- a/platform/linux-generic/odp_packet.c
+++ b/platform/linux-generic/odp_packet.c
@@ -1,5 +1,5 @@
/* Copyright (c) 2013-2018, Linaro Limited
- * Copyright (c) 2019-2021, Nokia
+ * Copyright (c) 2019-2022, Nokia
* All rights reserved.
*
* SPDX-License-Identifier: BSD-3-Clause
@@ -50,7 +50,7 @@ const _odp_packet_inline_offset_t _odp_packet_inline ODP_ALIGNED_CACHE = {
.pool = offsetof(odp_packet_hdr_t, event_hdr.pool_ptr),
.input = offsetof(odp_packet_hdr_t, input),
.seg_count = offsetof(odp_packet_hdr_t, seg_count),
- .user_ptr = offsetof(odp_packet_hdr_t, event_hdr.user_ptr),
+ .user_ptr = offsetof(odp_packet_hdr_t, user_ptr),
.user_area = offsetof(odp_packet_hdr_t, event_hdr.uarea_addr),
.l2_offset = offsetof(odp_packet_hdr_t, p.l2_offset),
.l3_offset = offsetof(odp_packet_hdr_t, p.l3_offset),
@@ -193,8 +193,8 @@ static inline void packet_seg_copy_md(odp_packet_hdr_t *dst,
if (src->p.flags.payload_off)
dst->payload_offset = src->payload_offset;
+ dst->user_ptr = src->user_ptr;
/* event header side packet metadata */
- dst->event_hdr.user_ptr = src->event_hdr.user_ptr;
dst->event_hdr.uarea_addr = src->event_hdr.uarea_addr;
/* segmentation data is not copied:
@@ -1076,7 +1076,7 @@ void odp_packet_user_ptr_set(odp_packet_t pkt, const void *ptr)
return;
}
- pkt_hdr->event_hdr.user_ptr = ptr;
+ pkt_hdr->user_ptr = ptr;
pkt_hdr->p.flags.user_ptr_set = 1;
}
@@ -1753,7 +1753,7 @@ int _odp_packet_copy_md_to_packet(odp_packet_t srcpkt, odp_packet_t dstpkt)
dsthdr->dst_queue = srchdr->dst_queue;
dsthdr->cos = srchdr->cos;
dsthdr->cls_mark = srchdr->cls_mark;
- dsthdr->event_hdr.user_ptr = srchdr->event_hdr.user_ptr;
+ dsthdr->user_ptr = srchdr->user_ptr;
if (dsthdr->event_hdr.uarea_addr != NULL &&
srchdr->event_hdr.uarea_addr != NULL) {
memcpy(dsthdr->event_hdr.uarea_addr, srchdr->event_hdr.uarea_addr,
diff --git a/platform/linux-generic/odp_pool.c b/platform/linux-generic/odp_pool.c
index 9ef178e5b..fef2ecf8d 100644
--- a/platform/linux-generic/odp_pool.c
+++ b/platform/linux-generic/odp_pool.c
@@ -1,5 +1,5 @@
/* Copyright (c) 2013-2018, Linaro Limited
- * Copyright (c) 2019-2021, Nokia
+ * Copyright (c) 2019-2022, Nokia
* All rights reserved.
*
* SPDX-License-Identifier: BSD-3-Clause
@@ -449,6 +449,7 @@ static void init_event_hdr(pool_t *pool, _odp_event_hdr_t *event_hdr, uint32_t b
if (type == ODP_POOL_PACKET) {
odp_packet_hdr_t *pkt_hdr = (void *)event_hdr;
+ pkt_hdr->user_ptr = NULL;
pkt_hdr->seg_data = data_ptr;
pkt_hdr->seg_len = pool->seg_len;
pkt_hdr->seg_count = 1;