| /* SPDX-License-Identifier: GPL-2.0 */ |
| #pragma once |
| |
| #ifndef ETH_P_IP |
| #define ETH_P_IP 0x0800 |
| #endif |
| |
| #ifndef ETH_P_IPV6 |
| #define ETH_P_IPV6 0x86DD |
| #endif |
| |
| #ifndef ETH_P_8021Q |
| #define ETH_P_8021Q 0x8100 |
| #endif |
| |
| #ifndef ETH_P_8021AD |
| #define ETH_P_8021AD 0x88A8 |
| #endif |
| |
| #ifndef BIT |
| #define BIT(nr) (1 << (nr)) |
| #endif |
| |
| /* Non-existent checksum status */ |
| #define XDP_CHECKSUM_MAGIC BIT(2) |
| |
| enum xdp_meta_field { |
| XDP_META_FIELD_TS = BIT(0), |
| XDP_META_FIELD_RSS = BIT(1), |
| XDP_META_FIELD_VLAN_TAG = BIT(2), |
| }; |
| |
| struct xdp_meta { |
| union { |
| __u64 rx_timestamp; |
| __s32 rx_timestamp_err; |
| }; |
| __u64 xdp_timestamp; |
| __u32 rx_hash; |
| union { |
| __u32 rx_hash_type; |
| __s32 rx_hash_err; |
| }; |
| union { |
| struct { |
| __be16 rx_vlan_proto; |
| __u16 rx_vlan_tci; |
| }; |
| __s32 rx_vlan_tag_err; |
| }; |
| enum xdp_meta_field hint_valid; |
| }; |