OnixS C++ CME iLink 3 Binary Order Entry Handler  1.18.0
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>
23 
24 namespace OnixS {
25 namespace CME {
26 namespace iLink3 {
27 
28 /// TCP state information.
29 
30 struct TcpInfo
31 {
32  /// State of the connection
33  struct TcpState
34  {
35  enum Enum
36  {
37  /// TCP connection is established
39 
40  /// TCP SYN packet has been sent
42 
43  /// TCP SYN packet has been received
45 
46  /// TCP connection is in FIN wait state 1
48 
49  /// TCP connection is in FIN wait state 2
51 
52  /// TCP connection is in time wait state
54 
55  /// TCP connection is closing
57 
58  /// TCP connection is in close wait state
60 
61  /// Last acknowledgment has been sent
63 
64  /// TCP socket is listening for incoming connections
66 
67  /// TCP connection is in closing state
69 
70  /// TCP connection has received a new SYN packet
72  };
73  };
74 
75  /// TCP congestion avoidance state
76  struct TcpCaState
77  {
78  enum Enum
79  {
80  /// TCP congestion avoidance state: open
81  Open = 0,
82 
83  /// TCP congestion avoidance state: disorder
85 
86  /// TCP congestion avoidance state: congestion window reduced
87  Cwr,
88 
89  /// TCP congestion avoidance state: recovery
91 
92  /// TCP congestion avoidance state: loss
93  Loss
94  };
95  };
96 
97  /// Represents the state of the TCP connection.
99 
100  /// Represents the congestion avoidance state of the TCP connection.
102 
103  /// Number of retransmitted segments.
105 
106  /// Number of probe packets sent.
108 
109  /// Number of times the retransmission timer has been backed off.
111 
112  /// TCP options (e.g., selective acknowledgments) enabled for the connection.
114 
115  /// Sender's and receiver's window scale factors.
116  /// Note: Each field is 4 bits wide.
118 
119  /// Retransmission timeout value in milliseconds.
121 
122  /// Predicted average time in milliseconds between transmission and acknowledgment.
124 
125  /// Maximum segment size (MSS) advertised by the sender.
127 
128  /// Maximum segment size (MSS) advertised by the receiver.
130 
131  /// Number of segments sent but not yet acknowledged.
133 
134  /// Number of selective acknowledgments received.
136 
137  /// Number of lost segments.
139 
140  /// Number of retransmitted segments.
142 
143  /// Number of forward acknowledgments (FACKs).
145 
146  /* Metrics. */
147  /// Path Maximum Transmission Unit (PMTU) estimate.
149 
150  /// Receiver's slow-start threshold.
152 
153  /// Smoothed round-trip time (RTT) estimate in microseconds.
155 
156  /// Round-trip time variance estimate in microseconds.
158 
159  /// Sender's slow-start threshold.
161 
162  /// Sender's congestion window size.
164 
165  /// Advertised maximum segment size (MSS).
167 
168  /// Reordering metric.
170 
171  /// Receiver's smoothed RTT estimate.
173 
174  /// Available receive buffer space in bytes.
176 
177  /// Total number of retransmissions.
179 
180  /// \return a human-readable presentation.
182  std::string toString() const;
183 };
184 
185 
186 }
187 }
188 }
UInt32 retrans
Number of retransmitted segments.
Definition: TcpInfo.h:141
TCP SYN packet has been sent.
Definition: TcpInfo.h:41
TCP connection is established.
Definition: TcpInfo.h:38
TcpCaState::Enum caState
Represents the congestion avoidance state of the TCP connection.
Definition: TcpInfo.h:101
UInt32 sacked
Number of selective acknowledgments received.
Definition: TcpInfo.h:135
UInt32 rcvSpace
Available receive buffer space in bytes.
Definition: TcpInfo.h:175
UInt8 backoff
Number of times the retransmission timer has been backed off.
Definition: TcpInfo.h:110
UInt32 sndCwnd
Sender&#39;s congestion window size.
Definition: TcpInfo.h:163
UInt32 rtt
Smoothed round-trip time (RTT) estimate in microseconds.
Definition: TcpInfo.h:154
TCP state information.
Definition: TcpInfo.h:30
UInt32 lost
Number of lost segments.
Definition: TcpInfo.h:138
UInt32 advmss
Advertised maximum segment size (MSS).
Definition: TcpInfo.h:166
TCP congestion avoidance state: congestion window reduced.
Definition: TcpInfo.h:87
Last acknowledgment has been sent.
Definition: TcpInfo.h:62
UInt32 pmtu
Path Maximum Transmission Unit (PMTU) estimate.
Definition: TcpInfo.h:148
UInt32 rttvar
Round-trip time variance estimate in microseconds.
Definition: TcpInfo.h:157
UInt32 rcvMss
Maximum segment size (MSS) advertised by the receiver.
Definition: TcpInfo.h:129
Definition: Defines.h:40
UInt32 sndMss
Maximum segment size (MSS) advertised by the sender.
Definition: TcpInfo.h:126
TCP connection is closing.
Definition: TcpInfo.h:56
UInt32 rto
Retransmission timeout value in milliseconds.
Definition: TcpInfo.h:120
TCP congestion avoidance state: disorder.
Definition: TcpInfo.h:84
TCP connection is in close wait state.
Definition: TcpInfo.h:59
UInt8 sndWscale
Sender&#39;s and receiver&#39;s window scale factors.
Definition: TcpInfo.h:117
UInt32 reordering
Reordering metric.
Definition: TcpInfo.h:169
UInt32 unacked
Number of segments sent but not yet acknowledged.
Definition: TcpInfo.h:132
TCP connection is in FIN wait state 2.
Definition: TcpInfo.h:50
UInt32 ato
Predicted average time in milliseconds between transmission and acknowledgment.
Definition: TcpInfo.h:123
UInt8 probes
Number of probe packets sent.
Definition: TcpInfo.h:107
UInt32 totalRetrans
Total number of retransmissions.
Definition: TcpInfo.h:178
#define ONIXS_ILINK3_EXPORTED
Definition: Compiler.h:175
TCP connection is in closing state.
Definition: TcpInfo.h:68
TCP congestion avoidance state.
Definition: TcpInfo.h:76
UInt8 options
TCP options (e.g., selective acknowledgments) enabled for the connection.
Definition: TcpInfo.h:113
TCP connection has received a new SYN packet.
Definition: TcpInfo.h:71
TCP SYN packet has been received.
Definition: TcpInfo.h:44
TCP congestion avoidance state: recovery.
Definition: TcpInfo.h:90
State of the connection.
Definition: TcpInfo.h:33
UInt32 rcvSsthresh
Receiver&#39;s slow-start threshold.
Definition: TcpInfo.h:151
UInt32 rcvRtt
Receiver&#39;s smoothed RTT estimate.
Definition: TcpInfo.h:172
UInt32 UInt32
uInt32.
Definition: Fields.h:302
TCP socket is listening for incoming connections.
Definition: TcpInfo.h:65
TCP connection is in time wait state.
Definition: TcpInfo.h:53
std::string toString() const
UInt32 sndSsthresh
Sender&#39;s slow-start threshold.
Definition: TcpInfo.h:160
TCP connection is in FIN wait state 1.
Definition: TcpInfo.h:47
UInt32 fackets
Number of forward acknowledgments (FACKs).
Definition: TcpInfo.h:144
TcpState::Enum state
Represents the state of the TCP connection.
Definition: TcpInfo.h:98
UInt8 retransmits
Number of retransmitted segments.
Definition: TcpInfo.h:104