Hi Konstantin, On 01/26/2015 03:15 PM, Ananyev, Konstantin wrote: >>>> 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.
Sure, I'll add this. Also, just to let you know that I tested the ipip case without the "if (l2_len) return" and "if (l3_len) return", and it is working. Regards, Olivier