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