git: edf4edbd1ca0 - stable/14 - ixgbe: disable VF multicast reception for empty list
Kevin Bowling <[email protected]>
| Newsgroups | gmane.os.freebsd.devel.cvs.src |
|---|---|
| Message-ID | <6a767bdd.3eaf6.59c6aa0c__35035.2186172799$1786149981$gmane$org@gitrepo.freebsd.org> |
The branch stable/14 has been updated by kbowling: URL: https://cgit.FreeBSD.org/src/commit/?id=edf4edbd1ca09ee9b0c255d7506f3b5bc9542557 commit edf4edbd1ca09ee9b0c255d7506f3b5bc9542557 Author: Wei Zhao <[email protected]> AuthorDate: 2026-07-28 11:20:32 +0000 Commit: Kevin Bowling <[email protected]> CommitDate: 2026-08-08 00:42:40 +0000 ixgbe: disable VF multicast reception for empty list Clear ROMPE for an empty list and enable it only for a nonempty list. FreeBSD already clears ROMPE when resetting a VF, so that part of the DPDK change is not needed. DPDK commit message net/ixgbe: fix over using multicast table for VF VMOLR.ROMPE allows a VF to receive packets matching the shared multicast table. Leaving it enabled after the VF removes its last multicast address lets PF or peer-VF table entries continue selecting that VF. Signed-off-by: Wei Zhao <[email protected]> Acked-by: Qi Zhang <[email protected]> Obtained from: DPDK (dc5a6e7422) (cherry picked from commit 786c71845f80b8bf733d07f9155de9740a8cbc19) --- sys/dev/ixgbe/if_sriov.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/sys/dev/ixgbe/if_sriov.c b/sys/dev/ixgbe/if_sriov.c index c822303a4067..8d4e20fcf8bf 100644 --- a/sys/dev/ixgbe/if_sriov.c +++ b/sys/dev/ixgbe/if_sriov.c @@ -437,7 +437,10 @@ ixgbe_vf_set_mc_addr(struct ixgbe_softc *sc, struct ixgbe_vf *vf, u32 *msg) IXGBE_WRITE_REG(&sc->hw, IXGBE_MTA(vec_reg), mta_reg); } - vmolr |= IXGBE_VMOLR_ROMPE; + if (entries == 0) + vmolr &= ~IXGBE_VMOLR_ROMPE; + else + vmolr |= IXGBE_VMOLR_ROMPE; IXGBE_WRITE_REG(&sc->hw, IXGBE_VMOLR(vf->pool), vmolr); ixgbe_send_vf_success(sc, vf, msg[0]); } /* ixgbe_vf_set_mc_addr */