Overview of G-API: Enhancing Application Portability with DPDK Generic API

g api generic api overview n.w
1 / 12
Embed
Share

"Explore how G-API, a Generic API developed by Intel Corporation, enhances application portability by providing APIs for DPDK without compromising performance. Learn about the features and functions of DPDK Generic API and its importance in software acceleration and standard frameworks."

  • G-API
  • DPDK
  • Application Portability
  • Intel Corporation
  • Software Acceleration

Uploaded on | 0 Views


Download Presentation

Please find below an Image/Link to download the presentation.

The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author. If you encounter any issues during the download, it is possible that the publisher has removed the file from their server.

You are allowed to download the files provided on this website for personal or commercial use, subject to the condition that they are used lawfully. All files are the property of their respective owners.

The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author.

E N D

Presentation Transcript


  1. G-API (Generic API) Overview Keith Wiles Principal Engineer @ Intel Corporation V0.6 Tuesday, July 30, 15 1

  2. DPACC G-API DPDK as a Generic API with ODP enhancements Keith Wiles Principal Engineer @ Intel Corporation 4/3/2025 2 DPDK Generic-API

  3. VNF Application in Guest Virtual Machine or Guest VNF Application SAL: Software Acceleration Layer Provides a target abstraction for application software s-API: Current DPDK APIs New APIs to support SoC devices Enhance g-APIs to include new features and functions g-API: Generic API for application portability Provides APIs for DPDK without performance and scalability impact Provides a simple porting work for current DPDK applications Extending g-API APIs is simple and needed for standard frameworks like VirtIO+ and other devices Extending new VirtIO APIs into g-API is clean ABI version control supported on all API s Standard-APIs: Sockets, file I/O, libcrypto, libssl, g-API** (enhanced API) Standard-APIs Software Acceleration Layer (SAL) Acceleration Management Layer s-API (current DPDK API) Acceleration Core (AC) e.g. DPDK or SoC SDK s Buffer and memory mgnt, rings/queues, ingress/egress scheduling, tasks, pipeline, g-drivers for (paravirtualized) SW/HW-funcs sio + VirtIO hio ** If s-API is AC specific APIs and cannot provide portability across platforms, then the g-API is mandatory to ensure portability 4/3/2025 3 DPDK Generic-API

  4. Preserving Application Investment with DPDK Open-source (BSD license) community project (5+ years, version 2.1 latest) -- http://dpdk.org/ All code is Open Source including the device drivers or PMDs (Poll Mode Drivers) Optimized Linux User Space Library focused on data plane implementation on general purpose processors Has been Very stable project with ABI versioning for APIs Multi-architecture: x86, IBM, Freescale, EZChip(Tilera) support Adopted by standard OS distributions (FreeBSD, Linux) and many platform frameworks including VirtIO/Vhost and OpenvSwitch Hardware acceleration complemented by software implementations for consistent set of services to applications Supports a large number of features like lockless rings, hash keys, ACL, Crypto, Match Action, buffer management and many others Has a large number of example applications and growing Supports any number of devices at the same time, using a 2 layer device model Linux User Space Application METER EAL LPM ETHDEV EXACT MATCH SCHED MALLOC E1000 IGB MBUF ACL QoS IXGBE I40e MEMPOOL VMXNET3 VIRTIO Classify KNI RING XENVIRT RING POWER TIMER PCAP IVSHMEM Core Libraries Packet Access (PMD Native & Virtual) Platform User Space KNI VF_IO IGB_UIO 4/3/2025 DPDK Generic-API 4

  5. DPDK/ODP Combine the best of both worlds Configuration DPDK supports only PCI configuration model ODP supports only SoC configuration model Combine the two configuration models Memory manager ODP supports a external memory manager for SoC controlled memory DPDK support a high performance memory manager for devices without memory managers Combine the two memory manager models Run-to-Completion and Event based model DPDK uses Run-to-Completion for high performance ODP uses Event-based model for programming model Combine the two run models Extending DPDK with ODP features gives us the best of both worlds! 4/3/2025 DPDK Generic-API 5

  6. DPDK-AE (DPDK- Acceleration Enhancements) VNF Application Many example Applications Light weight threads Storage and file systems Pktgen Traffic generator Event system Network Stacks DPDK Common API Future Device Crypto Device DPI Device Match-Action Device EAL METER LPM ETHDEV MATCH ACTION MALLOC SCHED e1000 af_pkt NBT AES-NI RRC Hyperscan QoS MBUF ACL i40e ixgbe MEMPOOL 3rd Party 3rd Party QAT TABLE fm10k bonding KNI Classify RING external memory manager virtio vmxnet3 SoC PMD 3rd Party POWER PIPELINE TIMER ring xenvirt IVSHMEM HASH CMDLINE cxgbe enic JOBSTAT Adding support for non-PCI configuration, external memory manager and event base programming model IP Frag KVARGS SoCs* memnic mlx4 REORDER others Core Libraries Simple model for SOC integration Platform Packet Access (PMD) Utilities DPDK-AE (Acceleration Enhancements) Focus to Date DPDK Architecture * We can adapt the SoC SDK via a DPDK PMD to maintain the highest performance (this can include ODP as a PMD) DPDK Generic-API 6 4/3/2025

  7. DPDK API for VNF Applications DPDK API is highly tuned performance API with a easy to use application model A proven solution for many VNF applications and no one is asking for a different model VNF applications require a generic-API, but that does not mean a fully abstracted API But adding some abstraction may make sense in some cases Working with ODP we can add features to DPDK to support the SoC s and ARM platforms Moving the abstraction to the PMD layer for SoC SDK s and other places within DPDK we can address everyone's needs for a common VNF application API Use ODP PMDs for now and later move to a better solution Adding some routines to DPDK to provide a cleaner design to simplify VNF applications Adding non-PCI configuration, external memory manager and event programming model 4/3/2025 7 DPDK Generic-API

  8. PMD for native or ODP SoCs devices SoC PMD: Poll Mode driver model for SoC and ODP Provides a clean integration of SoC and ODP via a PMD DPDK-API: A generic API extended to support SoC APIs Provides APIs for DPDK/ODP/SoC with performance and scalability Provides a simple porting framework for current DPDK applications with extend features Provides for other Acceleration Cores and integration of ODP as a PMD to support current SoCs SoCs can create a PMD directly to DPDK without ODP abstraction or remain a pure ODP device Can add some setter/getter routines to enhance the VNF application VNF Application DPDK API Ethernet Device Crypto Device AES-NI QAT external memory manager SoC PMD 3rd Party ODP PMD s as the first phase SoC SDK Simple model for SOC integration DPDK-AE (Acceleration Enhancements) DPDK Architecture 4/3/2025 DPDK Generic-API 8

  9. Next Steps Currently we have a PoC using ODP-PMD with Linux-generic platform Need to provide a ARM platform support as the next step Add some setter/getter routines plus other functions to enhance the VNF application design Adding these new APIs should provide a cleaner program for VNF apps Need an open source port of DPDK to an ARM platform We have a port to a PCI ARM based platform Need someone to contribute a SoC platform support for DPDK 4/3/2025 DPDK Generic-API

  10. DPDK VNF Generic API Summary DPDK with enhancements from ODP gives us the best of both worlds and allows us to move to more important items for DPACC Adding some setter/getter routines along with higher layer APIs to give the VNF application a cleaner configuration and design We do not lose performance for DPDK or SoC devices Adding a PMD model for ODP supports existing SoC devices First phase is to use the ODP PMD as a starting point Quickly move to a cleaner model using ODP/SoC APIs for performance Bring DPDK and ODP together in a clean design for VNF applications requires us to work together! 4/3/2025 DPDK Generic-API 10

  11. Thank you for Attending Keith Wiles 4/3/2025 11 DPDK Generic-API

  12. DPDK Architecture Overview Common Function APIs KNI Exact Match API Load Balance EAL ETHDEV Packet I/O ACL API QoS API Crypto API POWER MALLOC librte_acl rte_hash rte_distrib rte_meter SW crypto E1000, IGB i40e IVSHMEM MBUF RRC HW acceleration Flow Director RSS rte_sched QAT crypto IXGBE FM10K FRMWORK MEMPOOL Flow Director Chelsio* VMXNET3 Island Cove Inline JOBSTAT RING Mellanox* XENVIRT PIPELINE TIMER Cisco VIC* PCAP EXAMPLE APPS CMDLINE Broadcom* VIRTIO Other/Misc OTHER PMDs KVARGS BONDING IA-64-32 PowerPPC MIPS ARM Core Libraries Drivers Arch Ports User Space KNI IGB_UIO Linux Kernel (supports Red Hat, Ubuntu, Fedora, CentOS, ) and FreeBSD * Other names and brands may be claimed as the property of others. 4/3/2025 12 DPDK Generic-API

More Related Content