Re: [udp-encap rev2] discussion/comments

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

 



On 10/5/10 12:32 PM, Phelan, Tom wrote:

[TomP] I am very against doing the checksum calculation twice, once for
UDP and then again for DCCP.  In my opinion, implementations should know
which encapsulation is being used.

I hope I'm missing something, but ...

I'm *very* against usage-context sensitive protocol definitions.

Why should my DCCP stack need to know that it got wrapped in UDP somewhere along the line?

If somebody wants to only generate one checksum, it is better that they punt the UDP checksum.

Besides, my (admittedly old) copy of Stevens indicates that UDP checksums are optional. Therefore, any random system routing the UDP packets can legally smash that checksum, no?

In addition, on an embedded system, I have to carry the code around to generate both a UDP checksum *and* a DCCP checksum if I have a DCCP stack in order to comply with this encap. If the DCCP checksum is extant, I can punt the UDP checksum code.

That's not being very nice to the people running small systems. So, for example, if I want to run DCCP on a system with lwIP, I'm going to have to go find the SO_NO_CHECK option in lwIP to enable UDP checksums, kick it on, recompile *lwIP* (and reprogram my RTOS or similar), eat the code space, and redeploy my *OS*--all just for DCCP. That's not going to win many converts.

Whereas, if you don't force the UDP checksum on people, they can deploy DCCP directly to application space without having to bash the lwIP/RTOS that's already installed.

I would also like to point out, that it is *less* compute intensive for DCCP to compute a checksum only on its headers (that is still in the spec, right?) than for UDP to have to compute a checksum on the entire DCCP packet.

So, given that all I can see are disadvantages, what am I missing? What are the advantages to using the UDP checksum?

-a


[Index of Archives]     [Linux Kernel Development]     [Linux DCCP]     [IETF Annouce]     [Linux Networking]     [Git]     [Security]     [Linux Assembly]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [DDR & Rambus]

  Powered by Linux