-----Original Message----- From: Morten Brørup <[email protected]> Sent: 17 December 2025 19:44 To: Richardson, Bruce <[email protected]> Cc: Mandal, Anurag <[email protected]>; [email protected]; Burakov, Anatoly <[email protected]> Subject: RE: [PATCH v3] net/ice: add MAC anti-spoof option
> From: Bruce Richardson [mailto:[email protected]] > Sent: Wednesday, 17 December 2025 14.46 > > On Wed, Dec 17, 2025 at 01:37:16PM +0100, Morten Brørup wrote: > > > From: Bruce Richardson [mailto:[email protected]] > > > Sent: Wednesday, 17 December 2025 12.53 > > > > > > On Thu, Dec 11, 2025 at 03:22:32PM +0000, Bruce Richardson wrote: > > > > On Wed, Dec 03, 2025 at 03:47:08PM +0100, Morten Brørup wrote: > > > > > > From: Mandal, Anurag [mailto:[email protected]] > > > > > > Sent: Wednesday, 3 December 2025 15.36 > > > > > > > > > > > > Hi Morten Brørup, > > > > > > > > > > > > From: Morten Brørup <[email protected]> > > > > > > Sent: 03 December 2025 17:11 > > > > > > > @@ -1761,13 +1763,39 @@ ice_setup_vsi(struct ice_pf *pf, > enum > > > > > > > ice_vsi_type type) > > > > > > > /* Source Prune */ > > > > > > > if (ad->devargs.source_prune != 1) { > > > > > > > /* Disable source prune to support VRRP > > > > > > > - * when source-prune devarg is not set > > > > > > > + * when source-prune devargs is not set > > > > > > > */ > > > > > > > vsi_ctx.info.sw_flags = > > > > > > > ICE_AQ_VSI_SW_FLAG_LOCAL_LB; > > > > > > > - vsi_ctx.info.sw_flags |= > > > > > > > + } else { /* Enable Source Prune in Rx */ > > > > > > > + vsi_ctx.info.sw_flags = > > > > > > > ICE_AQ_VSI_SW_FLAG_SRC_PRUNE; > > > > > > > } > > > > > > > > > > > > This looks like a bug fix related to Source Prune? > > > > > > > > > > > > Ans: Not exactly. > > > > > > Initially, Source Prune was disabled, and MAC Anti-spoof > check > > > was > > > > > > enabled by default. This was done by following:- Source > > > > > > Prune is disabled by setting local loopback with > > > > > > ICE_AQ_VSI_SW_FLAG_LOCAL_LB flag in the Rx direction. > > > > > > ICE_AQ_VSI_SW_FLAG_SRC_PRUNE is added to prevent transmitted > > > packets > > > > > > from being looped back in some circumstances. > > > > > > Now, MAC Anti-spoof check can be disabled by clearing both > > > > > > ICE_AQ_VSI_SW_FLAG_SRC_PRUNE and > > > > > > ICE_AQ_VSI_SEC_FLAG_ENA_MAC_ANTI_SPOOF flags and setting Tx > > > loopback > > > > > > with > > > > > > ICE_AQ_VSI_SW_FLAG_ALLOW_LB flag in the Tx direction. > > > > > > > > > > > > As we moved to making both source prune and mac anti-spoof > check > > > > > > disabled by default, I thought no point to set > > > > > > ICE_AQ_VSI_SW_FLAG_SRC_PRUNE during source prune disable and > then > > > > > > clearing it to disable mac anti-spoof. > > > > > > > > > > OK. Thank you for elaborating. > > > > > > > > > > > > > > > > > Thank you. > > > > > > > > > > > > Regards, > > > > > > Anurag M > > > > > > > > > > Note to maintainers: > > > > > This devarg is like the Source Prune devarg. > > > > > If we want to elevate these exotic features into proper Ethdev > > > APIs, it should be done for both devargs in a separate patch. > > > > > > > > > > Acked-by: Morten Brørup <[email protected]> > > > > > > > > > Applied to dpdk-next-net-intel. > > > > > > > Unfortunately, this patch causes changes in the driver behaviour > > > leading to CI failures. These issues can be seen with testpmd > > > where packets > are > > > looping back inside a nic port unexpectedly. > > > > Can you please elaborate "packets are looping back"? > > > > When testpmd is configured for mac forwarding, sending in a single > packet leads to a constant stream of packets being handled by testpmd. > > > If the packets egress on one physical port, they certainly shouldn't > ingress back on the same physical port. > > > > However, if they egress on one virtual port, and are internally > switched to ingress on another virtual port on the same physical port, > I would consider that expected behavior - the same would happen if > those ports were physical and connected to the same physical switch. > > > > If they are ingressing on the same virtual port they were sent on, > that would seem like a bug in the NICs virtual switch. A physical > switch normally wouldn't transmit packets back out on the port they > ingressed on. > > > > Not exactly sure what is happening internally, it needs some > investigation. Sure sounds like it. Let's hope it's only testpmd, and not a broader issue with the NIC/driver. > > > > Therefore, this patch > > > needs to > > > be dropped from next-net-intel. > > > > > > Can you please do a new version adding the feature you require > while > > > still > > > keeping the existing default behaviour. I'm going to move the > patch > > > status > > > from accepted to "changes requested" in patchwork, in anticipation > of a > > > new > > > version. > > > > > > Regards, > > > /Bruce > > > > This sounds like the CI needs to be fixed. > > Why does the CI expect this kind of filtering to be enabled by > default? > > I wouldn't expect other NICs to perform similar filtering. > > > It could well be a testing issue, or a combination of incorrect > default behaviour and a sub-optimal test case. However, until that is > fully root-caused, I'm backing out the patch for safety. > A new patch with reverted default behavior seems like the proper short-term > solution. > While investigating, we can live with the wrong default behavior, as a "well > known bug". > And the configurability will be helpful for root-causing. > > /Bruce Hi Morten & Bruce, Please note, when I sent the patch[v2] with MAC Anti Spoof enabled by default which is the current behaviour without the concerned patch , then no CI issues were reported. PFB the reference. https://patches.dpdk.org/project/dpdk/patch/[email protected]/ Root Cause of the CI failure:- Source Prune is disabled by default while doing that we used to set ICE_AQ_VSI_SW_FLAG_SRC_PRUNE flag as well which is added to prevent transmitted packets from being looped back in some circumstances like the one CI reporting. Now, if we make MAC anti-spoof disabled by default , we have to clear/not set that ICE_AQ_VSI_SW_FLAG_SRC_PRUNE flag and set ICE_AQ_VSI_SW_FLAG_ALLOW_LB flag. Hence, my initial solution in patch v2 was to keep source prune disabled and mac anti-spoof enabled by default. Please let me know the way forward. Thanks, Anurag

