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