summaryrefslogtreecommitdiffstats
path: root/private/inc/tcpinfo.h
diff options
context:
space:
mode:
Diffstat (limited to 'private/inc/tcpinfo.h')
-rw-r--r--private/inc/tcpinfo.h186
1 files changed, 186 insertions, 0 deletions
diff --git a/private/inc/tcpinfo.h b/private/inc/tcpinfo.h
new file mode 100644
index 000000000..e636183c9
--- /dev/null
+++ b/private/inc/tcpinfo.h
@@ -0,0 +1,186 @@
+/********************************************************************/
+/** Microsoft LAN Manager **/
+/** Copyright(c) Microsoft Corp., 1990-1993 **/
+/********************************************************************/
+/* :ts=4 */
+
+//** TCPINFO.H - TDI Query/SetInfo and Action definitons.
+//
+// This file contains definitions for information returned from TCP/UDP.
+//
+
+#ifndef TCP_INFO_INCLUDED
+#define TCP_INFO_INCLUDED
+
+
+#ifndef CTE_TYPEDEFS_DEFINED
+#define CTE_TYPEDEFS_DEFINED
+
+typedef unsigned long ulong;
+typedef unsigned short ushort;
+typedef unsigned char uchar;
+typedef unsigned int uint;
+
+#endif // CTE_TYPEDEFS_DEFINED
+
+
+typedef struct TCPStats {
+ ulong ts_rtoalgorithm;
+ ulong ts_rtomin;
+ ulong ts_rtomax;
+ ulong ts_maxconn;
+ ulong ts_activeopens;
+ ulong ts_passiveopens;
+ ulong ts_attemptfails;
+ ulong ts_estabresets;
+ ulong ts_currestab;
+ ulong ts_insegs;
+ ulong ts_outsegs;
+ ulong ts_retranssegs;
+ ulong ts_inerrs;
+ ulong ts_outrsts;
+ ulong ts_numconns;
+} TCPStats;
+
+#define TCP_RTO_OTHER 1
+#define TCP_RTO_CONSTANT 2
+#define TCP_RTO_RSRE 3
+#define TCP_RTO_VANJ 4
+
+#define TCP_MAXCONN_DYNAMIC -1
+
+typedef struct UDPStats {
+ ulong us_indatagrams;
+ ulong us_noports;
+ ulong us_inerrors;
+ ulong us_outdatagrams;
+ ulong us_numaddrs;
+} UDPStats;
+
+typedef struct TCPConnTableEntry {
+ ulong tct_state;
+ ulong tct_localaddr;
+ ulong tct_localport;
+ ulong tct_remoteaddr;
+ ulong tct_remoteport;
+} TCPConnTableEntry;
+
+//* Definitions for the tct_state variable.
+#define TCP_CONN_CLOSED 1 // Closed.
+#define TCP_CONN_LISTEN 2 // Listening.
+#define TCP_CONN_SYN_SENT 3 // SYN Sent.
+#define TCP_CONN_SYN_RCVD 4 // SYN received.
+#define TCP_CONN_ESTAB 5 // Established.
+#define TCP_CONN_FIN_WAIT1 6 // FIN-WAIT-1
+#define TCP_CONN_FIN_WAIT2 7 // FIN-WAIT-2
+#define TCP_CONN_CLOSE_WAIT 8 // Close waiting.
+#define TCP_CONN_CLOSING 9 // Closing state.
+#define TCP_CONN_LAST_ACK 10 // Last ack state.
+#define TCP_CONN_TIME_WAIT 11 // Time wait state.
+#define TCP_DELETE_TCB 12 // Set to delete this TCB.
+
+
+typedef struct UDPEntry {
+ ulong ue_localaddr;
+ ulong ue_localport;
+} UDPEntry;
+
+
+#define TCP_MIB_STAT_ID 1
+#define UDP_MIB_STAT_ID 1
+#define TCP_MIB_TABLE_ID 0x101
+#define UDP_MIB_TABLE_ID 0x101
+
+// Sockets based identifiers for connections.
+
+typedef struct TCPSocketOption {
+ ulong tso_value;
+} TCPSocketOption;
+
+//* Structure passed in/returned from the SOCKET_ATMARK call. The tsa_offset
+// field indicate how far back or forward in the data stream urgent data
+// was or will be returned. A negative value means inline urgent data has
+// already been given to the client, -tsa_offset bytes ago. A positive value
+// means that inline urgent data is available tsa_offset bytes down the
+// data stream. The tsa_size field is the size in bytes of the urgent data.
+// This call when always return a 0 size and offset if the connection is not
+// in the urgent inline mode.
+
+typedef struct TCPSocketAMInfo {
+ ulong tsa_size; // Size of urgent data returned.
+ long tsa_offset; // Offset of urgent data returned.
+} TCPSocketAMInfo;
+
+#define TCP_SOCKET_NODELAY 1
+#define TCP_SOCKET_KEEPALIVE 2
+#define TCP_SOCKET_OOBINLINE 3
+#define TCP_SOCKET_BSDURGENT 4
+#define TCP_SOCKET_ATMARK 5
+#define TCP_SOCKET_WINDOW 6
+
+// Address object identifies. All but AO_OPTION_MCASTIF take single boolean
+// character value. That one expects a pointer to an IP address.
+
+#define AO_OPTION_TTL 1
+#define AO_OPTION_MCASTTTL 2
+#define AO_OPTION_MCASTIF 3
+#define AO_OPTION_XSUM 4
+#define AO_OPTION_IPOPTIONS 5
+#define AO_OPTION_ADD_MCAST 6
+#define AO_OPTION_DEL_MCAST 7
+#define AO_OPTION_TOS 8
+#define AO_OPTION_IP_DONTFRAGMENT 9
+
+
+//* Information relating to setting/deleting IP multicast addresses.
+typedef struct UDPMCastReq {
+ ulong umr_addr; // MCast address to add/delete.
+ ulong umr_if; // I/F on which to join.
+} UDPMCastReq;
+
+//* Structure defining what is passed in to AO_OPTION_MCASTIF request.
+typedef struct UDPMCastIFReq {
+ IPAddr umi_addr;
+} UDPMCastIFReq;
+
+
+//
+// Structures used in security filter enumeration.
+//
+// All values are in HOST byte order!!!
+//
+typedef struct TCPSecurityFilterEntry {
+ ulong tsf_address; // IP interface address
+ ulong tsf_protocol; // Transport protocol number
+ ulong tsf_value; // Transport filter value (e.g. TCP port)
+} TCPSecurityFilterEntry;
+
+typedef struct TCPSecurityFilterEnum {
+ ULONG tfe_entries_returned; // The number of TCPSecurityFilterEntry structs
+ // returned in the subsequent array.
+
+ ULONG tfe_entries_available; // The number of TCPSecurityFilterEntry structs
+ // currently available from the transport.
+} TCPSecurityFilterEnum;
+
+//
+// Structures used in connection list enumeration.
+//
+// All values are in HOST byte order!!!
+//
+
+typedef struct TCPConnectionListEntry {
+ IPAddr tcf_address; // IP address
+ uint tcf_ticks; // Tick Count remaining
+} TCPConnectionListEntry;
+
+typedef struct TCPConnectionListEnum {
+ ULONG tce_entries_returned; // The number of TCPConnectionListEntry structs
+ // returned in the subsequent array.
+
+ ULONG tce_entries_available; // The number of TCPConnectionListEntry structs
+ // currently available from the transport.
+} TCPConnectionListEnum;
+
+
+#endif // TCP_INFO_INCLUDED