1 /* SPDX-License-Identifier: GPL-2.0 */ 2 #pragma once 3 4 #ifndef ETH_P_IP 5 #define ETH_P_IP 0x0800 6 #endif 7 8 #ifndef ETH_P_IPV6 9 #define ETH_P_IPV6 0x86DD 10 #endif 11 12 #ifndef ETH_P_8021Q 13 #define ETH_P_8021Q 0x8100 14 #endif 15 16 #ifndef ETH_P_8021AD 17 #define ETH_P_8021AD 0x88A8 18 #endif 19 20 #ifndef BIT 21 #define BIT(nr) (1 << (nr)) 22 #endif 23 24 /* Non-existent checksum status */ 25 #define XDP_CHECKSUM_MAGIC BIT(2) 26 27 enum xdp_meta_field { 28 XDP_META_FIELD_TS = BIT(0), 29 XDP_META_FIELD_RSS = BIT(1), 30 XDP_META_FIELD_VLAN_TAG = BIT(2), 31 }; 32 33 struct xdp_meta { 34 union { 35 __u64 rx_timestamp; 36 __s32 rx_timestamp_err; 37 }; 38 __u64 xdp_timestamp; 39 __u32 rx_hash; 40 union { 41 __u32 rx_hash_type; 42 __s32 rx_hash_err; 43 }; 44 union { 45 struct { 46 __be16 rx_vlan_proto; 47 __u16 rx_vlan_tci; 48 }; 49 __s32 rx_vlan_tag_err; 50 }; 51 enum xdp_meta_field hint_valid; 52 }; 53