Hello Michael:

Huge thanks.

Let's see:

pg: 6, section 4.1:

 Sequence:  5 bit unsigned integer; the sequence number of the
      fragment.  Fragments are sequence numbered [0..N] where N is in
      [0..31].  As long as the overheads enable a fragment size of 64
      bits or more, this enables to fragment a packet of 2047 octets.
      ^^^^ <- I think you mean octets?

[Pascal] that's a oups, fixed in 07.

-------------------


 Fragment_offset:  11 bit unsigned integer; when set to 0, this field
      indicates an abort condition; else, its value depends on the value
      of the Sequence.  When the sequence is not 0, this field indicates
      the offset of the fragment in the compressed form.  When the
      sequence is 0, denoting the first fragment of a datagram, this

reword. I think it means:
  if Sequence > 0; fragment_offset == 0 => abort.
                 ; else offset of fragment
  if Sequence ==0; fragment_offset is total size of datagram.
  
--------------------

   
[Pascal] This is effectively a big stone you are unturning. The intent of the 
initial logic is:

If fragment_offset == 0; forward of you can and cleanup (aka abort)
          ; else
                  if Sequence ==0; fragment_offset is total size of datagram
                                      ; else fragment_offset is offset in the 
datagram in octets


[Pascal] With the current text (sequence, offset) tuple of (0, 0) is 
significant whereas with your proposal, this tuple becomes a protocol error. 
Either way, we probably need some more text what nodes should do in that case. 
I'm not too much in favor of creating an error case; error flows have a 
tendency to not perform well.

[Pascal] Let's consider this: (0,0) could be useful, because it carries the 
original IP header so there's a chance it goes all the a to the reassembly end 
point even if the forwarding state is broken midway; this could be important 
because the end point is where the buffers are wasted. And because it may be 
routed differently than a previous (0, X>0), a (0, 0) may fail to clean up 
state along the old path even when the old path is not broken. We'll note that 
the old path may be cleanup all the way back (to the breakage if there's one) 
by a reset message from the end point. That reset message could be stimulated 
by receiving  a (0, 0). But with the 6LoWPAN signaling as it stands now, the 
end point may not recognize that this is the same IP packet because the 
datagram tags would possibly be different, being switched differently along 
different routes. If we care to take that path, we need the end points to 
exchange end-to-end IDs for the flows. Doable but expensive. Worth it?

[Pascal] In order to protect the future, I'd say that (0, 0) should be 
supported. It should be routed, using the same label path if one exists that is 
not broken on this next hop. Cleanup should be performed. I reformed the text 
along those line





-------------------------------



Are FRFRAG-ACK's subject to 6loRH compression in anyway?
(I don't think it helps, but, whenever I see a potential series of zeros, I
wonder)
 
[Pascal] No to the 6LoRH piece, but possibly yes to the idea of compression. 
You'll find in earlier versions of the draft that a compression of the bitmap 
was proposed. I spent iterations adding and removing it based on one person's 
feedback; not an easy choice since it is a tradeoff between over the air 
performance and code complexity. 

More in section 6.2 of 
https://tools.ietf.org/html/draft-thubert-6lowpan-simple-fragment-recovery-06

Let's reach consensus on that! 


-------------------------------

section 5 says:
   The process ensures that at every hop, the source
   MAC address and the datagram_tag in the received fragment are enough
   information to send the RFRAG Acknowledgment back towards the source
   6LoWPAN endpoint by reversing the MPLS operation.

It seems that we are assuming SLAAC built addresses using EUI-64s?
(which could well be 2-byte short addresses too!)  otherwise, mapping From MAC 
address back to an IPv6 address is not possible?

[Pascal] I do not see how/why. 

[Pascal] All it means is that the MPLS operation address is indexed by the 
tuple (incoming link - as identifies by smac, label - the datagram tag). No big 
news there, once created an MPLS LSP can carry non IP traffic. 

[Pascal] The novelty is rather that the LSP is created on the fly with the 
first fragment of an IP packet, and removed once the packet as fully flown 
through.

----------------------------------------

then says:
   It is
   expected that the upper layer retries obey the same or friendly rules
   in which case a single round of fragment recovery should fit within
   the upper layer recovery timers.

"the same or friendly rules"  <-- missing a word?

[Pascal] slight rewording, added ref to 8085 
[Pascal] 

----------------


section 6:
   Upon the first
   fragment, the routers along the path install a label-switched path
   (LSP), and the sollowing fragments are label-switched along that
   path.

s/sollowing/following/

6.1: s/ia route lookup/a route lookup/

  allocates a label-swap entry indexed by (MAC_previous,
  DT_previous) that contains (MAC_next, DT_next)

[Pascal] done, thanks!

----------------------

It seems that really do have to go read LSP documents to understand things :-)
RFC3031 had better be a normative reference then, or section 6.1 needs to have 
some pictures and much more explanation.  I will have to go re-read
3031 to understand what a "label-swap entry" is exactly.

[Pascal] well, this refers to text in this spec:
"
allocates an abstract label-swap entry indexed by (MAC_previous, DT_previous) 
that contains (MAC_next, DT_next)
"
Maybe some reorg is needed to highlight that structure.

------------
   change the source MAC address to from MAC_prev to MAC_self

"to from" --- is this correct, or is there an extra word here?
[Pascal] 
[Pascal] fixed typo : )

--

I just pushed 07. Thanks again Michael!

Pascal



_______________________________________________
6lo mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/6lo

Reply via email to