Ethereal-cvs: [Ethereal-cvs] cvs commit: ethereal packet-ipv6.c packet-clnp.c

Note: This archive is from the project's previous web site, ethereal.com. This list is no longer active.

From: Guy Harris <guy@xxxxxxxxxxxxxxxxxxx>
Date: Sat, 19 Apr 2003 19:21:18 -0500 (CDT)
guy         2003/04/19 19:21:18 CDT

  Modified files:
    .                    packet-ipv6.c packet-clnp.c 
  Log:
  Use "fragment_add_check()" for IPv6 and CLNP reassembly.  (Possibly an
  issue for CLNP, with its 16-bit IDs, which could be duplicated in a
  sufficiently large capture even if CLNP implementations don't
  deliberately reuse IDs; less of an issue for IPv6, with its 32-bit IDs
  and with its prohibition on reuse:
  
     For every packet that is to be fragmented, the source node generates
     an Identification value. The Identification must be different than
     that of any other fragmented packet sent recently* with the same
     Source Address and Destination Address.  If a Routing header is
     present, the Destination Address of concern is that of the final
     destination.
  
        * "recently" means within the maximum likely lifetime of a packet,
          including transit time from source to destination and time spent
          awaiting reassembly with other fragments of the same packet.
          However, it is not required that a source node know the maximum
          packet lifetime.  Rather, it is assumed that the requirement can
          be met by maintaining the Identification value as a simple, 32-
          bit, "wrap-around" counter, incremented each time a packet must
          be fragmented.  It is an implementation choice whether to
          maintain a single counter for the node or multiple counters,
          e.g., one for each of the node's possible source addresses, or
          one for each active (source address, destination address)
          combination.
  
  but perhaps we'll ultimately be able to get rid of the old
  "fragment_add()" entirely and rename "fragment_add_check()" to
  "fragment_add()").
  
  Revision  Changes    Path
  1.95      +5 -2      ethereal/packet-ipv6.c
  1.71      +6 -3      ethereal/packet-clnp.c