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 _INC_TCPESTATS
      7 #define _INC_TCPESTATS
      8 
      9 #if (_WIN32_WINNT >= 0x0600)
     10 
     11 #ifdef __cplusplus
     12 extern "C" {
     13 #endif
     14 
     15 typedef struct _TCP_ESTATS_BANDWIDTH_ROD_v0 {
     16   ULONG64 OutboundBandwidth;
     17   ULONG64 InboundBandwidth;
     18   ULONG64 OutboundInstability;
     19   ULONG64 InboundInstability;
     20   BOOLEAN OutboundBandwidthPeaked;
     21   BOOLEAN InboundBandwidthPeaked;
     22 } TCP_ESTATS_BANDWIDTH_ROD_v0, *PTCP_ESTATS_BANDWIDTH_ROD_v0;
     23 
     24 typedef enum _TCP_BOOLEAN_OPTIONAL {
     25   TcpBoolOptDisabled    = 0,
     26   TcpBoolOptEnabled     = 1,
     27   TcpBoolOptUnchanged   = -1
     28 } TCP_BOOLEAN_OPTIONAL;
     29 
     30 typedef struct _TCP_ESTATS_BANDWIDTH_RW_v0 {
     31   TCP_BOOLEAN_OPTIONAL EnableCollectionOutbound;
     32   TCP_BOOLEAN_OPTIONAL EnableCollectionInbound;
     33 } TCP_ESTATS_BANDWIDTH_RW_v0, *PTCP_ESTATS_BANDWIDTH_RW_v0;
     34 
     35 typedef struct _TCP_ESTATS_DATA_ROD_v0 {
     36   ULONG64 DataBytesOut;
     37   ULONG64 DataSegsOut;
     38   ULONG64 DataBytesIn;
     39   ULONG64 DataSegsIn;
     40   ULONG64 SegsOut;
     41   ULONG64 SegsIn;
     42   ULONG   SoftErrors;
     43   ULONG   SoftErrorReason;
     44   ULONG   SndUna;
     45   ULONG   SndNxt;
     46   ULONG   SndMax;
     47   ULONG64 ThruBytesAcked;
     48   ULONG   RcvNxt;
     49   ULONG64 ThruBytesReceived;
     50 } TCP_ESTATS_DATA_ROD_v0, *PTCP_ESTATS_DATA_ROD_v0;
     51 
     52 typedef struct _TCP_ESTATS_DATA_RW_v0 {
     53   BOOLEAN EnableCollection;
     54 } TCP_ESTATS_DATA_RW_v0, *PTCP_ESTATS_DATA_RW_v0;
     55 
     56 typedef struct _TCP_ESTATS_FINE_RTT_ROD_v0 {
     57   ULONG RttVar;
     58   ULONG MaxRtt;
     59   ULONG MinRtt;
     60   ULONG SumRtt;
     61 } TCP_ESTATS_FINE_RTT_ROD_v0, *PTCP_ESTATS_FINE_RTT_ROD_v0;
     62 
     63 typedef struct _TCP_ESTATS_FINE_RTT_RW_v0 {
     64   BOOLEAN EnableCollection;
     65 } TCP_ESTATS_FINE_RTT_RW_v0, *PTCP_ESTATS_FINE_RTT_RW_v0;
     66 
     67 typedef struct _TCP_ESTATS_OBS_REC_ROD_v0 {
     68   ULONG CurRwinRcvd;
     69   ULONG MaxRwinRcvd;
     70   ULONG MinRwinRcvd;
     71   UCHAR WinScaleRcvd;
     72 } TCP_ESTATS_OBS_REC_ROD_v0, *PTCP_ESTATS_OBS_REC_ROD_v0;
     73 
     74 typedef struct _TCP_ESTATS_OBS_REC_RW_v0 {
     75   BOOLEAN EnableCollection;
     76 } TCP_ESTATS_OBS_REC_RW_v0, *PTCP_ESTATS_OBS_REC_RW_v0;
     77 
     78 typedef struct _TCP_ESTATS_PATH_ROD_v0 {
     79   ULONG FastRetran;
     80   ULONG Timeouts;
     81   ULONG SubsequentTimeouts;
     82   ULONG CurTimeoutCount;
     83   ULONG AbruptTimeouts;
     84   ULONG PktsRetrans;
     85   ULONG BytesRetrans;
     86   ULONG DupAcksIn;
     87   ULONG SacksRcvd;
     88   ULONG SackBlocksRcvd;
     89   ULONG CongSignals;
     90   ULONG PreCongSumCwnd;
     91   ULONG PreCongSumRtt;
     92   ULONG PostCongSumRtt;
     93   ULONG PostCongCountRtt;
     94   ULONG EcnSignals;
     95   ULONG EceRcvd;
     96   ULONG SendStall;
     97   ULONG QuenchRcvd;
     98   ULONG RetranThresh;
     99   ULONG SndDupAckEpisodes;
    100   ULONG SumBytesReordered;
    101   ULONG NonRecovDa;
    102   ULONG NonRecovDaEpisodes;
    103   ULONG AckAfterFr;
    104   ULONG DsackDups;
    105   ULONG SampleRtt;
    106   ULONG SmoothedRtt;
    107   ULONG RttVar;
    108   ULONG MaxRtt;
    109   ULONG MinRtt;
    110   ULONG SumRtt;
    111   ULONG CountRtt;
    112   ULONG CurRto;
    113   ULONG MaxRto;
    114   ULONG MinRto;
    115   ULONG CurMss;
    116   ULONG MaxMss;
    117   ULONG MinMss;
    118   ULONG SpuriousRtoDetections;
    119 } TCP_ESTATS_PATH_ROD_v0, *PTCP_ESTATS_PATH_ROD_v0;
    120 
    121 typedef struct _TCP_ESTATS_PATH_RW_v0 {
    122   BOOLEAN EnableCollection;
    123 } TCP_ESTATS_PATH_RW_v0, *PTCP_ESTATS_PATH_RW_v0;
    124 
    125 typedef struct _TCP_ESTATS_REC_ROD_v0 {
    126   ULONG  CurRwinSent;
    127   ULONG  MaxRwinSent;
    128   ULONG  MinRwinSent;
    129   ULONG  LimRwin;
    130   ULONG  DupAckEpisodes;
    131   ULONG  DupAcksOut;
    132   ULONG  CeRcvd;
    133   ULONG  EcnSent;
    134   ULONG  EcnNoncesRcvd;
    135   ULONG  CurReasmQueue;
    136   ULONG  MaxReasmQueue;
    137   SIZE_T CurAppRQueue;
    138   SIZE_T MaxAppRQueue;
    139   UCHAR  WinScaleSent;
    140 } TCP_ESTATS_REC_ROD_v0, *PTCP_ESTATS_REC_ROD_v0;
    141 
    142 typedef struct _TCP_ESTATS_REC_RW_v0 {
    143   BOOLEAN EnableCollection;
    144 } TCP_ESTATS_REC_RW_v0, *PTCP_ESTATS_REC_RW_v0;
    145 
    146 typedef struct _TCP_ESTATS_SEND_BUFF_ROD_v0 {
    147   SIZE_T CurRetxQueue;
    148   SIZE_T MaxRetxQueue;
    149   SIZE_T CurAppWQueue;
    150   SIZE_T MaxAppWQueue;
    151 } TCP_ESTATS_SEND_BUFF_ROD_v0, *PTCP_ESTATS_SEND_BUFF_ROD_v0;
    152 
    153 typedef struct _TCP_ESTATS_SEND_BUFF_RW_v0 {
    154   BOOLEAN EnableCollection;
    155 } TCP_ESTATS_SEND_BUFF_RW_v0, *PTCP_ESTATS_SEND_BUFF_RW_v0;
    156 
    157 typedef struct _TCP_ESTATS_SND_CONG_ROD_v0 {
    158   ULONG  SndLimTransRwin;
    159   ULONG  SndLimTimeRwin;
    160   SIZE_T SndLimBytesRwin;
    161   ULONG  SndLimTransCwnd;
    162   ULONG  SndLimTimeCwnd;
    163   SIZE_T SndLimBytesCwnd;
    164   ULONG  SndLimTransSnd;
    165   ULONG  SndLimTimeSnd;
    166   SIZE_T SndLimBytesSnd;
    167   ULONG  SlowStart;
    168   ULONG  CongAvoid;
    169   ULONG  OtherReductions;
    170   ULONG  CurCwnd;
    171   ULONG  MaxSsCwnd;
    172   ULONG  MaxCaCwnd;
    173   ULONG  CurSsthresh;
    174   ULONG  MaxSsthresh;
    175   ULONG  MinSsthresh;
    176 } TCP_ESTATS_SND_CONG_ROD_v0, *PTCP_ESTATS_SND_CONG_ROD_v0;
    177 
    178 typedef struct _TCP_ESTATS_SND_CONG_ROS_v0 {
    179   ULONG LimCwnd;
    180 } TCP_ESTATS_SND_CONG_ROS_v0, *PTCP_ESTATS_SND_CONG_ROS_v0;
    181 
    182 typedef struct _TCP_ESTATS_SND_CONG_RW_v0 {
    183   BOOLEAN EnableCollection;
    184 } TCP_ESTATS_SND_CONG_RW_v0, *PTCP_ESTATS_SND_CONG_RW_v0;
    185 
    186 typedef struct _TCP_ESTATS_SYN_OPTS_ROS_v0 {
    187   BOOLEAN ActiveOpen;
    188   ULONG   MssRcvd;
    189   ULONG   MssSent;
    190 } TCP_ESTATS_SYN_OPTS_ROS_v0, *PTCP_ESTATS_SYN_OPTS_ROS_v0;
    191 
    192 typedef enum _TCP_ESTATS_TYPE {
    193   TcpConnectionEstatsSynOpts,
    194   TcpConnectionEstatsData,
    195   TcpConnectionEstatsSndCong,
    196   TcpConnectionEstatsPath,
    197   TcpConnectionEstatsSendBuff,
    198   TcpConnectionEstatsRec,
    199   TcpConnectionEstatsObsRec,
    200   TcpConnectionEstatsBandwidth,
    201   TcpConnectionEstatsFineRtt,
    202   TcpConnectionEstatsMaximum
    203 } TCP_ESTATS_TYPE;
    204 
    205 #ifdef __cplusplus
    206 }
    207 #endif
    208 
    209 #endif /*(_WIN32_WINNT >= 0x0600)*/
    210 
    211 #endif /*_INC_TCPESTATS*/
    212 
    213