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.

