if_eql.h
上传用户:lgb322
上传日期:2013-02-24
资源大小:30529k
文件大小:2k
源码类别:

嵌入式Linux

开发平台:

Unix_Linux

  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. #include <linux/timer.h>
  21. #define EQL_DEFAULT_SLAVE_PRIORITY 28800
  22. #define EQL_DEFAULT_MAX_SLAVES     4
  23. #define EQL_DEFAULT_MTU            576
  24. #define EQL_DEFAULT_RESCHED_IVAL   100
  25. #define EQL_ENSLAVE     (SIOCDEVPRIVATE)
  26. #define EQL_EMANCIPATE  (SIOCDEVPRIVATE + 1)
  27. #define EQL_GETSLAVECFG (SIOCDEVPRIVATE + 2)
  28. #define EQL_SETSLAVECFG (SIOCDEVPRIVATE + 3)
  29. #define EQL_GETMASTRCFG (SIOCDEVPRIVATE + 4)
  30. #define EQL_SETMASTRCFG (SIOCDEVPRIVATE + 5)
  31. typedef struct slave {
  32.   struct net_device *dev;
  33.   long priority;
  34.   long priority_bps;
  35.   long priority_Bps;
  36.   long bytes_queued;
  37.   struct slave *next;
  38. } slave_t;
  39. typedef struct slave_queue {
  40.   slave_t *head;
  41.   slave_t *best_slave;
  42.   int num_slaves;
  43.   struct net_device *master_dev;
  44.   char lock;
  45. } slave_queue_t;
  46. typedef struct equalizer {
  47.   slave_queue_t *queue;
  48.   int min_slaves;
  49.   int max_slaves;
  50.   struct net_device_stats *stats;
  51.   struct timer_list timer;
  52.   char timer_on;
  53. } equalizer_t;  
  54. typedef struct master_config {
  55.   char master_name[16];
  56.   int max_slaves;
  57.   int min_slaves;
  58. } master_config_t;
  59. typedef struct slave_config {
  60.   char slave_name[16];
  61.   long priority;
  62. } slave_config_t;
  63. typedef struct slaving_request {
  64.   char slave_name[16];
  65.   long priority;
  66. } slaving_request_t;
  67. #endif /* _LINUX_EQL_H */