/* SPDX-License-Identifier: GPL-2.0 */#ifndef DSA_LOOP_H#define DSA_LOOP_H #include <linux/if_vlan.h>#include <linux/types.h>#include <linux/ethtool.h>#include <net/dsa.h> struct dsa_loop_vlan { u16 members; u16 untagged;}; struct dsa_loop_mib_entry { char name[ETH_GSTRING_LEN]; unsigned long val;}; enum dsa_loop_mib_counters { DSA_LOOP_PHY_READ_OK, DSA_LOOP_PHY_READ_ERR, DSA_LOOP_PHY_WRITE_OK, DSA_LOOP_PHY_WRITE_ERR, __DSA_LOOP_CNT_MAX,}; struct dsa_loop_port { struct dsa_loop_mib_entry mib[__DSA_LOOP_CNT_MAX]; u16 pvid; int mtu;}; struct dsa_loop_priv { struct mii_bus *bus; unsigned int port_base; struct dsa_loop_vlan vlans[VLAN_N_VID]; struct net_device *netdev; struct dsa_loop_port ports[DSA_MAX_PORTS];}; #endif /* DSA_LOOP_H */
/* SPDX-License-Identifier: GPL-2.0 */
#ifndef DSA_LOOP_H
#define DSA_LOOP_H
#include <linux/if_vlan.h>
#include <linux/types.h>
#include <linux/ethtool.h>
#include <net/dsa.h>
struct dsa_loop_vlan {
u16 members;
u16 untagged;
};
struct dsa_loop_mib_entry {
char name[ETH_GSTRING_LEN];
unsigned long val;
};
enum dsa_loop_mib_counters {
DSA_LOOP_PHY_READ_OK,
DSA_LOOP_PHY_READ_ERR,
DSA_LOOP_PHY_WRITE_OK,
DSA_LOOP_PHY_WRITE_ERR,
__DSA_LOOP_CNT_MAX,
};
struct dsa_loop_port {
struct dsa_loop_mib_entry mib[__DSA_LOOP_CNT_MAX];
u16 pvid;
int mtu;
};
struct dsa_loop_priv {
struct mii_bus *bus;
unsigned int port_base;
struct dsa_loop_vlan vlans[VLAN_N_VID];
struct net_device *netdev;
struct dsa_loop_port ports[DSA_MAX_PORTS];
};
#endif /* DSA_LOOP_H */