On Fri, 16 Oct 2026 12:33:38 +0530
Prashant Gupta <[email protected]> wrote:

> From: Jun Yang <[email protected]>
> 
> The DPAA2 soft parser (SP) byte code has to be installed by the boot
> firmware before Linux starts; the WRIOP parser cannot be reprogrammed once
> the MC is up. Loading an SP image at run time from the PMD therefore never
> took effect, so the loader and its DPNI_SS_INGRESS plumbing were dead
> code and are removed.
> 
> The rte_flow VXLAN and eCPRI pattern items were only ever accepted while
> an SP image was believed to be loaded. With the SP gone they are rejected
> by dpaa2_dev_verify_patterns() before the configure switch is reached, so
> their handlers dpaa2_configure_flow_vxlan() and
> dpaa2_configure_flow_ecpri(), the switch cases that call them, the mask
> descriptors and the VXLAN_HF_VNI helper are removed as well. The eCPRI item
> is also removed from the dpaa2 feature matrix so that the documented
> capabilities match the code.
> 
> Signed-off-by: Jun Yang <[email protected]>
> Signed-off-by: Prashant Gupta <[email protected]>
> ---

Sigh. AI review said "I am sorry last review was wrong.."

Subject: Re: [PATCH v13-S2 00/10] net/dpaa2: ...

Series applies cleanly to 26.11-rc1 and every commit builds with
-Dwerror=true. Feature matrix now matches the code. v12 comments on
patches 1, 7, 9 and 10 are addressed.

One problem left, in patch 6.

Still needs a separate fix, outside this series:
dpaa2_flow_item_convert() allocates num items and writes num + 1
(the END marker).


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

Error:
  My v12 comment got the mechanism wrong. priv->nb_rx_queues is the
  DPNI hardware count (num_rx_tcs * num_queues), not the application's
  queue count, so dist_size - 1 is always a valid FS flow id. The
  problem is that the queue may not be set up.

  Rx queue i maps to tc = i / dist_size, flow = i % dist_size, and
  dpni_set_queue() and the taildrop setup only run in
  dpaa2_dev_rx_queue_setup(). On a 16-queue DPNI where the application
  configures 4 Rx queues, unmatched frames go to flow 15. Nothing polls
  that FQ and it has no taildrop, so frames pile up and hold buffers
  until the pool runs out and Rx stops on every queue. The old default
  of 0 was always polled.

  Use the last queue the application actually configured in this TC:

        uint16_t nb_rxq = priv->eth_dev->data->nb_rx_queues;
        uint16_t first = tc_id * dist_size;

        tc_cfg.enable = true;
        tc_cfg.fs_miss_flow_id = nb_rxq > first ?
                RTE_MIN(dist_size, nb_rxq - first) - 1 : 0;

Warning:
  Release note says the miss flow id "defaults to the lowest-priority
  flow of the device". An FS flow id is a queue index within the TC,
  not a priority. Say which queue gets unmatched frames, e.g.:

        The flow steering miss queue now defaults to the last Rx queue
        configured in the traffic class.

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

Info:
  DPAA2_PKT_TYPE_IPV4_ICMP is now (0x0003 | DPAA2_PKT_TYPE_IPV4_FRAG),
  which reads as if ICMP were a fragment. The value is the same either
  way; write it as (0x0003 | DPAA2_PKT_TYPE_IPV4), and the same for
  IPv6.

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

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

Reply via email to