swh:1:snp:c3bf2749e3476071fa748f67b0ffa2fdc5fe49d9
Tip revision: 189548642c5962e60c3667bdb3a703fe0bed12a6 authored by Linus Torvalds on 24 June 2007, 23:21:48 UTC
Linus 2.6.22-rc6
Linus 2.6.22-rc6
Tip revision: 1895486
if_eql.h
/*
* 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;
struct net_device_stats stats;
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 */