aboutsummaryrefslogtreecommitdiff
path: root/platform
diff options
context:
space:
mode:
authorMatias Elo <matias.elo@nokia.com>2022-04-29 16:56:11 +0300
committerMatias Elo <matias.elo@nokia.com>2022-05-25 10:58:00 +0300
commit5f155a51010adf39198f2378cd1252cf9cdd9205 (patch)
tree891321f42b7c36df50fea10f4f93cea9120079b9 /platform
parent08b0ebf2a7b598e011c17acac4d536476d1e3d90 (diff)
Port 65b9e351d "linux-gen: packet: inline packet getter functions"
Port original commit from linux-generic. Signed-off-by: Matias Elo <matias.elo@nokia.com> Reviewed-by: Tuomas Taipale <tuomas.taipale@nokia.com>
Diffstat (limited to 'platform')
-rw-r--r--platform/linux-dpdk/include/odp/api/plat/packet_inlines.h30
-rw-r--r--platform/linux-dpdk/odp_packet_flags.c22
2 files changed, 30 insertions, 22 deletions
diff --git a/platform/linux-dpdk/include/odp/api/plat/packet_inlines.h b/platform/linux-dpdk/include/odp/api/plat/packet_inlines.h
index ce49d653f..9f3f8923e 100644
--- a/platform/linux-dpdk/include/odp/api/plat/packet_inlines.h
+++ b/platform/linux-dpdk/include/odp/api/plat/packet_inlines.h
@@ -101,6 +101,9 @@ extern "C" {
#define odp_packet_seg_data_len __odp_packet_seg_data_len
#define odp_packet_ref_static __odp_packet_ref_static
#define odp_packet_has_ref __odp_packet_has_ref
+ #define odp_packet_color __odp_packet_color
+ #define odp_packet_drop_eligible __odp_packet_drop_eligible
+ #define odp_packet_shaper_len_adjust __odp_packet_shaper_len_adjust
#else
#undef _ODP_INLINE
#define _ODP_INLINE
@@ -483,6 +486,33 @@ _ODP_INLINE int odp_packet_has_ref(odp_packet_t pkt)
return (rte_mbuf_refcnt_read((struct rte_mbuf *)(pkt)) > 1);
}
+_ODP_INLINE odp_packet_color_t odp_packet_color(odp_packet_t pkt)
+{
+ _odp_packet_input_flags_t input_flags;
+
+ input_flags.all = _odp_pkt_get(pkt, uint64_t, input_flags);
+
+ return (odp_packet_color_t)input_flags.color;
+}
+
+_ODP_INLINE odp_bool_t odp_packet_drop_eligible(odp_packet_t pkt)
+{
+ _odp_packet_input_flags_t input_flags;
+
+ input_flags.all = _odp_pkt_get(pkt, uint64_t, input_flags);
+
+ return !input_flags.nodrop;
+}
+
+_ODP_INLINE int8_t odp_packet_shaper_len_adjust(odp_packet_t pkt)
+{
+ _odp_packet_flags_t flags;
+
+ flags.all_flags = _odp_pkt_get(pkt, uint32_t, flags);
+
+ return (int8_t)flags.shaper_len_adj;
+}
+
#ifdef __cplusplus
}
#endif
diff --git a/platform/linux-dpdk/odp_packet_flags.c b/platform/linux-dpdk/odp_packet_flags.c
index e7b11790d..bc43bfaa6 100644
--- a/platform/linux-dpdk/odp_packet_flags.c
+++ b/platform/linux-dpdk/odp_packet_flags.c
@@ -8,11 +8,6 @@
#include <odp/api/packet_flags.h>
#include <odp_packet_internal.h>
-#define retflag(pkt, x) do { \
- odp_packet_hdr_t *pkt_hdr = packet_hdr(pkt); \
- return pkt_hdr->p.x; \
- } while (0)
-
#define setflag(pkt, x, v) do { \
odp_packet_hdr_t *pkt_hdr = packet_hdr(pkt); \
pkt_hdr->p.x = (v) & 1; \
@@ -47,11 +42,6 @@ int odp_packet_has_l4_error(odp_packet_t pkt)
return pkt_hdr->p.flags.tcp_err | pkt_hdr->p.flags.udp_err;
}
-odp_packet_color_t odp_packet_color(odp_packet_t pkt)
-{
- retflag(pkt, input_flags.color);
-}
-
void odp_packet_color_set(odp_packet_t pkt, odp_packet_color_t color)
{
odp_packet_hdr_t *pkt_hdr = packet_hdr(pkt);
@@ -59,23 +49,11 @@ void odp_packet_color_set(odp_packet_t pkt, odp_packet_color_t color)
pkt_hdr->p.input_flags.color = color;
}
-odp_bool_t odp_packet_drop_eligible(odp_packet_t pkt)
-{
- odp_packet_hdr_t *pkt_hdr = packet_hdr(pkt);
-
- return !pkt_hdr->p.input_flags.nodrop;
-}
-
void odp_packet_drop_eligible_set(odp_packet_t pkt, odp_bool_t drop)
{
setflag(pkt, input_flags.nodrop, !drop);
}
-int8_t odp_packet_shaper_len_adjust(odp_packet_t pkt)
-{
- retflag(pkt, flags.shaper_len_adj);
-}
-
void odp_packet_shaper_len_adjust_set(odp_packet_t pkt, int8_t adj)
{
odp_packet_hdr_t *pkt_hdr = packet_hdr(pkt);