root/include/uapi/linux/netfilter_bridge.h
/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
#ifndef _UAPI__LINUX_BRIDGE_NETFILTER_H
#define _UAPI__LINUX_BRIDGE_NETFILTER_H

/* bridge-specific defines for netfilter. 
 */

#ifndef __KERNEL__
#include <netinet/if_ether.h>   /* for __UAPI_DEF_ETHHDR if defined */
#endif

#include <linux/in.h>
#include <linux/netfilter.h>
#include <linux/if_ether.h>
#include <linux/if_vlan.h>
#include <linux/if_pppox.h>
#include <linux/typelimits.h>

/* Bridge Hooks */
/* After promisc drops, checksum checks. */
#define NF_BR_PRE_ROUTING       0
/* If the packet is destined for this box. */
#define NF_BR_LOCAL_IN          1
/* If the packet is destined for another interface. */
#define NF_BR_FORWARD           2
/* Packets coming from a local process. */
#define NF_BR_LOCAL_OUT         3
/* Packets about to hit the wire. */
#define NF_BR_POST_ROUTING      4
/* Not really a hook, but used for the ebtables broute table */
#define NF_BR_BROUTING          5
#define NF_BR_NUMHOOKS          6

enum nf_br_hook_priorities {
        NF_BR_PRI_FIRST = __KERNEL_INT_MIN,
        NF_BR_PRI_NAT_DST_BRIDGED = -300,
        NF_BR_PRI_FILTER_BRIDGED = -200,
        NF_BR_PRI_BRNF = 0,
        NF_BR_PRI_NAT_DST_OTHER = 100,
        NF_BR_PRI_FILTER_OTHER = 200,
        NF_BR_PRI_NAT_SRC = 300,
        NF_BR_PRI_LAST = __KERNEL_INT_MAX,
};

#endif /* _UAPI__LINUX_BRIDGE_NETFILTER_H */