It's not an old kernel, or the card, or tcpdump....it's the way the
socket option is used on linux. I checked the linux kernel source.

When SO_NO_CHECK is set it uses:
        0=normal default, generate UDP checksum.
        1=do not send checksums, set it to 0

This is a send only option. It does not change the way asterisk recives
UDP packets. The asterisk default is to NOT send UDP checksums with RTP....

I guess I should have looked into it a little more....so I'll say it's
not a bug, it's a choice. With no checksum there is a chance of 2 bytes
less in a compressed packet (cRTP) and the kernel (or hardware) does not
have to compute the checksum. So this whole thing is a non-issue.

FYI: Code from the Linux kernel.....if no check sum than it skips it and
just sends the packet.
        if (sk->sk_no_check == UDP_CSUM_NOXMIT) {
                skb->ip_summed = CHECKSUM_NONE;
                goto send;
        }


>
>Michael Loftis wrote:
>
>> This is a possibility, there are a decent number of hardware supported 
>> offload engines built into ethernet cards nowadays....though I don't 
>> know how many support UDP...but if yours does then you could end up 
>> without UDP checksums until it actually goes out on the wire.
>
>Very true... nearly every decent Ethernet card nowadays does IP 
>checksums on its own, many of them probably do UDP checksums as well.

  Andrew
  

_______________________________________________
Asterisk-Dev mailing list
[email protected]
http://lists.digium.com/mailman/listinfo/asterisk-dev
To UNSUBSCRIBE or update options visit:
   http://lists.digium.com/mailman/listinfo/asterisk-dev

Reply via email to