You love DPDK and keen to use it in your product. However, you are worried about tight coupling of your existing product with DPDK. Note that you also want to run your software in non-DPDK platform as well.
ODP helps in this regard. If you like to know how and many more benefits, then this document helps.
The Open Data Plane (ODP) is an open-source project which defines application programming interfaces (APIs) for portable high performance networking data plane applications. Networking data plane refers software and hardware that forwards packets/frames from one interface to another, and usually performs various operations (check errors, add/remove/modify protocol headers, etc) on packet data.
ODP API design enables various implementation strategies without exposing the application to implementation details.
Open Source, open contribution, BSD-3 licensed
Vendor and platform neutral
Application-centric. Covers functional needs of data plane applications
Ensures portability by specifying the functional behavior of ODP
Both applications and implementations must conform to the API specification
Defined jointly and openly by application writers and platform implementers
Architected to be implementable on a wide range of platforms efficiently
The goal of ODP is to support Software-defined networking (SDN) in which control is decoupled from the physical infrastructure, allowing network administrators to support a network fabric across multi-vendor equipment.
ODP provides abstraction layer over the lower level DPDK API. This has engineering benefit where DPDK can be implemented in your product without losing portability
It is pure software implementation, runs on any Linux system. Not a performance target but can utilize DPDK and Netmap.
It is derived from ODP-LINUX, but it is optimized using the full DPDK SDK, and tries to connect as many DPDK APIs to ODP as possible.
https://en.wikipedia.org/wiki/OpenDataPlane
https://github.com/OpenDataPlane/odp
https://github.com/OpenDataPlane/odp-dpdk
https://images.app.goo.gl/egVGJApMJZzcnj5i6
https://images.app.goo.gl/vnXyFsomFvhPy62o8
https://opendataplane.org/index.php/resources/faq/
https://opendataplane.org/index.php/services/technical-overview/
https://images.app.goo.gl/5wkbsm2WvtWfhB747
https://images.app.goo.gl/JvxBBELcYu4REVwZ9
https://www.linkedin.com/posts/dpkumar_networking-dpdk-performance-activity-6791632626659799040-87Tv