| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 1 | /* | 
 | 2 |  * Equalizer Load-balancer for serial network interfaces. | 
 | 3 |  * | 
 | 4 |  * (c) Copyright 1995 Simon "Guru Aleph-Null" Janes | 
 | 5 |  * NCM: Network and Communications Management, Inc. | 
 | 6 |  * | 
 | 7 |  * | 
 | 8 |  *	This software may be used and distributed according to the terms | 
 | 9 |  *	of the GNU General Public License, incorporated herein by reference. | 
 | 10 |  *  | 
 | 11 |  * The author may be reached as simon@ncm.com, or C/O | 
 | 12 |  *    NCM | 
 | 13 |  *    Attn: Simon Janes | 
 | 14 |  *    6803 Whittier Ave | 
 | 15 |  *    McLean VA 22101 | 
 | 16 |  *    Phone: 1-703-847-0040 ext 103 | 
 | 17 |  */ | 
 | 18 |  | 
 | 19 | #ifndef _LINUX_IF_EQL_H | 
 | 20 | #define _LINUX_IF_EQL_H | 
 | 21 |  | 
 | 22 | #define EQL_DEFAULT_SLAVE_PRIORITY 28800 | 
 | 23 | #define EQL_DEFAULT_MAX_SLAVES     4 | 
 | 24 | #define EQL_DEFAULT_MTU            576 | 
| Eric Dumazet | 09e79d6 | 2012-03-26 22:52:00 +0000 | [diff] [blame] | 25 | #define EQL_DEFAULT_RESCHED_IVAL   HZ | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 26 |  | 
 | 27 | #define EQL_ENSLAVE     (SIOCDEVPRIVATE) | 
 | 28 | #define EQL_EMANCIPATE  (SIOCDEVPRIVATE + 1) | 
 | 29 |  | 
 | 30 | #define EQL_GETSLAVECFG (SIOCDEVPRIVATE + 2) | 
 | 31 | #define EQL_SETSLAVECFG (SIOCDEVPRIVATE + 3) | 
 | 32 |  | 
 | 33 | #define EQL_GETMASTRCFG (SIOCDEVPRIVATE + 4) | 
 | 34 | #define EQL_SETMASTRCFG (SIOCDEVPRIVATE + 5) | 
 | 35 |  | 
 | 36 | #ifdef __KERNEL__ | 
 | 37 |  | 
 | 38 | #include <linux/timer.h> | 
 | 39 | #include <linux/spinlock.h> | 
 | 40 |  | 
 | 41 | typedef struct slave { | 
 | 42 | 	struct list_head	list; | 
 | 43 | 	struct net_device	*dev; | 
 | 44 | 	long			priority; | 
 | 45 | 	long			priority_bps; | 
 | 46 | 	long			priority_Bps; | 
 | 47 | 	long			bytes_queued; | 
 | 48 | } slave_t; | 
 | 49 |  | 
 | 50 | typedef struct slave_queue { | 
 | 51 | 	spinlock_t		lock; | 
 | 52 | 	struct list_head	all_slaves; | 
 | 53 | 	int			num_slaves; | 
 | 54 | 	struct net_device	*master_dev; | 
 | 55 | } slave_queue_t; | 
 | 56 |  | 
 | 57 | typedef struct equalizer { | 
 | 58 | 	slave_queue_t		queue; | 
 | 59 | 	int			min_slaves; | 
 | 60 | 	int			max_slaves; | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 61 | 	struct timer_list	timer; | 
 | 62 | } equalizer_t;   | 
 | 63 |  | 
 | 64 | #endif /* __KERNEL__ */ | 
 | 65 |  | 
 | 66 | typedef struct master_config { | 
 | 67 | 	char	master_name[16]; | 
 | 68 | 	int	max_slaves; | 
 | 69 | 	int	min_slaves; | 
 | 70 | } master_config_t; | 
 | 71 |  | 
 | 72 | typedef struct slave_config { | 
 | 73 | 	char	slave_name[16]; | 
 | 74 | 	long	priority; | 
 | 75 | } slave_config_t; | 
 | 76 |  | 
 | 77 | typedef struct slaving_request { | 
 | 78 | 	char	slave_name[16]; | 
 | 79 | 	long	priority; | 
 | 80 | } slaving_request_t; | 
 | 81 |  | 
 | 82 |  | 
 | 83 | #endif /* _LINUX_EQL_H */ |