blob: 5a3470bcc8a7e18b9e7345d439f6dfbd35f5c36b [file] [log] [blame]
Olivier Deprez157378f2022-04-04 15:47:50 +02001/* SPDX-License-Identifier: GPL-2.0 */
2#ifndef DSA_LOOP_H
3#define DSA_LOOP_H
4
5#include <linux/types.h>
6#include <linux/ethtool.h>
7#include <net/dsa.h>
8
9struct dsa_loop_vlan {
10 u16 members;
11 u16 untagged;
12};
13
14struct dsa_loop_mib_entry {
15 char name[ETH_GSTRING_LEN];
16 unsigned long val;
17};
18
19enum dsa_loop_mib_counters {
20 DSA_LOOP_PHY_READ_OK,
21 DSA_LOOP_PHY_READ_ERR,
22 DSA_LOOP_PHY_WRITE_OK,
23 DSA_LOOP_PHY_WRITE_ERR,
24 __DSA_LOOP_CNT_MAX,
25};
26
27struct dsa_loop_port {
28 struct dsa_loop_mib_entry mib[__DSA_LOOP_CNT_MAX];
29 u16 pvid;
30 int mtu;
31};
32
33struct dsa_loop_priv {
34 struct mii_bus *bus;
35 unsigned int port_base;
36 struct dsa_loop_vlan vlans[VLAN_N_VID];
37 struct net_device *netdev;
38 struct dsa_loop_port ports[DSA_MAX_PORTS];
39};
40
41#endif /* DSA_LOOP_H */