5 #ifndef __ENET_PROTOCOL_H__
6 #define __ENET_PROTOCOL_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 = 0xFFF,
20 ENET_PROTOCOL_MAXIMUM_PACKET_SIZE = 1024 * 1024 * 1024,
21 ENET_PROTOCOL_MAXIMUM_FRAGMENT_COUNT = 1024 * 1024
24 typedef enum _ENetProtocolCommand
26 ENET_PROTOCOL_COMMAND_NONE = 0,
27 ENET_PROTOCOL_COMMAND_ACKNOWLEDGE = 1,
28 ENET_PROTOCOL_COMMAND_CONNECT = 2,
29 ENET_PROTOCOL_COMMAND_VERIFY_CONNECT = 3,
30 ENET_PROTOCOL_COMMAND_DISCONNECT = 4,
31 ENET_PROTOCOL_COMMAND_PING = 5,
32 ENET_PROTOCOL_COMMAND_SEND_RELIABLE = 6,
33 ENET_PROTOCOL_COMMAND_SEND_UNRELIABLE = 7,
34 ENET_PROTOCOL_COMMAND_SEND_FRAGMENT = 8,
35 ENET_PROTOCOL_COMMAND_SEND_UNSEQUENCED = 9,
36 ENET_PROTOCOL_COMMAND_BANDWIDTH_LIMIT = 10,
37 ENET_PROTOCOL_COMMAND_THROTTLE_CONFIGURE = 11,
38 ENET_PROTOCOL_COMMAND_SEND_UNRELIABLE_FRAGMENT = 12,
39 ENET_PROTOCOL_COMMAND_COUNT = 13,
41 ENET_PROTOCOL_COMMAND_MASK = 0x0F
42 } ENetProtocolCommand;
44 typedef enum _ENetProtocolFlag
46 ENET_PROTOCOL_COMMAND_FLAG_ACKNOWLEDGE = (1 << 7),
47 ENET_PROTOCOL_COMMAND_FLAG_UNSEQUENCED = (1 << 6),
49 ENET_PROTOCOL_HEADER_FLAG_COMPRESSED = (1 << 14),
50 ENET_PROTOCOL_HEADER_FLAG_SENT_TIME = (1 << 15),
51 ENET_PROTOCOL_HEADER_FLAG_MASK = ENET_PROTOCOL_HEADER_FLAG_COMPRESSED | ENET_PROTOCOL_HEADER_FLAG_SENT_TIME,
53 ENET_PROTOCOL_HEADER_SESSION_MASK = (3 << 12),
54 ENET_PROTOCOL_HEADER_SESSION_SHIFT = 12
60 #elif defined(__GNUC__)
61 #define ENET_PACKED __attribute__ ((packed))
81 ENetProtocolCommandHeader header;
88 ENetProtocolCommandHeader header;
106 ENetProtocolCommandHeader header;
123 ENetProtocolCommandHeader header;
130 ENetProtocolCommandHeader header;
138 ENetProtocolCommandHeader header;
144 ENetProtocolCommandHeader header;
149 ENetProtocolCommandHeader header;
155 ENetProtocolCommandHeader header;
162 ENetProtocolCommandHeader header;
169 ENetProtocolCommandHeader header;
180 ENetProtocolCommandHeader header;
181 ENetProtocolAcknowledge acknowledge;
182 ENetProtocolConnect connect;
183 ENetProtocolVerifyConnect verifyConnect;
184 ENetProtocolDisconnect disconnect;
185 ENetProtocolPing ping;
186 ENetProtocolSendReliable sendReliable;
187 ENetProtocolSendUnreliable sendUnreliable;
188 ENetProtocolSendUnsequenced sendUnsequenced;
189 ENetProtocolSendFragment sendFragment;
190 ENetProtocolBandwidthLimit bandwidthLimit;
191 ENetProtocolThrottleConfigure throttleConfigure;