linux/include/linux/if_eql.h
<<
>>
Prefs
   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
  19#ifndef _LINUX_IF_EQL_H
  20#define _LINUX_IF_EQL_H
  21
  22#define EQL_DEFAULT_SLAVE_PRIORITY 28800
  23#define EQL_DEFAULT_MAX_SLAVES     4
  24#define EQL_DEFAULT_MTU            576
  25#define EQL_DEFAULT_RESCHED_IVAL   HZ
  26
  27#define EQL_ENSLAVE     (SIOCDEVPRIVATE)
  28#define EQL_EMANCIPATE  (SIOCDEVPRIVATE + 1)
  29
  30#define EQL_GETSLAVECFG (SIOCDEVPRIVATE + 2)
  31#define EQL_SETSLAVECFG (SIOCDEVPRIVATE + 3)
  32
  33#define EQL_GETMASTRCFG (SIOCDEVPRIVATE + 4)
  34#define EQL_SETMASTRCFG (SIOCDEVPRIVATE + 5)
  35
  36#ifdef __KERNEL__
  37
  38#include <linux/timer.h>
  39#include <linux/spinlock.h>
  40
  41typedef struct slave {
  42        struct list_head        list;
  43        struct net_device       *dev;
  44        long                    priority;
  45        long                    priority_bps;
  46        long                    priority_Bps;
  47        long                    bytes_queued;
  48} slave_t;
  49
  50typedef struct slave_queue {
  51        spinlock_t              lock;
  52        struct list_head        all_slaves;
  53        int                     num_slaves;
  54        struct net_device       *master_dev;
  55} slave_queue_t;
  56
  57typedef struct equalizer {
  58        slave_queue_t           queue;
  59        int                     min_slaves;
  60        int                     max_slaves;
  61        struct timer_list       timer;
  62} equalizer_t;  
  63
  64#endif /* __KERNEL__ */
  65
  66typedef struct master_config {
  67        char    master_name[16];
  68        int     max_slaves;
  69        int     min_slaves;
  70} master_config_t;
  71
  72typedef struct slave_config {
  73        char    slave_name[16];
  74        long    priority;
  75} slave_config_t;
  76
  77typedef struct slaving_request {
  78        char    slave_name[16];
  79        long    priority;
  80} slaving_request_t;
  81
  82
  83#endif /* _LINUX_EQL_H */
  84