Author: toad
Date: 2008-02-14 16:19:13 +0000 (Thu, 14 Feb 2008)
New Revision: 17893
Modified:
trunk/freenet/src/freenet/l10n/freenet.l10n.en.properties
trunk/freenet/src/freenet/node/Node.java
trunk/freenet/src/freenet/node/NodeStarter.java
trunk/freenet/src/freenet/node/simulator/RealNodeNetworkColoringTest.java
trunk/freenet/src/freenet/node/simulator/RealNodePingTest.java
trunk/freenet/src/freenet/node/simulator/RealNodeRequestInsertTest.java
trunk/freenet/src/freenet/node/simulator/RealNodeRoutingTest.java
trunk/freenet/src/freenet/node/simulator/RealNodeSecretPingTest.java
trunk/freenet/src/freenet/node/simulator/RealNodeULPRTest.java
Log:
node.enablePacketCoalescing config option (mostly for simulations)
Modified: trunk/freenet/src/freenet/l10n/freenet.l10n.en.properties
===================================================================
--- trunk/freenet/src/freenet/l10n/freenet.l10n.en.properties 2008-02-14
15:46:34 UTC (rev 17892)
+++ trunk/freenet/src/freenet/l10n/freenet.l10n.en.properties 2008-02-14
16:19:13 UTC (rev 17893)
@@ -593,6 +593,8 @@
Node.dropPacketEveryLong=Frequency of dropping packets. Testing option used by
devs to simulate packet loss. 0 means never artificially drop a packet. Don't
touch this!
Node.enableARKs=Enable ARKs? (DON'T TURN THIS OFF!)
Node.enableARKsLong=Enable ARKs? (DON'T TURN THIS OFF!).
+Node.enablePacketCoalescing=Enable packet coalescing?
+Node.enablePacketCoalescingLong=Enable packet coalescing? Packet coalescing
increases bandwidth efficiency, reduces CPU usage and gains some resistance to
traffic analysis at a small cost in message latency. Don't turn this off unless
you know what you're doing.
Node.enablePerNodeFailureTables=Enable per-node failure tables?
Node.enablePerNodeFailureTablesLong=Enable automatically rerouting around
nodes that failed a request within the last 10 minutes?
Node.enableSwapping=Enable location swapping? (DO NOT TURN THIS OFF!)
Modified: trunk/freenet/src/freenet/node/Node.java
===================================================================
--- trunk/freenet/src/freenet/node/Node.java 2008-02-14 15:46:34 UTC (rev
17892)
+++ trunk/freenet/src/freenet/node/Node.java 2008-02-14 16:19:13 UTC (rev
17893)
@@ -400,6 +400,7 @@
final boolean enableULPRDataPropagation;
final boolean enableSwapping;
boolean enableSwapQueueing;
+ boolean enablePacketCoalescing;
public static final short DEFAULT_MAX_HTL = (short)10;
private short maxHTL;
/** Type identifier for fproxy node to node messages, as sent on
DMT.nodeToNodeMessage's */
@@ -825,6 +826,18 @@
});
enableSwapQueueing =
nodeConfig.getBoolean("enableSwapQueueing");
+ nodeConfig.register("enablePacketCoalescing", true,
sortOrder++, true, false, "Node.enablePacketCoalescing",
"Node.enablePacketCoalescingLong", new BooleanCallback() {
+ public boolean get() {
+ return enablePacketCoalescing;
+ }
+
+ public void set(boolean val) throws
InvalidConfigValueException {
+ enablePacketCoalescing = val;
+ }
+
+ });
+ enablePacketCoalescing =
nodeConfig.getBoolean("enablePacketCoalescing");
+
// Determine the port number
// @see #191
if(oldConfig != null &&
"-1".equals(oldConfig.get("node.listenPort")))
Modified: trunk/freenet/src/freenet/node/NodeStarter.java
===================================================================
--- trunk/freenet/src/freenet/node/NodeStarter.java 2008-02-14 15:46:34 UTC
(rev 17892)
+++ trunk/freenet/src/freenet/node/NodeStarter.java 2008-02-14 16:19:13 UTC
(rev 17893)
@@ -341,7 +341,7 @@
int dropProb, RandomSource random, Executor executor,
int threadLimit,
long storeSize, boolean ramStore, boolean
enableSwapping, boolean enableARKs,
boolean enableULPRs, boolean
enablePerNodeFailureTables,
- boolean enableSwapQueueing) throws NodeInitException {
+ boolean enableSwapQueueing, boolean
enablePacketCoalescing) throws NodeInitException {
File baseDir = new File(testName);
File portDir = new File(baseDir, Integer.toString(port));
@@ -379,6 +379,7 @@
configFS.put("node.enableARKs", enableARKs);
configFS.put("node.enableULPRDataPropagation", enableULPRs);
configFS.put("node.enablePerNodeFailureTables",
enablePerNodeFailureTables);
+ configFS.put("node.enablePacketCoalescing",
enablePacketCoalescing);
PersistentConfig config = new PersistentConfig(configFS);
Modified:
trunk/freenet/src/freenet/node/simulator/RealNodeNetworkColoringTest.java
===================================================================
--- trunk/freenet/src/freenet/node/simulator/RealNodeNetworkColoringTest.java
2008-02-14 15:46:34 UTC (rev 17892)
+++ trunk/freenet/src/freenet/node/simulator/RealNodeNetworkColoringTest.java
2008-02-14 16:19:13 UTC (rev 17893)
@@ -78,21 +78,21 @@
for(int i=0;i<NUMBER_OF_NODES;i++) {
allNodes[totalNodes] =
subnetA[i] =
- NodeStarter.createTestNode(5001+totalNodes, wd, false, true,
true, MAX_HTL, 0 /* no dropped packets */, random, executor,
500*NUMBER_OF_NODES, storeSize, true, true, false, false, false, false);
+ NodeStarter.createTestNode(5001+totalNodes, wd, false, true,
true, MAX_HTL, 0 /* no dropped packets */, random, executor,
500*NUMBER_OF_NODES, storeSize, true, true, false, false, false, false, true);
totalNodes++;
Logger.normal(RealNodeRoutingTest.class, "Created 'A' node
"+totalNodes);
}
for(int i=0;i<NUMBER_OF_NODES;i++) {
allNodes[totalNodes] =
subnetB[i] =
- NodeStarter.createTestNode(5001+totalNodes, wd, false,
true, true, MAX_HTL, 0 /* no dropped packets */, random, executor,
500*NUMBER_OF_NODES, storeSize, true, true, false, false, false, false);
+ NodeStarter.createTestNode(5001+totalNodes, wd, false,
true, true, MAX_HTL, 0 /* no dropped packets */, random, executor,
500*NUMBER_OF_NODES, storeSize, true, true, false, false, false, false, true);
totalNodes++;
Logger.normal(RealNodeRoutingTest.class, "Created 'B' node
"+totalNodes);
}
for(int i=0;i<BRIDGES;i++) {
allNodes[totalNodes] =
bridges[i] =
- NodeStarter.createTestNode(5001+totalNodes, wd, false,
true, true, MAX_HTL, 0 /* no dropped packets */, random, executor,
500*NUMBER_OF_NODES, storeSize, true, true, false, false, false, false);
+ NodeStarter.createTestNode(5001+totalNodes, wd, false,
true, true, MAX_HTL, 0 /* no dropped packets */, random, executor,
500*NUMBER_OF_NODES, storeSize, true, true, false, false, false, false, true);
totalNodes++;
Logger.normal(RealNodeRoutingTest.class, "Created bridge node
"+totalNodes);
}
Modified: trunk/freenet/src/freenet/node/simulator/RealNodePingTest.java
===================================================================
--- trunk/freenet/src/freenet/node/simulator/RealNodePingTest.java
2008-02-14 15:46:34 UTC (rev 17892)
+++ trunk/freenet/src/freenet/node/simulator/RealNodePingTest.java
2008-02-14 16:19:13 UTC (rev 17893)
@@ -33,8 +33,8 @@
RandomSource random = NodeStarter.globalTestInit("pingtest", false,
Logger.ERROR, "");
// Create 2 nodes
Executor executor = new PooledExecutor();
- Node node1 = NodeStarter.createTestNode(5001, "pingtest", false,
false, true, Node.DEFAULT_MAX_HTL, 0, random, executor, 1000, 65536, true,
false, false, false, false, false);
- Node node2 = NodeStarter.createTestNode(5002, "pingtest", false,
false, true, Node.DEFAULT_MAX_HTL, 0, random, executor, 1000, 65536, true,
false, false, false, false, false);
+ Node node1 = NodeStarter.createTestNode(5001, "pingtest", false,
false, true, Node.DEFAULT_MAX_HTL, 0, random, executor, 1000, 65536, true,
false, false, false, false, false, true);
+ Node node2 = NodeStarter.createTestNode(5002, "pingtest", false,
false, true, Node.DEFAULT_MAX_HTL, 0, random, executor, 1000, 65536, true,
false, false, false, false, false, true);
// Connect
node1.connect(node2);
node2.connect(node1);
Modified:
trunk/freenet/src/freenet/node/simulator/RealNodeRequestInsertTest.java
===================================================================
--- trunk/freenet/src/freenet/node/simulator/RealNodeRequestInsertTest.java
2008-02-14 15:46:34 UTC (rev 17892)
+++ trunk/freenet/src/freenet/node/simulator/RealNodeRequestInsertTest.java
2008-02-14 16:19:13 UTC (rev 17893)
@@ -34,7 +34,7 @@
*/
public class RealNodeRequestInsertTest extends RealNodeRoutingTest {
- static final int NUMBER_OF_NODES = 50;
+ static final int NUMBER_OF_NODES = 25;
static final int DEGREE = 5;
static final short MAX_HTL = (short)10;
static final boolean START_WITH_IDEAL_LOCATIONS = false;
@@ -43,6 +43,7 @@
static final boolean ENABLE_ULPRS = false;
static final boolean ENABLE_PER_NODE_FAILURE_TABLES = false;
static final boolean ENABLE_SWAP_QUEUEING = true;
+ static final boolean ENABLE_PACKET_COALESCING = false;
static final int TARGET_SUCCESSES = 20;
//static final int NUMBER_OF_NODES = 50;
@@ -58,7 +59,7 @@
wd.mkdir();
//NOTE: globalTestInit returns in ignored random source
//NodeStarter.globalTestInit(name, false, Logger.ERROR,
"freenet.node.Location:normal,freenet.node.simulator.RealNode:minor,freenet.node.Insert:MINOR,freenet.node.Request:MINOR,freenet.node.Node:MINOR");
- NodeStarter.globalTestInit(name, false, Logger.ERROR,
"freenet.node.Location:MINOR,freenet.io.comm:MINOR,freenet.node.NodeDispatcher:MINOR");
+ NodeStarter.globalTestInit(name, false, Logger.ERROR,
"freenet.node.Location:MINOR,freenet.io.comm:MINOR,freenet.node.NodeDispatcher:MINOR,freenet.node.simulator:MINOR,freenet.node.PeerManager:MINOR");
//NodeStarter.globalTestInit(name, false, Logger.ERROR, "");
System.out.println("Insert/retrieve test");
System.out.println();
@@ -69,7 +70,7 @@
Executor executor = new PooledExecutor();
for(int i=0;i<NUMBER_OF_NODES;i++) {
nodes[i] =
- NodeStarter.createTestNode(5001+i, name, false, true, true,
MAX_HTL, 20 /* 5% */, random, executor, 500*NUMBER_OF_NODES, 256*1024, true,
ENABLE_SWAPPING, false, ENABLE_ULPRS, ENABLE_PER_NODE_FAILURE_TABLES,
ENABLE_SWAP_QUEUEING);
+ NodeStarter.createTestNode(5001+i, name, false, true, true,
MAX_HTL, 20 /* 5% */, random, executor, 500*NUMBER_OF_NODES, 256*1024, true,
ENABLE_SWAPPING, false, ENABLE_ULPRS, ENABLE_PER_NODE_FAILURE_TABLES,
ENABLE_SWAP_QUEUEING, ENABLE_PACKET_COALESCING);
Logger.normal(RealNodeRoutingTest.class, "Created node "+i);
}
Modified: trunk/freenet/src/freenet/node/simulator/RealNodeRoutingTest.java
===================================================================
--- trunk/freenet/src/freenet/node/simulator/RealNodeRoutingTest.java
2008-02-14 15:46:34 UTC (rev 17892)
+++ trunk/freenet/src/freenet/node/simulator/RealNodeRoutingTest.java
2008-02-14 16:19:13 UTC (rev 17893)
@@ -56,7 +56,7 @@
for(int i=0;i<NUMBER_OF_NODES;i++) {
System.err.println("Creating node "+i);
nodes[i] =
- NodeStarter.createTestNode(5001+i, dir, false, true, true,
MAX_HTL, 0 /* no dropped packets */, random, executor, 500*NUMBER_OF_NODES,
65536, true, ENABLE_SWAPPING, false, false, false, ENABLE_SWAP_QUEUEING);
+ NodeStarter.createTestNode(5001+i, dir, false, true, true,
MAX_HTL, 0 /* no dropped packets */, random, executor, 500*NUMBER_OF_NODES,
65536, true, ENABLE_SWAPPING, false, false, false, ENABLE_SWAP_QUEUEING, true);
Logger.normal(RealNodeRoutingTest.class, "Created node "+i);
}
Logger.normal(RealNodeRoutingTest.class, "Created "+NUMBER_OF_NODES+"
nodes");
Modified: trunk/freenet/src/freenet/node/simulator/RealNodeSecretPingTest.java
===================================================================
--- trunk/freenet/src/freenet/node/simulator/RealNodeSecretPingTest.java
2008-02-14 15:46:34 UTC (rev 17892)
+++ trunk/freenet/src/freenet/node/simulator/RealNodeSecretPingTest.java
2008-02-14 16:19:13 UTC (rev 17893)
@@ -66,7 +66,7 @@
for(int i=0;i<NUMBER_OF_NODES;i++) {
nodes[i] =
- NodeStarter.createTestNode(5001+i, wd, false, true, true,
MAX_HTL, 0 /* no dropped packets */, random, executor, 500*NUMBER_OF_NODES,
storeSize, true, true, false, false, false, true);
+ NodeStarter.createTestNode(5001+i, wd, false, true, true,
MAX_HTL, 0 /* no dropped packets */, random, executor, 500*NUMBER_OF_NODES,
storeSize, true, true, false, false, false, true, true);
Logger.normal(RealNodeRoutingTest.class, "Created node "+i);
}
Logger.normal(RealNodeRoutingTest.class, "Created "+NUMBER_OF_NODES+"
nodes");
Modified: trunk/freenet/src/freenet/node/simulator/RealNodeULPRTest.java
===================================================================
--- trunk/freenet/src/freenet/node/simulator/RealNodeULPRTest.java
2008-02-14 15:46:34 UTC (rev 17892)
+++ trunk/freenet/src/freenet/node/simulator/RealNodeULPRTest.java
2008-02-14 16:19:13 UTC (rev 17893)
@@ -80,7 +80,7 @@
Executor executor = new PooledExecutor();
for(int i=0;i<NUMBER_OF_NODES;i++) {
nodes[i] =
- NodeStarter.createTestNode(5000+i, testName, false, true, true,
MAX_HTL, 20 /* 5% */, random, executor, 500*NUMBER_OF_NODES, 1024*1024, true,
ENABLE_SWAPPING, false, ENABLE_ULPRS, ENABLE_PER_NODE_FAILURE_TABLES, true);
+ NodeStarter.createTestNode(5000+i, testName, false, true, true,
MAX_HTL, 20 /* 5% */, random, executor, 500*NUMBER_OF_NODES, 1024*1024, true,
ENABLE_SWAPPING, false, ENABLE_ULPRS, ENABLE_PER_NODE_FAILURE_TABLES, true,
true);
Logger.normal(RealNodeRoutingTest.class, "Created node "+i);
}
SimpleFieldSet refs[] = new SimpleFieldSet[NUMBER_OF_NODES];