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 #ifndef _LINUX_IF_EQL_H 19 #define _LINUX_IF_EQL_H 20 21 22 #include <linux/timer.h> 23 #include <linux/spinlock.h> 24 #include <uapi/linux/if_eql.h> 25 26 typedef struct slave { 27 struct list_head list; 28 struct net_device *dev; 29 long priority; 30 long priority_bps; 31 long priority_Bps; 32 long bytes_queued; 33 } slave_t; 34 35 typedef struct slave_queue { 36 spinlock_t lock; 37 struct list_head all_slaves; 38 int num_slaves; 39 struct net_device *master_dev; 40 } slave_queue_t; 41 42 typedef struct equalizer { 43 slave_queue_t queue; 44 int min_slaves; 45 int max_slaves; 46 struct timer_list timer; 47 } equalizer_t; 48 49 #endif /* _LINUX_EQL_H */ 50