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];


Reply via email to