Hi All,

I am experimenting  DPDK with VMXNET3. I see that the vmxnet3 driver code
does not set vlan filtering if port is in promiscuous mode.
I modified the vmxnet3 code to skip the check for promiscuous port, code
below. But it does not seem like filtering works with this change, when
port is in prom. mode.

Does the firmware not look at the vlan table if port is in promiscuous
mode.

Any help is appreciated.

Thanks!!

/* Enable/disable filter on vlan */
static int
vmxnet3_dev_vlan_filter_set(struct rte_eth_dev *dev, uint16_t vid, int on)
{
        struct vmxnet3_hw *hw = dev->data->dev_private;
        struct Vmxnet3_RxFilterConf *rxConf =
&hw->shared->devRead.rxFilterConf;
        uint32_t *vf_table = rxConf->vfTable;

        /* save state for restore */
        if (on)
                VMXNET3_SET_VFTABLE_ENTRY(hw->shadow_vfta, vid);
        else
                VMXNET3_CLEAR_VFTABLE_ENTRY(hw->shadow_vfta, vid);

*#if 0*
*        /* don't change active filter if in promiscuous mode */*
*        if (rxConf->rxMode & VMXNET3_RXM_PROMISC)*
*                return 0;*
*#endif*

        /* set in hardware */
        if (on)
                VMXNET3_SET_VFTABLE_ENTRY(vf_table, vid);
        else
                VMXNET3_CLEAR_VFTABLE_ENTRY(vf_table, vid);

        VMXNET3_WRITE_BAR1_REG(hw, VMXNET3_REG_CMD,
                               VMXNET3_CMD_UPDATE_VLAN_FILTERS);
        return 0;
}
-- 
A.Geetha

"Everything is Possible. The impossible only takes a little longer"

Reply via email to