Author: mrogers
Date: 2006-08-08 10:25:41 +0000 (Tue, 08 Aug 2006)
New Revision: 9962
Modified:
trunk/apps/load-balancing-sims/phase5-coalescing/Peer.java
trunk/apps/load-balancing-sims/phase5-coalescing/TokenBucket.java
Log:
Minor logging changes
Modified: trunk/apps/load-balancing-sims/phase5-coalescing/Peer.java
===================================================================
--- trunk/apps/load-balancing-sims/phase5-coalescing/Peer.java 2006-08-08
10:11:27 UTC (rev 9961)
+++ trunk/apps/load-balancing-sims/phase5-coalescing/Peer.java 2006-08-08
10:25:41 UTC (rev 9962)
@@ -18,7 +18,7 @@
public final static double COALESCE = 0.1; // Max delay in seconds
// Out-of-order delivery with eventual detection of missing packets
- public final static int SEQ_RANGE = 1000; // Packets
+ public final static int SEQ_RANGE = 1000;
// Token bucket bandwidth limiter
public final static int BUCKET_RATE = 1000; // Bytes per second
@@ -58,13 +58,13 @@
// Queue a message for transmission
public void sendMessage (Message m)
{
- log (m + " added to transmission queue");
+ log (m + " added to message queue");
// Warning: until token-passing is implemented the length of
- // the transmission queue is unlimited
+ // the message queue is unlimited
double now = Event.time();
msgQueue.add (new Deadline<Message> (m, now + COALESCE));
msgQueueSize += m.size;
- log (msgQueue.size() + " messages in transmission queue");
+ log (msgQueue.size() + " messages in queue");
// Start the node's timer if necessary
node.startTimer();
// Send as many packets as possible
@@ -84,17 +84,16 @@
if (now - lastTransmission > RTO * rtt) window.reset();
lastTransmission = now;
- Packet p = new Packet();
-
// Work out how large a packet we can send
- int payload = Packet.MAX_SIZE - p.size - ackQueueSize;
+ int headersAndAcks = Packet.HEADER_SIZE + ackQueueSize;
+ int payload = Packet.MAX_SIZE - headersAndAcks;
if (payload > msgQueueSize) payload = msgQueueSize;
- int win = window.available() - p.size - ackQueueSize;
+ int win = window.available() - headersAndAcks;
if (win <= 0) log ("no room in congestion window for messages");
if (payload > win) payload = win;
- int bw = bandwidth.available() - p.size - ackQueueSize;
+ int bw = bandwidth.available() - headersAndAcks;
if (bw <= 0) log ("no bandwidth available for messages");
if (payload > bw) payload = bw;
@@ -105,6 +104,7 @@
}
// Put all waiting acks in the packet
+ Packet p = new Packet();
for (Deadline<Integer> a : ackQueue) p.addAck (a.item);
ackQueue.clear();
ackQueueSize = 0;
@@ -137,8 +137,8 @@
if (p.messages != null) {
p.seq = txSeq++;
p.sent = now;
+ txBuffer.add (p);
window.bytesSent (p.size);
- txBuffer.add (p);
}
// Send the packet
@@ -150,10 +150,11 @@
private void sendAck (int seq)
{
+ log ("ack " + seq + " added to ack queue");
double now = Event.time();
ackQueue.add (new Deadline<Integer> (seq, now + COALESCE));
ackQueueSize += Packet.ACK_SIZE;
- log (ackQueue.size() + " acks in ack queue");
+ log (ackQueue.size() + " acks in queue");
// Start the node's timer if necessary
node.startTimer();
// Send as many packets as possible
Modified: trunk/apps/load-balancing-sims/phase5-coalescing/TokenBucket.java
===================================================================
--- trunk/apps/load-balancing-sims/phase5-coalescing/TokenBucket.java
2006-08-08 10:11:27 UTC (rev 9961)
+++ trunk/apps/load-balancing-sims/phase5-coalescing/TokenBucket.java
2006-08-08 10:25:41 UTC (rev 9962)
@@ -17,11 +17,13 @@
lastUpdated = now;
tokens += elapsed * rate;
if (tokens > size) tokens = size;
+ Event.log (tokens + " tokens available");
return (int) tokens;
}
public void remove (int t)
{
tokens -= t; // Counter can go negative
+ Event.log (t + " tokens removed, " + tokens + " available");
}
}