[Bug 236983] bnxt(4) VLAN not operational unless explicit "ifconfig promisc" is used on the physical IF

From: <bugzilla-noreply_at_freebsd.org>
Date: Sun, 14 Nov 2021 22:19:00 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=236983

misho@elwix.org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |misho@elwix.org

--- Comment #22 from misho@elwix.org ---
This patch fix promisc mode issue about VLAN on bnxt interface

diff --git a/sys/dev/bnxt/if_bnxt.c b/sys/dev/bnxt/if_bnxt.c
index 7811f4fdebf..f4a53cd4d93 100644
--- a/sys/dev/bnxt/if_bnxt.c
+++ b/sys/dev/bnxt/if_bnxt.c
@@ -588,7 +588,8 @@ bnxt_rx_queues_alloc(if_ctx_t ctx, caddr_t *vaddrs,
        softc->vnic_info.def_ring_grp = (uint16_t)HWRM_NA_SIGNATURE;
        softc->vnic_info.cos_rule = (uint16_t)HWRM_NA_SIGNATURE;
        softc->vnic_info.lb_rule = (uint16_t)HWRM_NA_SIGNATURE;
-       softc->vnic_info.rx_mask = HWRM_CFA_L2_SET_RX_MASK_INPUT_MASK_BCAST;
+       softc->vnic_info.rx_mask = HWRM_CFA_L2_SET_RX_MASK_INPUT_MASK_BCAST | 
+               HWRM_CFA_L2_SET_RX_MASK_INPUT_MASK_ANYVLAN_NONVLAN;
        softc->vnic_info.mc_list_count = 0;
        softc->vnic_info.flags = BNXT_VNIC_FLAG_DEFAULT;
        rc = iflib_dma_alloc(ctx, BNXT_MAX_MC_ADDRS * ETHER_ADDR_LEN,
@@ -1392,8 +1393,7 @@ bnxt_promisc_set(if_ctx_t ctx, int flags)
                    HWRM_CFA_L2_SET_RX_MASK_INPUT_MASK_ANYVLAN_NONVLAN;
        else
                softc->vnic_info.rx_mask &=
-                   ~(HWRM_CFA_L2_SET_RX_MASK_INPUT_MASK_PROMISCUOUS |
-                   HWRM_CFA_L2_SET_RX_MASK_INPUT_MASK_ANYVLAN_NONVLAN);
+                   ~(HWRM_CFA_L2_SET_RX_MASK_INPUT_MASK_PROMISCUOUS);

        rc = bnxt_hwrm_cfa_l2_set_rx_mask(softc, &softc->vnic_info);

-- 
You are receiving this mail because:
You are the assignee for the bug.