OnixS C++ CME iLink 3 Binary Order Entry Handler  1.18.11
API Documentation
TcpInfo.h
Go to the documentation of this file.
1 /*
2  * Copyright Onix Solutions Limited [OnixS]. All rights reserved.
3  *
4  * This software owned by Onix Solutions Limited [OnixS] and is protected by copyright law
5  * and international copyright treaties.
6  *
7  * Access to and use of the software is governed by the terms of the applicable OnixS Software
8  * Services Agreement (the Agreement) and Customer end user license agreements granting
9  * a non-assignable, non-transferable and non-exclusive license to use the software
10  * for it's own data processing purposes under the terms defined in the Agreement.
11  *
12  * Except as otherwise granted within the terms of the Agreement, copying or reproduction of any part
13  * of this source code or associated reference material to any other location for further reproduction
14  * or redistribution, and any amendments to this copyright notice, are expressly prohibited.
15  *
16  * Any reproduction or redistribution for sale or hiring of the Software not in accordance with
17  * the terms of the Agreement is a violation of copyright law.
18  */
19 
20 #pragma once
21 
22 #include <OnixS/CME/iLink3/ABI.h>
24 
25 namespace OnixS {
26 namespace CME {
27 namespace iLink3 {
28 
29 /// TCP state information.
30 
31 struct TcpInfo
32 {
33  /// State of the connection
34  struct TcpState
35  {
36  enum Enum
37  {
38  /// TCP connection is established
40 
41  /// TCP SYN packet has been sent
43 
44  /// TCP SYN packet has been received
46 
47  /// TCP connection is in FIN wait state 1
49 
50  /// TCP connection is in FIN wait state 2
52 
53  /// TCP connection is in time wait state
55 
56  /// TCP connection is closing
58 
59  /// TCP connection is in close wait state
61 
62  /// Last acknowledgment has been sent
64 
65  /// TCP socket is listening for incoming connections
67 
68  /// TCP connection is in closing state
70 
71  /// TCP connection has received a new SYN packet
73  };
74  };
75 
76  /// TCP congestion avoidance state
77  struct TcpCaState
78  {
79  enum Enum
80  {
81  /// TCP congestion avoidance state: open
82  Open = 0,
83 
84  /// TCP congestion avoidance state: disorder
86 
87  /// TCP congestion avoidance state: congestion window reduced
88  Cwr,
89 
90  /// TCP congestion avoidance state: recovery
92 
93  /// TCP congestion avoidance state: loss
94  Loss
95  };
96  };
97 
98  /// Represents the state of the TCP connection.
100 
101  /// Represents the congestion avoidance state of the TCP connection.
103 
104  /// Number of retransmitted segments.
106 
107  /// Number of probe packets sent.
109 
110  /// Number of times the retransmission timer has been backed off.
112 
113  /// TCP options (e.g., selective acknowledgments) enabled for the connection.
115 
116  /// Sender's and receiver's window scale factors.
117  /// Note: Each field is 4 bits wide.
119 
120  /// Retransmission timeout value in milliseconds.
122 
123  /// Predicted average time in milliseconds between transmission and acknowledgment.
125 
126  /// Maximum segment size (MSS) advertised by the sender.
128 
129  /// Maximum segment size (MSS) advertised by the receiver.
131 
132  /// Number of segments sent but not yet acknowledged.
134 
135  /// Number of selective acknowledgments received.
137 
138  /// Number of lost segments.
140 
141  /// Number of retransmitted segments.
143 
144  /// Number of forward acknowledgments (FACKs).
146 
147  /* Metrics. */
148  /// Path Maximum Transmission Unit (PMTU) estimate.
150 
151  /// Receiver's slow-start threshold.
153 
154  /// Smoothed round-trip time (RTT) estimate in microseconds.
156 
157  /// Round-trip time variance estimate in microseconds.
159 
160  /// Sender's slow-start threshold.
162 
163  /// Sender's congestion window size.
165 
166  /// Advertised maximum segment size (MSS).
168 
169  /// Reordering metric.
171 
172  /// Receiver's smoothed RTT estimate.
174 
175  /// Available receive buffer space in bytes.
177 
178  /// Total number of retransmissions.
180 
181  /// \return a human-readable presentation.
183  std::string toString() const;
184 };
185 
186 
187 }
188 }
189 }
UInt32 retrans
Number of retransmitted segments.
Definition: TcpInfo.h:142
TCP SYN packet has been sent.
Definition: TcpInfo.h:42
TCP connection is established.
Definition: TcpInfo.h:39
TcpCaState::Enum caState
Represents the congestion avoidance state of the TCP connection.
Definition: TcpInfo.h:102
UInt32 sacked
Number of selective acknowledgments received.
Definition: TcpInfo.h:136
UInt32 rcvSpace
Available receive buffer space in bytes.
Definition: TcpInfo.h:176
UInt8 backoff
Number of times the retransmission timer has been backed off.
Definition: TcpInfo.h:111
UInt32 sndCwnd
Sender&#39;s congestion window size.
Definition: TcpInfo.h:164
UInt32 rtt
Smoothed round-trip time (RTT) estimate in microseconds.
Definition: TcpInfo.h:155
TCP state information.
Definition: TcpInfo.h:31
UInt32 lost
Number of lost segments.
Definition: TcpInfo.h:139
UInt32 advmss
Advertised maximum segment size (MSS).
Definition: TcpInfo.h:167
TCP congestion avoidance state: congestion window reduced.
Definition: TcpInfo.h:88
Last acknowledgment has been sent.
Definition: TcpInfo.h:63
UInt32 pmtu
Path Maximum Transmission Unit (PMTU) estimate.
Definition: TcpInfo.h:149
UInt32 rttvar
Round-trip time variance estimate in microseconds.
Definition: TcpInfo.h:158
UInt32 rcvMss
Maximum segment size (MSS) advertised by the receiver.
Definition: TcpInfo.h:130
Definition: Defines.h:40
UInt32 sndMss
Maximum segment size (MSS) advertised by the sender.
Definition: TcpInfo.h:127
TCP connection is closing.
Definition: TcpInfo.h:57
UInt32 rto
Retransmission timeout value in milliseconds.
Definition: TcpInfo.h:121
TCP congestion avoidance state: disorder.
Definition: TcpInfo.h:85
TCP connection is in close wait state.
Definition: TcpInfo.h:60
UInt8 sndWscale
Sender&#39;s and receiver&#39;s window scale factors.
Definition: TcpInfo.h:118
UInt32 reordering
Reordering metric.
Definition: TcpInfo.h:170
UInt32 unacked
Number of segments sent but not yet acknowledged.
Definition: TcpInfo.h:133
TCP connection is in FIN wait state 2.
Definition: TcpInfo.h:51
UInt32 ato
Predicted average time in milliseconds between transmission and acknowledgment.
Definition: TcpInfo.h:124
UInt8 probes
Number of probe packets sent.
Definition: TcpInfo.h:108
UInt32 totalRetrans
Total number of retransmissions.
Definition: TcpInfo.h:179
#define ONIXS_ILINK3_EXPORTED
Definition: Compiler.h:176
TCP connection is in closing state.
Definition: TcpInfo.h:69
TCP congestion avoidance state.
Definition: TcpInfo.h:77
UInt8 options
TCP options (e.g., selective acknowledgments) enabled for the connection.
Definition: TcpInfo.h:114
TCP connection has received a new SYN packet.
Definition: TcpInfo.h:72
TCP SYN packet has been received.
Definition: TcpInfo.h:45
TCP congestion avoidance state: recovery.
Definition: TcpInfo.h:91
State of the connection.
Definition: TcpInfo.h:34
UInt32 rcvSsthresh
Receiver&#39;s slow-start threshold.
Definition: TcpInfo.h:152
UInt32 rcvRtt
Receiver&#39;s smoothed RTT estimate.
Definition: TcpInfo.h:173
UInt32 UInt32
uInt32.
Definition: Fields.h:302
TCP socket is listening for incoming connections.
Definition: TcpInfo.h:66
TCP connection is in time wait state.
Definition: TcpInfo.h:54
std::string toString() const
UInt32 sndSsthresh
Sender&#39;s slow-start threshold.
Definition: TcpInfo.h:161
TCP connection is in FIN wait state 1.
Definition: TcpInfo.h:48
UInt32 fackets
Number of forward acknowledgments (FACKs).
Definition: TcpInfo.h:145
TcpState::Enum state
Represents the state of the TCP connection.
Definition: TcpInfo.h:99
UInt8 retransmits
Number of retransmitted segments.
Definition: TcpInfo.h:105