OSDN Git Service

net: dsa: tag_qca: add define for handling MIB packet
authorAnsuel Smith <ansuelsmth@gmail.com>
Wed, 2 Feb 2022 00:03:26 +0000 (01:03 +0100)
committerDavid S. Miller <davem@davemloft.net>
Wed, 2 Feb 2022 14:43:59 +0000 (14:43 +0000)
Add struct to correctly parse a mib Ethernet packet.

Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/linux/dsa/tag_qca.h
net/dsa/tag_qca.c

index f366422..1fff57f 100644 (file)
@@ -62,4 +62,14 @@ struct qca_mgmt_ethhdr {
        __be16 hdr;             /* qca hdr */
 } __packed;
 
+enum mdio_cmd {
+       MDIO_WRITE = 0x0,
+       MDIO_READ
+};
+
+struct mib_ethhdr {
+       u32 data[3];            /* first 3 mib counter */
+       __be16 hdr;             /* qca hdr */
+} __packed;
+
 #endif /* __TAG_QCA_H */
index f17ed5b..be792cf 100644 (file)
@@ -57,6 +57,10 @@ static struct sk_buff *qca_tag_rcv(struct sk_buff *skb, struct net_device *dev)
        if (pk_type == QCA_HDR_RECV_TYPE_RW_REG_ACK)
                return NULL;
 
+       /* Ethernet MIB counter packet */
+       if (pk_type == QCA_HDR_RECV_TYPE_MIB)
+               return NULL;
+
        /* Remove QCA tag and recalculate checksum */
        skb_pull_rcsum(skb, QCA_HDR_LEN);
        dsa_strip_etype_header(skb, QCA_HDR_LEN);