Date: Wed, 19 Aug 2009 17:38:19 +0200
   From: "Pascal Thubert (pthubert)" <[email protected]>

Pascal,

   In route over the L2 source changes at each hop. The datagram tag is
   associated to the source MAC and only valid (and unique) for that source
   MAC.

   Upon a first fragment:
   ----------------------
   [...]

   Upon next fragments (that are not first fragments)
   --------------------------------------------------
   [...]

   Upon fr-acks:
   ----------
   - lookup (MAC_nxt, DT_nxt) to get (MAC_prv, DT_prv)
   - If not found drop.
   - else swap mac and tag and forward, as before
   - if the bitmap is acks all (could change the draft to make it all ones)
   or errors (all zeroes) cleanup resource

You have to be careful about cleaning up just because you
see a complete ack.  Transmission is unreliable in both
directions.  If an intermediate node deletes the record and
the source fails to get the complete ack, the source will
start over from the beginning, even though the destination
already has the packet.  And with the label/datagram_tag
swapping, the destination has no way of knowing that the
retransmission is a copy of a packet it has already received.

   It appears that with the local operation above any node
   can play the game or not without knowledge that the peers
   also do. In other words, we could reassemble along the
   way and only nodes that wish/know_how_to skip the process
   would do so.

I still think that there needs to be a way to distinguish
between an intermittent problem, where just resending a
dropped fragment is enough, and a broken route.  This gets
a lot harder if an intermediate node might reassemble the
packet.
                             -Richard Kelsey
_______________________________________________
6lowpan mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/6lowpan

Reply via email to