Thank you.
Regards,
Anurag M
-----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