Home | History | Annotate | Download | only in include
      1 /**
      2  * This file has no copyright assigned and is placed in the Public Domain.
      3  * This file is part of the mingw-w64 runtime package.
      4  * No warranty is given; refer to the file DISCLAIMER.PD within this package.
      5  */
      6 #ifndef __QOS_H_
      7 #define __QOS_H_
      8 
      9 typedef ULONG SERVICETYPE;
     10 
     11 #define SERVICETYPE_NOTRAFFIC 0x00000000
     12 #define SERVICETYPE_BESTEFFORT 0x00000001
     13 #define SERVICETYPE_CONTROLLEDLOAD 0x00000002
     14 #define SERVICETYPE_GUARANTEED 0x00000003
     15 
     16 #define SERVICETYPE_NETWORK_UNAVAILABLE 0x00000004
     17 #define SERVICETYPE_GENERAL_INFORMATION 0x00000005
     18 #define SERVICETYPE_NOCHANGE 0x00000006
     19 #define SERVICETYPE_NONCONFORMING 0x00000009
     20 #define SERVICETYPE_NETWORK_CONTROL 0x0000000A
     21 #define SERVICETYPE_QUALITATIVE 0x0000000D
     22 
     23 #define SERVICE_BESTEFFORT 0x80010000
     24 #define SERVICE_CONTROLLEDLOAD 0x80020000
     25 #define SERVICE_GUARANTEED 0x80040000
     26 #define SERVICE_QUALITATIVE 0x80200000
     27 
     28 #define SERVICE_NO_TRAFFIC_CONTROL 0x81000000
     29 
     30 #define SERVICE_NO_QOS_SIGNALING 0x40000000
     31 
     32   typedef struct _flowspec {
     33     ULONG TokenRate;
     34     ULONG TokenBucketSize;
     35     ULONG PeakBandwidth;
     36     ULONG Latency;
     37     ULONG DelayVariation;
     38     SERVICETYPE ServiceType;
     39     ULONG MaxSduSize;
     40     ULONG MinimumPolicedSize;
     41   } FLOWSPEC,*PFLOWSPEC,*LPFLOWSPEC;
     42 
     43 #define QOS_NOT_SPECIFIED 0xFFFFFFFF
     44 #define POSITIVE_INFINITY_RATE 0xFFFFFFFE
     45 
     46   typedef struct _QOS_OBJECT_HDR {
     47     ULONG ObjectType;
     48     ULONG ObjectLength;
     49   } QOS_OBJECT_HDR, *LPQOS_OBJECT_HDR;
     50 
     51 #define QOS_GENERAL_ID_BASE 2000
     52 #define QOS_OBJECT_END_OF_LIST (0x00000001 + QOS_GENERAL_ID_BASE)
     53 #define QOS_OBJECT_SD_MODE (0x00000002 + QOS_GENERAL_ID_BASE)
     54 #define QOS_OBJECT_SHAPING_RATE (0x00000003 + QOS_GENERAL_ID_BASE)
     55 #define QOS_OBJECT_DESTADDR (0x00000004 + QOS_GENERAL_ID_BASE)
     56 
     57   typedef struct _QOS_SD_MODE {
     58     QOS_OBJECT_HDR ObjectHdr;
     59     ULONG ShapeDiscardMode;
     60   } QOS_SD_MODE, *LPQOS_SD_MODE;
     61 
     62 #define TC_NONCONF_BORROW 0
     63 #define TC_NONCONF_SHAPE 1
     64 #define TC_NONCONF_DISCARD 2
     65 #define TC_NONCONF_BORROW_PLUS 3
     66 
     67   typedef struct _QOS_SHAPING_RATE {
     68     QOS_OBJECT_HDR ObjectHdr;
     69     ULONG ShapingRate;
     70   } QOS_SHAPING_RATE, *LPQOS_SHAPING_RATE;
     71 
     72 #endif
     73