From: Vijay Kiran Kamuju Subject: [include] - add new file tcpestats.h Message-Id: Date: Mon, 3 Aug 2015 23:19:05 +0000 Changelog include - add new file tcpestats.h From 992d4b587d8fc509b69fb383290443337722ca69 Mon Sep 17 00:00:00 2001 From: Vijay Kiran Kamuju Date: Tue, 4 Aug 2015 00:36:54 +0000 Subject: include - add new file tcpestats.h --- include/Makefile.in | 1 + include/tcpestats.h | 233 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 234 insertions(+) create mode 100644 include/tcpestats.h diff --git a/include/Makefile.in b/include/Makefile.in index 6317510..d6c4724 100644 --- a/include/Makefile.in +++ b/include/Makefile.in @@ -578,6 +578,7 @@ SRCDIR_INCLUDES = \ t2embapi.h \ tapi.h \ tchar.h \ + tcpestats.h \ tcpmib.h \ textserv.h \ tlhelp32.h \ diff --git a/include/tcpestats.h b/include/tcpestats.h new file mode 100644 index 0000000..e018e6f --- /dev/null +++ b/include/tcpestats.h @@ -0,0 +1,233 @@ +/* + * Copyright (C) 2015 Vijay Kiran Kamuju + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +#ifndef __WINE_TCPESTATS_H +#define __WINE_TCPESTATS_H + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct _TCP_ESTATS_BANDWIDTH_ROD_v0 { + ULONG64 OutboundBandwidth; + ULONG64 InboundBandwidth; + ULONG64 OutboundInstability; + ULONG64 InboundInstability; + BOOLEAN OutboundBandwidthPeaked; + BOOLEAN InboundBandwidthPeaked; +} TCP_ESTATS_BANDWIDTH_ROD_v0, *PTCP_ESTATS_BANDWIDTH_ROD_v0; + +typedef enum { + TcpBoolOptDisabled = 0, + TcpBoolOptEnabled = 1, + TcpBoolOptUnchanged = -1 +} TCP_BOOLEAN_OPTIONAL, *PTCP_BOOLEAN_OPTIONAL; + +typedef struct _TCP_ESTATS_BANDWIDTH_RW_v0 { + TCP_BOOLEAN_OPTIONAL EnableCollectionOutbound; + TCP_BOOLEAN_OPTIONAL EnableCollectionInbound; +} TCP_ESTATS_BANDWIDTH_RW_v0, *PTCP_ESTATS_BANDWIDTH_RW_v0; + +typedef struct _TCP_ESTATS_DATA_ROD_v0 { + ULONG64 DataBytesOut; + ULONG64 DataSegsOut; + ULONG64 DataBytesIn; + ULONG64 DataSegsIn; + ULONG64 SegsOut; + ULONG64 SegsIn; + ULONG SoftErrors; + ULONG SoftErrorReason; + ULONG SndUna; + ULONG SndNxt; + ULONG SndMax; + ULONG64 ThruBytesAcked; + ULONG RcvNxt; + ULONG64 ThruBytesReceived; +} TCP_ESTATS_DATA_ROD_v0, *PTCP_ESTATS_DATA_ROD_v0; + +typedef struct _TCP_ESTATS_DATA_RW_v0 { + BOOLEAN EnableCollection; +} TCP_ESTATS_DATA_RW_v0, *PTCP_ESTATS_DATA_RW_v0; + +typedef struct _TCP_ESTATS_FINE_RTT_ROD_v0 { + ULONG RttVar; + ULONG MaxRtt; + ULONG MinRtt; + ULONG SumRtt; +} TCP_ESTATS_FINE_RTT_ROD_v0, *PTCP_ESTATS_FINE_RTT_ROD_v0; + +typedef struct _TCP_ESTATS_FINE_RTT_RW_v0 { + BOOLEAN EnableCollection; +} TCP_ESTATS_FINE_RTT_RW_v0, *PTCP_ESTATS_FINE_RTT_RW_v0; + +typedef struct _TCP_ESTATS_OBS_REC_ROD_v0 { + ULONG CurRwinRcvd; + ULONG MaxRwinRcvd; + ULONG MinRwinRcvd; + UCHAR WinScaleRcvd; +} TCP_ESTATS_OBS_REC_ROD_v0, *PTCP_ESTATS_OBS_REC_ROD_v0; + +typedef struct _TCP_ESTATS_OBS_REC_RW_v0 { + BOOLEAN EnableCollection; +} TCP_ESTATS_OBS_REC_RW_v0, *PTCP_ESTATS_OBS_REC_RW_v0; + +typedef struct _TCP_ESTATS_PATH_ROD_v0 { + ULONG FastRetran; + ULONG Timeouts; + ULONG SubsequentTimeouts; + ULONG CurTimeoutCount; + ULONG AbruptTimeouts; + ULONG PktsRetrans; + ULONG BytesRetrans; + ULONG DupAcksIn; + ULONG SacksRcvd; + ULONG SackBlocksRcvd; + ULONG CongSignals; + ULONG PreCongSumCwnd; + ULONG PreCongSumRtt; + ULONG PostCongSumRtt; + ULONG PostCongCountRtt; + ULONG EcnSignals; + ULONG EceRcvd; + ULONG SendStall; + ULONG QuenchRcvd; + ULONG RetranThresh; + ULONG SndDupAckEpisodes; + ULONG SumBytesReordered; + ULONG NonRecovDa; + ULONG NonRecovDaEpisodes; + ULONG AckAfterFr; + ULONG DsackDups; + ULONG SampleRtt; + ULONG SmoothedRtt; + ULONG RttVar; + ULONG MaxRtt; + ULONG MinRtt; + ULONG SumRtt; + ULONG CountRtt; + ULONG CurRto; + ULONG MaxRto; + ULONG MinRto; + ULONG CurMss; + ULONG MaxMss; + ULONG MinMss; + ULONG SpuriousRtoDetections; +} TCP_ESTATS_PATH_ROD_v0, *PTCP_ESTATS_PATH_ROD_v0; + +typedef struct _TCP_ESTATS_PATH_RW_v0 { + BOOLEAN EnableCollection; +} TCP_ESTATS_PATH_RW_v0, *PTCP_ESTATS_PATH_RW_v0; + +typedef struct _TCP_ESTATS_REC_ROD_v0 { + ULONG CurRwinSent; + ULONG MaxRwinSent; + ULONG MinRwinSent; + ULONG LimRwin; + ULONG DupAckEpisodes; + ULONG DupAcksOut; + ULONG CeRcvd; + ULONG EcnSent; + ULONG EcnNoncesRcvd; + ULONG CurReasmQueue; + ULONG MaxReasmQueue; + SIZE_T CurAppRQueue; + SIZE_T MaxAppRQueue; + UCHAR WinScaleSent; +} TCP_ESTATS_REC_ROD_v0, *PTCP_ESTATS_REC_ROD_v0; + +typedef struct _TCP_ESTATS_REC_RW_v0 { + BOOLEAN EnableCollection; +} TCP_ESTATS_REC_RW_v0, *PTCP_ESTATS_REC_RW_v0; + +typedef struct _TCP_ESTATS_SEND_BUFF_ROD_v0 { + SIZE_T CurRetxQueue; + SIZE_T MaxRetxQueue; + SIZE_T CurAppWQueue; + SIZE_T MaxAppWQueue; +} TCP_ESTATS_SEND_BUFF_ROD_v0, *PTCP_ESTATS_SEND_BUFF_ROD_v0; + +typedef struct _TCP_ESTATS_SEND_BUFF_RW_v0 { + BOOLEAN EnableCollection; +} TCP_ESTATS_SEND_BUFF_RW_v0, *PTCP_ESTATS_SEND_BUFF_RW_v0; + +typedef struct _TCP_ESTATS_SND_CONG_ROD_v0 { + ULONG SndLimTransRwin; + ULONG SndLimTimeRwin; + SIZE_T SndLimBytesRwin; + ULONG SndLimTransCwnd; + ULONG SndLimTimeCwnd; + SIZE_T SndLimBytesCwnd; + ULONG SndLimTransSnd; + ULONG SndLimTimeSnd; + SIZE_T SndLimBytesSnd; + ULONG SlowStart; + ULONG CongAvoid; + ULONG OtherReductions; + ULONG CurCwnd; + ULONG MaxSsCwnd; + ULONG MaxCaCwnd; + ULONG CurSsthresh; + ULONG MaxSsthresh; + ULONG MinSsthresh; +} TCP_ESTATS_SND_CONG_ROD_v0, *PTCP_ESTATS_SND_CONG_ROD_v0; + +typedef struct _TCP_ESTATS_SND_CONG_ROS_v0 { + ULONG LimCwnd; +} TCP_ESTATS_SND_CONG_ROS_v0, *PTCP_ESTATS_SND_CONG_ROS_v0; + +typedef struct _TCP_ESTATS_SND_CONG_RW_v0 { + BOOLEAN EnableCollection; +} TCP_ESTATS_SND_CONG_RW_v0, *PTCP_ESTATS_SND_CONG_RW_v0; + +typedef struct _TCP_ESTATS_SYN_OPTS_ROS_v0 { + BOOLEAN ActiveOpen; + ULONG MssRcvd; + ULONG MssSent; +} TCP_ESTATS_SYN_OPTS_ROS_v0, *PTCP_ESTATS_SYN_OPTS_ROS_v0; + +typedef enum { + TcpConnectionEstatsSynOpts, + TcpConnectionEstatsData, + TcpConnectionEstatsSndCong, + TcpConnectionEstatsPath, + TcpConnectionEstatsSendBuff, + TcpConnectionEstatsRec, + TcpConnectionEstatsObsRec, + TcpConnectionEstatsBandwidth, + TcpConnectionEstatsFineRtt, + TcpConnectionEstatsMaximum +} TCP_ESTATS_TYPE, *PTCP_ESTATS_TYPE; + +typedef enum { + TcpErrorNone = 0, + TcpErrorBelowDataWindow, + TcpErrorAboveDataWindow, + TcpErrorBelowAckWindow, + TcpErrorAboveAckWindow, + TcpErrorBelowTsWindow, + TcpErrorAboveTsWindow, + TcpErrorDataChecksumError, + TcpErrorDataLengthError, + TcpErrorMaxSoftError +} TCP_SOFT_ERROR, *PTCP_SOFT_ERROR; + +#ifdef __cplusplus +} +#endif + +#endif /* __WINE_TCPESTATS_H */ -- 2.5.0