1. 14 3月, 2013 1 次提交
    • M
      batman-adv: network coding - add the initial infrastructure code · d353d8d4
      Martin Hundebøll 提交于
      Network coding exploits the 802.11 shared medium to allow multiple
      packets to be sent in a single transmission. In brief, a relay can XOR
      two packets, and send the coded packet to two destinations. The
      receivers can decode one of the original packets by XOR'ing the coded
      packet with the other original packet. This will lead to increased
      throughput in topologies where two packets cross one relay.
      
      In a simple topology with three nodes, it takes four transmissions
      without network coding to get one packet from Node A to Node B and one
      from Node B to Node A:
      
       1.  Node A  ---- p1 --->  Node R                Node B
       2.  Node A                Node R  <--- p2 ----  Node B
       3.  Node A  <--- p2 ----  Node R                Node B
       4.  Node A                Node R  ---- p1 --->  Node B
      
      With network coding, the relay only needs one transmission, which saves
      us one slot of valuable airtime:
      
       1.  Node A  ---- p1 --->  Node R                Node B
       2.  Node A                Node R  <--- p2 ----  Node B
       3.  Node A  <- p1 x p2 -  Node R  - p1 x p2 ->  Node B
      
      The same principle holds for a topology including five nodes. Here the
      packets from Node A and Node B are overheard by Node C and Node D,
      respectively. This allows Node R to send a network coded packet to save
      one transmission:
      
         Node A                  Node B
      
          |     \              /    |
          |      p1          p2     |
          |       \          /      |
          p1       > Node R <       p2
          |                         |
          |         /      \        |
          |    p1 x p2    p1 x p2   |
          v       /          \      v
                 /            \
         Node C <              > Node D
      
      More information is available on the open-mesh.org wiki[1].
      
      This patch adds the initial code to support network coding in
      batman-adv. It sets up a worker thread to do house keeping and adds a
      sysfs file to enable/disable network coding. The feature is disabled by
      default, as it requires a wifi-driver with working promiscuous mode, and
      also because it adds a small delay at each hop.
      
      [1] http://www.open-mesh.org/projects/batman-adv/wiki/CatwomanSigned-off-by: NMartin Hundebøll <martin@hundeboll.net>
      Signed-off-by: NMarek Lindner <lindner_marek@yahoo.de>
      Signed-off-by: NAntonio Quartulli <ordex@autistici.org>
      d353d8d4
  2. 08 11月, 2012 2 次提交
  3. 02 7月, 2012 1 次提交
    • S
      batman-adv: Remove bat_ prefix from bat_{debugfs, sysfs}.{c, h} · b706b13b
      Sven Eckelmann 提交于
      The "bat_" prefix in the source files implementing the batman-adv sysfs and
      debugfs interface doesn't have a special meaning and are only used by these
      files and files that implement the actual B.A.T.M.A.N. path finding algorithm.
      
      The prefix is better suited to mark files that are used to implement the main
      part of the path finding. All other files should not use it and therefore gets
      renamed.
      Signed-off-by: NSven Eckelmann <sven@narfation.org>
      b706b13b
  4. 11 4月, 2012 2 次提交
    • S
      batman-adv: add bridge loop avoidance compile option · 7a5cc242
      Simon Wunderlich 提交于
      The define CONFIG_BATMAN_ADV_BLA switches the bridge loop avoidance
      on - skip it, and the bridge loop avoidance is not compiled in.
      
      This is useful if binary size should be saved or the feature is
      not needed.
      Signed-off-by: NSimon Wunderlich <siwu@hrz.tu-chemnitz.de>
      Signed-off-by: NAntonio Quartulli <ordex@autistici.org>
      7a5cc242
    • S
      batman-adv: add basic bridge loop avoidance code · 23721387
      Simon Wunderlich 提交于
      This second version of the bridge loop avoidance for batman-adv
      avoids loops between the mesh and a backbone (usually a LAN).
      
      By connecting multiple batman-adv mesh nodes to the same ethernet
      segment a loop can be created when the soft-interface is bridged
      into that ethernet segment. A simple visualization of the loop
      involving the most common case - a LAN as ethernet segment:
      
      node1  <-- LAN  -->  node2
        |                   |
      wifi   <-- mesh -->  wifi
      
      Packets from the LAN (e.g. ARP broadcasts) will circle forever from
      node1 or node2 over the mesh back into the LAN.
      
      With this patch, batman recognizes backbone gateways, nodes which are
      part of the mesh and backbone/LAN at the same time. Each backbone
      gateway "claims" clients from within the mesh to handle them
      exclusively. By restricting that only responsible backbone gateways
      may handle their claimed clients traffic, loops are effectively
      avoided.
      Signed-off-by: NSimon Wunderlich <siwu@hrz.tu-chemnitz.de>
      Signed-off-by: NAntonio Quartulli <ordex@autistici.org>
      23721387
  5. 17 2月, 2012 1 次提交
  6. 08 9月, 2011 2 次提交
  7. 31 1月, 2011 1 次提交
  8. 17 12月, 2010 1 次提交
  9. 30 11月, 2010 1 次提交
  10. 08 10月, 2010 1 次提交
  11. 05 9月, 2010 1 次提交
  12. 09 7月, 2010 1 次提交
  13. 23 6月, 2010 1 次提交
  14. 12 5月, 2010 3 次提交
  15. 04 3月, 2010 2 次提交
  16. 12 12月, 2009 1 次提交