Hi Olivier, > -----Original Message----- > From: Olivier MATZ [mailto:olivier.matz at 6wind.com] > Sent: Monday, January 26, 2015 2:07 PM > To: Liu, Jijiang; Ananyev, Konstantin; Zhang, Helin > Cc: dev at dpdk.org > Subject: Re: [dpdk-dev] [PATCH v3 0/3] enhance TX checksum command and csum > forwarding engine > > Hi, > > On 01/26/2015 07:02 AM, Liu, Jijiang wrote: > >> I tried to repeat Olivier test-cases on my box. > >> Though, I didn't use test-pmd cusmonly and i40ePMD logic, but filled TCD > >> and > >> TDD mostly from hardcoded values. > >> That's what I got: > >> > >> 4 input packets: > >> a) ETHER/IPv4/UDP/VXLAN/ETHER/IPV4/TCP > >> b) ETHER/IPv4/GRE/ETHER/IPV4/TCP > >> c) ETHER/IPv4/GRE/IPV4/TCP > >> d) ETHER/IPv4/IPV4/TCP > >> > >> 1/ L4TUNT==1(I40E_TXD_CTX_UDP_TUNNELING): > >> a),b): all checksums ok > >> c),d): not transmitted by HW. > >> > >> 2/ L4TUNT==2(I40E_TXD_CTX_GRE_TUNNELING): > >> a) b),c): all checksums ok > >> d): not transmitted by HW. > >> > >> 3/ L4TUNT==0(UNKNOWN): > >> a),b),c),d): all checksums ok > >> > >> So yes, it seems that L4TUNT==0 works perfectly ok for all cases, as long > >> as > >> L4TUNLEN and other TCD values are setup properly. > >> Which makes me think, that probably we can do what you suggested: just use > >> L4TUNT=0 for all cases. > >> Though as Jijiang said, we waiting for confirmation from FVL guys, that > >> there are > >> no hidden implications with that approach. > > > > Yes, the L4TUNT=0 is ok for all cases. > > Great! Thanks for testing on your side too. > > > But we still need to get confirmation from FVL guys, probably there are > > some issues in HW/FW. > > I and Helin will confirm this with FVL guys ASAP. > > OK, thank you. > > >> Another thing - IPIP seems to work ok by HW. > >> There is something wrong on our (PMD/test-pmd) side. > >> I think at least we have to remove the following check: > >> if (!l2_len) { > >> PMD_DRV_LOG(DEBUG, "L2 length set to 0"); > >> return; > >> } > >> in i40e_txd_enable_checksum(). > > > > Yes, for IPIP, the check should be removed. > > Yes, I think these lines should be removed for 2 reasons: > - it may be the cause of ipip tunnel not working > - we shouldn't do these kind of tests in dataplane. I think we have to > suppose that the data passed to the PMD is valid. > > I'll redo the test with ipip tomorrow with this fix and let you > know the result. If it works, I'll add this in the next version > of the patch.
While you are on this, can I suggest you'll add debug logging for TCD and TDD we are writing to the TX ring? Something like that: + PMD_TX_LOG(DEBUG, "mbuf: %p, TCD[%u]:\n" + "tunneling_params: %#x;\n" + "l2tag2: %#hx;\n" + "rsvd: %#hx;\n" + "type_cmd_tso_mss: %#lx;\n", + tx_pkt, tx_id, + ctx_txd->tunneling_params, + ctx_txd->l2tag2, + ctx_txd->rsvd, + ctx_txd->type_cmd_tso_mss); And same for TDD. It helped me a lot to figure out what is going on, when I did my tests. Probably would be useful for other people too. Konstantin > > Regards, > Olivier