Line data Source code
1 : /*
2 : * include/net/dsa.h - Driver for Distributed Switch Architecture switch chips
3 : * Copyright (c) 2008-2009 Marvell Semiconductor
4 : *
5 : * This program is free software; you can redistribute it and/or modify
6 : * it under the terms of the GNU General Public License as published by
7 : * the Free Software Foundation; either version 2 of the License, or
8 : * (at your option) any later version.
9 : */
10 :
11 : #ifndef __LINUX_NET_DSA_H
12 : #define __LINUX_NET_DSA_H
13 :
14 : #define DSA_MAX_SWITCHES 4
15 : #define DSA_MAX_PORTS 12
16 :
17 : struct dsa_chip_data {
18 : /*
19 : * How to access the switch configuration registers.
20 : */
21 : struct device *mii_bus;
22 : int sw_addr;
23 :
24 : /*
25 : * The names of the switch's ports. Use "cpu" to
26 : * designate the switch port that the cpu is connected to,
27 : * "dsa" to indicate that this port is a DSA link to
28 : * another switch, NULL to indicate the port is unused,
29 : * or any other string to indicate this is a physical port.
30 : */
31 : char *port_names[DSA_MAX_PORTS];
32 :
33 : /*
34 : * An array (with nr_chips elements) of which element [a]
35 : * indicates which port on this switch should be used to
36 : * send packets to that are destined for switch a. Can be
37 : * NULL if there is only one switch chip.
38 : */
39 : s8 *rtable;
40 : };
41 :
42 : struct dsa_platform_data {
43 : /*
44 : * Reference to a Linux network interface that connects
45 : * to the root switch chip of the tree.
46 : */
47 : struct device *netdev;
48 :
49 : /*
50 : * Info structs describing each of the switch chips
51 : * connected via this network interface.
52 : */
53 : int nr_chips;
54 : struct dsa_chip_data *chip;
55 : };
56 :
57 : extern bool dsa_uses_dsa_tags(void *dsa_ptr);
58 : extern bool dsa_uses_trailer_tags(void *dsa_ptr);
59 1 :
60 :
61 1 : #endif
|