#include "hsr_forward.h"
#include <linux/types.h>
#include <linux/skbuff.h>
#include <linux/etherdevice.h>
#include <linux/if_vlan.h>
#include "hsr_main.h"
#include "hsr_framereg.h"
struct hsr_node;
static bool is_supervision_frame(struct hsr_priv *hsr, struct sk_buff *skb)
{ … }
static bool is_proxy_supervision_frame(struct hsr_priv *hsr,
struct sk_buff *skb)
{ … }
static struct sk_buff *create_stripped_skb_hsr(struct sk_buff *skb_in,
struct hsr_frame_info *frame)
{ … }
struct sk_buff *hsr_get_untagged_frame(struct hsr_frame_info *frame,
struct hsr_port *port)
{ … }
struct sk_buff *prp_get_untagged_frame(struct hsr_frame_info *frame,
struct hsr_port *port)
{ … }
static void prp_set_lan_id(struct prp_rct *trailer,
struct hsr_port *port)
{ … }
static struct sk_buff *prp_fill_rct(struct sk_buff *skb,
struct hsr_frame_info *frame,
struct hsr_port *port)
{ … }
static void hsr_set_path_id(struct hsr_ethhdr *hsr_ethhdr,
struct hsr_port *port)
{ … }
static struct sk_buff *hsr_fill_tag(struct sk_buff *skb,
struct hsr_frame_info *frame,
struct hsr_port *port, u8 proto_version)
{ … }
struct sk_buff *hsr_create_tagged_frame(struct hsr_frame_info *frame,
struct hsr_port *port)
{ … }
struct sk_buff *prp_create_tagged_frame(struct hsr_frame_info *frame,
struct hsr_port *port)
{ … }
static void hsr_deliver_master(struct sk_buff *skb, struct net_device *dev,
struct hsr_node *node_src)
{ … }
static int hsr_xmit(struct sk_buff *skb, struct hsr_port *port,
struct hsr_frame_info *frame)
{ … }
bool prp_drop_frame(struct hsr_frame_info *frame, struct hsr_port *port)
{ … }
bool hsr_drop_frame(struct hsr_frame_info *frame, struct hsr_port *port)
{ … }
static void hsr_forward_do(struct hsr_frame_info *frame)
{ … }
static void check_local_dest(struct hsr_priv *hsr, struct sk_buff *skb,
struct hsr_frame_info *frame)
{ … }
static void handle_std_frame(struct sk_buff *skb,
struct hsr_frame_info *frame)
{ … }
int hsr_fill_frame_info(__be16 proto, struct sk_buff *skb,
struct hsr_frame_info *frame)
{ … }
int prp_fill_frame_info(__be16 proto, struct sk_buff *skb,
struct hsr_frame_info *frame)
{ … }
static int fill_frame_info(struct hsr_frame_info *frame,
struct sk_buff *skb, struct hsr_port *port)
{ … }
void hsr_forward_skb(struct sk_buff *skb, struct hsr_port *port)
{ … }