[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__ */