chiark / gitweb /
Sort properly
[vinegar-ip.git] / README
diff --git a/README b/README
index 2072a74d335072fb9f69e8f5abec1c2c7003c877..759e2bc3871be9978fb618e855f0acfd7298fa38 100644 (file)
--- a/README
+++ b/README
@@ -42,30 +42,38 @@ WHAT TO DO
            You /must/ change SOURCE and DEST (or override them on
            the `make' command line, if you prefer); they must be
                <IPv4-address>/<ethernet-address>
+            The destination ethernet address should be the address
+            of your next hop *router*, while the destination IPv4
+           address should be that of the destination machine.
            You may also change PARTS, PERPART or MTU if you like.
        * Say `make -j2 all'.  This will generate the test data sets.
            This will take a while.  Vary the -j for your system.
            If you want to do a quick test first, you can say
            `make few' first, instead.
        * Copy send-1.pcap and send-all.pcap to the sending machine.
-       * Copy on-dest.sh to the to the receiving machine.
+       * Copy on-dest.sh and monitor.sh to the to the receiving machine.
 
 2. Run the first, small test
        * On the receiving machine, say, as root,
-               ./on-dest.sh 1
-           and leave it running.
+               ./on-dest.sh 1 [-i <interface>]
+           and leave it running.  Also, in a nice big window, say
+               ./monitor.sh [-i <interface>]
+           and leave that running too.  The default interface is
+           the one that tcpdump picks by default.
        * On the sending machine, say, as root,
-               tcpreplay -m 1 <send-1.pcap
-           The -m 1 option makes tcpreplay send the packets at one a
-           second (they are generated as if they were captured at one
-           a second); this avoids flooding the network, which causes
-           congestion, packet loss and maybe other randomness.
-           This will take (by default) 100 seconds.
-       * When it has finished, kill on-dest.sh.  Copy the
-           file recv-1.pcap back to your analysis machine, and
-           there say `make analyse' (or `make anal' if you prefer).
-       * This will generate `recv-1.log' and `recv-1.diff'.
-           Read the diff and see if it's by and large working.
+               tcpreplay -m 1 <send-1.pcap [-i <interface>]
+           You should see the results in your monitoring window.
+           This will take (by default) 100 seconds.  The -m 1 option
+           makes tcpreplay send the packets at one a second (they are
+           generated as if they were captured at one a second); this
+           avoids flooding the network, which causes congestion,
+           packet loss and maybe other randomness.
+       * When it has finished, kill on-dest.sh and monitor.sh.
+            Copy the file recv-1.pcap back to your analysis machine, and
+           there say `make anal'.
+       * This will generate
+               recv-1.log  recv-1.diff  recv-1.mdiff  recv-1.summary
+           Read the diffs and see if it's by and large working.
            See below for information about interpreting the various files.
 
 3. Run the full test
@@ -82,9 +90,12 @@ FILES INVOLVED
        send-X.why      The generator's explanations (ha ha) of
                         what the test data is
        on-dest.sh      Script for running tcpdump on the destination
+                        to capture the packets as they come in
+       monitor.sh      Script for running tcpdump on either end
+                        for monitoring how it's going
    You really want to be paying attention to the ones where
-   X is `1' and `all'.  The others, 2 onwards, are all in
-   `all' and it'll be easier to take them all at once.
+   X is `1' and `all'.  `all' contains all the numbered parts,
+   and it'll be easier to do them all at once.
 
    Those supposedly captured at the destination
        recv-X.pcap     `pcap' format raw received packets
@@ -96,6 +107,28 @@ FILES INVOLVED
 
 INTERPRETATION OF THE TEXT FILES - EXAMPLE
 
+
+You probably want to start with the recv-*.summary files.  Here's an
+example line (folded and indented here to make it easier to read:
+
+-7      80.4.4.56 > 212.22.195.1: 6.115.30.33.50 > 158.55.15.27.50: \
+     udp 37 (DF) [tos 0xaf] (ttl 255, id 55590) [tos 0x62] (ttl ###, id 21803)
+
+This means that packet no.7 either the packet didn't arrive, or
+tcpdump produced different a summary line for the second packet.
+The *.summary file is sorted crudely by the type of packet.
+
+The recv-*.summary and recv-*.mdiff files DO NOT contain information
+about packets whose bodies changed, unless tcpdump reported the change
+in its summary.  recv-*.diff contains ALL changes, even to meaningless
+parts of packets, except changes to the IP TTL and IP header checksum
+(which are expected to change).
+
+So, you can then look in recv-1.mdiff and recv-1.diff for more
+information about packet no.7, if you're interested.  See below for
+help on interpreting the diffs.
+
+
 Here is an example of a diff you might see:
 
 @@ -23,12 +15,7 @@
@@ -118,24 +151,23 @@ lines marked with `-'.  The changed numbers at the left are just the
 packet numbers.  You can use the numbers marked with `-' to find the
 corresponding packet in the other files.  Ignore the numbers marked
 with `+', they aren't useful.  In this case, it's packet 5 that's
-missing.  So, we can look in send-1.why or send-rest.why, as
+missing.  So, we can look in send-1.why or send-all.why, as
 appropriate, and see this:
 
+batch  packet within batch
+   |  /
    1 5  tos=0xe7 id=30130 df (!any) proto=icmp[1] \
                  (any) type=75 (junk) l=11 code=140
        45e7002375b24000ff0152f2ac122d23ac122d064b8c34ba4844ce2d1bde5caf0ab9e6
 
-In send-all.why, these are prepended by another line number, which is
-the one you should use, so it would look like this:
+or this:
 
+        batch  packet within batch
+           |  /
      5     1 5  tos=0xe7 id=30130 df (!any) proto=icmp[1] \
-                         (any) type=75 (junk) l=11 code=140
-              45e7002375b24000ff0152f2ac122d23ac122d064b8c34ba4844ce2d\
-                                                         1bde5caf0ab9e6
-
-(The other two numbers are the batch and line within the batch.
-I have wrapped this here with \ and some indentation for ease of
-reading.)
+    /                    (any) type=75 (junk) l=11 code=140
+  overall      45e7002375b24000ff0152f2ac122d23ac122d064b8c34ba4844ce2d\
+ packet no.                                               1bde5caf0ab9e6
 
 You can see the hex dump of the packet, which is the same as the one
 in the tcpdump output, except that the tcpdump one has some extra