Hi Pekka,
On Jul 31, 2009, at 3:47 AM, Pekka Savola wrote:
On Thu, 30 Jul 2009, byzek wrote:
It's not about performance; a large percentage of the currently-
deployed
hardware can¹t do UDP checksum calculations during encapsulation
because it
doesn¹t have access to the entire packet. Most hardware is
streamlined to
only provide the first n bytes of a packet to the forwarding
engine, where
typically n < 128.
I'm somewhat sympathetic to this concern, but I've been assured that
it's possible to compute the outer checksum by doing an incremental
checksum calculation (see e.g. RFC1624) using the inner packet's
checksum. This would not require the access to the whole packet.
This might work at least when encapsulating IPv4 over IPv6 UDP; I
don't see how you could do this with IPv6 over IPv6 UDP due to the
lack of "base" checksum. Any thoughts on how applicable this could
be?
You would not be able to incrementally calculate the outer UDP
checksum based on the inner IPv4 checksum, you would have to do it
based on the inner UDP or TCP checksum by subtracting the inner IP
pseudo-header checksum and adding the checksum for the outer IP pseudo-
header, the UDP header and the inner IP header (all bytes, because it
is being treated as UDP payload by the outer UDP header). You might
run into problems with this approach, though, if you needed to
encapsulate non-TCP/UDP packets and/or encapsulated IPv4 packets with
a zero UDP checksum. In those cases, you'd have to checksum the whole
packet.
From the point of view of AMT specification, I don't see the need
for IPv6 UDP encapsulation, even if you buy the LAG argument (I'm
not sure if I can see 10G+ of traffic being LISP encapsulated
between a couple of routers), it doesn't apply to AMT due to
different traffic patterns.
My understanding is that AMT is using UDP so that they can use
different UDP ports for different AMT flows, similar to the LAG
argument for LISP.
Margaret
--------------------------------------------------------------------
IETF IPv6 working group mailing list
ipv6@ietf.org
Administrative Requests: https://www.ietf.org/mailman/listinfo/ipv6
--------------------------------------------------------------------