Skip to content

DPDK: P/Invoke bindings + EAL init #126

@benaadams

Description

@benaadams

Problem

The README dedicates an entire section to DPDK as a platform integration option. The integration guide lists it as a "Reference" implementation. The comparison table recommends it for "Maximum performance" use cases. Yet no src/Magma.DPDK project exists.

This is the largest missing piece. Start with the foundation.

Sub-tasks

  • Create src/Magma.DPDK project, add to solution
  • P/Invoke bindings: rte_eal_init, rte_eth_dev_configure, rte_eth_dev_start
  • rte_pktmbuf_pool_create for memory pool setup
  • Huge page detection and configuration helpers
  • EAL argument builder (core mask, memory channels, PCI allowlist)
  • Docker image with DPDK 23.11+ for CI builds
  • Compile-time check: only build on Linux

Dependencies

Depends on: #99 (CI), #113 (performance baseline for comparison)
Unlocks: #127 (DPDK single-queue RX/TX)

Phase

Phase 3 (Advanced Integrations)

Metadata

Metadata

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions