[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [RRG] The use of UDP in LISP




On Dec 10, 2007, at 3:56 PM, Iljitsch van Beijnum wrote:

On 10 dec 2007, at 17:51, Stephen Sprunk wrote:

In IPv4 UDP checksums are optional, but not in IPv6.

That's because IPv4 has its own header checksum and IPv6 doesn't.

If you say so...

The work for IPv6 with a UDP checksum is no worse than for IPv4 without a UDP checksum.

Huh? If there is no checksum you simply process the packet -> done. If there is a checksum, you need to sum all 16-bit words in the packet, which is a somewhat expensive operation if you can't do it while you're copying the packet anyway.

I guess you could optimize this by taking the checksum from the TCP or UDP payload of the inner packet and just do an incremental checksum of everything that's not part of that checksum (only a few IP header fields and the new UDP and other headers that are inserted). But not doing a checksum is a much more attractive proposition.

I think that this will require a modification to (ugh!) RFC 2460 - which says

     o  Unlike IPv4, when UDP packets are originated by an IPv6 node,
        the UDP checksum is not optional.  That is, whenever
        originating a UDP packet, an IPv6 node must compute a UDP
        checksum over the packet and the pseudo-header, and, if that
        computation yields a result of zero, it must be changed to hex
        FFFF for placement in the UDP header.  IPv6 receivers must
        discard UDP packets containing a zero checksum, and should log
        the error.


Dino Farinacci has suggested this text :

o When a IPv6 router is using a UDP header as part of a tunnel encapsulation, it MAY compute a UDP checksum. The IPv6 router on the other side of the tunnel receives a UDP checksum of non-zero it MUST compute the checksum according to [UDP-spec]. When an IPv6 router uses a UDP header for tunnel encapsulation and sets the UDP checksum field to 0, the IPv6 router on the other side of the tunnel MUST not compute the checksum on the received
  packet. This procedure allows tunnel routers to behave the same for
  tunnel encapsulating IPv4 and IPv6 packets.

At the least AMT and LISP would require this, and I suspect that there will be others.

Regards
Marshall



--
to unsubscribe send a message to rrg-request@psg.com with the
word 'unsubscribe' in a single line as the message text body.
archive: <http://psg.com/lists/rrg/> & ftp://psg.com/pub/lists/rrg


--
to unsubscribe send a message to rrg-request@psg.com with the
word 'unsubscribe' in a single line as the message text body.
archive: <http://psg.com/lists/rrg/> & ftp://psg.com/pub/lists/rrg