aboutsummaryrefslogtreecommitdiff
path: root/tools/testing/selftests/bpf/xdp_metadata.h
diff options
context:
space:
mode:
authorGravatar Larysa Zaremba <larysa.zaremba@intel.com> 2023-12-05 22:08:45 +0100
committerGravatar Alexei Starovoitov <ast@kernel.org> 2023-12-13 16:16:41 -0800
commit8e68a4beba943bdffb342c601c649223f44b7329 (patch)
tree0c688336ffa27af91694248f76cd4e64e1d38f8a /tools/testing/selftests/bpf/xdp_metadata.h
parentselftests/bpf: Allow VLAN packets in xdp_hw_metadata (diff)
downloadlinux-8e68a4beba943bdffb342c601c649223f44b7329.tar.gz
linux-8e68a4beba943bdffb342c601c649223f44b7329.tar.bz2
linux-8e68a4beba943bdffb342c601c649223f44b7329.zip
selftests/bpf: Add flags and VLAN hint to xdp_hw_metadata
Add VLAN hint to the xdp_hw_metadata program. Also, to make metadata layout more straightforward, add flags field to pass information about validity of every separate hint separately. Acked-by: Stanislav Fomichev <sdf@google.com> Signed-off-by: Larysa Zaremba <larysa.zaremba@intel.com> Link: https://lore.kernel.org/r/20231205210847.28460-17-larysa.zaremba@intel.com Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Diffstat (limited to 'tools/testing/selftests/bpf/xdp_metadata.h')
-rw-r--r--tools/testing/selftests/bpf/xdp_metadata.h26
1 files changed, 25 insertions, 1 deletions
diff --git a/tools/testing/selftests/bpf/xdp_metadata.h b/tools/testing/selftests/bpf/xdp_metadata.h
index 6664893c2c77..87318ad1117a 100644
--- a/tools/testing/selftests/bpf/xdp_metadata.h
+++ b/tools/testing/selftests/bpf/xdp_metadata.h
@@ -17,12 +17,36 @@
#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 {
- __u64 rx_timestamp;
+ 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;
};