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
22 typedef enum _ENetProtocolCommand
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_SEND_UNRELIABLE_FRAGMENT = 12,
37 ENET_PROTOCOL_COMMAND_COUNT = 13,
39 ENET_PROTOCOL_COMMAND_MASK = 0x0F
40 } ENetProtocolCommand;
42 typedef enum _ENetProtocolFlag
44 ENET_PROTOCOL_COMMAND_FLAG_ACKNOWLEDGE = (1 << 7),
45 ENET_PROTOCOL_COMMAND_FLAG_UNSEQUENCED = (1 << 6),
47 ENET_PROTOCOL_HEADER_FLAG_COMPRESSED = (1 << 14),
48 ENET_PROTOCOL_HEADER_FLAG_SENT_TIME = (1 << 15),
49 ENET_PROTOCOL_HEADER_FLAG_MASK = ENET_PROTOCOL_HEADER_FLAG_COMPRESSED | ENET_PROTOCOL_HEADER_FLAG_SENT_TIME,
51 ENET_PROTOCOL_HEADER_SESSION_MASK = (3 << 12),
52 ENET_PROTOCOL_HEADER_SESSION_SHIFT = 12
58 #elif defined(__GNUC__)
59 #define ENET_PACKED __attribute__ ((packed))
79 ENetProtocolCommandHeader header;
86 ENetProtocolCommandHeader header;
104 ENetProtocolCommandHeader header;
121 ENetProtocolCommandHeader header;
128 ENetProtocolCommandHeader header;
136 ENetProtocolCommandHeader header;
142 ENetProtocolCommandHeader header;
147 ENetProtocolCommandHeader header;
153 ENetProtocolCommandHeader header;
160 ENetProtocolCommandHeader header;
167 ENetProtocolCommandHeader header;
178 ENetProtocolCommandHeader header;
179 ENetProtocolAcknowledge acknowledge;
180 ENetProtocolConnect connect;
181 ENetProtocolVerifyConnect verifyConnect;
182 ENetProtocolDisconnect disconnect;
183 ENetProtocolPing ping;
184 ENetProtocolSendReliable sendReliable;
185 ENetProtocolSendUnreliable sendUnreliable;
186 ENetProtocolSendUnsequenced sendUnsequenced;
187 ENetProtocolSendFragment sendFragment;
188 ENetProtocolBandwidthLimit bandwidthLimit;
189 ENetProtocolThrottleConfigure throttleConfigure;