mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-01-10 23:29:46 +00:00
dsa: Add TAG protocol to tag ops
In order that we can match the tagging protocol a switch driver request to the tagger, we need to know what protocol the tagger supports. Add this information to the ops structure. Signed-off-by: Andrew Lunn <andrew@lunn.ch> Reviewed-by: Florian Fainelli <f.fainelli@gmail.com> v2 More tag protocol to end of structure to keep hot members at the beginning. Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
f18bba50d2
commit
056eed2fb0
@ -70,6 +70,7 @@ struct dsa_device_ops {
|
||||
int *offset);
|
||||
unsigned int overhead;
|
||||
const char *name;
|
||||
enum dsa_tag_protocol proto;
|
||||
};
|
||||
|
||||
#define DSA_TAG_DRIVER_ALIAS "dsa_tag-"
|
||||
|
@ -36,6 +36,7 @@ static struct sk_buff *dsa_slave_notag_xmit(struct sk_buff *skb,
|
||||
|
||||
static const struct dsa_device_ops none_ops = {
|
||||
.name = "none",
|
||||
.proto = DSA_TAG_PROTO_NONE,
|
||||
.xmit = dsa_slave_notag_xmit,
|
||||
.rcv = NULL,
|
||||
};
|
||||
|
@ -169,6 +169,7 @@ static struct sk_buff *brcm_tag_rcv(struct sk_buff *skb, struct net_device *dev,
|
||||
|
||||
const struct dsa_device_ops brcm_netdev_ops = {
|
||||
.name = "brcm",
|
||||
.proto = DSA_TAG_PROTO_BRCM,
|
||||
.xmit = brcm_tag_xmit,
|
||||
.rcv = brcm_tag_rcv,
|
||||
.overhead = BRCM_TAG_LEN,
|
||||
@ -195,6 +196,7 @@ static struct sk_buff *brcm_tag_rcv_prepend(struct sk_buff *skb,
|
||||
|
||||
const struct dsa_device_ops brcm_prepend_netdev_ops = {
|
||||
.name = "brcm-prepend",
|
||||
.proto = DSA_TAG_PROTO_BRCM_PREPEND,
|
||||
.xmit = brcm_tag_xmit_prepend,
|
||||
.rcv = brcm_tag_rcv_prepend,
|
||||
.overhead = BRCM_TAG_LEN,
|
||||
|
@ -152,6 +152,7 @@ static int dsa_tag_flow_dissect(const struct sk_buff *skb, __be16 *proto,
|
||||
|
||||
const struct dsa_device_ops dsa_netdev_ops = {
|
||||
.name = "dsa",
|
||||
.proto = DSA_TAG_PROTO_DSA,
|
||||
.xmit = dsa_xmit,
|
||||
.rcv = dsa_rcv,
|
||||
.flow_dissect = dsa_tag_flow_dissect,
|
||||
|
@ -171,6 +171,7 @@ static int edsa_tag_flow_dissect(const struct sk_buff *skb, __be16 *proto,
|
||||
|
||||
const struct dsa_device_ops edsa_netdev_ops = {
|
||||
.name = "edsa",
|
||||
.proto = DSA_TAG_PROTO_EDSA,
|
||||
.xmit = edsa_xmit,
|
||||
.rcv = edsa_rcv,
|
||||
.flow_dissect = edsa_tag_flow_dissect,
|
||||
|
@ -105,6 +105,7 @@ static struct sk_buff *gswip_tag_rcv(struct sk_buff *skb,
|
||||
|
||||
const struct dsa_device_ops gswip_netdev_ops = {
|
||||
.name = "gwsip",
|
||||
.proto = DSA_TAG_PROTO_GSWIP,
|
||||
.xmit = gswip_tag_xmit,
|
||||
.rcv = gswip_tag_rcv,
|
||||
.overhead = GSWIP_RX_HEADER_LEN,
|
||||
|
@ -135,6 +135,7 @@ static struct sk_buff *ksz9477_rcv(struct sk_buff *skb, struct net_device *dev,
|
||||
|
||||
const struct dsa_device_ops ksz9477_netdev_ops = {
|
||||
.name = "ksz9477",
|
||||
.proto = DSA_TAG_PROTO_KSZ9477,
|
||||
.xmit = ksz9477_xmit,
|
||||
.rcv = ksz9477_rcv,
|
||||
.overhead = KSZ9477_INGRESS_TAG_LEN,
|
||||
@ -171,6 +172,7 @@ static struct sk_buff *ksz9893_xmit(struct sk_buff *skb,
|
||||
|
||||
const struct dsa_device_ops ksz9893_netdev_ops = {
|
||||
.name = "ksz9893",
|
||||
.proto = DSA_TAG_PROTO_KSZ9893,
|
||||
.xmit = ksz9893_xmit,
|
||||
.rcv = ksz9477_rcv,
|
||||
.overhead = KSZ_INGRESS_TAG_LEN,
|
||||
|
@ -130,6 +130,7 @@ static struct sk_buff *lan9303_rcv(struct sk_buff *skb, struct net_device *dev,
|
||||
|
||||
const struct dsa_device_ops lan9303_netdev_ops = {
|
||||
.name = "lan9303",
|
||||
.proto = DSA_TAG_PROTO_LAN9303,
|
||||
.xmit = lan9303_xmit,
|
||||
.rcv = lan9303_rcv,
|
||||
.overhead = LAN9303_TAG_LEN,
|
||||
|
@ -100,6 +100,7 @@ static int mtk_tag_flow_dissect(const struct sk_buff *skb, __be16 *proto,
|
||||
|
||||
const struct dsa_device_ops mtk_netdev_ops = {
|
||||
.name = "mtk",
|
||||
.proto = DSA_TAG_PROTO_MTK,
|
||||
.xmit = mtk_tag_xmit,
|
||||
.rcv = mtk_tag_rcv,
|
||||
.flow_dissect = mtk_tag_flow_dissect,
|
||||
|
@ -101,6 +101,7 @@ static int qca_tag_flow_dissect(const struct sk_buff *skb, __be16 *proto,
|
||||
|
||||
const struct dsa_device_ops qca_netdev_ops = {
|
||||
.name = "qca",
|
||||
.proto = DSA_TAG_PROTO_QCA,
|
||||
.xmit = qca_tag_xmit,
|
||||
.rcv = qca_tag_rcv,
|
||||
.flow_dissect = qca_tag_flow_dissect,
|
||||
|
@ -79,6 +79,7 @@ static struct sk_buff *trailer_rcv(struct sk_buff *skb, struct net_device *dev,
|
||||
|
||||
const struct dsa_device_ops trailer_netdev_ops = {
|
||||
.name = "trailer",
|
||||
.proto = DSA_TAG_PROTO_TRAILER,
|
||||
.xmit = trailer_xmit,
|
||||
.rcv = trailer_rcv,
|
||||
.overhead = 4,
|
||||
|
Loading…
x
Reference in New Issue
Block a user