I agree with the comments from Magnus. I can promise to also check the next revision for consistency with the udpzero draft, but that would be easier with the reorganisation, that Magnus has suggested.

I also add the following:

There are some pointers to use-cases in the introduction that are not referenced, whereas I would have expected quite tightly-defined use-cases in line with the udpzero draft.
  "More recently, a discussion on the DCCP mailing list covered
   the UDP over IPv6 checksum issues.
- I recall this in the context of DCCP-over-UDP, but the conclusion was that UDP MUST provide a checksum. I think if you want to discuss DCCP, you should also state the conclusion and rationale why (i.e. because of the need to protect the header fields).
The draft later also says:
"o  A key cause of this issue generally is the lack of protocol
    support in middleboxes.  Specifically, new protocols, such as
    DCCP, are being forced to use UDP tunnels just to traverse an end-
    to-end path successfully and avoid having their packets dropped by
    middleboxes.  If this were not the case, the use of UDP-lite might
    become more viable for some (but not necessarily all) lightweight
    tunneling protocols."
- However, the DCCP working group specifically chose not to use a tunnel approach, and instead used a double encapsulation, in which the processing at the receiver uses both the UDP and DCCP header fields, specifically the UDP checksum was mandated. Maybe this is not the best example?

I'm not sure whether UDP-Lite will be supported over IPv6 middleboxes, because I don't personally know about significant deployment of either.

  "Other users of UDP as a tunneling
   protocol, for example, L2TP..."
- Do you envisage this as a host tunnel?

In section 1.3 the draft describes:
  "UDP keep-alive packets with checksum zero can be sent to validate
   paths, given that paths between tunnel endpoints can change and so
   middleboxes in the path may vary during the life of the
   association."
- I agree. Are these being defined for this specification? What functions are required? And if so, are the keep-alive datagrams of any specific format, periodicity, and how do they validate the path, i.e., are the datagrams acknowledged?

The draft also says:
"We suggest
 that decoupling IPv6 header protection from transport generally
 should be studied in this workgroup.  One approach might be to
 consider an extension header for IPv6 containing (at least) a
 header checksum.  However, that is beyond the scope of this draft."
- I'm not for or against this, but there are considerations and we need to be clear if this is an IETF recommendation, or a good idea for some future work: There have been other initiatives in the IETF that have looked at the pros and cons of separating the endpoint and routing functions.

I'd be most happy to do a detailed review of a new version.

Gorry

On 14/04/2011 13:09, Chimento, Philip F. wrote:
Hi Magnus:
Very good comments, thank you. We'll make the changes and address these.

Marshall: Do you have the latest XML? If you send it to me, I can try to get
these comments addressed by early next week (Mon or Tue).
Thanks.
Regards, Phil


On 4/14/11 8:01 AM, "Magnus Westerlund"<magnus.westerl...@ericsson.com>
wrote:

(resend due to bad author alias address)
Hi,

I have made a review of the draft and have some comments on it.

1. Needs to indicate that it updates RFC2460 (when approved). This
usually goes into the header of the front page. The abstract and as part
of the introduction.

2. The abstract is way to meager. It needs to make clear, what it does,
that there are limitations and that it updates RFC 2460.

3. Style of writing. This is a document that updates and will be the
specification of a change of the IPv6 specification. Currently it still
reads like a change proposal. From my perspective it needs to be more
authoritative. This is something we have decided to do. Thus the
document should be written like:
1. Introduction: We are changing the UDP zero checksum rule in IPv6.
2. Short motivation why.
3. Change to specification. Old text that is replaced. New text.

Some places where this is evident:
- Section 1, last paragraph on page 3: Not long term relevant and using
terms that make less sense in an RFC.
- Section 1.4 "Recommend Solution": Wrong title. Should be its own main
section. First paragraph.

4. Section 1.4:
       In cases, where the encapsulating
       protocol uses a zero checksum for UDP, the receiver of packets in
       the allowed port range MUST NOT discard packets with a UDP
       checksum of zero.

"in the allowed port range" seems wrong, isn't "to a port that has been
enabled to receive zero checksum" so that the full sentence reads:

In cases, where the encapsulating protocol uses a zero checksum for UDP,
the receiver of packets to a port that has been enabled to receive zero
checksum MUST NOT discard packets with a UDP checksum of zero.

5. Section 1.4 bullet 1:
       1.  IPv6 protocol stack implementations SHOULD NOT by default
           allow the new method.  The default node receiver behaviour
           MUST discard all IPv6 packets carrying UDP packets with a zero
           checksum.

I think "new method" is unclear in this sentence. Yes, I know it is from
my draft. However, in the context of actually doing the change it needs
to be more crisp and clear.

6. Section 1.4, bullet 3:
       3.  RFC 2460 specifies that IPv6 nodes should log UDP datagrams
           with a zero-checksum.  This should remain the case for any
           datagram received on a port that does not explicitly enable
           zero-checksum processing.  A port for which zero-checksum has
           been enabled MUST NOT log the datagram.

Should we clarify that it MUST NOT log for the reason of it having a
zero checksum. It may still be logged but for other reasons. The
simplest change appears to say:

A port for which zero-checksum has been enabled MUST NOT log the
datagram for that reason.

7. Section 1.4, bullet 5:
       5.  UDP Tunnels that encapsulate IP MUST rely on the inner packet
           integrity checks provided that the tunnel will not
           significantly increase the rate of corruption of the inner IP
           packet.  If a significantly increased corruption rate can
           occur, then the tunnel MUST provide an additional integrity
           verification mechanism.  An integrity mechanism is always
           recommended at the tunnel layer to ensure that corruption
           rates of the inner most packet are not increased.

I think the first "MUST" is actually not correct. I think "MAY" is
actually more correct. If you transport IP as inner packet, then you MAY
rely on that being corruption verified by itself, the outer header
doesn't need to take that responsibility providing that the corruption
rate will not be increase. However disallowing additional checks was not
the intention here.

8. Section 1.5 should have its own main section.

Cheers

Magnus Westerlund

----------------------------------------------------------------------
Multimedia Technologies, Ericsson Research EAB/TVM
----------------------------------------------------------------------
Ericsson AB                | Phone  +46 10 7148287
Färögatan 6                | Mobile +46 73 0949079
SE-164 80 Stockholm, Sweden| mailto: magnus.westerl...@ericsson.com
----------------------------------------------------------------------

Regards,
Phil Chimento

JHU/APL
240-228-1743
443-778-1743
philip.chime...@jhuapl.edu

--------------------------------------------------------------------
IETF IPv6 working group mailing list
ipv6@ietf.org
Administrative Requests: https://www.ietf.org/mailman/listinfo/ipv6
--------------------------------------------------------------------

Reply via email to