aboutsummaryrefslogtreecommitdiff
path: root/include/odp/api/abi-default/packet_types.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/odp/api/abi-default/packet_types.h')
-rw-r--r--include/odp/api/abi-default/packet_types.h134
1 files changed, 134 insertions, 0 deletions
diff --git a/include/odp/api/abi-default/packet_types.h b/include/odp/api/abi-default/packet_types.h
new file mode 100644
index 000000000..e8b2c8484
--- /dev/null
+++ b/include/odp/api/abi-default/packet_types.h
@@ -0,0 +1,134 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright (c) 2017-2018 Linaro Limited
+ * Copyright (c) 2021 Nokia
+ */
+
+#ifndef ODP_ABI_PACKET_TYPES_H_
+#define ODP_ABI_PACKET_TYPES_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <stdint.h>
+
+/** @internal Dummy type for strong typing */
+typedef struct { char dummy; /**< @internal Dummy */ } _odp_abi_packet_t;
+
+/** @internal Dummy type for strong typing */
+typedef struct { char dummy; /**< *internal Dummy */ } _odp_abi_packet_seg_t;
+
+/** @internal Dummy type for strong typing */
+typedef struct { char dummy; /**< *internal Dummy */ } _odp_abi_packet_buf_t;
+
+/** @internal Dummy type for strong typing */
+typedef struct { char dummy; /**< *internal Dummy */ } _odp_abi_packet_vector_t;
+
+/** @internal Dummy type for strong typing */
+typedef struct { char dummy; /**< *internal Dummy */ } _odp_abi_packet_tx_compl_t;
+
+/** @addtogroup odp_packet
+ * @{
+ */
+
+typedef _odp_abi_packet_t *odp_packet_t;
+typedef _odp_abi_packet_seg_t *odp_packet_seg_t;
+typedef _odp_abi_packet_buf_t *odp_packet_buf_t;
+typedef _odp_abi_packet_vector_t *odp_packet_vector_t;
+typedef _odp_abi_packet_tx_compl_t *odp_packet_tx_compl_t;
+
+#define ODP_PACKET_INVALID ((odp_packet_t)0)
+#define ODP_PACKET_SEG_INVALID ((odp_packet_seg_t)0)
+#define ODP_PACKET_BUF_INVALID ((odp_packet_buf_t)0)
+#define ODP_PACKET_OFFSET_INVALID 0xffff
+#define ODP_PACKET_VECTOR_INVALID ((odp_packet_vector_t)0)
+#define ODP_PACKET_TX_COMPL_INVALID ((odp_packet_tx_compl_t)0)
+
+/** Packet Color */
+typedef enum {
+ ODP_PACKET_GREEN = 0,
+ ODP_PACKET_YELLOW = 1,
+ ODP_PACKET_RED = 2,
+ ODP_PACKET_ALL_COLORS = 3,
+} odp_packet_color_t;
+
+/** Packet Checksum Status */
+typedef enum {
+ ODP_PACKET_CHKSUM_UNKNOWN = 0,
+ ODP_PACKET_CHKSUM_BAD,
+ ODP_PACKET_CHKSUM_OK
+} odp_packet_chksum_status_t;
+
+/** Parse result flags */
+typedef struct odp_packet_parse_result_flag_t {
+ /** Flags union */
+ union {
+ /** All flags as a 64 bit word */
+ uint64_t all;
+
+ /** Flags as a bitfield struct */
+ struct {
+ /** See odp_packet_has_error() */
+ uint64_t has_error : 1;
+ /** See odp_packet_has_l2_error() */
+ uint64_t has_l2_error : 1;
+ /** See odp_packet_has_l3_error() */
+ uint64_t has_l3_error : 1;
+ /** See odp_packet_has_l4_error() */
+ uint64_t has_l4_error : 1;
+ /** See odp_packet_has_l2() */
+ uint64_t has_l2 : 1;
+ /** See odp_packet_has_l3() */
+ uint64_t has_l3 : 1;
+ /** See odp_packet_has_l4() */
+ uint64_t has_l4 : 1;
+ /** See odp_packet_has_eth() */
+ uint64_t has_eth : 1;
+ /** See odp_packet_has_eth_bcast() */
+ uint64_t has_eth_bcast : 1;
+ /** See odp_packet_has_eth_mcast() */
+ uint64_t has_eth_mcast : 1;
+ /** See odp_packet_has_jumbo() */
+ uint64_t has_jumbo : 1;
+ /** See odp_packet_has_vlan() */
+ uint64_t has_vlan : 1;
+ /** See odp_packet_has_vlan_qinq() */
+ uint64_t has_vlan_qinq : 1;
+ /** See odp_packet_has_arp() */
+ uint64_t has_arp : 1;
+ /** See odp_packet_has_ipv4() */
+ uint64_t has_ipv4 : 1;
+ /** See odp_packet_has_ipv6() */
+ uint64_t has_ipv6 : 1;
+ /** See odp_packet_has_ip_bcast() */
+ uint64_t has_ip_bcast : 1;
+ /** See odp_packet_has_ip_mcast() */
+ uint64_t has_ip_mcast : 1;
+ /** See odp_packet_has_ipfrag() */
+ uint64_t has_ipfrag : 1;
+ /** See odp_packet_has_ipopt() */
+ uint64_t has_ipopt : 1;
+ /** See odp_packet_has_ipsec() */
+ uint64_t has_ipsec : 1;
+ /** See odp_packet_has_udp() */
+ uint64_t has_udp : 1;
+ /** See odp_packet_has_tcp() */
+ uint64_t has_tcp : 1;
+ /** See odp_packet_has_sctp() */
+ uint64_t has_sctp : 1;
+ /** See odp_packet_has_icmp() */
+ uint64_t has_icmp : 1;
+ };
+ };
+
+} odp_packet_parse_result_flag_t;
+
+/**
+ * @}
+ */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif