1 /* SPDX-License-Identifier: GPL-2.0 */ 1 /* SPDX-License-Identifier: GPL-2.0 */ 2 #ifndef DSA_LOOP_H 2 #ifndef DSA_LOOP_H 3 #define DSA_LOOP_H 3 #define DSA_LOOP_H 4 4 5 #include <linux/if_vlan.h> << 6 #include <linux/types.h> 5 #include <linux/types.h> 7 #include <linux/ethtool.h> 6 #include <linux/ethtool.h> 8 #include <net/dsa.h> 7 #include <net/dsa.h> 9 8 10 struct dsa_loop_vlan { 9 struct dsa_loop_vlan { 11 u16 members; 10 u16 members; 12 u16 untagged; 11 u16 untagged; 13 }; 12 }; 14 13 15 struct dsa_loop_mib_entry { 14 struct dsa_loop_mib_entry { 16 char name[ETH_GSTRING_LEN]; 15 char name[ETH_GSTRING_LEN]; 17 unsigned long val; 16 unsigned long val; 18 }; 17 }; 19 18 20 enum dsa_loop_mib_counters { 19 enum dsa_loop_mib_counters { 21 DSA_LOOP_PHY_READ_OK, 20 DSA_LOOP_PHY_READ_OK, 22 DSA_LOOP_PHY_READ_ERR, 21 DSA_LOOP_PHY_READ_ERR, 23 DSA_LOOP_PHY_WRITE_OK, 22 DSA_LOOP_PHY_WRITE_OK, 24 DSA_LOOP_PHY_WRITE_ERR, 23 DSA_LOOP_PHY_WRITE_ERR, 25 __DSA_LOOP_CNT_MAX, 24 __DSA_LOOP_CNT_MAX, 26 }; 25 }; 27 26 28 struct dsa_loop_port { 27 struct dsa_loop_port { 29 struct dsa_loop_mib_entry mib[__DSA_LO 28 struct dsa_loop_mib_entry mib[__DSA_LOOP_CNT_MAX]; 30 u16 pvid; 29 u16 pvid; 31 int mtu; 30 int mtu; 32 }; 31 }; 33 32 34 struct dsa_loop_priv { 33 struct dsa_loop_priv { 35 struct mii_bus *bus; 34 struct mii_bus *bus; 36 unsigned int port_base; 35 unsigned int port_base; 37 struct dsa_loop_vlan vlans[VLAN_N_VID] 36 struct dsa_loop_vlan vlans[VLAN_N_VID]; 38 struct net_device *netdev; 37 struct net_device *netdev; 39 struct dsa_loop_port ports[DSA_MAX_POR 38 struct dsa_loop_port ports[DSA_MAX_PORTS]; 40 }; 39 }; 41 40 42 #endif /* DSA_LOOP_H */ 41 #endif /* DSA_LOOP_H */ 43 42
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.