Blame view

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