mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-27 19:29:37 +00:00
![Jeff Garzik](/assets/img/avatar_default.png)
We now have struct net_device_stats embedded in struct net_device, and the default ->get_stats() hook does the obvious thing for us. Run through drivers/net/* and remove the driver-local storage of statistics, and driver-local ->get_stats() hook where applicable. This was just the low-hanging fruit in drivers/net; plenty more drivers remain to be updated. [ Resolved conflicts with napi_struct changes and fix sunqe build regression... -DaveM ] Signed-off-by: Jeff Garzik <jeff@garzik.org> Signed-off-by: David S. Miller <davem@davemloft.net>
83 lines
1.8 KiB
C
83 lines
1.8 KiB
C
/*
|
|
* Equalizer Load-balancer for serial network interfaces.
|
|
*
|
|
* (c) Copyright 1995 Simon "Guru Aleph-Null" Janes
|
|
* NCM: Network and Communications Management, Inc.
|
|
*
|
|
*
|
|
* This software may be used and distributed according to the terms
|
|
* of the GNU General Public License, incorporated herein by reference.
|
|
*
|
|
* The author may be reached as simon@ncm.com, or C/O
|
|
* NCM
|
|
* Attn: Simon Janes
|
|
* 6803 Whittier Ave
|
|
* McLean VA 22101
|
|
* Phone: 1-703-847-0040 ext 103
|
|
*/
|
|
|
|
#ifndef _LINUX_IF_EQL_H
|
|
#define _LINUX_IF_EQL_H
|
|
|
|
#define EQL_DEFAULT_SLAVE_PRIORITY 28800
|
|
#define EQL_DEFAULT_MAX_SLAVES 4
|
|
#define EQL_DEFAULT_MTU 576
|
|
#define EQL_DEFAULT_RESCHED_IVAL 100
|
|
|
|
#define EQL_ENSLAVE (SIOCDEVPRIVATE)
|
|
#define EQL_EMANCIPATE (SIOCDEVPRIVATE + 1)
|
|
|
|
#define EQL_GETSLAVECFG (SIOCDEVPRIVATE + 2)
|
|
#define EQL_SETSLAVECFG (SIOCDEVPRIVATE + 3)
|
|
|
|
#define EQL_GETMASTRCFG (SIOCDEVPRIVATE + 4)
|
|
#define EQL_SETMASTRCFG (SIOCDEVPRIVATE + 5)
|
|
|
|
#ifdef __KERNEL__
|
|
|
|
#include <linux/timer.h>
|
|
#include <linux/spinlock.h>
|
|
|
|
typedef struct slave {
|
|
struct list_head list;
|
|
struct net_device *dev;
|
|
long priority;
|
|
long priority_bps;
|
|
long priority_Bps;
|
|
long bytes_queued;
|
|
} slave_t;
|
|
|
|
typedef struct slave_queue {
|
|
spinlock_t lock;
|
|
struct list_head all_slaves;
|
|
int num_slaves;
|
|
struct net_device *master_dev;
|
|
} slave_queue_t;
|
|
|
|
typedef struct equalizer {
|
|
slave_queue_t queue;
|
|
int min_slaves;
|
|
int max_slaves;
|
|
struct timer_list timer;
|
|
} equalizer_t;
|
|
|
|
#endif /* __KERNEL__ */
|
|
|
|
typedef struct master_config {
|
|
char master_name[16];
|
|
int max_slaves;
|
|
int min_slaves;
|
|
} master_config_t;
|
|
|
|
typedef struct slave_config {
|
|
char slave_name[16];
|
|
long priority;
|
|
} slave_config_t;
|
|
|
|
typedef struct slaving_request {
|
|
char slave_name[16];
|
|
long priority;
|
|
} slaving_request_t;
|
|
|
|
|
|
#endif /* _LINUX_EQL_H */
|