On Oct 26, 2006, at 2:53 PM, gabriel montenegro wrote:

Thanks for sharing this work, Phil.
Is there anything in there that would prompt you to suggest a change in the
base format document?

Most of the points raised seem particularly relevant
to the design of the routing protocols. As you know, the format document does not do this, so I'm wondering how much (if anything) is relevant to it as opposed to the routing specifications for lowpan (of which there are several drafts in existence). One could add some text calling for better feedback from the link-layer (as the paper recommends), but I cannot see what difference this would make on the actual protocol, as in, "bits in the air".

I noticed that the first point about links being bimodal leads to some text in the paper that points out a potential flaw in the current fragment reassembly
logic.

In particular, your paper points out some issue with this text in the format document:

   If a link fragment is received that overlaps another fragment as
   identified above, the fragment(s) already accumulated in the
   reassembly buffer SHALL be discarded.  A fresh reassembly may be
   commenced with the most recently received link fragment.  Fragment
overlap is determined by the combination of datagram_offset from the encapsulation header and "Frame Length" from the 802.15.4 PPDU packet
   header.

The text in the paper mentions an issue with duplicate fragments:

...if a system follows the 6lowpan requirements that an overlapping fragment flush all other fragments, then imperfect duplicate suppression may cause a receiver to flush fragments that were acknowledged at the data link layer.

I believe there is some confusion here. The intent is not for duplicate fragments to cause a flush of all previously received fragments. That case is actually not mentioned explicitly, but the sensible thing to do would be to simply ignore the duplicate fragments. These you can recognize by their datagram tags (dgram_tag), your header and the "Frame Length" from the 802.15.4 frame.

The *intent* of the text is error-handling. If there is a non- duplicate fragment that has an overlap (not a dup) over previously received fragments, this is an error condition: this implies the sender laid out its IP datagram, sliced it into fragments in two different ways and is sending you fragments from those two
different ways, using the same datagram_tag. Very confusing.

The normal occurrence is for the sender to cut the IP datagram in only one given way, give it a datagram_tag and send those fragments out to the receiver. The receiver
will either:
1. receive fragments with no overlap at all (they all cover different ranges in
      the original IP datagram), or
2. receive fragments which are duplicates (I guess one could call them "perfect
      overlaps", hence the confusion above?)

I'm not sure how likely #2 is, but the format document certainly has no intention
to mess with it.

The text refers to 2. Our reading of "overlap" included the degenerate case of what you call perfect overlap. Does that seem reasonable?

As an aside, I assumed that besides error conditions, the draft was also considering problems such as encountered by TCP stacks (IIRC, some stacks discard the new payload, others use the new payload). While CRCs would likely makes this moot, it *is* an error condition and so you might as well preclude it.


Is this clearer? Would you suggest some text change to avoid this confusion?


I think just saying what you want (I think?) to say would be best, and distinguish the two cases.

"If a link fragment is received that overlaps another fragment as identified above and differs in either the size or datagram_offset of the overlapped fragment..."

Apologies for the terseness: it's a product of preparing the next release of TinyOS and so being a bit overwhelmed.

See you in San Diego...

Phil
_______________________________________________
6lowpan mailing list
[email protected]
https://www1.ietf.org/mailman/listinfo/6lowpan

Reply via email to