<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Windows-1252">
<style type="text/css" style="display:none;"> P {margin-top:0;margin-bottom:0;} </style>
</head>
<body dir="ltr">
<div style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);" class="elementToProof">
Sorry for the various series I pushed. I attempted in reply to but it seemed to create a new series. If I am making changes to one commit in a series, do I need to resend all commits with an updated version? In such a case do I reply to the series or the specific
change I am updating? </div>
<div style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);" class="elementToProof">
<br>
</div>
<div style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);" class="elementToProof">
Regarding the comments on adding UDC as a new algo: UDC uses raw deflate and is not a separate algo in itself. Support for pre defined dictionaries is already supported by zlib and is not UDC specific per se. </div>
<div id="Signature">
<div style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
Thanks<br>
Sameer Vaze</div>
</div>
<div id="appendonsend"></div>
<hr style="display:inline-block;width:98%" tabindex="-1">
<div id="divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif" style="font-size:11pt" color="#000000"><b>From:</b> Akhil Goyal <gakhil@marvell.com><br>
<b>Sent:</b> Tuesday, September 30, 2025 2:03 PM<br>
<b>To:</b> Sameer Vaze <svaze@qti.qualcomm.com>; Fan Zhang <fanzhang.oss@gmail.com>; Ashish Gupta <ashishg@marvell.com><br>
<b>Cc:</b> dev@dpdk.org <dev@dpdk.org><br>
<b>Subject:</b> RE: [EXTERNAL] [PATCH 1/3] compressdev: support for dictionaries and PDCP checksum</font>
<div> </div>
</div>
<div class="BodyFragment"><font size="2"><span style="font-size:11pt;">
<div class="PlainText">WARNING: This email originated from outside of Qualcomm. Please be wary of any links or attachments, and do not enable macros.<br>
<br>
Hi Sameer,<br>
> Adds definitions for PDCP checksums and apis to pass in<br>
> dictionaries<br>
I think you need to define new algo UDC as well.<br>
<br>
><br>
> Signed-off-by: Sameer Vaze <svaze@qti.qualcomm.com><br>
<br>
Please update version in the patch title while sending the new version.<br>
It took me a lot of time to figure out which version I should review and reply to.<br>
I can see there are 10s of series spammed without updating the version.<br>
Please take care of this while sending the next version.<br>
Also add in-reply-to tag of previous version while sending next version.<br>
Please check <a href="https://doc.dpdk.org/guides/contributing/patches.html#sending-patches">
https://doc.dpdk.org/guides/contributing/patches.html#sending-patches</a><br>
<a href="https://doc.dpdk.org/guides/contributing/patches.html#the-review-process">https://doc.dpdk.org/guides/contributing/patches.html#the-review-process</a><br>
<br>
> ---<br>
And you should also specify change log here after ---<br>
<br>
> lib/compressdev/rte_comp.h | 31 +++++++++++++++++++++++++++++++<br>
> 1 file changed, 31 insertions(+)<br>
><br>
> diff --git a/lib/compressdev/rte_comp.h b/lib/compressdev/rte_comp.h<br>
> index 96d9b276dd..169d3d960e 100644<br>
> --- a/lib/compressdev/rte_comp.h<br>
> +++ b/lib/compressdev/rte_comp.h<br>
> @@ -101,6 +101,10 @@ enum rte_comp_op_status {<br>
> * is not an error case. Output data up to op.produced can be used and<br>
> * next op in the stream should continue on from op.consumed+1.<br>
> */<br>
> + RTE_COMP_OP_STATUS_CHECK_SUM_VALIDATION_FAILED,<br>
> + /**< Checksum validation failed. Either calculated does checksum not<br>
> match<br>
> + * the one provided or there was an error calculating the checksum<br>
> + */<br>
> };<br>
><br>
> /** Compression Algorithms */<br>
> @@ -166,6 +170,10 @@ enum rte_comp_checksum_type {<br>
> /**< Generates a xxHash-32 checksum, as used by LZ4.<br>
> * <a href="https://urldefense.proofpoint.com/v2/url?u=https-">https://urldefense.proofpoint.com/v2/url?u=https-</a><br>
> 3A__github.com_Cyan4973_xxHash_blob_dev_doc_xxhash-<br>
> 5Fspec.md&d=DwIDAg&c=nKjWec2b6R0mOyPaz7xtfQ&r=DnL7Si2wl_PRwpZ9TW<br>
> ey3eu68gBzn7DkPwuqhd6WNyo&m=YLWffSHu_HeEi63ZTpMIS7uCsbTGlu1gZDDe<br>
> Pxv8nL7v3JAvIdKcNrrUq3BR5Y22&s=b5bCLrPbUjjxy1ItxfYQOUoHAnDjqjVwVfh6il<br>
> TDCIw&e=<br>
> */<br>
> + RTE_COMP_CHECKSUM_3GPP_PDCP_UDC,<br>
> + /**< Generates checksum as defined under Uplink Data Compression<br>
> + * checksum as defined in the 3GPP PDCP specification<br>
> + */<br>
> };<br>
><br>
> /** Compression Huffman Type - used by DEFLATE algorithm */<br>
> @@ -201,6 +209,11 @@ enum rte_comp_flush_flag {<br>
> */<br>
> };<br>
><br>
> +#define DEFLATE_MAX_WINDOW_SIZE (1ULL << 15)<br>
Wrong namespace used.<br>
Are these really required to be defined here.<br>
I do see any comments where these macros will be used and what is the use case.<br>
<br>
> +<br>
Remove extra line here<br>
<br>
> +#define DEFLATE_MIN_WINDOW_SIZE (1ULL << 8)<br>
> +<br>
Remove extra line here<br>
> +<br>
> /** Compression transform types */<br>
> enum rte_comp_xform_type {<br>
> RTE_COMP_COMPRESS,<br>
> @@ -305,6 +318,15 @@ struct rte_comp_compress_xform {<br>
> /**< Hash algorithm to be used with compress operation. Hash is always<br>
> * done on plaintext.<br>
> */<br>
> + uint8_t *dictionary;<br>
> + /**<<br>
> + * Pointer to memory containing dictionary to be used for inflate<br>
> + * and deflate operations<br>
> + */<br>
> + uint16_t dictionary_len;<br>
> + /**<<br>
> + * Length of dictionary to be used<br>
> + */<br>
<br>
Don’t you need to define UDC in rte_comp_algorithm?<br>
And move these algorithm specific fields into a separate struct and add that into the union defined above in this struct?<br>
Seems patch is incomplete.<br>
<br>
There is no update to documentation as well.<br>
doc/guides/prog_guide/compressdev.rst<br>
doc/guides/compressdevs/features/default.ini<br>
<br>
> };<br>
><br>
> /**<br>
> @@ -328,6 +350,15 @@ struct rte_comp_decompress_xform {<br>
> /**< Hash algorithm to be used with decompress operation. Hash is<br>
> always<br>
> * done on plaintext.<br>
> */<br>
> + uint8_t *dictionary;<br>
> + /**<<br>
> + * Pointer to memory containing dictionary to be used for inflate<br>
> + * and deflate operations<br>
> + */<br>
Please make this in a single line if it is under 100 characters.<br>
<br>
> + uint16_t dictionary_len;<br>
> + /**<<br>
> + * Length of dictionary to be used<br>
> + */<br>
Make this also in a single line instead of 3 lines as being followed for other fields.<br>
<br>
<br>
> };<br>
><br>
> /**<br>
> --<br>
> 2.31.1<br>
<br>
</div>
</span></font></div>
</body>
</html>