[2/2] compressdev: add huffman encoding flags
Checks
Commit Message
Added Huffman fixed and dynamic encoding feature flags,
so an application can query if a device supports
these two types, when performing DEFLATE compression.
Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
---
drivers/compress/isal/isal_compress_pmd_ops.c | 4 +++-
lib/librte_compressdev/rte_comp.c | 4 ++++
lib/librte_compressdev/rte_comp.h | 4 ++++
3 files changed, 11 insertions(+), 1 deletion(-)
Comments
Hi Pablo,
> -----Original Message-----
> From: De Lara Guarch, Pablo
> Sent: Wednesday, June 27, 2018 6:51 AM
> To: Trahe, Fiona <fiona.trahe@intel.com>; ashish.gupta@caviumnetworks.com; Daly, Lee
> <lee.daly@intel.com>
> Cc: dev@dpdk.org; De Lara Guarch, Pablo <pablo.de.lara.guarch@intel.com>
> Subject: [PATCH 2/2] compressdev: add huffman encoding flags
>
> Added Huffman fixed and dynamic encoding feature flags,
> so an application can query if a device supports
> these two types, when performing DEFLATE compression.
>
> Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
> ---
> drivers/compress/isal/isal_compress_pmd_ops.c | 4 +++-
> lib/librte_compressdev/rte_comp.c | 4 ++++
> lib/librte_compressdev/rte_comp.h | 4 ++++
> 3 files changed, 11 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/compress/isal/isal_compress_pmd_ops.c
> b/drivers/compress/isal/isal_compress_pmd_ops.c
> index 970a0413b..585f22802 100644
> --- a/drivers/compress/isal/isal_compress_pmd_ops.c
> +++ b/drivers/compress/isal/isal_compress_pmd_ops.c
> @@ -12,7 +12,9 @@
> static const struct rte_compressdev_capabilities isal_pmd_capabilities[] = {
> {
> .algo = RTE_COMP_ALGO_DEFLATE,
> - .comp_feature_flags = RTE_COMP_FF_SHAREABLE_PRIV_XFORM,
> + .comp_feature_flags = RTE_COMP_FF_SHAREABLE_PRIV_XFORM |
> + RTE_COMP_FF_HUFFMAN_FIXED |
> + RTE_COMP_FF_HUFFMAN_DYNAMIC,
> .window_size = {
> .min = 15,
> .max = 15,
> diff --git a/lib/librte_compressdev/rte_comp.c b/lib/librte_compressdev/rte_comp.c
> index ea7692ae7..9711a86c8 100644
> --- a/lib/librte_compressdev/rte_comp.c
> +++ b/lib/librte_compressdev/rte_comp.c
> @@ -36,6 +36,10 @@ rte_comp_get_feature_name(uint64_t flag)
> return "SHA2_SHA256_HASH";
> case RTE_COMP_FF_SHAREABLE_PRIV_XFORM:
> return "SHAREABLE_PRIV_XFORM";
> + case RTE_COMP_FF_HUFFMAN_FIXED:
> + return "HUFFMAN_FIXED";
> + case RTE_COMP_FF_HUFFMAN_DYNAMIC:
> + return "HUFFMAN_DYNAMIC";
[Fiona] Thanks for adding this.
Just in case any other algos are added in future which also use Huffman encoding I'd suggest
renaming to include DEFLATE, e.g. RTE_COMP_FF_DFL_HUFFMAN_FIXED/DYNAMIC
> default:
> return NULL;
> }
> diff --git a/lib/librte_compressdev/rte_comp.h b/lib/librte_compressdev/rte_comp.h
> index 3ce6a80e1..c6a542c0c 100644
> --- a/lib/librte_compressdev/rte_comp.h
> +++ b/lib/librte_compressdev/rte_comp.h
> @@ -62,6 +62,10 @@ extern "C" {
> * to create as many priv_xforms as it expects to have stateless
> * operations in-flight.
> */
> +#define RTE_COMP_FF_HUFFMAN_FIXED (1ULL << 13)
> +/**< Fixed huffman enconding is supported */
> +#define RTE_COMP_FF_HUFFMAN_DYNAMIC (1ULL << 14)
> +/**< Dynamic huffman enconding is supported */
[Fiona] typo encoding.
> /** Status of comp operation */
> enum rte_comp_op_status {
> --
> 2.14.4
> -----Original Message-----
> From: Trahe, Fiona
> Sent: Wednesday, June 27, 2018 4:23 PM
> To: De Lara Guarch, Pablo <pablo.de.lara.guarch@intel.com>;
> ashish.gupta@caviumnetworks.com; Daly, Lee <lee.daly@intel.com>
> Cc: dev@dpdk.org; Trahe, Fiona <fiona.trahe@intel.com>
> Subject: RE: [PATCH 2/2] compressdev: add huffman encoding flags
>
> Hi Pablo,
>
>
> > -----Original Message-----
> > From: De Lara Guarch, Pablo
> > Sent: Wednesday, June 27, 2018 6:51 AM
> > To: Trahe, Fiona <fiona.trahe@intel.com>;
> > ashish.gupta@caviumnetworks.com; Daly, Lee <lee.daly@intel.com>
> > Cc: dev@dpdk.org; De Lara Guarch, Pablo
> > <pablo.de.lara.guarch@intel.com>
> > Subject: [PATCH 2/2] compressdev: add huffman encoding flags
> >
> > Added Huffman fixed and dynamic encoding feature flags, so an
> > application can query if a device supports these two types, when
> > performing DEFLATE compression.
> >
> > Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
> > ---
> > drivers/compress/isal/isal_compress_pmd_ops.c | 4 +++-
> > lib/librte_compressdev/rte_comp.c | 4 ++++
> > lib/librte_compressdev/rte_comp.h | 4 ++++
> > 3 files changed, 11 insertions(+), 1 deletion(-)
> >
> > diff --git a/drivers/compress/isal/isal_compress_pmd_ops.c
> > b/drivers/compress/isal/isal_compress_pmd_ops.c
> > index 970a0413b..585f22802 100644
> > --- a/drivers/compress/isal/isal_compress_pmd_ops.c
> > +++ b/drivers/compress/isal/isal_compress_pmd_ops.c
> > @@ -12,7 +12,9 @@
> > static const struct rte_compressdev_capabilities isal_pmd_capabilities[] = {
> > {
> > .algo = RTE_COMP_ALGO_DEFLATE,
> > - .comp_feature_flags =
> RTE_COMP_FF_SHAREABLE_PRIV_XFORM,
> > + .comp_feature_flags =
> RTE_COMP_FF_SHAREABLE_PRIV_XFORM |
> > + RTE_COMP_FF_HUFFMAN_FIXED |
> > + RTE_COMP_FF_HUFFMAN_DYNAMIC,
> > .window_size = {
> > .min = 15,
> > .max = 15,
> > diff --git a/lib/librte_compressdev/rte_comp.c
> > b/lib/librte_compressdev/rte_comp.c
> > index ea7692ae7..9711a86c8 100644
> > --- a/lib/librte_compressdev/rte_comp.c
> > +++ b/lib/librte_compressdev/rte_comp.c
> > @@ -36,6 +36,10 @@ rte_comp_get_feature_name(uint64_t flag)
> > return "SHA2_SHA256_HASH";
> > case RTE_COMP_FF_SHAREABLE_PRIV_XFORM:
> > return "SHAREABLE_PRIV_XFORM";
> > + case RTE_COMP_FF_HUFFMAN_FIXED:
> > + return "HUFFMAN_FIXED";
> > + case RTE_COMP_FF_HUFFMAN_DYNAMIC:
> > + return "HUFFMAN_DYNAMIC";
> [Fiona] Thanks for adding this.
> Just in case any other algos are added in future which also use Huffman
> encoding I'd suggest renaming to include DEFLATE, e.g.
> RTE_COMP_FF_DFL_HUFFMAN_FIXED/DYNAMIC
Since these flags are set per algorithm (in capabilities),
do you think it is needed to specify DEFLATE?
>
>
> > default:
> > return NULL;
> > }
> > diff --git a/lib/librte_compressdev/rte_comp.h
> > b/lib/librte_compressdev/rte_comp.h
> > index 3ce6a80e1..c6a542c0c 100644
> > --- a/lib/librte_compressdev/rte_comp.h
> > +++ b/lib/librte_compressdev/rte_comp.h
> > @@ -62,6 +62,10 @@ extern "C" {
> > * to create as many priv_xforms as it expects to have stateless
> > * operations in-flight.
> > */
> > +#define RTE_COMP_FF_HUFFMAN_FIXED (1ULL << 13)
> > +/**< Fixed huffman enconding is supported */
> > +#define RTE_COMP_FF_HUFFMAN_DYNAMIC (1ULL << 14)
> > +/**< Dynamic huffman enconding is supported */
> [Fiona] typo encoding.
Will fix.
> > > + case RTE_COMP_FF_HUFFMAN_FIXED:
> > > + return "HUFFMAN_FIXED";
> > > + case RTE_COMP_FF_HUFFMAN_DYNAMIC:
> > > + return "HUFFMAN_DYNAMIC";
> > [Fiona] Thanks for adding this.
> > Just in case any other algos are added in future which also use Huffman
> > encoding I'd suggest renaming to include DEFLATE, e.g.
> > RTE_COMP_FF_DFL_HUFFMAN_FIXED/DYNAMIC
>
> Since these flags are set per algorithm (in capabilities),
> do you think it is needed to specify DEFLATE?
>
[Fiona] You're right, I forgot that. So better not to include DEFLATE.
Hi Pablo,
> -----Original Message-----
> From: De Lara Guarch, Pablo
> Sent: Wednesday, June 27, 2018 6:51 AM
> To: Trahe, Fiona <fiona.trahe@intel.com>;
> ashish.gupta@caviumnetworks.com; Daly, Lee <lee.daly@intel.com>
> Cc: dev@dpdk.org; De Lara Guarch, Pablo <pablo.de.lara.guarch@intel.com>
> Subject: [PATCH 2/2] compressdev: add huffman encoding flags
>
> Added Huffman fixed and dynamic encoding feature flags, so an application
> can query if a device supports these two types, when performing DEFLATE
> compression.
>
> Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
> ---
> drivers/compress/isal/isal_compress_pmd_ops.c | 4 +++-
> lib/librte_compressdev/rte_comp.c | 4 ++++
> lib/librte_compressdev/rte_comp.h | 4 ++++
> 3 files changed, 11 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/compress/isal/isal_compress_pmd_ops.c
> b/drivers/compress/isal/isal_compress_pmd_ops.c
> index 970a0413b..585f22802 100644
> --- a/drivers/compress/isal/isal_compress_pmd_ops.c
> +++ b/drivers/compress/isal/isal_compress_pmd_ops.c
> @@ -12,7 +12,9 @@
> static const struct rte_compressdev_capabilities isal_pmd_capabilities[] = {
> {
> .algo = RTE_COMP_ALGO_DEFLATE,
> - .comp_feature_flags =
> RTE_COMP_FF_SHAREABLE_PRIV_XFORM,
> + .comp_feature_flags =
> RTE_COMP_FF_SHAREABLE_PRIV_XFORM |
> + RTE_COMP_FF_HUFFMAN_FIXED |
> +
> RTE_COMP_FF_HUFFMAN_DYNAMIC,
> .window_size = {
> .min = 15,
> .max = 15,
Acked-by: Lee Daly <lee.daly@intel.com>
Thanks,
Lee.
@@ -12,7 +12,9 @@
static const struct rte_compressdev_capabilities isal_pmd_capabilities[] = {
{
.algo = RTE_COMP_ALGO_DEFLATE,
- .comp_feature_flags = RTE_COMP_FF_SHAREABLE_PRIV_XFORM,
+ .comp_feature_flags = RTE_COMP_FF_SHAREABLE_PRIV_XFORM |
+ RTE_COMP_FF_HUFFMAN_FIXED |
+ RTE_COMP_FF_HUFFMAN_DYNAMIC,
.window_size = {
.min = 15,
.max = 15,
@@ -36,6 +36,10 @@ rte_comp_get_feature_name(uint64_t flag)
return "SHA2_SHA256_HASH";
case RTE_COMP_FF_SHAREABLE_PRIV_XFORM:
return "SHAREABLE_PRIV_XFORM";
+ case RTE_COMP_FF_HUFFMAN_FIXED:
+ return "HUFFMAN_FIXED";
+ case RTE_COMP_FF_HUFFMAN_DYNAMIC:
+ return "HUFFMAN_DYNAMIC";
default:
return NULL;
}
@@ -62,6 +62,10 @@ extern "C" {
* to create as many priv_xforms as it expects to have stateless
* operations in-flight.
*/
+#define RTE_COMP_FF_HUFFMAN_FIXED (1ULL << 13)
+/**< Fixed huffman enconding is supported */
+#define RTE_COMP_FF_HUFFMAN_DYNAMIC (1ULL << 14)
+/**< Dynamic huffman enconding is supported */
/** Status of comp operation */
enum rte_comp_op_status {