> From: je...@nicira.com > Date: Tue, 6 Dec 2011 09:52:46 -0800 > Subject: Re: [ovs-discuss] discuss Digest, Vol 30, Issue 5 > To: kunyu...@hotmail.com > CC: discuss@openvswitch.org > > 2011/12/6 likunyun <kunyu...@hotmail.com>: > >> 1. Some questions about checksum in OVS (likunyun) > >> > >> > >> ---------------------------------------------------------------------- > >> > >> Message: 1 > >> Date: Sat, 3 Dec 2011 12:28:32 +0000 > >> From: likunyun <kunyu...@hotmail.com> > >> Subject: [ovs-discuss] Some questions about checksum in OVS > >> To: <discuss@openvswitch.org> > >> Message-ID: <blu154-w64aaecd4ab3dc5f2318a00d8...@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? Kernel is got from SLES 11-SP1. address: https://nu.novell.com/repo/$RCE/SLES11-SP1-Update/sle-11-x86_64/rpm/src source file : kernel-source-2.6.32.36-0.5.2.src.rpm
_______________________________________________ discuss mailing list discuss@openvswitch.org http://openvswitch.org/mailman/listinfo/discuss