Hi All, I am using odp-dpdk(odp-0.2 tag). I am testing odp-ipsec application. To add ESP and AH header in case of encryption, I am moving header into HEADROOM instead of moving the payload and put header. I am able to make it successful. But once in a while i am facing header corruption issue because sometime the offset of mb.buf_addr from mb is not equal to sizeof(odp_packet_hdr_t).
odp_packet_hdr_t | HEADROOM | packet data Here, First part should be sizeof(odp_packet_hdr_t ), But i am getting it sometime 64 instead of 192(which is cache line round up of sizeof(odp_packet_hdr_t )). But only mb.buf_addr offset from mb is 64, actual data(odp packet header) is till 192 byte from mb. So according to calculation, When i am moving data to HEADROOM, i am corrupting some part of odp_packet_hdr_t and then application crashes. This corruption happens because odp_packet_hdr_t is till 192 byte from mb, but application is receiving like, mb=0 mb->buf_addr = 64, mb->pkt.data = 192(Complition of headroom). So in actual odp_packet_hdr_t part continues in HEADROOM also, and once i move anything in headroom, I am corrupting odp packet header. I have observed that when buffer is allocated from mempool in dpdk, mb->buf_addr from mb is not proper. Once application starts receiving buffer of wrong offsets, then subsequent all buffer will with same problem. If we do not do anything with headroom then everything works fine because odp packet header is safe even 128 byte of it is in headroom section. Has anybody faced this issue? Is this issue known, any pointers? Thanks _______________________________________________ lng-odp mailing list lng-odp@lists.linaro.org https://lists.linaro.org/mailman/listinfo/lng-odp