1. 31 1月, 2011 2 次提交
    • S
      batman-adv: Calculate correct size for merged packets · ae361ce1
      Sven Eckelmann 提交于
      The routing algorithm must be able to decide if a fragment can be merged with
      the missing part and still be passed to a forwarding interface. The fragments
      can only differ by one byte in case that the original payload had an uneven
      length. In that situation the sender has to inform all possible receivers that
      the tail is one byte longer using the flag UNI_FRAG_LARGETAIL.
      
      The combination of UNI_FRAG_LARGETAIL and UNI_FRAG_HEAD flag makes it possible
      to calculate the correct length for even and uneven sized payloads.
      
      The original formula missed to add the unicast header at all and forgot to
      remove the fragment header of the second fragment. This made the results highly
      unreliable and only useful for machines with large differences between the
      configured MTUs.
      Reported-by: NRussell Senior <russell@personaltelco.net>
      Reported-by: NMarek Lindner <lindner_marek@yahoo.de>
      Signed-off-by: NSven Eckelmann <sven@narfation.org>
      ae361ce1
    • S
      batman-adv: Create roughly equal sized fragments · 5c77d8bb
      Sven Eckelmann 提交于
      The routing algorithm must know how large two fragments are to be able to
      decide that it is safe to merge them or if it should resubmit without waiting
      for the second part. When these two fragments have a too different size, it is
      not possible to guess right in every situation.
      
      The user could easily configure the MTU of the attached cards so that one
      fragment is forwarded and the other one is added to the fragments table to wait
      for the missing part.
      
      For even sized packets, it is possible to split it so that the resulting
      packages are equal sized by ignoring the old non-fragment header at the
      beginning of the original packet.
      
      This still creates different sized fragments for uneven sized packets.
      Reported-by: NRussell Senior <russell@personaltelco.net>
      Reported-by: NMarek Lindner <lindner_marek@yahoo.de>
      Signed-off-by: NSven Eckelmann <sven@narfation.org>
      5c77d8bb
  2. 22 1月, 2011 16 次提交
  3. 21 1月, 2011 22 次提交