What can I help you with?
DOCA Documentation v3.0.0

Customer Affecting Changes

Introduced in Version

Description

Customer Impact and Recommendation

DOCA -FLOW 3.0

The following features are not supported in DOCA 3.0. Support is planned for the DOCA 3.1 release in July.

  • ordered_list pipe, external send queue (SQ)

For applications that require this functionality, use DOCA Flow 2.9.3

In pipe creation, the crypto_id field can now be set as either changeable or constant

Customer is required to change its application src-code and recompile due to the following change:

crypto_id field now adheres to the rest of the field's policy. This means that UINT32_MAX represents a changeable shared object, and 0<crypto_id<UINT32_MAX a constant

The port ID must now be provided as a numeric value only

Customer is required to change its application src-code and recompile after adapting the following:

  • Providing port ID as a numeric value by calling doca_flow_port_cfg_set_port_id().

  • Passing the port ID as a string via doca_flow_port_cfg_set_devargs() is no longer supported.

CT should now be configured using setter functions only

Customer is required to change its application src-code and recompile after adapting the following:

  • Usage of setters functions instead of directly accessing the fields in doca_flow_ct_cfgstruct. For more details, refer to the programming guide.

  • CT autonomous mode is no longer supported and can not be configured

Rearranging scratch area usage

Customer is required to change its application src-code and recompile after validating the correct usage of the scratch area buffer (doca_flow_meta.u32[]).

For the new arrangement, refer to DOCAFlowv3.0.0-Metadata.

No more need to specify usage of DOCA ETH device when running without DPDK

Customer no longer needs to specify use_doca_eth in argmode when configuring DOCA Flow via doca_flow_cfg_set_mode_args().

The detection is done automatically, and this mode argument will be ignored if used.

Struct changes

Customer is required to change its application src-code and recompile, due to changes in the following structs:

  • doca_flow_shared_resource_cfg (removed the domain field)

  • doca_flow_parser_meta

    • port_meta changed to port_id and also changed type to uint16_t

    • Added ipsec_ar_syndrome field

Enumeration values were changed

Customer is required to recompile its application due to changes in the doca_flow_fwd_type enum values

OVS-DPDK Hardware Acceleration

E2E cache is deprecated in DOCA 3.0.0

DOCA-HOST 3.0.0 (April 2025)

mlxdevm tool

The mlxdevm tool is now aligned with devlink v6.12 where zero rate values indicate "unlimited" and are omitted from the port function rate display. As a result, when using mlxdevm port function rate show, tx_rate and tx_max will be omitted if their values are zero. Additionally, the driver accepts only tx_rate and tx_max values that are multiples of 1 megabit per second.

The mlxdevm tool is now aligned with devlink v6.12 and conforms to the specifications in the man page.

  • The correct format for setting the port function rate is:port function rate set [DEV/PORT_INDEX | DEV/NODE_NAME] tx_max VALUE

    • DEV/PORT_INDEX refers to a devlink leaf rate object

    • DEV/NODE_NAME refers to a devlink node rate object

    • VALUE is a numeric value that may include an optional prefix (none, k, m, g, t) and unit (bps or bit). Examples: 7Gbit, 7000Mbit, 7000000000. The value is case-insensitive (bps and Bps are equivalent), and if no prefix is specified, the default unit is bits per second.

  • The correct format for showing the port function rate is: mlxdevm port function rate show [DEV/PORT_INDEX | DEV/NODE_NAME]

    • The [DEV/PORT_INDEX | DEV/NODE_NAME] parameter is optional. If provided, the command displays rate information for the specified rate object. If omitted, it lists all available rate objects.

Planned for Version

Description

DOCA-Host 3.2 (Oct 2025)

Deprecation of phy counters:

# cat /sys/class/net/<interface_name>/phy_stats/rx_bytesrx_packetstx_bytestx_packets

and replacing it with:

# ethtool -S <interface_name> | egrep 'packets_phy|bytes_phy'

tx_packets_phy:

rx_packets_phy:

tx_bytes_phy:

rx_bytes_phy:

Deprecation of has_smi sysfs

# cat /sys/class/infiniband/mlx5_0/ports/1/has_smi

and replacing it with ib_stat.

The customer is advised to parse it as follow:

  • Capability mask: <capability_mask_value>

  • Bit #1 IsSM

  • Bit #10 IsSMdisabled

Deprecation of sysfs set/show hfunc

# cat /sys/class/net/<interface_name>/settings/hfunc Operational hfunc: toeplitzSupported hfuncs: xor toeplitz

and replacing it with

# ethtool -x|--show-rxfh-indir|--show-rxfh devname

and

# echo [hfunc] > /sys/class/net/<interface_name>/settings/hfunc

# ethtool -X|--set-rxfh-indir|--rxfh devname [hfunc FUNC]

Deprecation of pfc_stall_prevention

# cat /sys/class/net/<interface_name>/settings/pfc_stall_prevention

default

and replacing it with:

# ethtool --get-tunable <interface_name> pfc-prevention-tout

pfc-prevention-tout: <value>

and

# echo [default/auto] > /sys/class/net/<interface_name>/settings/pfc_stall_prevention

where:

  • "default" is mapped to 8000 msec per critical prevention

  • "auto" is mapped to 100 msec per critical prevention

with

# ethtool -X | --set-tunable devname [rx-copybreak N] [tx-copybreak N] [tx-buf-size N] [pfc-prevention-tout N

Deprecation of sysfs which displays VF statistics by VF:

# cat /sys/class/infiniband/mlx5_2/device/sriov/2/stats

The user is advised to use:

# /opt/mellanox/iproute2/sbin/ip -s link show dev <VF interface name>

VGT+ capability will no longer be supported as of October 2025.

"Per Channel Statistics" ethtool private-flag will no longer be supported as of October 2025.

Deprecation of "commands_cache" sysfs.

DOCA-Host 3.1 (Jul 2025)

DOCA-OFED profile: Deprecation of openvswitch component, and replacing it with doca-openvswitch component. The content and supported features are the same, yet customer using openvswitch component will need to re-build with the new package new doca-openvswitch.

DOCA-FLOW 3.1 (Jul 2025)

Enforce usage of doca_flow_port_cfg_set_dev_rep() when attaching a representor on port start

This section provides a list of changes that took place throughout the past two major releases that broke compatibility/interface or discontinued support for features or OS versions.

Info

For older changes, consult the DOCA documentation archive.

Introduced in Version

Description

Customer Impact and Recommendation

DOCA-HOST 2.10.0 (Jan 2025)

When Dynamic Interrupt Moderation (DIM) is enabled, static coalescing parameters cannot be set, as their values will be overridden by the dynamic algorithm.

Disable Dynamic Interrupt Moderation (DIM) to set the coalescing parameters.

ConnectX-4 adapter cards family is no longer supported.

N/A

Removed support for the following OSes:

  • RHEL8.0

  • RHEL8.1

  • RHEL8.3

  • RHEL8.5

  • RHEL8.7

  • RHEL9.1

  • RHEL9.3

  • OL 7.9

N/A

DOCA-FLOW 2.10.0

The following features are NOT supported in DOCA 2.10 release (The features would be supported in DOCA 3.0 April/25 release):

ACL pipe, LPM pipe, CT pipe, ordered_list pipe, external send queue (SQ), pipe resize

Users can not use these DOCA Flow features. For applications that require this functionality, please use DOCA FLOW 2.9.1

Removed the need to use a dummy_id in IPsec encryption action during pipe creation.

When creating a pipe with crypto action, UINT32_MAX will represent a changeable shared object. Otherwise, 0<crypto_id<UINT32_MAX will indicate a constant. No use of dummy_id.

The memory for modify field and encap actions needs to be allocated upfront per port

The doca_flow_port_cfg_set_actions_mem_size() function must be called to configure the size in case these actions are needed. The recommended initial memory size to provide can be calculated by: num_of_entries * DOCA_FLOW_MAX_ENTRY_ACTIONS_MEM_SIZE. This can be tuned later to achieve better memory consumption.

Strict matching is no longer supported

The doca_flow_pipe_cfg_set_enable_strict_matching() function is deprecated.

Setting enable_strict_matching to true in doca_flow_pipe_cfg_set_enable_strict_matching() is not supported anymore

Users need to do relaxed matching. More details and usage examples can be seen in section Relaxed Match.

The aging mechanism no longer relies on DPDK, thus the DPDK arg service_core=<num cores>, svc_cycle_time=<cycle time> are no longer supported

Users should use the following new API instead:

  • doca_flow_port_cfg_set_service_threads_core() API to set the core number used for counter service

  • doca_flow_port_cfg_set_service_threads_interval() API to set the counter service cycle interval

The doca_flow_parser_meta.random field is changed to big-endian

Users should update it to big-endian. The recommended way is to use DOCA_HTOBE16 for that.

Refactored RSS config API to adhere to other resource types

Users have to specify whether the RSS is shared or non-shared.

Usage examples can be found in various samples (e.g., flow_switch_rss_sample).

Enumeration values were changed

Users need to recompile the app lication since the following enums values were changed:

  • enum doca_flow_l2_meta

  • enum doca_flow_meter_color

DOCA Flow Tune is at Alpha level, and switch visualization is not supported

N/A

Match fields parser_meta.outer_l4_ok and parser_meta.inner_l4_ok no longer check that the L4 checksum is valid

User needs to use parser_meta.outer_l4_checksum_ok and parser_meta.inner_l4_checksum_ok to check if checksum is valid

Before 2.10.0: During DOCA Flow initialization, the programs register a callback for processing important "life events" in the cycle of the entry. This callback is invoked upon "entry add" and "entry removal".

Starting 2.10.0: The callback is also invoked also upon "port stop" during the removal of pipe entries. Thus, user context should be still defined.

DOCA-ETH 2.10.0

The following samples are NOT supported: eth_rxq_managed_mempool_receive and eth_rxq_regular_receive

Users can not use these DOCA samples. If these are needed, please use DOCA FLOW 2.9.1

DOCA 2.9.0 (Oct 2024)

DPA Outbox Blocking-Mode

Due to a silicon issue, as of firmware version 28.43.2026, the DPA outbox is configured to operate in non-blocking mode, causing DPA outbox requests to complete immediately without waiting for actual completion. As a result, the DPA stack must poll a "busy" bit before initiating another DPA outbox operation.

Update the firmware version to 28.43.2026 or higher or update the BF-Bundle (containing this firmware) and DOCA-Host to 2.9.x or higher.

This is mandatory for customers programming the DPA (e.g., DPA with DOCA PCC, or using NVIDIA turn-key apps which utilize the DPA (virtio-net/blk/fs, NVMe).

DPA Thread Context

Due to internal-stack API changes, as of firmware v28.43.2026, DPA thread context is changed in the DPA. This affects the overlying DPA stack.

As of firmware version 28.43.2026, internal-stack API changes have altered the DPA thread context, impacting the overlying DPA stack.

List of features which are supported in previous generations of hardware devices.

N/A

© Copyright 2025, NVIDIA. Last updated on May 22, 2025.