1. 30 10月, 2016 1 次提交
    • L
      batman-adv: Simple (re)broadcast avoidance · 3111beed
      Linus Lüssing 提交于
      With this patch, (re)broadcasting on a specific interfaces is avoided:
      
      * No neighbor: There is no need to broadcast on an interface if there
        is no node behind it.
      
      * Single neighbor is source: If there is just one neighbor on an
        interface and if this neighbor is the one we actually got this
        broadcast packet from, then we do not need to echo it back.
      
      * Single neighbor is originator: If there is just one neighbor on
        an interface and if this neighbor is the originator of this
        broadcast packet, then we do not need to echo it back.
      
      Goodies for BATMAN V:
      
      ("Upgrade your BATMAN IV network to V now to get these for free!")
      
      Thanks to the split of OGMv1 into two packet types, OGMv2 and ELP
      that is, we can now apply the same optimizations stated above to OGMv2
      packets, too.
      
      Furthermore, with BATMAN V, rebroadcasts can be reduced in certain
      multi interface cases, too, where BATMAN IV cannot. This is thanks to
      the removal of the "secondary interface originator" concept in BATMAN V.
      Signed-off-by: NLinus Lüssing <linus.luessing@c0d3.blue>
      Signed-off-by: NSven Eckelmann <sven@narfation.org>
      Signed-off-by: NSimon Wunderlich <sw@simonwunderlich.de>
      3111beed
  2. 19 10月, 2016 1 次提交
  3. 09 8月, 2016 1 次提交
  4. 04 7月, 2016 1 次提交
  5. 30 6月, 2016 4 次提交
  6. 10 5月, 2016 1 次提交
    • S
      batman-adv: Check hard_iface refcnt before calling function · 27353446
      Sven Eckelmann 提交于
      The batadv_hardif_list list is checked in many situations and the items
      in this list are given to specialized functions to modify the routing
      behavior. At the moment each of these called functions has to check
      itself whether the received batadv_hard_iface has a refcount > 0 before
      it can increase the reference counter and use it in other objects.
      
      This can easily lead to problems because it is not easily visible where
      all callers of a function got the batadv_hard_iface object from and
      whether they already hold a valid reference.
      
      Checking the reference counter directly before calling a subfunction
      with a pointer from the batadv_hardif_list avoids this problem.
      Signed-off-by: NSven Eckelmann <sven@narfation.org>
      Signed-off-by: NMarek Lindner <mareklindner@neomailbox.ch>
      Signed-off-by: NAntonio Quartulli <a@unstable.cc>
      27353446
  7. 04 5月, 2016 2 次提交
  8. 29 2月, 2016 4 次提交