Hi,
I’m in a non-virtualised environment where I have a dpdk-based receiver that 
needs to direct traffic to different RX queues based _ONLY_ on vlan’s VID and 
PCP (i.e. vlan_id and priority).
I can’t rely on any specific mac addresses/ranges that I know in advance to 
choose the RX queues and I cannot use VFs (max_vfs = 0 in the PMD).
If it makes any difference, I don’t need to TX anything, just receive traffic 
for monitoring purposes.

In the past (dpdk-16.11), since I was only working with ixgbe devices, I hacked 
my way around and invoked dev_ops->set_vf_rx_mode with "ETH_VMDQ_ACCEPT_HASH_UC 
| ETH_VMDQ_ACCEPT_BROADCAST | ETH_VMDQ_ACCEPT_MULTICAST” flags, which 
ultimately invoked ixgbe_set_pool_rx_mode in the PMD.

It seemed a bit of a kludge, but it has worked well.

Now I’m facing two problems: I’m going to start using also i40 devices and I’m 
going to upgrade to dpdk-17.08/17.11.

1) Latest DPDKs (since 17.02 IIRC) don’t have anymore a “set_vf_rx_mode” devop 
and the PMD has now a dedicated rte_pmd_ixgbe_set_vf_rxmode which would do what 
I want, but it now seems to force you to have VFs enabled, as it checks against 
max_vfs being > 0, which is not my case.

2) I’ve never used i40 before and I don’t even know where to start here.

I have seen a “rx_mode” flag variable inside the rte_eth_vmdq_rx_conf structure 
that is designed to be set with the ETH_VMDQ_ACCEPT_* flags that I was using 
when invoking directly the set_vf_rx_mode devop, but I can see it is only used 
when in VMDQ_ONLY and not in VMDQ_DCB.

So, to summarise, I don’t use VFs and I don’t have any control / prior 
knowledge on mac addresses, but I’d like to perform VMDQ_DCB multi queue RX 
using only vlan’s VID and PCP on at least ixgbe and i40 PMDs, with latest DPDK.
Is there a supported and device-agnostic way to do that?


Reply via email to