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 27enum 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 33struct 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