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 csum 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.
_______________________________________________ discuss mailing list discuss@openvswitch.org http://openvswitch.org/mailman/listinfo/discuss