[ovs-discuss] discuss Digest, Vol 30, Issue 5

Jesse Gross jesse at nicira.com
Tue Dec 6 09:52:46 PST 2011


2011/12/6 likunyun <kunyunli at hotmail.com>:
>> 1. Some questions about checksum in OVS (likunyun)
>>
>>
>> ----------------------------------------------------------------------
>>
>> Message: 1
>> Date: Sat, 3 Dec 2011 12:28:32 +0000
>> From: likunyun <kunyunli at hotmail.com>
>> Subject: [ovs-discuss] Some questions about checksum in OVS
>> To: <discuss at openvswitch.org>
>> Message-ID: <BLU154-W64AAECD4AB3DC5F2318A00D8B70 at phx.gbl>
>> Content-Type: text/plain; charset="gb2312"
>>
>>
>> Hello,
>>
>> Recently I did the rate test about open vswitch based on xen. When I did
>> the test about VM-to-Native,there are some problem.
>> VM could ping the Native.
>> When VM sends UDP packet to Native(A computer without virtualization), VM
>> sends millions packet but Native only get 200 packets.
>> When VM sends TCP packet to Native, netperf can't establish the connection
>> .
>>
>> I enabled netdevice's tx csu m in VM, and also enabled the physical
>> netdevice's tx csum in dom0.
>> When I disable the netdevice's tx csum in VM. It works,Native can get
>> packets normally.
>>
>> When VM sends UDP packets(64byte), I fetched the skb before it was been
>> sent into net device driver.
>> I found :
>> skb->ip_summed =3
>> skb->csum_offset = 0
>> skb->csum_start = 6
>> Normally skb->csum_start should be 0x34 and skb->csum_offset shou be 0x6
>>
>> I found the fuction set_skb_csum_pointers() in datapath/checksum.c line
>> 253:
>> void set_skb_csum_pointers(struct sk_buff *skb, u16 csum_start, u16
>> csum_offset)
>> {
>> OVS_CB(skb)->csum_start = csum_start;
>> skb->csum = csum_offset;
>> }
>> When I changed the function like below, It works,Native can get packets
>> normally.:
>> void set_skb_csum_pointers(struct sk_buff *skb, u16 csum_start, u16
>> csum_offset)
>> {
>> OVS_CB(skb)->csum _start = csum_start;
>> skb->csum_start = csum_start;
>> skb->csum_offset = csum_offset;
>> }
>>
>> Are there somebody meet this problem? Is the change reasonable?
>> And I am newly about ovs, How does OVS_CB(skb)->csum_start workes in OVS ?
>>
>> Test Information:
>> openvswitch: 1.2.2
>> VM:suse11-64
>> tool: netperf 2.4.5
>> Dom0 Kernel: linux-2.6.36
>> net device: intel 82599
>> net device driver: ixgbe-3.3.8
>>
>> Thanks.
>
> I confirmed the condition ,I am so sorry that I had made a  mistake.
> Dom0 kernel's version is 2.6.32.36 ,not 2.6.36.
> proto_data_valid is been defined in struct sk_buff in kernel 2.6.32.36.

Is this a distribution kernel or is there some place where I can find
the kernel source for it?


More information about the discuss mailing list