linux/net/8021q/vlan_core.c

// SPDX-License-Identifier: GPL-2.0
#include <linux/skbuff.h>
#include <linux/netdevice.h>
#include <linux/if_vlan.h>
#include <linux/netpoll.h>
#include <linux/export.h>
#include <net/gro.h>
#include "vlan.h"

bool vlan_do_receive(struct sk_buff **skbp)
{}

/* Must be invoked with rcu_read_lock. */
struct net_device *__vlan_find_dev_deep_rcu(struct net_device *dev,
					__be16 vlan_proto, u16 vlan_id)
{}
EXPORT_SYMBOL();

struct net_device *vlan_dev_real_dev(const struct net_device *dev)
{}
EXPORT_SYMBOL();

u16 vlan_dev_vlan_id(const struct net_device *dev)
{}
EXPORT_SYMBOL();

__be16 vlan_dev_vlan_proto(const struct net_device *dev)
{}
EXPORT_SYMBOL();

/*
 * vlan info and vid list
 */

static void vlan_group_free(struct vlan_group *grp)
{}

static void vlan_info_free(struct vlan_info *vlan_info)
{}

static void vlan_info_rcu_free(struct rcu_head *rcu)
{}

static struct vlan_info *vlan_info_alloc(struct net_device *dev)
{}

struct vlan_vid_info {};

static bool vlan_hw_filter_capable(const struct net_device *dev, __be16 proto)
{}

static struct vlan_vid_info *vlan_vid_info_get(struct vlan_info *vlan_info,
					       __be16 proto, u16 vid)
{}

static struct vlan_vid_info *vlan_vid_info_alloc(__be16 proto, u16 vid)
{}

static int vlan_add_rx_filter_info(struct net_device *dev, __be16 proto, u16 vid)
{}

static int vlan_kill_rx_filter_info(struct net_device *dev, __be16 proto, u16 vid)
{}

int vlan_for_each(struct net_device *dev,
		  int (*action)(struct net_device *dev, int vid, void *arg),
		  void *arg)
{}
EXPORT_SYMBOL();

int vlan_filter_push_vids(struct vlan_info *vlan_info, __be16 proto)
{}
EXPORT_SYMBOL();

void vlan_filter_drop_vids(struct vlan_info *vlan_info, __be16 proto)
{}
EXPORT_SYMBOL();

static int __vlan_vid_add(struct vlan_info *vlan_info, __be16 proto, u16 vid,
			  struct vlan_vid_info **pvid_info)
{}

int vlan_vid_add(struct net_device *dev, __be16 proto, u16 vid)
{}
EXPORT_SYMBOL();

static void __vlan_vid_del(struct vlan_info *vlan_info,
			   struct vlan_vid_info *vid_info)
{}

void vlan_vid_del(struct net_device *dev, __be16 proto, u16 vid)
{}
EXPORT_SYMBOL();

int vlan_vids_add_by_dev(struct net_device *dev,
			 const struct net_device *by_dev)
{}
EXPORT_SYMBOL();

void vlan_vids_del_by_dev(struct net_device *dev,
			  const struct net_device *by_dev)
{}
EXPORT_SYMBOL();

bool vlan_uses_dev(const struct net_device *dev)
{}
EXPORT_SYMBOL();

static struct sk_buff *vlan_gro_receive(struct list_head *head,
					struct sk_buff *skb)
{}

static int vlan_gro_complete(struct sk_buff *skb, int nhoff)
{}

static struct packet_offload vlan_packet_offloads[] __read_mostly =;

static int __init vlan_offload_init(void)
{}

fs_initcall(vlan_offload_init);