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 netdevice_tracker dev_tracker; 30 long priority; 31 long priority_bps; 32 long priority_Bps; 33 long bytes_queued; 34 } slave_t; 35 36 typedef struct slave_queue { 37 spinlock_t lock; 38 struct list_head all_slaves; 39 int num_slaves; 40 struct net_device *master_dev; 41 } slave_queue_t; 42 43 typedef struct equalizer { 44 slave_queue_t queue; 45 int min_slaves; 46 int max_slaves; 47 struct timer_list timer; 48 } equalizer_t; 49 50 #endif /* _LINUX_EQL_H */ 51