dpacc framework discussion data plane
Table of Contents 1.General Architecture 2.Usage 1: VNF Acceleration 3.Usage 2: vSwitch Acceleration 4.Usage 3: vRouter Acceleration
General Architecture Key Component SAL:Software Acceleration Layer g-API: general APIs for accelerated applications abstract the differences from various accelerators integrate management aspects of the data path g-driver: general drivers for each acceleration type maybe implemented purely in software or as the frontend/physical driver for an underlying accelerator vio: VirtIO interface to the underlying platform/HW hio: Hardware I/O like SR-IOV or some type of pass-through ...... g-API g-driver vio hio SAL@Guest only Accelerated apps@guest Software-only acceleration or b. SR-IOV + physical drivers SAL@Host only Legacy apps@guest c. virtio/vHost + (a or b) Accelerated apps@host vSwitch/vRouter for VM2VM traffic SAL@Guest +SAL@Host Accelerated apps@guest: d. frontend@guest+virtio/vHost+backend@host
Usage 1 special-purpose packet processing in vNF application application Legacy application legacy application (crypto-agnostic) guest ...... g-API ...... g-API crypto crypto crypto vio hio vio hio vio vio vHost-user vHost-user vHost-user host ...... g-API ...... g-API ...... g-API SAL in VM #2 is optional. crypto in VM #3 is optional for inline acceleration case. crypto crypto crypto hio hio hio device acclerator acclerator acclerator acclerator (a or b) : SR-IOV + HW acc Best performance (d) : Virtio + HW acc Best scalability & portability (c1): Virtio + HW acc Backward compatibility (c2): Virtio + HW acc Transparent acceleration
Usage 3 vRouter acceleration Legacy vRouter vRouter guest ...... g-API vio crypto vHost-user vio hio vSwitch vRouter ...... g-API ...... g-API host Seeing vRouter as a VNF as well, all the three are also workable. pkt crypto hio hio acclerator acclerator acclerator device VM #1: SR-IOV + HW acc VM #2: Virtio + HW acc VM #3: Virtio + HW acc
Usage 2 vSwitch acceleration application legacy application guest application (host) ...... g-API vio pkt vHost-user vSwitch vio hio vSwitch ...... g-API ...... g-API host pkt the application on Case #3 is also accelerated application, or change its interface to socket. pkt hio hio acclerator acclerator acclerator device (a or b): SR-IOV + HW acc Best performance (b): Virtio + HW acc Scalability & Compatibility! (c): HW acc transparent acceleration
Discussion Consensus call To move on do we have consensus on the SAL components? do we have consensus on the layering scenarios? do we have consensus on the usage cases? To move on add management aspects to the framework initiate gap analysis for upstream components virtio/dpdk/odp... In parallel g-API, MANO, VIM...