mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-06-20 21:51:05 +00:00
team: allow to enable/disable ports
This patch changes content of hashlist (used to get port struct by computed index (0...en_port_count-1)). Now the hash list contains only enabled ports so userspace will be able to say what ports can be used for tx/rx. This becomes handy when userspace will need to disable ports which does not belong to active aggregator. By default, newly added port is enabled. Signed-off-by: Jiri Pirko <jpirko@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
4c78bb845b
commit
19a0b58e50
4 changed files with 47 additions and 27 deletions
|
@ -28,10 +28,10 @@ struct team;
|
|||
|
||||
struct team_port {
|
||||
struct net_device *dev;
|
||||
struct hlist_node hlist; /* node in hash list */
|
||||
struct hlist_node hlist; /* node in enabled ports hash list */
|
||||
struct list_head list; /* node in ordinary list */
|
||||
struct team *team;
|
||||
int index;
|
||||
int index; /* index of enabled port. If disabled, it's set to -1 */
|
||||
|
||||
bool linkup; /* either state.linkup or user.linkup */
|
||||
|
||||
|
@ -125,11 +125,12 @@ struct team {
|
|||
struct mutex lock; /* used for overall locking, e.g. port lists write */
|
||||
|
||||
/*
|
||||
* port lists with port count
|
||||
* List of enabled ports and their count
|
||||
*/
|
||||
int port_count;
|
||||
struct hlist_head port_hlist[TEAM_PORT_HASHENTRIES];
|
||||
struct list_head port_list;
|
||||
int en_port_count;
|
||||
struct hlist_head en_port_hlist[TEAM_PORT_HASHENTRIES];
|
||||
|
||||
struct list_head port_list; /* list of all ports */
|
||||
|
||||
struct list_head option_list;
|
||||
struct list_head option_inst_list; /* list of option instances */
|
||||
|
@ -142,7 +143,7 @@ struct team {
|
|||
static inline struct hlist_head *team_port_index_hash(struct team *team,
|
||||
int port_index)
|
||||
{
|
||||
return &team->port_hlist[port_index & (TEAM_PORT_HASHENTRIES - 1)];
|
||||
return &team->en_port_hlist[port_index & (TEAM_PORT_HASHENTRIES - 1)];
|
||||
}
|
||||
|
||||
static inline struct team_port *team_get_port_by_index(struct team *team,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue