SlideShare a Scribd company logo
Joel Auernheimer, Application Engineer, Communications Infrastructure Division
Agenda
 QAT: Overview
 QAT: Applications
 QAT: Call to Action
 Questions and advanced topics
Intel®QAT:Overview
Intel® QuickAssist Technology Overview
QAT provides security (encryption) HW acceleration and compression HW
acceleration
QAT makes use of a set of APIs to abstract out the hardware, so the same
application can run on multiple generations of QAT hardware
Customers can also make use of patches that we have provided to popular
open source software, so they can minimize or eliminate their effort to learn the
API
Supported Hardware
 Intel® Communications Chipset 89xx series (formerly known as Cave Creek and Coleto Creek)
(PCH+QAT or QAT endpoint only), plus add-in cards (QAT1.5 and QAT1.6)
 Intel® Atom™ Processor C2000 Product Family for Communications Infrastructure (SoC)
(QAT1.5)
 Intel® C62x Chipset, plus add-in cards (QAT1.7)
 Intel® Atom™ Processor C3000 Product Family (QAT1.7)
 Intel® Xeon® Processor D Family (QAT1.7)
 And more
 More information (including performance numbers) is available in the product briefs on
ark.intel.com
 https://networkbuilders.intel.com/blog/securing-networks-billions-of-things-exabytes-of-
data-with-100-gbps-of-performance
Getting Started with QAT
Follow our “Quick Start Guide” at https://01.org/intel-quickassist-technology
 Step 1: Get QAT hardware
 Step 2: Get acquainted with the available resources
– Intel® QuickAssist Technology Main - www.intel.com/quickassist
– Intel® QuickAssist Technology 01.org Technical Collateral & Applications -
https://01.org/intel-quickassist-technology
– To Learn how to use Intel® QuickAssist Technology and run example code, review our
tutorial videos on Intel Developer Zone –Intel® QuickAssist Technology Technical Getting
Started Tutorials - https://software.intel.com/en-us/networking/quickassist
 Step 3: Follow our Getting Started Guide
– Find the correct Getting Started Guide:
– For released products: https://01.org/intel-quickassist-technology
– Follow the instructions to install the QAT software and run the performance sample code
Offloading to QAT frees up CPU cores!
QAT endpoints show up as a PCIe Device
Exposes request/response ring interface
User application allocates memory and puts input data (including payload,
keys...) in DRAM
QAT API is called
API handles DMA, etc
Poll or interrupt for result
Take advantage of QAT parallelism
QAT Algorithms
Symmetric cryptography functions include: cipher operations (AES, DES, 3DES,
ARC4); wireless (Kasumi, Snow 3G, ZUC (QAT1.7+)); hash/authenticate
operations (SHA-1, MD5; SHA-2 [SHA-224, SHA-256, SHA-384, SHA-512], SHA-
3 (QAT1.7+)); authentication (HMAC, AES-XCBC, AES-CCM); AES-XTS (QAT1.6+)
Public Key functions include: RSA operation; Diffie-Hellman operation; digital
signature standard operation; key derivation operation; elliptic curve
cryptography (ECDSA and ECDH); and prime number testing.
Compression/decompression includes: DEFLATE/INFLATE
Selected QAT Documentation
Using Intel® Virtualization Technology (Intel® VT) with Intel® QuickAssist
Technology Application Note
Using Intel® QuickAssist Technology in Linux Container and Docker
Intel® QuickAssist Technology API Programmer's Guide
Intel® QuickAssist Technology Cryptographic API Reference Manual
Intel® QuickAssist Technology Data Compression API Reference Manual
Intel® QuickAssist Technology - Performance Optimization Guide
Intel® QuickAssist Technology Software for Linux* - Programmer's Guide
Intel® QuickAssist Technology - Proof-Points
• F5 BIG-IP Solution Brief w/QuickAssist
- http://www.intel.com/content/www/us/en/data-center/xeon-e5-v3-f5-networks-scale-
performance-solution-brief.html
• IBM v7000Z w/QuickAssist:
- http://www.intel.com/content/www/us/en/storage/ibm-storwize-v7000-quick-assist-
technology-video.html
QAT:Applications
Intel® QuickAssist Technology Applications
OpenSSL, for asynchronous accelerators, with QAT_engine:
https://github.com/intel/QAT_Engine/
NGINX: https://github.com/intel/asynch_mode_nginx
HAProxy: http://www.haproxy.org/
QATzip: https://github.com/intel/QATzip
Hadoop (via QATzip)
DPDK cryptodev
DPDK Crypto Stack
 DPDK exposes symmetric crypto services
via the cryptodev API
– Supports software and hardware
(offload) implementations
– One stop shop for best of Intel crypto
on DPDK
– Provides Poll Mode Drivers for Intel®
QuickAssist Technology
 Upstreamed to DPDK.org
 Used by IPsec sample application
QAT PMD
cryptodev
cryptodev API
AES-NI PMD, …
ethdev
Ethernet PMD
ethdev API
Sample Application, e.g. IPsec
cryptodev producer APIethdev producer API
QAT driver (in-tree)
User Space
Kernel Space
CALL TO ACTION
Follow our “Quick Start Guide” at https://01.org/intel-quickassist-technology
 Step 1: Get QAT hardware
 Step 2: Get acquainted with the available resources
– Intel® QuickAssist Technology Main - www.intel.com/quickassist
– Intel® QuickAssist Technology 01.org Technical Collateral & Applications -
https://01.org/intel-quickassist-technology
– To Learn how to use Intel® QuickAssist Technology and run example code, review our
tutorial videos on Intel Developer Zone –Intel® QuickAssist Technology Technical Getting
Started Tutorials - https://software.intel.com/en-us/networking/quickassist
 Step 3: Follow our Getting Started Guide
– Find the correct Getting Started Guide:
– For released products: https://01.org/intel-quickassist-technology
– Follow the instructions to install the QAT software and run the performance sample code
Questions???
Knowledge Check and advanced topics
T/F: QAT is part of all CPUs?
Explain: QAT is a “black box”
Explain: QAT can operate in “endpoint-only mode”
Where is the QAT documentation?
What software works with QAT out of the box?
Where are the configuration files located? Why are configuration files needed?
Under what conditions might I see less than Intel’s best performance numbers for a
particular product?
How do I upgrade QAT firmware?
Knowledge Check and advanced topics (cont’d)
How do I show that QAT is working on a particular platform?
What Linux kernels are supported?
Operating System Support
Linux
• Fully validated on RHEL 7.x
• Smoke-tested on various versions of RHEL, CentOS, Fedora, SUSE, Ubuntu
FreeBSD 10, 11
Service Instances
At the Intel® QuickAssist Technology API, we abstract queue pairs using the concept of service
instances
 To use a service, an application must first get a handle to a service instance
 Corresponds to one or more queue pairs
– A data compression instance contains 1 queue pair
– By default, a cryptographic instance contains 2 queue pairs, one for each sub-service of crypto
(symmetric crypto, public key crypto)
Configurable Items (via config file)
 Queue depth (for each queue)
 Number of instances per device (limited by available rings), for example:
– One per address space (e.g. user space processes)
– One per software or hardware thread (logical core), to avoid contention
DMA-able Memory
Memory passed to Intel® QuickAssist Technology hardware must be DMA’able
 Physically contiguous (can also deal with SGLs)
 Physically addressed
– If VT-d is enabled (e.g. in virtualized system), then Intel IOMMU will translate to host physical addresses as needed
 Pinned (i.e. locked, guaranteed resident in physical memory)
Intel provides a User Space DMA-able Memory (USDM) component (kernel driver and corresponding user
space library) which
 Allocates/frees DMA-able memory, mapped to user space
 Performs virtual to physical address translation on memory allocated by this library
This component is used by the sample code supplied with the user space library.
Low Level APIs for Accessing Services
API When to use OS environments supported
Intel® QuickAssist
Technology
Traditional
• Original API, recommended for most cases
• Can be used to access all services and features
• Linux
• FreeBSD
Intel® QuickAssist
Technology Data
Plane
• Optimized for data plane applications (reduced
offload cost) by using physical addressing,
supporting batching and MMIO amortization, etc.
• Supports a subset of symmetric crypto and
compression
• Constraints: asynchronous only, polling only, not
thread-safe, no support for stateful operation
• Linux user space
• FreeBSD
DPDK cryptodev • For DPDK applications, e.g. IPsec
• Offers DPDK PMD-like semantics, e.g. buffers
passed as mbufs, batch submission, etc.
• Supports symmetric crypto only1
• DPDK
[1] May be extended for other services in future
Memory Buffer Types
Flat Buffers (defined in the file cpa.h)
 “Traditional” API: CpaFlatBuffer
– pData is a virtual address
 “Data Plane” API: CpaPhysFlatBuffer
– pData is a physical address
Buffer Lists (also defined in cpa.h)
 “Traditional” API: CpaBufferList
– pMetaData is allocated by user (first
call cpaCyBufferListGetMetaSize), and
populated by implementation to point
to a CpaPhysBufferList (used by Intel®
QuickAssist Technology device)
 “Data Plane” API: CpaPhysBufferList
Intel® QuickAssist Technology Introduction, Applications, and Lab, Including OpenSSL, NGINX, and HAProxy

More Related Content

What's hot (20)

PDF
Arm device tree and linux device drivers
Houcheng Lin
 
PDF
Understanding Telecom SIM and USIM/ISIM for LTE
ntel
 
PPTX
Linux Network Stack
Adrien Mahieux
 
PDF
Enabling new protocol processing with DPDK using Dynamic Device Personalization
Michelle Holley
 
PDF
LCU14 500 ARM Trusted Firmware
Linaro
 
PDF
LCU14-103: How to create and run Trusted Applications on OP-TEE
Linaro
 
PDF
Network Drivers
Anil Kumar Pugalia
 
PDF
OpenShift Kubernetes Native Infrastructure for 5GC and Telco Edge Cloud
Hidetsugu Sugiyama
 
PPTX
Understanding DPDK algorithmics
Denys Haryachyy
 
PDF
FireSIGHT Management Center (FMC) slides
Amy Gerrie
 
PPTX
FreeRTOS
Ankita Tiwari
 
PDF
1 intro to_dpdk_and_hw
videos
 
PDF
The linux networking architecture
hugo lu
 
PDF
Linux Networking Explained
Thomas Graf
 
PDF
HKG18-402 - Build secure key management services in OP-TEE
Linaro
 
PDF
Namespaces and cgroups - the basis of Linux containers
Kernel TLV
 
PDF
Linux Kernel - Virtual File System
Adrian Huang
 
PDF
Fun with Network Interfaces
Kernel TLV
 
PDF
Browsing Linux Kernel Source
Motaz Saad
 
PDF
Hands-on ethernet driver
SUSE Labs Taipei
 
Arm device tree and linux device drivers
Houcheng Lin
 
Understanding Telecom SIM and USIM/ISIM for LTE
ntel
 
Linux Network Stack
Adrien Mahieux
 
Enabling new protocol processing with DPDK using Dynamic Device Personalization
Michelle Holley
 
LCU14 500 ARM Trusted Firmware
Linaro
 
LCU14-103: How to create and run Trusted Applications on OP-TEE
Linaro
 
Network Drivers
Anil Kumar Pugalia
 
OpenShift Kubernetes Native Infrastructure for 5GC and Telco Edge Cloud
Hidetsugu Sugiyama
 
Understanding DPDK algorithmics
Denys Haryachyy
 
FireSIGHT Management Center (FMC) slides
Amy Gerrie
 
FreeRTOS
Ankita Tiwari
 
1 intro to_dpdk_and_hw
videos
 
The linux networking architecture
hugo lu
 
Linux Networking Explained
Thomas Graf
 
HKG18-402 - Build secure key management services in OP-TEE
Linaro
 
Namespaces and cgroups - the basis of Linux containers
Kernel TLV
 
Linux Kernel - Virtual File System
Adrian Huang
 
Fun with Network Interfaces
Kernel TLV
 
Browsing Linux Kernel Source
Motaz Saad
 
Hands-on ethernet driver
SUSE Labs Taipei
 

Similar to Intel® QuickAssist Technology Introduction, Applications, and Lab, Including OpenSSL, NGINX, and HAProxy (20)

PDF
DUG'20: 03 - Online compression with QAT in DAOS
Andrey Kudryavtsev
 
PDF
XPDDS17: How to Abstract Hardware Acceleration Device in Cloud Environment - ...
The Linux Foundation
 
PDF
QATCodec: past, present and future
boxu42
 
PDF
Unleashing End-to_end TLS Security Leveraging NGINX with Intel(r) QuickAssist...
Michelle Holley
 
PDF
DPDK Summit - 08 Sept 2014 - Intel - Networking Workloads on Intel Architecture
Jim St. Leger
 
PDF
3 additional dpdk_theory(1)
videos
 
PDF
Programming Intel® QuickAssist Technology Hardware Accelerators for Optimal P...
DESMOND YUEN
 
PPT
Computer System Architecture Lecture Note 5: microprocessor technology
Budditha Hettige
 
PDF
Quickassist adapter-8960-8970-brief
Vijaianand Sundaramoorthy
 
PDF
2 new hw_features_cat_cod_etc
videos
 
PDF
What are latest new features that DPDK brings into 2018?
Michelle Holley
 
PDF
Accelerating Apache Spark with Intel QuickAssist Technology
Databricks
 
PDF
4 dpdk roadmap(1)
videos
 
PPTX
HP_NextGEN_Training_Q4_2015
Christopher Hopkins
 
PDF
Beyond Bios Implementing the Unified Extensible Firmware Interface with Intel...
molamoajju
 
PDF
XPDDS17: Intel Update - Jun Nakajima, Intel
The Linux Foundation
 
PDF
Trends in Systems and How to Get Efficient Performance
inside-BigData.com
 
PDF
Accelerating SparkML Workloads on the Intel Xeon+FPGA Platform with Srivatsan...
Databricks
 
PPTX
Intel
Jayson Bautista
 
PPT
Intel processors
Kapil Raghuwanshi
 
DUG'20: 03 - Online compression with QAT in DAOS
Andrey Kudryavtsev
 
XPDDS17: How to Abstract Hardware Acceleration Device in Cloud Environment - ...
The Linux Foundation
 
QATCodec: past, present and future
boxu42
 
Unleashing End-to_end TLS Security Leveraging NGINX with Intel(r) QuickAssist...
Michelle Holley
 
DPDK Summit - 08 Sept 2014 - Intel - Networking Workloads on Intel Architecture
Jim St. Leger
 
3 additional dpdk_theory(1)
videos
 
Programming Intel® QuickAssist Technology Hardware Accelerators for Optimal P...
DESMOND YUEN
 
Computer System Architecture Lecture Note 5: microprocessor technology
Budditha Hettige
 
Quickassist adapter-8960-8970-brief
Vijaianand Sundaramoorthy
 
2 new hw_features_cat_cod_etc
videos
 
What are latest new features that DPDK brings into 2018?
Michelle Holley
 
Accelerating Apache Spark with Intel QuickAssist Technology
Databricks
 
4 dpdk roadmap(1)
videos
 
HP_NextGEN_Training_Q4_2015
Christopher Hopkins
 
Beyond Bios Implementing the Unified Extensible Firmware Interface with Intel...
molamoajju
 
XPDDS17: Intel Update - Jun Nakajima, Intel
The Linux Foundation
 
Trends in Systems and How to Get Efficient Performance
inside-BigData.com
 
Accelerating SparkML Workloads on the Intel Xeon+FPGA Platform with Srivatsan...
Databricks
 
Intel processors
Kapil Raghuwanshi
 
Ad

More from Michelle Holley (20)

PDF
NFF-GO (YANFF) - Yet Another Network Function Framework
Michelle Holley
 
PDF
Edge and 5G: What is in it for the developers?
Michelle Holley
 
PDF
5G and Open Reference Platforms
Michelle Holley
 
PDF
De-fogging Edge Computing: Ecosystem, Use-cases, and Opportunities
Michelle Holley
 
PDF
Building the SD-Branch using uCPE
Michelle Holley
 
PDF
Enabling Multi-access Edge Computing (MEC) Platform-as-a-Service for Enterprises
Michelle Holley
 
PDF
Accelerating Edge Computing Adoption
Michelle Holley
 
PDF
Install FD.IO VPP On Intel(r) Architecture & Test with Trex*
Michelle Holley
 
PDF
DPDK & Cloud Native
Michelle Holley
 
PDF
OpenDaylight Update (June 2018)
Michelle Holley
 
PDF
Tungsten Fabric Overview
Michelle Holley
 
PDF
Orchestrating NFV Workloads in Multiple Clouds
Michelle Holley
 
PDF
Convergence of device and data at the Edge Cloud
Michelle Holley
 
PDF
Intel® Network Builders - Network Edge Ecosystem Program
Michelle Holley
 
PDF
Design Implications, Challenges and Principles of Zero-Touch Management Envir...
Michelle Holley
 
PDF
Using Microservices Architecture and Patterns to Address Applications Require...
Michelle Holley
 
PDF
Intel Powered AI Applications for Telco
Michelle Holley
 
PDF
Artificial Intelligence in the Network
Michelle Holley
 
PDF
Service Mesh on Kubernetes with Istio
Michelle Holley
 
PDF
Accelerating Virtual Machine Access with the Storage Performance Development ...
Michelle Holley
 
NFF-GO (YANFF) - Yet Another Network Function Framework
Michelle Holley
 
Edge and 5G: What is in it for the developers?
Michelle Holley
 
5G and Open Reference Platforms
Michelle Holley
 
De-fogging Edge Computing: Ecosystem, Use-cases, and Opportunities
Michelle Holley
 
Building the SD-Branch using uCPE
Michelle Holley
 
Enabling Multi-access Edge Computing (MEC) Platform-as-a-Service for Enterprises
Michelle Holley
 
Accelerating Edge Computing Adoption
Michelle Holley
 
Install FD.IO VPP On Intel(r) Architecture & Test with Trex*
Michelle Holley
 
DPDK & Cloud Native
Michelle Holley
 
OpenDaylight Update (June 2018)
Michelle Holley
 
Tungsten Fabric Overview
Michelle Holley
 
Orchestrating NFV Workloads in Multiple Clouds
Michelle Holley
 
Convergence of device and data at the Edge Cloud
Michelle Holley
 
Intel® Network Builders - Network Edge Ecosystem Program
Michelle Holley
 
Design Implications, Challenges and Principles of Zero-Touch Management Envir...
Michelle Holley
 
Using Microservices Architecture and Patterns to Address Applications Require...
Michelle Holley
 
Intel Powered AI Applications for Telco
Michelle Holley
 
Artificial Intelligence in the Network
Michelle Holley
 
Service Mesh on Kubernetes with Istio
Michelle Holley
 
Accelerating Virtual Machine Access with the Storage Performance Development ...
Michelle Holley
 
Ad

Recently uploaded (20)

DOCX
Import Data Form Excel to Tally Services
Tally xperts
 
PPTX
Writing Better Code - Helping Developers make Decisions.pptx
Lorraine Steyn
 
PPTX
Tally software_Introduction_Presentation
AditiBansal54083
 
PPTX
Why Businesses Are Switching to Open Source Alternatives to Crystal Reports.pptx
Varsha Nayak
 
PPTX
Migrating Millions of Users with Debezium, Apache Kafka, and an Acyclic Synch...
MD Sayem Ahmed
 
PDF
Mobile CMMS Solutions Empowering the Frontline Workforce
CryotosCMMSSoftware
 
PDF
Efficient, Automated Claims Processing Software for Insurers
Insurance Tech Services
 
PPTX
Platform for Enterprise Solution - Java EE5
abhishekoza1981
 
PPTX
A Complete Guide to Salesforce SMS Integrations Build Scalable Messaging With...
360 SMS APP
 
PPTX
Equipment Management Software BIS Safety UK.pptx
BIS Safety Software
 
PDF
Alarm in Android-Scheduling Timed Tasks Using AlarmManager in Android.pdf
Nabin Dhakal
 
PPTX
Fundamentals_of_Microservices_Architecture.pptx
MuhammadUzair504018
 
PPTX
How Apagen Empowered an EPC Company with Engineering ERP Software
SatishKumar2651
 
PPT
MergeSortfbsjbjsfk sdfik k
RafishaikIT02044
 
PDF
Build It, Buy It, or Already Got It? Make Smarter Martech Decisions
bbedford2
 
PDF
Beyond Binaries: Understanding Diversity and Allyship in a Global Workplace -...
Imma Valls Bernaus
 
PPTX
Java Native Memory Leaks: The Hidden Villain Behind JVM Performance Issues
Tier1 app
 
PDF
Thread In Android-Mastering Concurrency for Responsive Apps.pdf
Nabin Dhakal
 
PPTX
Engineering the Java Web Application (MVC)
abhishekoza1981
 
PDF
유니티에서 Burst Compiler+ThreadedJobs+SIMD 적용사례
Seongdae Kim
 
Import Data Form Excel to Tally Services
Tally xperts
 
Writing Better Code - Helping Developers make Decisions.pptx
Lorraine Steyn
 
Tally software_Introduction_Presentation
AditiBansal54083
 
Why Businesses Are Switching to Open Source Alternatives to Crystal Reports.pptx
Varsha Nayak
 
Migrating Millions of Users with Debezium, Apache Kafka, and an Acyclic Synch...
MD Sayem Ahmed
 
Mobile CMMS Solutions Empowering the Frontline Workforce
CryotosCMMSSoftware
 
Efficient, Automated Claims Processing Software for Insurers
Insurance Tech Services
 
Platform for Enterprise Solution - Java EE5
abhishekoza1981
 
A Complete Guide to Salesforce SMS Integrations Build Scalable Messaging With...
360 SMS APP
 
Equipment Management Software BIS Safety UK.pptx
BIS Safety Software
 
Alarm in Android-Scheduling Timed Tasks Using AlarmManager in Android.pdf
Nabin Dhakal
 
Fundamentals_of_Microservices_Architecture.pptx
MuhammadUzair504018
 
How Apagen Empowered an EPC Company with Engineering ERP Software
SatishKumar2651
 
MergeSortfbsjbjsfk sdfik k
RafishaikIT02044
 
Build It, Buy It, or Already Got It? Make Smarter Martech Decisions
bbedford2
 
Beyond Binaries: Understanding Diversity and Allyship in a Global Workplace -...
Imma Valls Bernaus
 
Java Native Memory Leaks: The Hidden Villain Behind JVM Performance Issues
Tier1 app
 
Thread In Android-Mastering Concurrency for Responsive Apps.pdf
Nabin Dhakal
 
Engineering the Java Web Application (MVC)
abhishekoza1981
 
유니티에서 Burst Compiler+ThreadedJobs+SIMD 적용사례
Seongdae Kim
 

Intel® QuickAssist Technology Introduction, Applications, and Lab, Including OpenSSL, NGINX, and HAProxy

  • 1. Joel Auernheimer, Application Engineer, Communications Infrastructure Division
  • 2. Agenda  QAT: Overview  QAT: Applications  QAT: Call to Action  Questions and advanced topics
  • 4. Intel® QuickAssist Technology Overview QAT provides security (encryption) HW acceleration and compression HW acceleration QAT makes use of a set of APIs to abstract out the hardware, so the same application can run on multiple generations of QAT hardware Customers can also make use of patches that we have provided to popular open source software, so they can minimize or eliminate their effort to learn the API
  • 5. Supported Hardware  Intel® Communications Chipset 89xx series (formerly known as Cave Creek and Coleto Creek) (PCH+QAT or QAT endpoint only), plus add-in cards (QAT1.5 and QAT1.6)  Intel® Atom™ Processor C2000 Product Family for Communications Infrastructure (SoC) (QAT1.5)  Intel® C62x Chipset, plus add-in cards (QAT1.7)  Intel® Atom™ Processor C3000 Product Family (QAT1.7)  Intel® Xeon® Processor D Family (QAT1.7)  And more  More information (including performance numbers) is available in the product briefs on ark.intel.com  https://networkbuilders.intel.com/blog/securing-networks-billions-of-things-exabytes-of- data-with-100-gbps-of-performance
  • 6. Getting Started with QAT Follow our “Quick Start Guide” at https://01.org/intel-quickassist-technology  Step 1: Get QAT hardware  Step 2: Get acquainted with the available resources – Intel® QuickAssist Technology Main - www.intel.com/quickassist – Intel® QuickAssist Technology 01.org Technical Collateral & Applications - https://01.org/intel-quickassist-technology – To Learn how to use Intel® QuickAssist Technology and run example code, review our tutorial videos on Intel Developer Zone –Intel® QuickAssist Technology Technical Getting Started Tutorials - https://software.intel.com/en-us/networking/quickassist  Step 3: Follow our Getting Started Guide – Find the correct Getting Started Guide: – For released products: https://01.org/intel-quickassist-technology – Follow the instructions to install the QAT software and run the performance sample code
  • 7. Offloading to QAT frees up CPU cores! QAT endpoints show up as a PCIe Device Exposes request/response ring interface User application allocates memory and puts input data (including payload, keys...) in DRAM QAT API is called API handles DMA, etc Poll or interrupt for result Take advantage of QAT parallelism
  • 8. QAT Algorithms Symmetric cryptography functions include: cipher operations (AES, DES, 3DES, ARC4); wireless (Kasumi, Snow 3G, ZUC (QAT1.7+)); hash/authenticate operations (SHA-1, MD5; SHA-2 [SHA-224, SHA-256, SHA-384, SHA-512], SHA- 3 (QAT1.7+)); authentication (HMAC, AES-XCBC, AES-CCM); AES-XTS (QAT1.6+) Public Key functions include: RSA operation; Diffie-Hellman operation; digital signature standard operation; key derivation operation; elliptic curve cryptography (ECDSA and ECDH); and prime number testing. Compression/decompression includes: DEFLATE/INFLATE
  • 9. Selected QAT Documentation Using Intel® Virtualization Technology (Intel® VT) with Intel® QuickAssist Technology Application Note Using Intel® QuickAssist Technology in Linux Container and Docker Intel® QuickAssist Technology API Programmer's Guide Intel® QuickAssist Technology Cryptographic API Reference Manual Intel® QuickAssist Technology Data Compression API Reference Manual Intel® QuickAssist Technology - Performance Optimization Guide Intel® QuickAssist Technology Software for Linux* - Programmer's Guide
  • 10. Intel® QuickAssist Technology - Proof-Points • F5 BIG-IP Solution Brief w/QuickAssist - http://www.intel.com/content/www/us/en/data-center/xeon-e5-v3-f5-networks-scale- performance-solution-brief.html • IBM v7000Z w/QuickAssist: - http://www.intel.com/content/www/us/en/storage/ibm-storwize-v7000-quick-assist- technology-video.html
  • 12. Intel® QuickAssist Technology Applications OpenSSL, for asynchronous accelerators, with QAT_engine: https://github.com/intel/QAT_Engine/ NGINX: https://github.com/intel/asynch_mode_nginx HAProxy: http://www.haproxy.org/ QATzip: https://github.com/intel/QATzip Hadoop (via QATzip) DPDK cryptodev
  • 13. DPDK Crypto Stack  DPDK exposes symmetric crypto services via the cryptodev API – Supports software and hardware (offload) implementations – One stop shop for best of Intel crypto on DPDK – Provides Poll Mode Drivers for Intel® QuickAssist Technology  Upstreamed to DPDK.org  Used by IPsec sample application QAT PMD cryptodev cryptodev API AES-NI PMD, … ethdev Ethernet PMD ethdev API Sample Application, e.g. IPsec cryptodev producer APIethdev producer API QAT driver (in-tree) User Space Kernel Space
  • 14. CALL TO ACTION Follow our “Quick Start Guide” at https://01.org/intel-quickassist-technology  Step 1: Get QAT hardware  Step 2: Get acquainted with the available resources – Intel® QuickAssist Technology Main - www.intel.com/quickassist – Intel® QuickAssist Technology 01.org Technical Collateral & Applications - https://01.org/intel-quickassist-technology – To Learn how to use Intel® QuickAssist Technology and run example code, review our tutorial videos on Intel Developer Zone –Intel® QuickAssist Technology Technical Getting Started Tutorials - https://software.intel.com/en-us/networking/quickassist  Step 3: Follow our Getting Started Guide – Find the correct Getting Started Guide: – For released products: https://01.org/intel-quickassist-technology – Follow the instructions to install the QAT software and run the performance sample code
  • 16. Knowledge Check and advanced topics T/F: QAT is part of all CPUs? Explain: QAT is a “black box” Explain: QAT can operate in “endpoint-only mode” Where is the QAT documentation? What software works with QAT out of the box? Where are the configuration files located? Why are configuration files needed? Under what conditions might I see less than Intel’s best performance numbers for a particular product? How do I upgrade QAT firmware?
  • 17. Knowledge Check and advanced topics (cont’d) How do I show that QAT is working on a particular platform? What Linux kernels are supported?
  • 18. Operating System Support Linux • Fully validated on RHEL 7.x • Smoke-tested on various versions of RHEL, CentOS, Fedora, SUSE, Ubuntu FreeBSD 10, 11
  • 19. Service Instances At the Intel® QuickAssist Technology API, we abstract queue pairs using the concept of service instances  To use a service, an application must first get a handle to a service instance  Corresponds to one or more queue pairs – A data compression instance contains 1 queue pair – By default, a cryptographic instance contains 2 queue pairs, one for each sub-service of crypto (symmetric crypto, public key crypto) Configurable Items (via config file)  Queue depth (for each queue)  Number of instances per device (limited by available rings), for example: – One per address space (e.g. user space processes) – One per software or hardware thread (logical core), to avoid contention
  • 20. DMA-able Memory Memory passed to Intel® QuickAssist Technology hardware must be DMA’able  Physically contiguous (can also deal with SGLs)  Physically addressed – If VT-d is enabled (e.g. in virtualized system), then Intel IOMMU will translate to host physical addresses as needed  Pinned (i.e. locked, guaranteed resident in physical memory) Intel provides a User Space DMA-able Memory (USDM) component (kernel driver and corresponding user space library) which  Allocates/frees DMA-able memory, mapped to user space  Performs virtual to physical address translation on memory allocated by this library This component is used by the sample code supplied with the user space library.
  • 21. Low Level APIs for Accessing Services API When to use OS environments supported Intel® QuickAssist Technology Traditional • Original API, recommended for most cases • Can be used to access all services and features • Linux • FreeBSD Intel® QuickAssist Technology Data Plane • Optimized for data plane applications (reduced offload cost) by using physical addressing, supporting batching and MMIO amortization, etc. • Supports a subset of symmetric crypto and compression • Constraints: asynchronous only, polling only, not thread-safe, no support for stateful operation • Linux user space • FreeBSD DPDK cryptodev • For DPDK applications, e.g. IPsec • Offers DPDK PMD-like semantics, e.g. buffers passed as mbufs, batch submission, etc. • Supports symmetric crypto only1 • DPDK [1] May be extended for other services in future
  • 22. Memory Buffer Types Flat Buffers (defined in the file cpa.h)  “Traditional” API: CpaFlatBuffer – pData is a virtual address  “Data Plane” API: CpaPhysFlatBuffer – pData is a physical address Buffer Lists (also defined in cpa.h)  “Traditional” API: CpaBufferList – pMetaData is allocated by user (first call cpaCyBufferListGetMetaSize), and populated by implementation to point to a CpaPhysBufferList (used by Intel® QuickAssist Technology device)  “Data Plane” API: CpaPhysBufferList