Commit d7d2454a authored by David S. Miller's avatar David S. Miller

[EQL]: Rewrite to be SMP safe.

parent e367aa9a
This diff is collapsed.
...@@ -19,8 +19,6 @@ ...@@ -19,8 +19,6 @@
#ifndef _LINUX_IF_EQL_H #ifndef _LINUX_IF_EQL_H
#define _LINUX_IF_EQL_H #define _LINUX_IF_EQL_H
#include <linux/timer.h>
#define EQL_DEFAULT_SLAVE_PRIORITY 28800 #define EQL_DEFAULT_SLAVE_PRIORITY 28800
#define EQL_DEFAULT_MAX_SLAVES 4 #define EQL_DEFAULT_MAX_SLAVES 4
#define EQL_DEFAULT_MTU 576 #define EQL_DEFAULT_MTU 576
...@@ -35,46 +33,51 @@ ...@@ -35,46 +33,51 @@
#define EQL_GETMASTRCFG (SIOCDEVPRIVATE + 4) #define EQL_GETMASTRCFG (SIOCDEVPRIVATE + 4)
#define EQL_SETMASTRCFG (SIOCDEVPRIVATE + 5) #define EQL_SETMASTRCFG (SIOCDEVPRIVATE + 5)
#ifdef __KERNEL__
#include <linux/timer.h>
#include <linux/spinlock.h>
typedef struct slave { typedef struct slave {
struct net_device *dev; struct list_head list;
long priority; struct net_device *dev;
long priority_bps; long priority;
long priority_Bps; long priority_bps;
long bytes_queued; long priority_Bps;
struct slave *next; long bytes_queued;
} slave_t; } slave_t;
typedef struct slave_queue { typedef struct slave_queue {
slave_t *head; spinlock_t lock;
slave_t *best_slave; struct list_head all_slaves;
int num_slaves; int num_slaves;
struct net_device *master_dev; struct net_device *master_dev;
char lock;
} slave_queue_t; } slave_queue_t;
typedef struct equalizer { typedef struct equalizer {
slave_queue_t *queue; slave_queue_t queue;
int min_slaves; int min_slaves;
int max_slaves; int max_slaves;
struct net_device_stats *stats; struct net_device_stats stats;
struct timer_list timer; struct timer_list timer;
char timer_on;
} equalizer_t; } equalizer_t;
#endif /* __KERNEL__ */
typedef struct master_config { typedef struct master_config {
char master_name[16]; char master_name[16];
int max_slaves; int max_slaves;
int min_slaves; int min_slaves;
} master_config_t; } master_config_t;
typedef struct slave_config { typedef struct slave_config {
char slave_name[16]; char slave_name[16];
long priority; long priority;
} slave_config_t; } slave_config_t;
typedef struct slaving_request { typedef struct slaving_request {
char slave_name[16]; char slave_name[16];
long priority; long priority;
} slaving_request_t; } slaving_request_t;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment