[enet-cvs] CVS: enet/include/enet enet.h,1.3,1.4 protocol.h,1.3,1.4
Lee Salzman
enet-discuss@lists.puremagic.com
Mon, 10 Jun 2002 18:22:04 -0600
Update of /home/enet/cvsroot/enet/include/enet
In directory sferik:/tmp/cvs-serv26296/include/enet
Modified Files:
enet.h protocol.h
Log Message:
Fixed many bugs in the throttle and rate limiting.
Added throttle parameter configuration and made it symmetric.
Index: enet.h
===================================================================
RCS file: /home/enet/cvsroot/enet/include/enet/enet.h,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- enet.h 2002/06/08 02:36:20 1.3
+++ enet.h 2002/06/11 00:22:02 1.4
@@ -101,17 +101,17 @@
enum
{
ENET_HOST_RECEIVE_BUFFER_SIZE = 256 * 1024,
- ENET_HOST_BANDWIDTH_THROTTLE_EPOCH = 1000,
+ ENET_HOST_BANDWIDTH_THROTTLE_INTERVAL = 1000,
ENET_PEER_DEFAULT_ROUND_TRIP_TIME = 500,
ENET_PEER_DEFAULT_PACKET_THROTTLE = 32,
ENET_PEER_PACKET_THROTTLE_SCALE = 32,
ENET_PEER_PACKET_THROTTLE_COUNTER = 7,
ENET_PEER_PACKET_THROTTLE_ACCELERATION = 7,
- ENET_PEER_PACKET_THROTTLE_DECELERATION = 2,
- ENET_PEER_PACKET_THROTTLE_EPOCH = 30000,
+ ENET_PEER_PACKET_THROTTLE_DECELERATION = 1,
+ ENET_PEER_PACKET_THROTTLE_INTERVAL = 5000,
ENET_PEER_PACKET_LOSS_SCALE = (1 << 16),
- ENET_PEER_PACKET_LOSS_EPOCH = 30000,
+ ENET_PEER_PACKET_LOSS_INTERVAL = 10000,
ENET_PEER_WINDOW_SIZE_SCALE = 64 * 1024,
ENET_PEER_TIMEOUT_LIMIT = 64,
ENET_PEER_PING_INTERVAL = 500
@@ -156,6 +156,9 @@
uint32 packetThrottleLimit;
uint32 packetThrottleCounter;
uint32 packetThrottleEpoch;
+ uint32 packetThrottleAcceleration;
+ uint32 packetThrottleDeceleration;
+ uint32 packetThrottleInterval;
uint32 bestRoundTripTime;
uint32 roundTripTime;
uint32 roundTripTimeVariance;
@@ -242,6 +245,7 @@
extern void enet_peer_ping (ENetPeer *);
extern void enet_peer_reset (ENetPeer *);
extern void enet_peer_disconnect (ENetPeer *);
+extern void enet_peer_throttle_configure (ENetPeer *, uint32, uint32, uint32);
extern int enet_peer_throttle (ENetPeer *, uint32, uint32, uint32);
extern ENetOutgoingCommand * enet_peer_queue_outgoing_command (ENetPeer *, const ENetProtocol *, ENetPacket *, uint32, uint16);
extern ENetIncomingCommand * enet_peer_queue_incoming_command (ENetPeer *, const ENetProtocol *, ENetPacket *, uint32);
Index: protocol.h
===================================================================
RCS file: /home/enet/cvsroot/enet/include/enet/protocol.h,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- protocol.h 2002/06/08 02:36:20 1.3
+++ protocol.h 2002/06/11 00:22:02 1.4
@@ -16,16 +16,17 @@
typedef enum
{
- ENET_PROTOCOL_COMMAND_NONE = 0,
- ENET_PROTOCOL_COMMAND_ACKNOWLEDGE = 1,
- ENET_PROTOCOL_COMMAND_CONNECT = 2,
- ENET_PROTOCOL_COMMAND_VERIFY_CONNECT = 3,
- ENET_PROTOCOL_COMMAND_DISCONNECT = 4,
- ENET_PROTOCOL_COMMAND_PING = 5,
- ENET_PROTOCOL_COMMAND_SEND_RELIABLE = 6,
- ENET_PROTOCOL_COMMAND_SEND_UNRELIABLE = 7,
- ENET_PROTOCOL_COMMAND_SEND_FRAGMENT = 8,
- ENET_PROTOCOL_COMMAND_BANDWIDTH_LIMIT = 9
+ ENET_PROTOCOL_COMMAND_NONE = 0,
+ ENET_PROTOCOL_COMMAND_ACKNOWLEDGE = 1,
+ ENET_PROTOCOL_COMMAND_CONNECT = 2,
+ ENET_PROTOCOL_COMMAND_VERIFY_CONNECT = 3,
+ ENET_PROTOCOL_COMMAND_DISCONNECT = 4,
+ ENET_PROTOCOL_COMMAND_PING = 5,
+ ENET_PROTOCOL_COMMAND_SEND_RELIABLE = 6,
+ ENET_PROTOCOL_COMMAND_SEND_UNRELIABLE = 7,
+ ENET_PROTOCOL_COMMAND_SEND_FRAGMENT = 8,
+ ENET_PROTOCOL_COMMAND_BANDWIDTH_LIMIT = 9,
+ ENET_PROTOCOL_COMMAND_THROTTLE_CONFIGURE = 10
} ENetProtocolCommand;
typedef enum
@@ -68,6 +69,9 @@
uint32 channelCount;
uint32 incomingBandwidth;
uint32 outgoingBandwidth;
+ uint32 packetThrottleInterval;
+ uint32 packetThrottleAcceleration;
+ uint32 packetThrottleDeceleration;
} ENetProtocolConnect;
typedef struct
@@ -79,6 +83,9 @@
uint32 channelCount;
uint32 incomingBandwidth;
uint32 outgoingBandwidth;
+ uint32 packetThrottleInterval;
+ uint32 packetThrottleAcceleration;
+ uint32 packetThrottleDeceleration;
} ENetProtocolVerifyConnect;
typedef struct
@@ -91,6 +98,14 @@
typedef struct
{
ENetProtocolCommandHeader header;
+ uint32 packetThrottleInterval;
+ uint32 packetThrottleAcceleration;
+ uint32 packetThrottleDeceleration;
+} ENetProtocolThrottleConfigure;
+
+typedef struct
+{
+ ENetProtocolCommandHeader header;
} ENetProtocolDisconnect;
typedef struct
@@ -131,6 +146,7 @@
ENetProtocolSendUnreliable sendUnreliable;
ENetProtocolSendFragment sendFragment;
ENetProtocolBandwidthLimit bandwidthLimit;
+ ENetProtocolThrottleConfigure throttleConfigure;
} ENetProtocol;
#endif /* __ENET_PROTOCOL_H__ */