DPDK Change Log

1.52.0 (Unreleased)

1.51.0 (2026-04-29)

  • Add a build option --use-system-openssl-installation to compile using system-wide OpenSSL installation, i.e. avoid building OpenSSL from source.

  • Add Ubuntu 26.04 to the build matrix.

  • Upgrade to Aeron 1.51.0.

  • Upgrade to DPDK 26.03.

  • Upgrade to CMake 4.3.2.

1.50.4 (2026-03-20)

1.50.3 (2026-03-13)

1.50.2 (2026-02-27)

1.50.1 (2026-02-06)

1.50.0 (2026-01-16)

1.49.3 (2025-12-15)

1.49.2 (2025-11-24)

  • Fix a bug whereby a Cluster node running with the DPDK driver could not connect to the rest of the Cluster nodes during a rolling upgrade.

    A newly started node was stuck in a CANVASS election state while trying to establish an initial connection on a consensus channel. While the leader node was actively sending Raft log data using an MDC log publication, i.e. which meant that it send the data to all destinations whether they were connected or not. The receiver was forwarding all unknown packets to the sender thread and since the newly started node didn’t have a log subscription it meant that all log data was forwarded. This in turn led to the sender queue overflowing causing packets to be dropped, including SMs. Which meant that the connection from this node to the rest of the Cluster could not be established.

    Now the traffic is terminated early instead being forwarded to the sender thread, i.e. only valid sender-specific frames are being forwarded (i.e. NAK, SM, ERR, RTTM, RSP_SETUP and ATS_SM). While the rest of the unhandled packets are discarded and the new RX Receiver DISCARD counter is incremented. If an invalid packet is encountered then an existing system counter Invalid packets is incremented instead.

  • Make sender RX ring buffer size configurable. Default size is 64KB + AERON_RB_TRAILER_LENGTH. Which now can be changed via AERON_DPDK_SENDER_RX_RING_BUFFER_SIZE environment variable.

  • Optimize packet processing by allocating aligned buffer once per dpdk_poller and using it for assembling fragmented packets.

  • Add counters for when packets are discarded by the receiver.

  • Add event logging when packet is discarded by the sender thread.

  • Clarify network byte order usage and use DPDK APIs/types where applicable.

  • Move all counter types to Aeron.

  • Upgrade to Aeron 1.49.2.

  • Upgrade to CMake 4.1.3.

1.49.1 (2025-11-01)

  • Fix sender/receiver address re-resolution not being performed.

  • Upgrade to Aeron 1.49.1.

1.49.0 (2025-10-03)

  • Upgrade to Aeron 1.49.0.

  • Upgrade to DPDK 25.07.

  • Upgrade to CMake 4.1.2.

  • Add Clang 21 to release matrix.

1.48.10 (2025-11-21)

  • Fix a bug whereby a Cluster node running with the DPDK driver could not connect to the rest of the Cluster nodes during a rolling upgrade.

    A newly started node was stuck in a CANVASS election state while trying to establish an initial connection on a consensus channel. While the leader node was actively sending Raft log data using an MDC log publication, i.e. which meant that it send the data to all destinations whether they were connected or not. The receiver was forwarding all unknown packets to the sender thread and since the newly started node didn’t have a log subscription it meant that all log data was forwarded. This in turn led to the sender queue overflowing causing packets to be dropped, including SMs. Which meant that the connection from this node to the rest of the Cluster could not be established.

    Now the traffic is terminated early instead being forwarded to the sender thread, i.e. only valid sender-specific frames are being forwarded (i.e. NAK, SM, ERR, RTTM, RSP_SETUP and ATS_SM). While the rest of the unhandled packets are discarded and the new RX Receiver DISCARD counter is incremented. If an invalid packet is encountered then an existing system counter Invalid packets is incremented instead.

  • Make sender RX ring buffer size configurable. Default size is 64KB + AERON_RB_TRAILER_LENGTH. Which now can be changed via AERON_DPDK_SENDER_RX_RING_BUFFER_SIZE environment variable.

  • Optimize packet processing by allocating aligned buffer once per dpdk_poller and using it for assembling fragmented packets.

  • Add counters for when packets are discarded by the receiver.

  • Add event logging when packet is discarded by the sender thread.

  • Clarify network byte order usage and use DPDK APIs/types where applicable.

  • Move all counter types to Aeron.

  • Upgrade to Aeron 1.48.10.

1.48.9 (2025-11-11)

1.48.7 (2025-11-01)

  • Fix sender/receiver address re-resolution not being performed.

  • Fix Ubuntu release build, i.e. python could not find installed elftools package.

  • Upgrade to Aeron 1.48.7.

1.48.6 (2025-08-08)

1.48.5 (2025-07-21)

1.48.4 (2025-06-27)

1.48.3 (2025-06-20)

1.48.2 (2025-06-12)

1.48.1 (2025-06-06)

1.48.0 (2025-06-03)

  • Fix type id of the AERON_DPDK_COUNTER_ARP_MISS_TYPE_ID counter.

  • Remove AERON_DPDK_COUNTER_RX_DISCARD_NON_IP_TYPE_ID and AERON_DPDK_COUNTER_RX_DISCARD_NON_UDP_TYPE_ID counters.

  • Free aeron_dpdk_poller_t on error.

  • Build with -Dplatform=generic by default.

  • Refactor counter usage based on the Aeron API changes.

  • Disable Archive API to avoid calling into Java build.

  • Upgrade to Aeron 1.48.0.

  • Upgrade to DPDK 25.03.

  • Upgrade to CMake 4.0.2.

1.47.5 (2025-05-09)

  • Add debug tools to the release package.

  • Upgrade to Aeron 1.47.5.

1.47.4 (2025-03-14)

  • Downgrade to DPDK 24.07 due to performance regression on AWS.

  • Upgrade to Aeron 1.47.4.

1.47.3 (2025-02-14)

Known issues

  • Performance regression in DPDK 24.11 on AWS. See below.

1.47.2 (2025-01-30)

Known issues

  • Performance regression in DPDK 24.11 on AWS. See below.

1.47.1 (2025-01-29)

Known issues

  • Performance regression in DPDK 24.11 on AWS. See below.

1.47.0 (2025-01-17)

  • Upgrade to DPDK 24.11.

  • Enable only supported DPDK drivers.

  • Expose extra DPDK stats as Aeron counters. Reduce update interval to once per second.

  • Check result of the rte_eth_link_get call.

  • Update to match new concurrency primitives in Aeron.

Known issues

  • Performance regression in DPDK 24.11 on AWS.

    Running aeronmd_dpdk on AWS produces the following warning during startup:

    ENA_DRIVER: ena_set_queues_placement_policy(): NOTE: LLQ has been disabled as per user's request. This may lead to a huge performance degradation!

    This happens due to changes in LLQ configuration in 24.11 release whereby the default value was not set. This is already fixed in the upcoming DPDK 25.03 release. As the result the latency with DPDK is about 100x worse compared to the previous release.

    As a workaround LLQ can be manually enabled via startup parameters:

    $ ./aeronmd_dpdk --no-telemetry -l 0 -a "${DPDK_DEVICE},llq_policy=1"

    where DPDK_DEVICE refers to DPDK interface as listed by the dpdk-devbind.py --status-dev net, e.g.:

    $ ./aeronmd_dpdk --no-telemetry -l 0 -a "0000:00:06.0,llq_policy=1"

1.46.1 (2024-10-10)

  • Update to match new concurrency primitives in Aeron OSS.

  • Upgrade to Aeron 1.46.5.

1.46.0 (2024-08-25)

  • [Breaking] JDK 17 is required for compiling and running!

  • Fix off-by one error when computing the subnet mask. For example, for IP address 10.192.160.0/19 the mask was computed as 255.255.192.0 whereas the correct value is 255.255.224.0.

  • Allow gateway and local address to be left as empty strings for AWS.

  • Explicitly enable only supported network drivers during a build.

  • Upgrade to DPDK 24.07.

  • Upgrade to Aeron 1.46.0.