[PATCH v12-S2 00/11] net/dpaa2 updates

Stephen Hemminger stephen at networkplumber.org
Fri Oct 16 18:18:18 CEST 2026


On Fri, 16 Oct 2026 12:33:28 +0530
Prashant Gupta <prashant.gupta_3 at nxp.com> wrote:

> Changes in v12:
> - Restore VXLAN rte_flow item documentation in dpaa2.ini to
>   keep documentation aligned with PMD capabilities.
> - Fix documentation check failure reported after application
>   to next-net.

This is worse not better.

Subject: Re: [PATCH v12-S2 00/11] net/dpaa2: ...

Series applies cleanly to 26.11-rc1 and every commit builds with
-Dwerror=true.

The doc-vs-code problem is not fixed, it is now hidden. Patch 10
removes VXLAN support but leaves "vxlan = Y" in the feature matrix.
check-doc-vs-code.sh passes only because a stray
RTE_FLOW_ITEM_TYPE_VXLAN reference survives in
dpaa2_flow_item_convert().

Pre-existing, separate fix needed: dpaa2_flow_item_convert() allocates
one item too few. For "eth / end" num ends at 1, rte_malloc() gets
1 * sizeof(item), then new_pattern[1] is written for the END marker.
An empty pattern also reads pattern[1] past the end.

	for (num = 0; pattern[num].type != RTE_FLOW_ITEM_TYPE_END; num++)
		;
	new_pattern = rte_malloc(NULL, sizeof(*new_pattern) * (num + 1),
				 RTE_CACHE_LINE_SIZE);


Patch 06/11 net/dpaa2: set default flow miss action per device

Error:
  default_flow = min(fs_entries, dist_queues) - 1 is computed at probe
  from hardware attributes, but fs_miss_flow_id is a queue index inside
  the TC distribution, and dist_size is nb_rx_queues / num_rx_tc set at
  configure time. A DPNI with 16 queues where the app configures 4 Rx
  queues gets fs_miss_flow_id 15 with dist_size 4: either MC rejects
  dpni_set_rx_fs_dist() and every rte_flow create fails, or unmatched
  frames go to an unconfigured queue. The old default (0) was always
  valid. fs_entries is the FS table size, not a flow id, and should not
  be in this expression at all.

  Compute it where dist_size is known and drop the priv field:

	tc_cfg.enable = true;
	tc_cfg.fs_miss_flow_id = dist_size - 1;

  Or keep 0. Either way the release note must say which queue gets
  unmatched frames.

Patch 07/11 net/dpaa2: identify Rx mbuf hash information by FLC

Warning:
  Commit message says TC and flow id are stored via
  rte_mbuf_sched_set(); the code writes m->hash.fdir.hi. Fix the
  message.

  RTE_MBUF_F_RX_FDIR_ID means hash.fdir.hi holds the id from a MARK
  action. This driver has no MARK action, so applications see a
  synthetic (tc << 16) | flow value as if it were a mark. Set only
  RTE_MBUF_F_RX_FDIR, or implement RTE_FLOW_ACTION_TYPE_MARK.

Patch 09/11 net/dpaa2: parse tunnel and fragmented packet types

Warning:
  Parse summary 0x0001 was mapped to RTE_PTYPE_L3_IPV4_EXT (options
  present). Now it is L3_IPV4_EXT | L4_FRAG. The slow path treats
  options (L3_IP_1_OPT_PRESENT) and fragments (L3_IP_1_*_FRAGMENT) as
  independent bits, so one summary code cannot mean both. If 0x0001 is
  the fragment code, the mapping should be:

	case DPAA2_PKT_TYPE_IPV4_EXT:
		m->packet_type = RTE_PTYPE_L2_ETHER |
			RTE_PTYPE_L3_IPV4 | RTE_PTYPE_L4_FRAG;

  and the IPV4_EXT/IPV6_EXT names should be changed to match. If it
  is the options code, drop L4_FRAG.

Patch 10/11 net/dpaa2: remove unused soft parser driver

Error:
  doc/guides/nics/features/dpaa2.ini still has "vxlan = Y". Commit
  message and release note both say the item is no longer advertised.

	-vxlan                = Y

  The leftover VXLAN check in dpaa2_flow_item_convert() is what keeps
  the doc-vs-code script quiet. Remove it:

	-		if (pattern[num].type == RTE_FLOW_ITEM_TYPE_VXLAN)
	-			tunnel_start = 1;
	-		else if (tunnel_start)
	-			new_pattern[num].in_tunnel = 1;

Error:
  dpaa2_flow_create() does not call dpaa2_flow_validate(), and the
  default case in dpaa2_generic_flow_set() sets ret = -ENOTSUP and
  breaks out of the switch without leaving the loop; the action loop
  then overwrites ret. With the VXLAN/ECPRI cases removed,
  "eth / ipv4 / udp / vxlan / end actions queue index 1" now creates a
  rule matching all UDP. Fix before (or in) this patch:

		default:
			DPAA2_PMD_ERR("Invalid flow item[%d] type(%d)",
				i, pattern[i].type);
			ret = -ENOTSUP;
	-		break;
	+		goto end_flow_set;

Warning:
  Removing the VXLAN/ECPRI cases in dpaa2_flow_extract_support() left
  two dead "break;" lines after the GRE case.

  Leftovers from the removal:
    dpaa2_ethdev.h: dpaa2_soft_parser_loaded() prototype
    dpaa2_ethdev.h: ss_offset, ss_iova, ss_param_iova in dpaa2_dev_priv
    dpaa2_ethdev.h: DPAA2_ECPRI_MAX_EXTRACT_NB
    dpaa2_flow.c:   #include <sys/mman.h>

Info:
  With VXLAN gone nothing sets in_tunnel, so tunnel_start and every
  "if (dpaa2_pattern->in_tunnel)" branch in the configure handlers is
  dead. Fine as a follow-up.

Patch 11/11 net/dpaa2: rename Rx queue flags

Warning:
  Commit message says mechanical rename, but it adds
  DPAA2_RX_PRINT_PSR_RESULT_FLAG, which nothing uses. Drop it.

Patch 01/11 net/dpaa2: fix integer overflow in CCSR region mapping

Warning:
  Second paragraph of the commit message is wrong. For len 4096 on a
  64K-page kernel the old code masked len to 0 and then bumped it to
  PAGE_SIZE, so the mapping did not fail. The real defect is that the
  old length ignored offset, so a region crossing a page boundary was
  not fully mapped. Since this goes to stable, the message should say
  that.

Info:
  PAGE_SIZE and PAGE_MASK in dpaa2_recycle.c are now unused; remove.

Patch 03/11 net/dpaa2: support larger burst size

Info:
  Limit for non-LX2160A (and LX2160A with dpni < 8.7) drops from 65536
  to 0xF7FF. Mention that in the commit message. Write 0x37FFF instead
  of 229375 so it matches the fsl_dpni.h comment.


More information about the dev mailing list