Hi, Only having thought about this shortly, I think this is reasonable to add. I might have another opinion when we actually start writing it. But in that case I will come back and tell why I have another opinion.
Cheers Magnus On 2012-10-11 04:05, Ronald Bonica wrote: > Magnus, > > I think that we are on the same page and I am nearly ready to clear my > DISCUSS. > > Would you be willing to add a short section in an Appendix that illustrates > the kind of analysis that you are requiring of a protocol that wants to rely > on UDPZero? I am thinking of something like the following: > > Sample Text > =========== > Protocol Foo encapsulates an IP datagram within the following: > > - a foo header > - a UDP header > - an outer IPv6 header > > Because the UDP checksum is set to zero, the following fields are unprotected: > > - foo header: field1 > - foo header: field2 > - UDP header: source port > - UDP header: destination port > - outer IPv6 header: source address > - outer IPv6 header: destination address > > The consequence of corruption in field1 of the foo header is mumble. The > consequence of corruption in field2 of the foo header is grumble, but only if > some other condition is true. The consequence of corruption in any other > field is, at worst, loss of the packet. > > Assume a tunnel with the following characteristics: > > - sustained data rate of 1 Gbps > - Bit error rate of 10**-12 on each of 4 constituent links > - average packet size equal to 1500 bytes > > The bullet list, below, provides an estimate of the frequency with which each > of the above mentioned fields will be corrupted: > > - foo header: field1 (once per N seconds) > - foo header: field2 (once per N seconds) > - UDP header: source port (once per N seconds) > - UDP header: destination port (once per N seconds) > - outer IPv6 header: source address (once per N seconds) > - outer IPv6 header: destination address (once per N seconds) > > ========================== > End sample text > > Does this sound reasonable? > > Ron > > > > >> -----Original Message----- >> From: Magnus Westerlund [mailto:magnus.westerl...@ericsson.com] >> Sent: Wednesday, October 10, 2012 4:59 AM >> To: Ronald Bonica >> Cc: The IESG; 6man-cha...@tools.ietf.org; draft-ietf-6man- >> udpz...@tools.ietf.org; ipv6@ietf.org >> Subject: Re: Ronald Bonica's Discuss on draft-ietf-6man-udpzero-06: >> (with DISCUSS) >> >> On 2012-10-09 20:57, Ronald Bonica wrote: >>> Ronald Bonica has entered the following ballot position for >>> draft-ietf-6man-udpzero-06: Discuss >>> >>> When responding, please keep the subject line intact and reply to all >>> email addresses included in the To and CC lines. (Feel free to cut >>> this introductory paragraph, however.) >>> >>> >>> Please refer to >>> http://www.ietf.org/iesg/statement/discuss-criteria.html >>> for more information about IESG DISCUSS and COMMENT positions. >>> >>> >>> >>> >>> --------------------------------------------------------------------- >> - >>> DISCUSS: >>> --------------------------------------------------------------------- >> - >>> >>> This is a two-part DISCUSS-DISCUSS. Both parts relate to bullet >> points >>> in Section 5.1. >>> >>> Bullet 5 >>> ====== >>> "Tunnels that encapsulate IP may rely on the inner packet >>> integrity checks provided that the tunnel will not significantly >>> increase the rate of corruption of the inner IP packet." >>> >>> - What does it mean to *significantly* increase the rate of >> corruption >>> of the inner IP packet? >> >> That is a good question. And the answer is it depends. If you are >> considering a tunnel protocols which target deployment area is one >> where you have very low rates of corruption, lets say below 10^-6 then >> a factor of 2 or even 10 might be fine as the resulting end-to-end >> basic IP service may still be fine. But if that same tunnel is supposed >> to support something that requires a packet loss rate below 10^-6 then >> any increase in corruption might be to high. >> >>> - Shouldn't we also be concerned about corruption of the UDP header >>> and any additional encapsulation that comes between the UDP header >> and >>> the inner IP packet? >> >> I think the formulation actually is considering that. If the >> IPv6/UDP/FOO tunnel protocol carries IP and FOO is senesitive to >> corruption then isn't the payload of the tunnel, i.e. the inner IP >> going to suffer an increased corruption rate. >> >>> - How does a tunnel ingress node know whether the tunnel will >>> significantly increase the rate of corruption of the inner IP packet? >> >> That is something you have to statistically analyze when designing the >> protocol and deciding on using zero-checksum. >> >>> >>> Bullet 7 >>> =====- >>> " UDP applications that support use of a zero-checksum, should not >>> rely upon correct reception of the IP and UDP protocol >>> information (including the length of the packet) when decoding >>> and processing the packet payload. In particular, the >>> application must be designed so that corruption of this >>> information does not result in accumulated state or incorrect >>> processing of a tunneled payload." >>> >>> - How could any application achieve this goal? Possibly by analyzing >>> the consequences if any field in the IPv6 or UDP header were >> corrupted? >>> (draft-ietf-6man-udpchecksums begins this analysis.) Again, wouldn't >>> the analysis have to include any additional encapsulation that comes >>> between the UDP header and the inner IP header? >> >> Yes, this is a design analysis which includes the tunnel protocols >> headers. >> >>> >>> - Wouldn't the analysis, mentioned above, have to include assurances >>> regarding the case when the destination port is corrupted? >>> Specifically, would it have to include a guarantee that if the >>> encapsulated inner packet were delivered to any randomly chosen port, >>> it would not cause any harm to the application listening on that >> port? >> >> Clearly it can't include a guarantee that it will not harm what ever is >> at the randomly chosen port. But one part we try to get across in this >> document is that this is the reason we want to ensure that default >> remains to have the UDP checksum enabled to avoid having applications >> not having considered this in their design or at least been analyzed to >> be safe enough to get zero checksummed packets. >> >> The next step is the question of potential harm is a statistics game. >> And the more traffic that are transported over the network with zero- >> checksum the higher the probability that you will get a packet not >> intended for your context. Thus you will have to deal with it. Here I >> think most tunnel egresses are reasonably simple to analyze what >> happens. You attempt to decapsulate it according to whats in the >> packet. >> If that is not a mismatch you try to do the next step for the inner >> packet, switching or forwarding that based on whats there. That either >> matches or not the context and are thus sent further or discarded. If >> there is a checksum on that level it can help discarding packets that >> completely misses the context. >> >> >> 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 >> ---------------------------------------------------------------------- > -- 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 ---------------------------------------------------------------------- -------------------------------------------------------------------- IETF IPv6 working group mailing list ipv6@ietf.org Administrative Requests: https://www.ietf.org/mailman/listinfo/ipv6 --------------------------------------------------------------------