#include <linux/kernel.h>
#include <linux/netfilter_bridge.h>
#include <linux/etherdevice.h>
#include <linux/llc.h>
#include <linux/slab.h>
#include <linux/pkt_sched.h>
#include <net/net_namespace.h>
#include <net/llc.h>
#include <net/llc_pdu.h>
#include <net/stp.h>
#include <asm/unaligned.h>
#include "br_private.h"
#include "br_private_stp.h"
#define STP_HZ …
#define LLC_RESERVE …
static int br_send_bpdu_finish(struct net *net, struct sock *sk,
struct sk_buff *skb)
{ … }
static void br_send_bpdu(struct net_bridge_port *p,
const unsigned char *data, int length)
{ … }
static inline void br_set_ticks(unsigned char *dest, int j)
{ … }
static inline int br_get_ticks(const unsigned char *src)
{ … }
void br_send_config_bpdu(struct net_bridge_port *p, struct br_config_bpdu *bpdu)
{ … }
void br_send_tcn_bpdu(struct net_bridge_port *p)
{ … }
void br_stp_rcv(const struct stp_proto *proto, struct sk_buff *skb,
struct net_device *dev)
{ … }