diff options
author | Matias Elo <matias.elo@nokia.com> | 2022-04-29 16:56:11 +0300 |
---|---|---|
committer | Matias Elo <matias.elo@nokia.com> | 2022-05-25 10:58:00 +0300 |
commit | 5f155a51010adf39198f2378cd1252cf9cdd9205 (patch) | |
tree | 891321f42b7c36df50fea10f4f93cea9120079b9 /platform/linux-dpdk | |
parent | 08b0ebf2a7b598e011c17acac4d536476d1e3d90 (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/linux-dpdk')
-rw-r--r-- | platform/linux-dpdk/include/odp/api/plat/packet_inlines.h | 30 | ||||
-rw-r--r-- | platform/linux-dpdk/odp_packet_flags.c | 22 |
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); |