25 lines
570 B
C
25 lines
570 B
C
|
// SPDX-License-Identifier: GPL-2.0
|
||
|
|
||
|
#include <vmlinux.h>
|
||
|
#include "xdp_metadata.h"
|
||
|
#include <bpf/bpf_helpers.h>
|
||
|
#include <bpf/bpf_endian.h>
|
||
|
|
||
|
extern int bpf_xdp_metadata_rx_hash(const struct xdp_md *ctx, __u32 *hash,
|
||
|
enum xdp_rss_hash_type *rss_type) __ksym;
|
||
|
|
||
|
int called;
|
||
|
|
||
|
SEC("freplace/rx")
|
||
|
int freplace_rx(struct xdp_md *ctx)
|
||
|
{
|
||
|
enum xdp_rss_hash_type type = 0;
|
||
|
u32 hash = 0;
|
||
|
/* Call _any_ metadata function to make sure we don't crash. */
|
||
|
bpf_xdp_metadata_rx_hash(ctx, &hash, &type);
|
||
|
called++;
|
||
|
return XDP_PASS;
|
||
|
}
|
||
|
|
||
|
char _license[] SEC("license") = "GPL";
|