source: Daodan/MSYS2/mingw32/i686-w64-mingw32/include/wsrm.h@ 1180

Last change on this file since 1180 was 1166, checked in by rossy, 3 years ago

Daodan: Replace MinGW build env with an up-to-date MSYS2 env

File size: 2.8 KB
RevLine 
[1166]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 _WSRM_H_
7#define _WSRM_H_
8
9#define IPPROTO_RM 113
10#define MAX_MCAST_TTL 255
11
12#define RM_OPTIONSBASE 1000
13#define RM_RATE_WINDOW_SIZE (RM_OPTIONSBASE + 1)
14#define RM_SET_MESSAGE_BOUNDARY (RM_OPTIONSBASE + 2)
15#define RM_FLUSHCACHE (RM_OPTIONSBASE + 3)
16#define RM_SENDER_WINDOW_ADVANCE_METHOD (RM_OPTIONSBASE + 4)
17#define RM_SENDER_STATISTICS (RM_OPTIONSBASE + 5)
18#define RM_LATEJOIN (RM_OPTIONSBASE + 6)
19#define RM_SET_SEND_IF (RM_OPTIONSBASE + 7)
20#define RM_ADD_RECEIVE_IF (RM_OPTIONSBASE + 8)
21#define RM_DEL_RECEIVE_IF (RM_OPTIONSBASE + 9)
22#define RM_SEND_WINDOW_ADV_RATE (RM_OPTIONSBASE + 10)
23#define RM_USE_FEC (RM_OPTIONSBASE + 11)
24#define RM_SET_MCAST_TTL (RM_OPTIONSBASE + 12)
25#define RM_RECEIVER_STATISTICS (RM_OPTIONSBASE + 13)
26#define RM_HIGH_SPEED_INTRANET_OPT (RM_OPTIONSBASE + 14)
27
28#define SENDER_DEFAULT_RATE_KBITS_PER_SEC 56
29#define SENDER_DEFAULT_WINDOW_SIZE_BYTES 10 *1000*1000
30#define SENDER_DEFAULT_WINDOW_ADV_PERCENTAGE 15
31
32#define MAX_WINDOW_INCREMENT_PERCENTAGE 25
33#define SENDER_DEFAULT_LATE_JOINER_PERCENTAGE 0
34#define SENDER_MAX_LATE_JOINER_PERCENTAGE 75
35
36#define BITS_PER_BYTE 8
37#define LOG2_BITS_PER_BYTE 3
38
39enum eWINDOW_ADVANCE_METHOD {
40 E_WINDOW_ADVANCE_BY_TIME = 1,E_WINDOW_USE_AS_DATA_CACHE
41};
42
43typedef struct _RM_SEND_WINDOW {
44 ULONG RateKbitsPerSec;
45 ULONG WindowSizeInMSecs;
46 ULONG WindowSizeInBytes;
47} RM_SEND_WINDOW;
48
49typedef struct _RM_SENDER_STATS {
50 ULONGLONG DataBytesSent;
51 ULONGLONG TotalBytesSent;
52 ULONGLONG NaksReceived;
53 ULONGLONG NaksReceivedTooLate;
54 ULONGLONG NumOutstandingNaks;
55 ULONGLONG NumNaksAfterRData;
56 ULONGLONG RepairPacketsSent;
57 ULONGLONG BufferSpaceAvailable;
58 ULONGLONG TrailingEdgeSeqId;
59 ULONGLONG LeadingEdgeSeqId;
60 ULONGLONG RateKBitsPerSecOverall;
61 ULONGLONG RateKBitsPerSecLast;
62 ULONGLONG TotalODataPacketsSent;
63} RM_SENDER_STATS;
64
65typedef struct _RM_RECEIVER_STATS {
66 ULONGLONG NumODataPacketsReceived;
67 ULONGLONG NumRDataPacketsReceived;
68 ULONGLONG NumDuplicateDataPackets;
69 ULONGLONG DataBytesReceived;
70 ULONGLONG TotalBytesReceived;
71 ULONGLONG RateKBitsPerSecOverall;
72 ULONGLONG RateKBitsPerSecLast;
73 ULONGLONG TrailingEdgeSeqId;
74 ULONGLONG LeadingEdgeSeqId;
75 ULONGLONG AverageSequencesInWindow;
76 ULONGLONG MinSequencesInWindow;
77 ULONGLONG MaxSequencesInWindow;
78 ULONGLONG FirstNakSequenceNumber;
79 ULONGLONG NumPendingNaks;
80 ULONGLONG NumOutstandingNaks;
81 ULONGLONG NumDataPacketsBuffered;
82 ULONGLONG TotalSelectiveNaksSent;
83 ULONGLONG TotalParityNaksSent;
84} RM_RECEIVER_STATS;
85
86typedef struct _RM_FEC_INFO {
87 USHORT FECBlockSize;
88 USHORT FECProActivePackets;
89 UCHAR FECGroupSize;
90 BOOLEAN fFECOnDemandParityEnabled;
91} RM_FEC_INFO;
92
93#endif
Note: See TracBrowser for help on using the repository browser.