DPDK patches and discussions
 help / color / mirror / Atom feed
From: "Verma, Shally" <Shally.Verma@cavium.com>
To: Ahmed Mansour <ahmed.mansour@nxp.com>,
	"dev@dpdk.org" <dev@dpdk.org>,
	Hemant Agrawal <hemant.agrawal@nxp.com>
Cc: Hemant Agrawal <hemant.agrawal@nxp.com>,
	"Challa, Mahipal" <Mahipal.Challa@cavium.com>,
	"fiona.trahe@intel.com" <fiona.trahe@intel.com>,
	 "Athreya, Narayana Prasad" <NarayanaPrasad.Athreya@cavium.com>,
	"pablo.de.lara.guarch@intel.com" <pablo.de.lara.guarch@intel.com>,
	Roy Pledge <roy.pledge@nxp.com>,
	Youri Querry <youri.querry_1@nxp.com>,
	"Gupta, Ashish" <Ashish.Gupta@cavium.com>,
	"Sahu, Sunila" <Sunila.Sahu@cavium.com>
Subject: Re: [dpdk-dev] [RFC v3 0/1] Compression API in DPDK
Date: Tue, 19 Dec 2017 05:54:20 +0000	[thread overview]
Message-ID: <BY1PR0701MB1111E16951D2920FC7EE40ECF00F0@BY1PR0701MB1111.namprd07.prod.outlook.com> (raw)
In-Reply-To: <DB3PR0402MB3852A5FC144B2305CC0667FEE10E0@DB3PR0402MB3852.eurprd04.prod.outlook.com>



> -----Original Message-----
> From: Ahmed Mansour [mailto:ahmed.mansour@nxp.com]
> Sent: 19 December 2017 02:37
> To: dev@dpdk.org; Verma, Shally <Shally.Verma@cavium.com>; Hemant
> Agrawal <hemant.agrawal@nxp.com>
> Cc: Hemant Agrawal <hemant.agrawal@nxp.com>; Challa, Mahipal
> <Mahipal.Challa@cavium.com>; fiona.trahe@intel.com; Athreya, Narayana
> Prasad <NarayanaPrasad.Athreya@cavium.com>;
> pablo.de.lara.guarch@intel.com; Roy Pledge <roy.pledge@nxp.com>; Youri
> Querry <youri.querry_1@nxp.com>
> Subject: Re: [RFC v3 0/1] Compression API in DPDK
> 
> Hi Fiona,
> 
> On 12/15/2017 11:16 PM, Trahe, Fiona wrote:
> 
> > With the vast amounts of data being transported around networks and
> stored in
> > storage systems, reducing data size is becoming ever more important.
> There
> > are both software libraries and hardware devices available that provide
> > compression, but no common API. This RFC proposes a compression API for
> > DPDK to address this need.
> >
> > Features:
> > • Deflate Algorithm
> (https://emea01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fto
> ols.ietf.org%2Fhtml%2Frfc1951&data=02%7C01%7Cahmed.mansour%40nxp.
> com%7C76241a2796db4701ef0108d54634a70f%7C686ea1d3bc2b4c6fa92cd99c
> 5c301635%7C0%7C0%7C636492114308805852&sdata=yglh48%2F8IuEn%2F7YC
> L49FlyhGyCnNRX4g4xx2WJQesFs%3D&reserved=0)
> > • LZS algorithm
> (https://emea01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fto
> ols.ietf.org%2Fhtml%2Frfc2395&data=02%7C01%7Cahmed.mansour%40nxp.
> com%7C76241a2796db4701ef0108d54634a70f%7C686ea1d3bc2b4c6fa92cd99c
> 5c301635%7C0%7C0%7C636492114308805852&sdata=BlfNe3pRXpEFJE4KS8Sp
> k8bJ5GWPDqADhZYoD7SKvjk%3D&reserved=0)
> > • Static and Dynamic Huffman encoding.
> > • Compression levels
> > • Checksum generation
> > • Asynchronous burst API
> > • Session-based (a session contains immutable data only and is useable
> across devices)
> > • stream-based to maintain state and history data for stateful flows.
> >
> > Note 1: Split of functionality above/below API
> > When considering whether features should be supported on the API or
> not, the
> > decision was based on the following:
> > The purpose of the API is to decouple the application from the compute-
> intensive
> > functions needed for compression by abstracting them under a common
> API. These
> > can then be implemented by either hardware accelerators or optimised
> software
> > libraries. Where features are not compute-intensive and unlikely to be
> > offloaded or optimised, there’s nothing to be gained by each PMD
> having
> > to separately implement them, and it makes more sense for them to be
> done
> > above the API. So the following are not handled on the API and can be
> done above.
> > • Prepending/appending protocol headers (gzip, zlib)
> 
> Agreed with the notion, however the header and footer handling can be
> added as an option. PMDs can support or not support each format. We
> (NXP) support auto padding of gzip and zlib headers as well as DEFLATE only.
> 

[Shally] Just my thoughts on this. For such case, ZLIB and GZIP should be added into algorithm lists. PMD which support them can generate
ZLIB/GZIP styled compressed streams and app can invoke compression with algo such as ZLIB/GZIP. 

Thanks
Shally

> > • File-handling, breaking files up into packets, reassembling.
> > • Synchronous API
> > • Serialisation of stateful requests
> >
> >
> Is stateful planned for next phase? During design discussions we uncovered
> many API design
> considerations necessary for stateful use. Chained stateful support in the
> future might not be
> possible without compatibility breaking
> 
> > Note 2: The tricky question of where the API belongs
> > We considered
> > 1. Extending cryptodev
> > 2. New acceldev APIs for device handling + compressdev APIs for data path
> > 3. New acceldev for all APIs
> > 4. New compressdev API
> > We've gone with option 4, a compressdev API.  See original RFC [1] for
> reasons.
> > We explored wrapping this around a generic acceldev that would be hidden
> from the API
> > but could be common to cryptodev, compressdev and other accelerators
> on the PMD interface,
> > but this added complexity and indirection and didn't add enough value, so
> we've abandoned it.
> >
> Makes sense. compression is common enough to be attempted to be a
> different device category.
> 
> 
> > Opens:
> >  - Define structures and API for proposed hash functionality
> >  - Agree on stateful behaviour
> 
> What are the the current thoughts for stateful behavior?
> 
> >  - Complete capability APIs
> 
> A capability API is very much required as different HW/SW can have
> different capabilities.
> 
> 
> regards,
> Ahmed
> 


  reply	other threads:[~2017-12-19  5:54 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-11-24 16:54 [dpdk-dev] [RFC v2] " Trahe, Fiona
2017-12-15 17:46 ` [dpdk-dev] [RFC v3 0/1] " Trahe, Fiona
2017-12-18 21:07   ` Ahmed Mansour
2017-12-19  5:54     ` Verma, Shally [this message]
2017-12-22 13:44     ` Trahe, Fiona
2018-01-09 17:36       ` Ahmed Mansour

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=BY1PR0701MB1111E16951D2920FC7EE40ECF00F0@BY1PR0701MB1111.namprd07.prod.outlook.com \
    --to=shally.verma@cavium.com \
    --cc=Ashish.Gupta@cavium.com \
    --cc=Mahipal.Challa@cavium.com \
    --cc=NarayanaPrasad.Athreya@cavium.com \
    --cc=Sunila.Sahu@cavium.com \
    --cc=ahmed.mansour@nxp.com \
    --cc=dev@dpdk.org \
    --cc=fiona.trahe@intel.com \
    --cc=hemant.agrawal@nxp.com \
    --cc=pablo.de.lara.guarch@intel.com \
    --cc=roy.pledge@nxp.com \
    --cc=youri.querry_1@nxp.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).