Files
xdp-project-bpf-examples/pkt-loop-filter/pkt-loop-filter.h
Toke Høiland-Jørgensen 60ed7a8e8b pkt-loop-filter: Filter multicast traffic
This adds filtering of multicast traffic to the set of interfaces. The
filtering works by marking one of the interfaces as "primary" (which is
just the first interface name that is supplied on the command line) and
filtering everything with an all-ones destination MAC address if it's
coming in on any interface that's not the primary one.

To handle interfaces going down, we actually supply all the ifindexes to
the BPF program, and also install a tracing hook that listens to ifdown
events and switches the logic to the next ifindex in the sequence if the
primary one goes down. This is a bit rudimentary but should at least
provide basic filtering.

Signed-off-by: Toke Høiland-Jørgensen <toke@redhat.com>
2022-06-14 17:43:35 +02:00

22 lines
343 B
C

#ifndef __PKT_LOOP_FILTER_H__
#define __PKT_LOOP_FILTER_H__
#define MAX_IFINDEXES 10
#define NS_PER_SEC 1000000000ULL
#define STATE_LIFETIME (10 * NS_PER_SEC)
struct pkt_loop_key {
__u8 src_mac[6];
__u16 src_vlan;
};
struct pkt_loop_data {
__u64 expiry_time;
__u32 ifindex;
__u32 drops;
};
#endif