rtl819x_Qos.h (3083B)
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