1 /* SPDX-License-Identifier: GPL-2.0-or-later */
6 #include <linux/list.h>
7 #include <linux/types.h>
10 struct dsa_device_ops
;
12 struct dsa_switch_tree
;
16 extern struct list_head dsa_tree_list
;
18 bool dsa_db_equal(const struct dsa_db
*a
, const struct dsa_db
*b
);
19 bool dsa_schedule_work(struct work_struct
*work
);
20 void dsa_lag_map(struct dsa_switch_tree
*dst
, struct dsa_lag
*lag
);
21 void dsa_lag_unmap(struct dsa_switch_tree
*dst
, struct dsa_lag
*lag
);
22 struct dsa_lag
*dsa_tree_lag_find(struct dsa_switch_tree
*dst
,
23 const struct net_device
*lag_dev
);
24 struct net_device
*dsa_tree_find_first_conduit(struct dsa_switch_tree
*dst
);
25 int dsa_tree_change_tag_proto(struct dsa_switch_tree
*dst
,
26 const struct dsa_device_ops
*tag_ops
,
27 const struct dsa_device_ops
*old_tag_ops
);
28 void dsa_tree_conduit_admin_state_change(struct dsa_switch_tree
*dst
,
29 struct net_device
*conduit
,
31 void dsa_tree_conduit_oper_state_change(struct dsa_switch_tree
*dst
,
32 struct net_device
*conduit
,
34 unsigned int dsa_bridge_num_get(const struct net_device
*bridge_dev
, int max
);
35 void dsa_bridge_num_put(const struct net_device
*bridge_dev
,
36 unsigned int bridge_num
);
37 struct dsa_bridge
*dsa_tree_bridge_find(struct dsa_switch_tree
*dst
,
38 const struct net_device
*br
);