Linux Audio

Check our new training course

Loading...
Note: File does not exist in v4.17.
  1/* SPDX-License-Identifier: GPL-2.0-or-later */
  2
  3#ifndef __DSA_PORT_H
  4#define __DSA_PORT_H
  5
  6#include <linux/types.h>
  7#include <net/dsa.h>
  8
  9struct ifreq;
 10struct netdev_lag_lower_state_info;
 11struct netdev_lag_upper_info;
 12struct netlink_ext_ack;
 13struct switchdev_mst_state;
 14struct switchdev_obj_port_mdb;
 15struct switchdev_vlan_msti;
 16struct phy_device;
 17
 18bool dsa_port_supports_hwtstamp(struct dsa_port *dp);
 19void dsa_port_set_tag_protocol(struct dsa_port *cpu_dp,
 20			       const struct dsa_device_ops *tag_ops);
 21int dsa_port_set_state(struct dsa_port *dp, u8 state, bool do_fast_age);
 22int dsa_port_set_mst_state(struct dsa_port *dp,
 23			   const struct switchdev_mst_state *state,
 24			   struct netlink_ext_ack *extack);
 25int dsa_port_enable_rt(struct dsa_port *dp, struct phy_device *phy);
 26int dsa_port_enable(struct dsa_port *dp, struct phy_device *phy);
 27void dsa_port_disable_rt(struct dsa_port *dp);
 28void dsa_port_disable(struct dsa_port *dp);
 29int dsa_port_bridge_join(struct dsa_port *dp, struct net_device *br,
 30			 struct netlink_ext_ack *extack);
 31void dsa_port_pre_bridge_leave(struct dsa_port *dp, struct net_device *br);
 32void dsa_port_bridge_leave(struct dsa_port *dp, struct net_device *br);
 33int dsa_port_lag_change(struct dsa_port *dp,
 34			struct netdev_lag_lower_state_info *linfo);
 35int dsa_port_lag_join(struct dsa_port *dp, struct net_device *lag_dev,
 36		      struct netdev_lag_upper_info *uinfo,
 37		      struct netlink_ext_ack *extack);
 38void dsa_port_pre_lag_leave(struct dsa_port *dp, struct net_device *lag_dev);
 39void dsa_port_lag_leave(struct dsa_port *dp, struct net_device *lag_dev);
 40int dsa_port_vlan_filtering(struct dsa_port *dp, bool vlan_filtering,
 41			    struct netlink_ext_ack *extack);
 42bool dsa_port_skip_vlan_configuration(struct dsa_port *dp);
 43int dsa_port_ageing_time(struct dsa_port *dp, clock_t ageing_clock);
 44int dsa_port_mst_enable(struct dsa_port *dp, bool on,
 45			struct netlink_ext_ack *extack);
 46int dsa_port_vlan_msti(struct dsa_port *dp,
 47		       const struct switchdev_vlan_msti *msti);
 48int dsa_port_mtu_change(struct dsa_port *dp, int new_mtu);
 49int dsa_port_fdb_add(struct dsa_port *dp, const unsigned char *addr,
 50		     u16 vid);
 51int dsa_port_fdb_del(struct dsa_port *dp, const unsigned char *addr,
 52		     u16 vid);
 53int dsa_port_standalone_host_fdb_add(struct dsa_port *dp,
 54				     const unsigned char *addr, u16 vid);
 55int dsa_port_standalone_host_fdb_del(struct dsa_port *dp,
 56				     const unsigned char *addr, u16 vid);
 57int dsa_port_bridge_host_fdb_add(struct dsa_port *dp, const unsigned char *addr,
 58				 u16 vid);
 59int dsa_port_bridge_host_fdb_del(struct dsa_port *dp, const unsigned char *addr,
 60				 u16 vid);
 61int dsa_port_lag_fdb_add(struct dsa_port *dp, const unsigned char *addr,
 62			 u16 vid);
 63int dsa_port_lag_fdb_del(struct dsa_port *dp, const unsigned char *addr,
 64			 u16 vid);
 65int dsa_port_fdb_dump(struct dsa_port *dp, dsa_fdb_dump_cb_t *cb, void *data);
 66int dsa_port_mdb_add(const struct dsa_port *dp,
 67		     const struct switchdev_obj_port_mdb *mdb);
 68int dsa_port_mdb_del(const struct dsa_port *dp,
 69		     const struct switchdev_obj_port_mdb *mdb);
 70int dsa_port_standalone_host_mdb_add(const struct dsa_port *dp,
 71				     const struct switchdev_obj_port_mdb *mdb);
 72int dsa_port_standalone_host_mdb_del(const struct dsa_port *dp,
 73				     const struct switchdev_obj_port_mdb *mdb);
 74int dsa_port_bridge_host_mdb_add(const struct dsa_port *dp,
 75				 const struct switchdev_obj_port_mdb *mdb);
 76int dsa_port_bridge_host_mdb_del(const struct dsa_port *dp,
 77				 const struct switchdev_obj_port_mdb *mdb);
 78int dsa_port_pre_bridge_flags(const struct dsa_port *dp,
 79			      struct switchdev_brport_flags flags,
 80			      struct netlink_ext_ack *extack);
 81int dsa_port_bridge_flags(struct dsa_port *dp,
 82			  struct switchdev_brport_flags flags,
 83			  struct netlink_ext_ack *extack);
 84int dsa_port_vlan_add(struct dsa_port *dp,
 85		      const struct switchdev_obj_port_vlan *vlan,
 86		      struct netlink_ext_ack *extack);
 87int dsa_port_vlan_del(struct dsa_port *dp,
 88		      const struct switchdev_obj_port_vlan *vlan);
 89int dsa_port_host_vlan_add(struct dsa_port *dp,
 90			   const struct switchdev_obj_port_vlan *vlan,
 91			   struct netlink_ext_ack *extack);
 92int dsa_port_host_vlan_del(struct dsa_port *dp,
 93			   const struct switchdev_obj_port_vlan *vlan);
 94int dsa_port_mrp_add(const struct dsa_port *dp,
 95		     const struct switchdev_obj_mrp *mrp);
 96int dsa_port_mrp_del(const struct dsa_port *dp,
 97		     const struct switchdev_obj_mrp *mrp);
 98int dsa_port_mrp_add_ring_role(const struct dsa_port *dp,
 99			       const struct switchdev_obj_ring_role_mrp *mrp);
100int dsa_port_mrp_del_ring_role(const struct dsa_port *dp,
101			       const struct switchdev_obj_ring_role_mrp *mrp);
102int dsa_port_phylink_create(struct dsa_port *dp);
103void dsa_port_phylink_destroy(struct dsa_port *dp);
104int dsa_shared_port_link_register_of(struct dsa_port *dp);
105void dsa_shared_port_link_unregister_of(struct dsa_port *dp);
106int dsa_port_hsr_join(struct dsa_port *dp, struct net_device *hsr,
107		      struct netlink_ext_ack *extack);
108void dsa_port_hsr_leave(struct dsa_port *dp, struct net_device *hsr);
109int dsa_port_tag_8021q_vlan_add(struct dsa_port *dp, u16 vid, bool broadcast);
110void dsa_port_tag_8021q_vlan_del(struct dsa_port *dp, u16 vid, bool broadcast);
111void dsa_port_set_host_flood(struct dsa_port *dp, bool uc, bool mc);
112int dsa_port_change_conduit(struct dsa_port *dp, struct net_device *conduit,
113			    struct netlink_ext_ack *extack);
114
115#endif