<?xml version="1.0" encoding="utf-8"?><!DOCTYPE article  PUBLIC '-//OASIS//DTD DocBook XML V4.4//EN'  'http://www.docbook.org/xml/4.4/docbookx.dtd'><article><articleinfo><title>BattleMeshV5/Tests</title><revhistory><revision><revnumber>14</revnumber><date>2012-03-31 12:34:23</date><authorinitials>Clauz</authorinitials></revision><revision><revnumber>13</revnumber><date>2012-03-30 15:52:26</date><authorinitials>Clauz</authorinitials></revision><revision><revnumber>12</revnumber><date>2012-03-27 12:02:17</date><authorinitials>Clauz</authorinitials></revision><revision><revnumber>11</revnumber><date>2012-03-27 10:04:22</date><authorinitials>Clauz</authorinitials></revision><revision><revnumber>10</revnumber><date>2012-03-21 16:34:07</date><authorinitials>Clauz</authorinitials></revision><revision><revnumber>9</revnumber><date>2012-03-06 14:36:14</date><authorinitials>Clauz</authorinitials></revision><revision><revnumber>8</revnumber><date>2012-03-01 12:37:16</date><authorinitials>Clauz</authorinitials></revision><revision><revnumber>7</revnumber><date>2012-03-01 12:05:19</date><authorinitials>Clauz</authorinitials></revision><revision><revnumber>6</revnumber><date>2012-03-01 12:02:30</date><authorinitials>Clauz</authorinitials></revision><revision><revnumber>5</revnumber><date>2012-03-01 11:50:42</date><authorinitials>Clauz</authorinitials></revision><revision><revnumber>4</revnumber><date>2012-03-01 11:12:55</date><authorinitials>Clauz</authorinitials></revision><revision><revnumber>3</revnumber><date>2012-02-29 23:37:31</date><authorinitials>Clauz</authorinitials></revision><revision><revnumber>2</revnumber><date>2012-02-29 23:32:16</date><authorinitials>Clauz</authorinitials></revision><revision><revnumber>1</revnumber><date>2012-02-29 22:08:03</date><authorinitials>Clauz</authorinitials></revision></revhistory></articleinfo><section><title>BattleMeshV5 Tests</title><section><title>General Rules</title><itemizedlist><listitem><para>same routing protocol revision and configuration for every test </para></listitem><listitem><para>routing protocols are tested in turn (i.e. not altogether) </para></listitem><listitem><para>cpu and memory consumption should be tracked during each test </para></listitem><listitem><para>no points, just results and a final analysis </para></listitem></itemizedlist></section><section><title>Tests</title><section><title>Be Quick or Be Stable Test</title><para>To be performed on a subset of the nodes. </para><screen><![CDATA[ +----+
 | L1 |-----(A) : : : : : : (B)
 +----+      :       r1      |
             :               |
             :               |
             : r2            |
             :               |
             :               |       +----+
            (C)-------------(D)------| L2 |
                                     +----+]]></screen><itemizedlist><listitem><para>L1, L2: laptops </para></listitem><listitem><para>A, B, C: wireless nodes  </para></listitem><listitem><para>link A-B uses association rate r1 </para></listitem><listitem><para>link A-C uses association rate r2 </para></listitem><listitem><para>r2 &gt; r1 </para></listitem><listitem><para>- and | are cables </para></listitem><listitem><para>: are wireless links  </para></listitem></itemizedlist><section><title>Steps</title><para>5x for each protocol </para><orderedlist numeration="arabic"><listitem><para>perform a continuous traceroute (mtr or whatever) from L1 to L2 </para></listitem><listitem><para>load the network with UDP (iperf or whatever) from L1 to L2 </para></listitem><listitem><para>start a 11 minutes download from L2 to L1 </para></listitem><listitem><para>see how many times (if any) the route flaps in 11 minutes </para></listitem><listitem><para>see if the routing protocol prefers the slow or the fast route </para></listitem></orderedlist></section><section><title>Goals</title><para>Check the stability of the routing protocol, and if the metric is effective. </para></section><section><title>References</title><itemizedlist><listitem><para><ulink url="http://www.youtube.com/watch?v=fZLv2G0Hhn4"/> </para></listitem></itemizedlist></section></section><section><title>The Channel Surfer Test</title><para>To be performed on a subset of the nodes. </para><screen><![CDATA[ +----+
 | L1 |-----(A)
 +----+      :
           x :
             :
            (B) : : : : : : (D)
             |       x       |
             |               |
             |               |      +----+
            (C) : : : : : : (E)-----| L2 |
                     y              +----+]]></screen><itemizedlist><listitem><para>L1, L2: laptops </para></listitem><listitem><para>A, B, D: nodes set on channel x </para></listitem><listitem><para>C, E: nodes set on channel y </para></listitem><listitem><para>- and | are cables </para></listitem><listitem><para>: are wireless links  </para></listitem></itemizedlist><section><title>Steps</title><para>only 1x for each protocol </para><orderedlist numeration="arabic"><listitem><para>perform a continuous traceroute (mtr or whatever) from L1 to L2  </para></listitem><listitem><para>load the network with TCP (iperf) from L1 to L2 for 21 minutes </para></listitem><listitem><para>sleep until the end of the iperf stream </para></listitem><listitem><para>see for which fraction of the time the routing protocol chooses the best route (L1-&gt;A-&gt;B-&gt;C-&gt;E-&gt;L2) </para></listitem><listitem><para>see the amount of transferred bytes </para></listitem></orderedlist></section><section><title>Goal</title><para>See if the routing protocol prefers the channel-changing route, by design or by just because is the best path.  </para></section></section><section><title>Convergence Time Test</title><para>To be performed on the whole mesh. </para><screen><![CDATA[           .~.~.~.~.~.~.~.~.~.~.~.       
 +----+   (                       ) : (GW1)-+
 | L1 | :(                         )        |   
 +----+   (                       )         |   +----+
         (                         )        +---+ L2 |
          (                       )         |   +----+
         (                         )        |
          (                       ) : (GW2)-+
         (        MESH CLOUD       )     
          .~.~.~.~.~.~.~.~.~.~.~.~.]]></screen><itemizedlist><listitem><para><emphasis>GW1</emphasis> and <emphasis>GW2</emphasis>: gateways announcing the address of <emphasis>L2</emphasis>  </para></listitem><listitem><para>The metric from L1 to GW1 is significantly better than the metric from L1 to GW2 </para></listitem></itemizedlist><section><title>Steps</title><para>repeat 3x for each protocol </para><orderedlist numeration="arabic"><listitem><para>traceroute from <emphasis>L1</emphasis> to <emphasis>L2</emphasis> and verify that the path goes through <emphasis>GW1</emphasis> </para></listitem><listitem><para>start pinging from <emphasis>L1</emphasis> to <emphasis>L2</emphasis> </para></listitem><listitem><para>start a continuous traceroute (mtr or whatever) from <emphasis>L1</emphasis> to <emphasis>L2</emphasis> </para></listitem><listitem><para>turn off <emphasis>GW1</emphasis> </para></listitem><listitem><para>count the number of pings from the first lost ping to the first subsequent successful ping </para></listitem><listitem><para>after 2 minutes from its turning off, turn back on <emphasis>GW1</emphasis> and start a stopwatch </para></listitem><listitem><para>measure the time needed to the network to use <emphasis>GW1</emphasis> again </para></listitem></orderedlist></section><section><title>Goal</title><para>Just convergence time. </para></section></section><section><title>Don't Cross the Streams Test</title><para>To be performed on the whole mesh  </para><screen><![CDATA[ +----+            .~.~.~.~.~.~.~.~.~.~.~.            +----+
 | L1 |-----(A) : (                       ) : (C)-----| L3 |
 +----+          (                         )          +----+
                  (                       )
                 (          MESH           )
                  (         CLOUD         )
 +----+          (                         )          +----+
 | L4 |-----(D) : (                       ) : (B)-----| L2 |
 +----+          (                         )          +----+
                  .~.~.~.~.~.~.~.~.~.~.~.~.]]></screen><itemizedlist><listitem><para>L1, L2, L3, L4: laptops </para></listitem><listitem><para>A, B, C, D: edge wireless nodes  </para></listitem></itemizedlist><section><title>Steps</title><para>only 1x for each protocol </para><orderedlist numeration="arabic"><listitem><para>start, at the same time: </para><orderedlist numeration="loweralpha"><listitem><para>a 21 minutes TCP stream between L1 and L2 </para></listitem><listitem><para>a 21 minutes TCP stream between L3 and L4 </para></listitem></orderedlist></listitem><listitem><para>sleep for 21 minutes </para></listitem><listitem><para>measure the total number of bytes transferred </para></listitem></orderedlist></section><section><title>Goal</title><para>See if the routing protocol can choose the paths for the two streams that maximizes throughput. </para></section><section><title>References</title><itemizedlist><listitem><para><ulink url="http://www.youtube.com/watch?v=jyaLZHiJJnE"/> </para></listitem></itemizedlist></section></section></section></section></article>