diff options
author | Bill Fischofer <bill.fischofer@linaro.org> | 2014-12-16 14:30:34 +0200 |
---|---|---|
committer | Maxim Uvarov <maxim.uvarov@linaro.org> | 2014-12-16 19:03:39 +0300 |
commit | 8822ad6c22f6d135c43829e043c675a779bbd005 (patch) | |
tree | abbef5ec4bddbe90bbcbb964009e668e8bcf9822 /platform/linux-generic/odp_packet.c | |
parent | 57408e45ba64d287d402da8bd212edc9aa56d1ba (diff) |
api: packet: move helper functions to public API
Signed-off-by: Bill Fischofer <bill.fischofer@linaro.org>
Signed-off-by: Taras Kondratiuk <taras.kondratiuk@linaro.org>
Reviewed-and-tested-by: Bill Fischofer <bill.fischofer@linaro.org>
Reviewed-by: Petri Savolainen <petri.savolainen@linaro.org>
Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org>
Diffstat (limited to 'platform/linux-generic/odp_packet.c')
-rw-r--r-- | platform/linux-generic/odp_packet.c | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/platform/linux-generic/odp_packet.c b/platform/linux-generic/odp_packet.c index 726e086b..8a941cec 100644 --- a/platform/linux-generic/odp_packet.c +++ b/platform/linux-generic/odp_packet.c @@ -21,6 +21,28 @@ static inline uint8_t parse_ipv4(odp_packet_hdr_t *pkt_hdr, static inline uint8_t parse_ipv6(odp_packet_hdr_t *pkt_hdr, odph_ipv6hdr_t *ipv6, size_t *offset_out); +odp_packet_t odp_packet_alloc(odp_buffer_pool_t pool_id) +{ + odp_packet_t pkt; + odp_buffer_t buf; + + buf = odp_buffer_alloc(pool_id); + if (odp_unlikely(!odp_buffer_is_valid(buf))) + return ODP_PACKET_INVALID; + + pkt = odp_packet_from_buffer(buf); + odp_packet_init(pkt); + + return pkt; +} + +void odp_packet_free(odp_packet_t pkt) +{ + odp_buffer_t buf = odp_packet_to_buffer(pkt); + + odp_buffer_free(buf); +} + void odp_packet_init(odp_packet_t pkt) { odp_packet_hdr_t *const pkt_hdr = odp_packet_hdr(pkt); @@ -368,3 +390,17 @@ void *odp_packet_get_ctx(odp_packet_t pkt) { return (void *)(intptr_t)odp_packet_hdr(pkt)->user_ctx; } + +int odp_packet_is_valid(odp_packet_t pkt) +{ + odp_buffer_t buf = odp_packet_to_buffer(pkt); + + return odp_buffer_is_valid(buf); +} + +size_t odp_packet_buf_size(odp_packet_t pkt) +{ + odp_buffer_t buf = odp_packet_to_buffer(pkt); + + return odp_buffer_size(buf); +} |