5 #ifndef __ENET_PROTOCOL_H__
6 #define __ENET_PROTOCOL_H__
8 #include "enet/types.h"
12 ENET_PROTOCOL_MINIMUM_MTU
= 576,
13 ENET_PROTOCOL_MAXIMUM_MTU
= 4096,
14 ENET_PROTOCOL_MAXIMUM_PACKET_COMMANDS
= 32,
15 ENET_PROTOCOL_MINIMUM_WINDOW_SIZE
= 4096,
16 ENET_PROTOCOL_MAXIMUM_WINDOW_SIZE
= 32768,
17 ENET_PROTOCOL_MINIMUM_CHANNEL_COUNT
= 1,
18 ENET_PROTOCOL_MAXIMUM_CHANNEL_COUNT
= 255,
19 ENET_PROTOCOL_MAXIMUM_PEER_ID
= 0x7FFF
24 ENET_PROTOCOL_COMMAND_NONE
= 0,
25 ENET_PROTOCOL_COMMAND_ACKNOWLEDGE
= 1,
26 ENET_PROTOCOL_COMMAND_CONNECT
= 2,
27 ENET_PROTOCOL_COMMAND_VERIFY_CONNECT
= 3,
28 ENET_PROTOCOL_COMMAND_DISCONNECT
= 4,
29 ENET_PROTOCOL_COMMAND_PING
= 5,
30 ENET_PROTOCOL_COMMAND_SEND_RELIABLE
= 6,
31 ENET_PROTOCOL_COMMAND_SEND_UNRELIABLE
= 7,
32 ENET_PROTOCOL_COMMAND_SEND_FRAGMENT
= 8,
33 ENET_PROTOCOL_COMMAND_SEND_UNSEQUENCED
= 9,
34 ENET_PROTOCOL_COMMAND_BANDWIDTH_LIMIT
= 10,
35 ENET_PROTOCOL_COMMAND_THROTTLE_CONFIGURE
= 11,
36 ENET_PROTOCOL_COMMAND_COUNT
= 12,
38 ENET_PROTOCOL_COMMAND_MASK
= 0x0F
39 } ENetProtocolCommand
;
43 ENET_PROTOCOL_COMMAND_FLAG_ACKNOWLEDGE
= (1 << 7),
44 ENET_PROTOCOL_COMMAND_FLAG_UNSEQUENCED
= (1 << 6),
46 ENET_PROTOCOL_HEADER_FLAG_SENT_TIME
= (1 << 15),
47 ENET_PROTOCOL_HEADER_FLAG_MASK
= 0x8000
61 enet_uint16 reliableSequenceNumber
;
62 } ENetProtocolCommandHeader
;
66 ENetProtocolCommandHeader header
;
67 enet_uint16 receivedReliableSequenceNumber
;
68 enet_uint16 receivedSentTime
;
69 } ENetProtocolAcknowledge
;
73 ENetProtocolCommandHeader header
;
74 enet_uint16 outgoingPeerID
;
76 enet_uint32 windowSize
;
77 enet_uint32 channelCount
;
78 enet_uint32 incomingBandwidth
;
79 enet_uint32 outgoingBandwidth
;
80 enet_uint32 packetThrottleInterval
;
81 enet_uint32 packetThrottleAcceleration
;
82 enet_uint32 packetThrottleDeceleration
;
83 enet_uint32 sessionID
;
84 } ENetProtocolConnect
;
88 ENetProtocolCommandHeader header
;
89 enet_uint16 outgoingPeerID
;
91 enet_uint32 windowSize
;
92 enet_uint32 channelCount
;
93 enet_uint32 incomingBandwidth
;
94 enet_uint32 outgoingBandwidth
;
95 enet_uint32 packetThrottleInterval
;
96 enet_uint32 packetThrottleAcceleration
;
97 enet_uint32 packetThrottleDeceleration
;
98 } ENetProtocolVerifyConnect
;
102 ENetProtocolCommandHeader header
;
103 enet_uint32 incomingBandwidth
;
104 enet_uint32 outgoingBandwidth
;
105 } ENetProtocolBandwidthLimit
;
109 ENetProtocolCommandHeader header
;
110 enet_uint32 packetThrottleInterval
;
111 enet_uint32 packetThrottleAcceleration
;
112 enet_uint32 packetThrottleDeceleration
;
113 } ENetProtocolThrottleConfigure
;
117 ENetProtocolCommandHeader header
;
119 } ENetProtocolDisconnect
;
123 ENetProtocolCommandHeader header
;
128 ENetProtocolCommandHeader header
;
129 enet_uint16 dataLength
;
130 } ENetProtocolSendReliable
;
134 ENetProtocolCommandHeader header
;
135 enet_uint16 unreliableSequenceNumber
;
136 enet_uint16 dataLength
;
137 } ENetProtocolSendUnreliable
;
141 ENetProtocolCommandHeader header
;
142 enet_uint16 unsequencedGroup
;
143 enet_uint16 dataLength
;
144 } ENetProtocolSendUnsequenced
;
148 ENetProtocolCommandHeader header
;
149 enet_uint16 startSequenceNumber
;
150 enet_uint16 dataLength
;
151 enet_uint32 fragmentCount
;
152 enet_uint32 fragmentNumber
;
153 enet_uint32 totalLength
;
154 enet_uint32 fragmentOffset
;
155 } ENetProtocolSendFragment
;
159 ENetProtocolCommandHeader header
;
160 ENetProtocolAcknowledge acknowledge
;
161 ENetProtocolConnect connect
;
162 ENetProtocolVerifyConnect verifyConnect
;
163 ENetProtocolDisconnect disconnect
;
164 ENetProtocolPing ping
;
165 ENetProtocolSendReliable sendReliable
;
166 ENetProtocolSendUnreliable sendUnreliable
;
167 ENetProtocolSendUnsequenced sendUnsequenced
;
168 ENetProtocolSendFragment sendFragment
;
169 ENetProtocolBandwidthLimit bandwidthLimit
;
170 ENetProtocolThrottleConfigure throttleConfigure
;
173 #endif /* __ENET_PROTOCOL_H__ */