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