Session ID: BUD17-103
Session Name: Compression support in OpenDataPlane(ODP) - BUD17-103
Speaker: Narayana Prasad Athreya
Track: LNG
★ Session Summary ★
A proposal to add ODP based compression/decompression API to provide portable hardware accelerated access for data plane applications that require compression/decompression. The proposal outlines 2 schemes:
A. Reuse the existing Cryptography API to support Compression.
B. Introduce independent Compression API.
The initial implementation will target Cavium OCTEON TX SoC to accelerate IP Compression (IPComp)
---------------------------------------------------
★ Resources ★
Event Page: http://connect.linaro.org/resource/bud17/bud17-103/
Presentation:
Video: https://youtu.be/aTOL0rGuIn8
---------------------------------------------------
★ Event Details ★
Linaro Connect Budapest 2017 (BUD17)
6-10 March 2017
Corinthia Hotel, Budapest,
Erzsébet krt. 43-49,
1073 Hungary
---------------------------------------------------
Keyword: ODP, opendataplane, compression, LNG, Compression, Narayana Prasad Athreya
http://www.linaro.org
http://connect.linaro.org
---------------------------------------------------
Follow us on Social Media
https://www.facebook.com/LinaroOrg
https://twitter.com/linaroorg
https://www.youtube.com/user/linaroorg?sub_confirmation=1
https://www.linkedin.com/company/1026961
2. Background
• What is Compression?
• Reduces bits needed for data representation.
• It is used widely in networking and storage
• Common Compression Algorithms - DEFLATE, LZO
• What is OpenDataPlane?
• Networking data plane API specification
• Allows portable data plane applications to leverage vendor
specific hardware.
3. Compression API
• Reuse the existing Cryptography API to support
Compression
Two schemes are possible:
• Introduce independent Compression API as a separate
module
4. Reuse existing API
• Why leverage Cryptography
API?
• Compression is bundled
with Encryption as a
transformation protocol.
• Crypto API provisions
align with Compression
needs
• Asynchronous mode
• Notion of sessions
• Segmented input/
output handling
5. Reuse existing API
• Pros
• Cryptography and Compression in a single operation
• Fewer API for application to deal with and makes the API look flexible
• Useful for Hardware that supports both in single operation
• Cons
• Many permutations of operations makes implementation complex.
• Data ranges for each of Compression, Authentication Cipher may
be different.
• Order of operations
• Types of output memory - in-place, allocate vs app provided buffer.
• Not every permutation maybe supported by hardware.
• Lack of support for Stateful Compression.
6. Compression API module
• Proposed Compression API
usage.
• Borrows ideas from
Cryptography API
• Adds notion of stream for
Stateful Compression
• Adds compression-
specific provisions
• History
• Checksum/Digest
8. Compression API module
• Pros
• Geared towards Compression
• No modifications to existing ODP API specification
• Implementations could be faster for Compression-only use-
cases.
• Cons
• Requires 2 trips to hardware if Cryptography is also used.
9. Status
• Reuse Cryptography API
• Implemented Compression API for linux-generic
• Work in progress on OCTEON TX ZIP offload Engine.
• Compression API module
• Work in progress on Compression API module for linux-
generic and OCTEON TX ZIP offload Engine.
• Roadmap
• Run performance benchmarks and compare ODP vs non-
ODP.
• Add IPComp stack and enable compression in ODP.