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