- Kai Germaschewski: ymfpci cleanups and resource leak fixes
[davej-history.git] / include / linux / if_eql.h
blob8cc5867e22e5facf3566d9106e2fac5787b8aefa
1 /*
2 * Equalizer Load-balancer for serial network interfaces.
4 * (c) Copyright 1995 Simon "Guru Aleph-Null" Janes
5 * NCM: Network and Communications Management, Inc.
8 * This software may be used and distributed according to the terms
9 * of the GNU Public License, incorporated herein by reference.
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
19 #ifndef _LINUX_IF_EQL_H
20 #define _LINUX_IF_EQL_H
22 #include <linux/timer.h>
24 #define EQL_DEFAULT_SLAVE_PRIORITY 28800
25 #define EQL_DEFAULT_MAX_SLAVES 4
26 #define EQL_DEFAULT_MTU 576
27 #define EQL_DEFAULT_RESCHED_IVAL 100
29 #define EQL_ENSLAVE (SIOCDEVPRIVATE)
30 #define EQL_EMANCIPATE (SIOCDEVPRIVATE + 1)
32 #define EQL_GETSLAVECFG (SIOCDEVPRIVATE + 2)
33 #define EQL_SETSLAVECFG (SIOCDEVPRIVATE + 3)
35 #define EQL_GETMASTRCFG (SIOCDEVPRIVATE + 4)
36 #define EQL_SETMASTRCFG (SIOCDEVPRIVATE + 5)
38 typedef struct slave {
39 struct net_device *dev;
40 long priority;
41 long priority_bps;
42 long priority_Bps;
43 long bytes_queued;
44 struct slave *next;
45 } slave_t;
47 typedef struct slave_queue {
48 slave_t *head;
49 slave_t *best_slave;
50 int num_slaves;
51 struct net_device *master_dev;
52 char lock;
53 } slave_queue_t;
55 typedef struct equalizer {
56 slave_queue_t *queue;
57 int min_slaves;
58 int max_slaves;
59 struct net_device_stats *stats;
60 struct timer_list timer;
61 char timer_on;
62 } equalizer_t;
64 typedef struct master_config {
65 char master_name[16];
66 int max_slaves;
67 int min_slaves;
68 } master_config_t;
70 typedef struct slave_config {
71 char slave_name[16];
72 long priority;
73 } slave_config_t;
75 typedef struct slaving_request {
76 char slave_name[16];
77 long priority;
78 } slaving_request_t;
81 #endif /* _LINUX_EQL_H */