1. 12 1月, 2014 1 次提交
  2. 09 1月, 2014 2 次提交
  3. 19 10月, 2013 2 次提交
  4. 12 10月, 2013 1 次提交
  5. 29 5月, 2013 1 次提交
  6. 19 1月, 2013 1 次提交
  7. 21 11月, 2012 1 次提交
  8. 02 7月, 2012 1 次提交
  9. 21 6月, 2012 2 次提交
  10. 17 2月, 2012 1 次提交
  11. 08 9月, 2011 2 次提交
  12. 05 7月, 2011 1 次提交
  13. 20 6月, 2011 2 次提交
    • A
      batman-adv: improved client announcement mechanism · a73105b8
      Antonio Quartulli 提交于
      The client announcement mechanism informs every mesh node in the network
      of any connected non-mesh client, in order to find the path towards that
      client from any given point in the mesh.
      
      The old implementation was based on the simple idea of appending a data
      buffer to each OGM containing all the client MAC addresses the node is
      serving. All other nodes can populate their global translation tables
      (table which links client MAC addresses to node addresses) using this
      MAC address buffer and linking it to the node's address contained in the
      OGM. A node that wants to contact a client has to lookup the node the
      client is connected to and its address in the global translation table.
      
      It is easy to understand that this implementation suffers from several
      issues:
       - big overhead (each and every OGM contains the entire list of
         connected clients)
       - high latencies for client route updates due to long OGM trip time and
         OGM losses
      
      The new implementation addresses these issues by appending client
      changes (new client joined or a client left) to the OGM instead of
      filling it with all the client addresses each time. In this way nodes
      can modify their global tables by means of "updates", thus reducing the
      overhead within the OGMs.
      
      To keep the entire network in sync each node maintains a translation
      table version number (ttvn) and a translation table checksum. These
      values are spread with the OGM to allow all the network participants to
      determine whether or not they need to update their translation table
      information.
      
      When a translation table lookup is performed in order to send a packet
      to a client attached to another node, the destination's ttvn is added to
      the payload packet. Forwarding nodes can compare the packet's ttvn with
      their destination's ttvn (this node could have a fresher information
      than the source) and re-route the packet if necessary. This greatly
      reduces the packet loss of clients roaming from one AP to the next.
      Signed-off-by: NAntonio Quartulli <ordex@autistici.org>
      Signed-off-by: NMarek Lindner <lindner_marek@yahoo.de>
      Signed-off-by: NSven Eckelmann <sven@narfation.org>
      a73105b8
    • S
      batman-adv: Reduce usage of char · b4e17054
      Sven Eckelmann 提交于
      char was used in different places to store information without really
      using the characteristics of that data type or by ignoring the fact that
      char has not a well defined signedness.
      Signed-off-by: NSven Eckelmann <sven@narfation.org>
      b4e17054
  14. 30 5月, 2011 1 次提交
  15. 08 5月, 2011 1 次提交
  16. 05 3月, 2011 1 次提交
  17. 12 2月, 2011 1 次提交
  18. 31 1月, 2011 1 次提交
  19. 17 12月, 2010 1 次提交
  20. 05 9月, 2010 3 次提交
  21. 09 7月, 2010 1 次提交
  22. 23 6月, 2010 1 次提交
  23. 12 5月, 2010 3 次提交
  24. 04 3月, 2010 1 次提交
    • S
      Staging: batman-adv: receive packets directly using skbs · e7017195
      Simon Wunderlich 提交于
      This patch removes the (ugly and racy) packet receiving thread and the
      kernel socket usage. Instead, packets are received directly by registering
      the ethernet type and handling skbs instead of self-allocated buffers.
      
      Some consequences and comments:
      
       * we don't copy the payload data when forwarding/sending/receiving data
         anymore. This should boost performance.
       * packets from/to different interfaces can be (theoretically) processed
         simultaneously. Only the big originator hash lock might be in the way.
       * no more polling or sleeping/wakeup/scheduling issues when receiving
         packets
       * this might introduce new race conditions.
       * aggregation and vis code still use packet buffers and are not (yet)
         converted.
       * all spinlocks were converted to irqsave/restore versions to solve
         some lifelock issues when preempted. This might be overkill, some
         of these locks might be reverted later.
       * skb copies are only done if neccesary to avoid overhead
      
      performance differences:
      
       * we made some "benchmarks" with intel laptops.
       * bandwidth on Gigabit Ethernet increased from ~500 MBit/s to ~920 MBit/s
       * ping latency decresed from ~2ms to ~0.2 ms
      
      I did some tests on my 9 node qemu environment and could confirm that
      usual sending/receiving, forwarding, vis, batctl ping etc works.
      Signed-off-by: NSimon Wunderlich <siwu@hrz.tu-chemnitz.de>
      Acked-by: NSven Eckelmann <sven.eckelmann@gmx.de>
      Acked-by: NMarek Lindner <lindner_marek@yahoo.de>
      Acked-by: NLinus Lüssing <linus.luessing@web.de>
      Signed-off-by: NAndrew Lunn <andrew@lunn.ch>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      e7017195
  25. 12 12月, 2009 1 次提交