#ifndef _LINUX_IF_TEAM_H_
#define _LINUX_IF_TEAM_H_
#include <linux/netpoll.h>
#include <net/sch_generic.h>
#include <linux/types.h>
#include <uapi/linux/if_team.h>
struct team_pcpu_stats { … };
struct team;
struct team_port { … };
static inline struct team_port *team_port_get_rcu(const struct net_device *dev)
{ … }
static inline bool team_port_enabled(struct team_port *port)
{ … }
static inline bool team_port_txable(struct team_port *port)
{ … }
static inline bool team_port_dev_txable(const struct net_device *port_dev)
{ … }
#ifdef CONFIG_NET_POLL_CONTROLLER
static inline void team_netpoll_send_skb(struct team_port *port,
struct sk_buff *skb)
{ … }
#else
static inline void team_netpoll_send_skb(struct team_port *port,
struct sk_buff *skb)
{
}
#endif
struct team_mode_ops { … };
extern int team_modeop_port_enter(struct team *team, struct team_port *port);
extern void team_modeop_port_change_dev_addr(struct team *team,
struct team_port *port);
enum team_option_type { … };
struct team_option_inst_info { … };
struct team_gsetter_ctx { … };
struct team_option { … };
extern void team_option_inst_set_change(struct team_option_inst_info *opt_inst_info);
extern void team_options_change_check(struct team *team);
struct team_mode { … };
#define TEAM_PORT_HASHBITS …
#define TEAM_PORT_HASHENTRIES …
#define TEAM_MODE_PRIV_LONGS …
#define TEAM_MODE_PRIV_SIZE …
struct team { … };
static inline int team_dev_queue_xmit(struct team *team, struct team_port *port,
struct sk_buff *skb)
{ … }
static inline struct hlist_head *team_port_index_hash(struct team *team,
int port_index)
{ … }
static inline struct team_port *team_get_port_by_index(struct team *team,
int port_index)
{ … }
static inline int team_num_to_port_index(struct team *team, unsigned int num)
{ … }
static inline struct team_port *team_get_port_by_index_rcu(struct team *team,
int port_index)
{ … }
static inline struct team_port *
team_get_first_port_txable_rcu(struct team *team, struct team_port *port)
{ … }
extern int team_options_register(struct team *team,
const struct team_option *option,
size_t option_count);
extern void team_options_unregister(struct team *team,
const struct team_option *option,
size_t option_count);
extern int team_mode_register(const struct team_mode *mode);
extern void team_mode_unregister(const struct team_mode *mode);
#define TEAM_DEFAULT_NUM_TX_QUEUES …
#define TEAM_DEFAULT_NUM_RX_QUEUES …
#define MODULE_ALIAS_TEAM_MODE(kind) …
#endif