1. 14 5月, 2012 2 次提交
    • A
      batman-adv: unset the TT_CLIENT_PENDING flag if the new local entry already exists · 521251f2
      Antonio Quartulli 提交于
      When trying to add a new tt_local_entry, if such entry already exists, we have
      to ensure that the TT_CLIENT_PENDING flag is not set, otherwise the entry will
      be deleted soon.
      Reported-by: NSimon Wunderlich <siwu@hrz.tu-chemnitz.de>
      Signed-off-by: NAntonio Quartulli <ordex@autistici.org>
      521251f2
    • A
      batman-adv: improve unicast packet (re)routing · 3275e7cc
      Antonio Quartulli 提交于
      In case of a client X roaming from a generic node A to another node B, it is
      possible that a third node C gets A's OGM but not B's. At this point in time, if
      C wants to send data to X it will send a unicast packet destined to A. The
      packet header will contain A's last ttvn (C got A's OGM and so it knows it).
      
      The packet will travel towards A without being intercepted because the ttvn
      contained in its header is the newest for A.
      
      Once A will receive the packet, A's state will not report to be in a "roaming
      phase" (because, after a roaming, once A sends out its OGM, all the changes are
      committed and the node is considered not to be in the roaming state anymore)
      and it will match the ttvn carried by the packet. Therefore there is no reason
      for A to try to alter the packet's route, thus dropping the packet because the
      destination client is not there anymore.
      
      However, C is well aware that it's routing information towards the client X is
      outdated as it received an OGM from A saying that the client roamed away.
      Thanks to this detail, this patch introduces a small change in behaviour: as
      long as C is in the state of not knowing the new location of client X it will
      forward the traffic to its last known location using ttvn-1 of the destination.
      By using an older ttvn node A will be forced to re-route the packet.
      Intermediate nodes are also allowed to update the packet's destination as long
      as they have the information about the client's new location.
      Signed-off-by: NAntonio Quartulli <ordex@autistici.org>
      3275e7cc
  2. 11 5月, 2012 1 次提交
  3. 18 4月, 2012 1 次提交
  4. 11 4月, 2012 3 次提交
  5. 11 3月, 2012 1 次提交
  6. 28 2月, 2012 1 次提交
  7. 17 2月, 2012 9 次提交
  8. 17 12月, 2011 1 次提交
  9. 07 12月, 2011 2 次提交
    • A
      batman-adv: delete global entry in case of roaming · 797399b4
      Antonio Quartulli 提交于
      When receiving a DEL change for a client due to a roaming event (change is
      marked with TT_CLIENT_ROAM), each node  has to check if the client roamed
      to itself or somewhere else.
      
      In the latter case the global entry is kept to avoid having no route at all
      otherwise we can safely delete the global entry
      Signed-off-by: NAntonio Quartulli <ordex@autistici.org>
      797399b4
    • A
      batman-adv: in case of roaming mark the client with TT_CLIENT_ROAM · 03fc3070
      Antonio Quartulli 提交于
      In case of a client roaming from node A to node B, the latter have to mark the
      corresponding global entry with TT_CLIENT_ROAM (instead of TT_CLIENT_PENDING).
      
      Marking a global entry with TT_CLIENT_PENDING will end up in keeping such entry
      forever (because this flag is only meant to be used with local entries and it is
      never checked on global ones).
      
      In the worst case (all the clients roaming to the same node A) the local and the
      global table will contain exactly the same clients. Batman-adv will continue to
      work, but the memory usage is duplicated.
      Signed-off-by: NAntonio Quartulli <ordex@autistici.org>
      03fc3070
  10. 20 11月, 2011 7 次提交
  11. 25 10月, 2011 2 次提交
  12. 19 10月, 2011 2 次提交
  13. 22 8月, 2011 6 次提交
  14. 08 7月, 2011 2 次提交