H

On 23/02/2021 12:34 AM, Linfeng Li wrote:
Hi,



We believe we found a potential bug in the QAT PMD code.



file link: https://github.com/DPDK/dpdk/blob/main/drivers/crypto/qat/qat_sym.c



The undesired behavior happens when:
*         symmetric operation
*         out-of-place operation
*         encryption
*         do cipher + do hash
*         SGL enabled on either src/dst mbuf chain
*         min_ofs is smaller than the length of the first segment of the src 
mbuf chain



behavior: In dst mbuf, payload is ciphered as expected, but mac-i remains plain 
text where it's expected to be ciphered as well.



potential cause:
*         When min_ofs is smaller than the length of the first segment of the src 
mbuf chain with the foregoing scenario , auth_param->auth_off is calculated by 
auth_ofs-min_ofs(line 512 in qat_sym.c).
*         When SGL enabled + do auth + do cipher, the remaining_off is calculated by 
auth_param->auth_off + auth_param->auth_len + alignment_adjustment(line 534 in 
qat_sym.c). so remaining_off doesn't include the offset applied on 
auth_param->auth_off in this scenario.
*         The auth_data_end(line 546 in qat_sym.c) found doesn't seem proper 
since the while loop (line 540 in qat_sym.c) iterates from the very beginning 
of the dst mbuf.



Proposal fix:

add min_ofs in the calculation of remaining_off(line 534 in qat_sym.c)



Please let us know what your thoughts are about this issue and feel free to 
contact us if there are any questions.

Linfeng


Hey Linfeng, thanks we're looking into this now, and will address in this release cycle.

Thanks
Declan

Reply via email to