linux/drivers/staging/rtl8192e/rtl819x_Qos.h
<<
>>
Prefs
   1/******************************************************************************
   2 * Copyright(c) 2008 - 2010 Realtek Corporation. All rights reserved.
   3 *
   4 * This program is distributed in the hope that it will be useful, but WITHOUT
   5 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   6 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
   7 * more details.
   8 *
   9 * The full GNU General Public License is included in this distribution in the
  10 * file called LICENSE.
  11 *
  12 * Contact Information:
  13 * wlanfae <wlanfae@realtek.com>
  14 *****************************************************************************/
  15#ifndef __INC_QOS_TYPE_H
  16#define __INC_QOS_TYPE_H
  17
  18#define BIT0                0x00000001
  19#define BIT1                0x00000002
  20#define BIT2                0x00000004
  21#define BIT3                0x00000008
  22#define BIT4                0x00000010
  23#define BIT5                0x00000020
  24#define BIT6                0x00000040
  25#define BIT7                0x00000080
  26#define BIT8                0x00000100
  27#define BIT9                0x00000200
  28#define BIT10              0x00000400
  29#define BIT11              0x00000800
  30#define BIT12              0x00001000
  31#define BIT13              0x00002000
  32#define BIT14              0x00004000
  33#define BIT15              0x00008000
  34#define BIT16              0x00010000
  35#define BIT17              0x00020000
  36#define BIT18              0x00040000
  37#define BIT19              0x00080000
  38#define BIT20              0x00100000
  39#define BIT21              0x00200000
  40#define BIT22              0x00400000
  41#define BIT23              0x00800000
  42#define BIT24              0x01000000
  43#define BIT25              0x02000000
  44#define BIT26              0x04000000
  45#define BIT27              0x08000000
  46#define BIT28              0x10000000
  47#define BIT29              0x20000000
  48#define BIT30              0x40000000
  49#define BIT31              0x80000000
  50
  51union qos_tsinfo {
  52        u8              charData[3];
  53        struct {
  54                u8              ucTrafficType:1;
  55                u8              ucTSID:4;
  56                u8              ucDirection:2;
  57                u8              ucAccessPolicy:2;
  58                u8              ucAggregation:1;
  59                u8              ucPSB:1;
  60                u8              ucUP:3;
  61                u8              ucTSInfoAckPolicy:2;
  62                u8              ucSchedule:1;
  63                u8              ucReserved:7;
  64        } field;
  65};
  66
  67union tspec_body {
  68        u8              charData[55];
  69
  70        struct {
  71                union qos_tsinfo TSInfo;
  72                u16     NominalMSDUsize;
  73                u16     MaxMSDUsize;
  74                u32     MinServiceItv;
  75                u32     MaxServiceItv;
  76                u32     InactivityItv;
  77                u32     SuspenItv;
  78                u32     ServiceStartTime;
  79                u32     MinDataRate;
  80                u32     MeanDataRate;
  81                u32     PeakDataRate;
  82                u32     MaxBurstSize;
  83                u32     DelayBound;
  84                u32     MinPhyRate;
  85                u16     SurplusBandwidthAllowance;
  86                u16     MediumTime;
  87        } f;
  88};
  89
  90struct octet_string {
  91        u8 *Octet;
  92        u16 Length;
  93};
  94
  95#define AC0_BE  0
  96#define AC1_BK  1
  97#define AC2_VI  2
  98#define AC3_VO  3
  99#define AC_MAX  4
 100
 101enum direction_value {
 102        DIR_UP                  = 0,
 103        DIR_DOWN                = 1,
 104        DIR_DIRECT              = 2,
 105        DIR_BI_DIR              = 3,
 106};
 107
 108enum acm_method {
 109        eAcmWay0_SwAndHw                = 0,
 110        eAcmWay1_HW                     = 1,
 111        eAcmWay2_SW                     = 2,
 112};
 113
 114
 115struct acm {
 116        u64             UsedTime;
 117        u64             MediumTime;
 118        u8              HwAcmCtl;
 119};
 120
 121union qos_tclas {
 122
 123        struct _TYPE_GENERAL {
 124                u8              Priority;
 125                u8              ClassifierType;
 126                u8              Mask;
 127        } TYPE_GENERAL;
 128
 129        struct _TYPE0_ETH {
 130                u8              Priority;
 131                u8              ClassifierType;
 132                u8              Mask;
 133                u8              SrcAddr[ETH_ALEN];
 134                u8              DstAddr[ETH_ALEN];
 135                u16             Type;
 136        } TYPE0_ETH;
 137
 138        struct _TYPE1_IPV4 {
 139                u8              Priority;
 140                u8              ClassifierType;
 141                u8              Mask;
 142                u8              Version;
 143                u8              SrcIP[4];
 144                u8              DstIP[4];
 145                u16             SrcPort;
 146                u16             DstPort;
 147                u8              DSCP;
 148                u8              Protocol;
 149                u8              Reserved;
 150        } TYPE1_IPV4;
 151
 152        struct _TYPE1_IPV6 {
 153                u8              Priority;
 154                u8              ClassifierType;
 155                u8              Mask;
 156                u8              Version;
 157                u8              SrcIP[16];
 158                u8              DstIP[16];
 159                u16             SrcPort;
 160                u16             DstPort;
 161                u8              FlowLabel[3];
 162        } TYPE1_IPV6;
 163
 164        struct _TYPE2_8021Q {
 165                u8              Priority;
 166                u8              ClassifierType;
 167                u8              Mask;
 168                u16             TagType;
 169        } TYPE2_8021Q;
 170};
 171
 172union aci_aifsn {
 173        u8      charData;
 174
 175        struct {
 176                u8      AIFSN:4;
 177                u8      acm:1;
 178                u8      ACI:2;
 179                u8      Reserved:1;
 180        } f;
 181};
 182
 183#endif
 184