linux/net/dsa/tag_ocelot_8021q.c

// SPDX-License-Identifier: GPL-2.0
/* Copyright 2020-2021 NXP
 *
 * An implementation of the software-defined tag_8021q.c tagger format, which
 * also preserves full functionality under a vlan_filtering bridge. It does
 * this by using the TCAM engines for:
 * - pushing the RX VLAN as a second, outer tag, on egress towards the CPU port
 * - redirecting towards the correct front port based on TX VLAN and popping
 *   that on egress
 */
#include <linux/dsa/8021q.h>
#include <linux/dsa/ocelot.h>

#include "tag.h"
#include "tag_8021q.h"

#define OCELOT_8021Q_NAME

struct ocelot_8021q_tagger_private {};

static struct sk_buff *ocelot_defer_xmit(struct dsa_port *dp,
					 struct sk_buff *skb)
{}

static struct sk_buff *ocelot_xmit(struct sk_buff *skb,
				   struct net_device *netdev)
{}

static struct sk_buff *ocelot_rcv(struct sk_buff *skb,
				  struct net_device *netdev)
{}

static void ocelot_disconnect(struct dsa_switch *ds)
{}

static int ocelot_connect(struct dsa_switch *ds)
{}

static const struct dsa_device_ops ocelot_8021q_netdev_ops =;

MODULE_DESCRIPTION();
MODULE_LICENSE();
MODULE_ALIAS_DSA_TAG_DRIVER();

module_dsa_tag_driver(ocelot_8021q_netdev_ops);