12
12
13
13
#define PRESTERA_DRV_NAME "prestera"
14
14
15
+ #define PRESTERA_DEFAULT_VID 1
16
+
15
17
struct prestera_fw_rev {
16
18
u16 maj ;
17
19
u16 min ;
@@ -66,11 +68,13 @@ struct prestera_port {
66
68
u32 hw_id ;
67
69
u32 dev_id ;
68
70
u16 fp_id ;
71
+ u16 pvid ;
69
72
bool autoneg ;
70
73
u64 adver_link_modes ;
71
74
u8 adver_fec ;
72
75
struct prestera_port_caps caps ;
73
76
struct list_head list ;
77
+ struct list_head vlans_list ;
74
78
struct {
75
79
struct prestera_port_stats stats ;
76
80
struct delayed_work caching_dw ;
@@ -100,6 +104,7 @@ enum prestera_event_type {
100
104
PRESTERA_EVENT_TYPE_UNSPEC ,
101
105
102
106
PRESTERA_EVENT_TYPE_PORT ,
107
+ PRESTERA_EVENT_TYPE_FDB ,
103
108
PRESTERA_EVENT_TYPE_RXTX ,
104
109
105
110
PRESTERA_EVENT_TYPE_MAX
@@ -122,19 +127,37 @@ struct prestera_port_event {
122
127
} data ;
123
128
};
124
129
130
+ enum prestera_fdb_event_id {
131
+ PRESTERA_FDB_EVENT_UNSPEC ,
132
+ PRESTERA_FDB_EVENT_LEARNED ,
133
+ PRESTERA_FDB_EVENT_AGED ,
134
+ };
135
+
136
+ struct prestera_fdb_event {
137
+ u32 port_id ;
138
+ u32 vid ;
139
+ union {
140
+ u8 mac [ETH_ALEN ];
141
+ } data ;
142
+ };
143
+
125
144
struct prestera_event {
126
145
u16 id ;
127
146
union {
128
147
struct prestera_port_event port_evt ;
148
+ struct prestera_fdb_event fdb_evt ;
129
149
};
130
150
};
131
151
152
+ struct prestera_switchdev ;
132
153
struct prestera_rxtx ;
133
154
134
155
struct prestera_switch {
135
156
struct prestera_device * dev ;
157
+ struct prestera_switchdev * swdev ;
136
158
struct prestera_rxtx * rxtx ;
137
159
struct list_head event_handlers ;
160
+ struct notifier_block netdev_nb ;
138
161
char base_mac [ETH_ALEN ];
139
162
struct list_head port_list ;
140
163
rwlock_t port_list_lock ;
@@ -172,4 +195,12 @@ struct prestera_port *prestera_port_find_by_hwid(struct prestera_switch *sw,
172
195
int prestera_port_autoneg_set (struct prestera_port * port , bool enable ,
173
196
u64 adver_link_modes , u8 adver_fec );
174
197
198
+ struct prestera_port * prestera_find_port (struct prestera_switch * sw , u32 id );
199
+
200
+ struct prestera_port * prestera_port_dev_lower_find (struct net_device * dev );
201
+
202
+ int prestera_port_pvid_set (struct prestera_port * port , u16 vid );
203
+
204
+ bool prestera_netdev_check (const struct net_device * dev );
205
+
175
206
#endif /* _PRESTERA_H_ */
0 commit comments