[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