[dpdk-dev] XL710: [Q] traffic steering under DPDK.

Zhang, Qi Z qi.z.zhang at intel.com
Sun Feb 4 15:22:31 CET 2018


Hi Arkady:

	See my comment inline

Regards
Qi

> -----Original Message-----
> From: dev [mailto:dev-bounces at dpdk.org] On Behalf Of Arkady Gilinsky
> Sent: Friday, February 2, 2018 4:15 PM
> To: dev at dpdk.org
> Subject: [dpdk-dev] XL710: [Q] traffic steering under DPDK.
> 
> Hi,
> 
> Basically we are trying to configure packet steering to specific VF according to
> L2 filter on XL710 Intel NIC adapter. We need to support steering by MAC
> address and VLAN VID.
> We do not need perfect match filtering, packet supposed to be sent to specific
> VF when MAC address or VLAN VID matches configured values. See
> pseudocode:
>> If(packet->mac == expected_mac_vf_1 || packet->vlan.vid ==
> expected_vlan_vf_1) {
> sendToVf_1(packet);
> return;
> }

I think current implementation will not support this.
But, I'm not sure if it's possible, according to datasheet 7.4.8.4, I didn't figure out a configuration that can support above logic.

Jingjing and Beilei, please correct me if you have different thought. 

>>> Typically in production multiple MACs and VLANs will be associated with the
> same VF. There could be several MACs(10th) and many VLANs(100th) in our
> system.
> We are using kernel PF + DPDK VF.

OK, probably this issue is more related with kernel PF driver, but as previous comment, 
To me it's more like a hardware limitation but not driver's.
> 
> - Can we somehow configure XL710 to classify packet by MAC and VLAN
> separately (OR instead of AND)? (We have a working code that did MAC AND
> VLAN.)

See previous comment


> - What mechanism supposed to be used to configure L2 steering? VEB (Virtual
> Ethernet Bridge) or Flow Director?

I think we are talking about VEB, Please check datasheet 7.4 for more detail.

> - i40evf driver from DPDK does not allow us to disable “CRC stripping”
> feature.

This is not hardware limitation, the driver just not support it yet
More detail
Since control patch is handled by PF driver, to enable this, VF need to send the request to PF then PF can turn on/off crc strip flag when configure VF's queue context.
The gap here is, the Virtual Channel( APIs for VF to PF communication) does not support CRC stripping configuration and kernel PF driver always enable CRC stripping.

I think it could be enabled if we have reasonable requirement from customer.

> We cannot set “hw_strip_crc” to “0”. See “i40e_ethdev_vf.c:1593”:
>> /* For non-DPDK PF drivers, VF has no ability to disable HW
> * CRC strip, and is implicitly enabled by the PF.
> */
> if (!conf->rxmode.hw_strip_crc) {
> vf = I40EVF_DEV_PRIVATE_TO_VF(dev->data->dev_private);
> if ((vf->version_major == I40E_VIRTCHNL_VERSION_MAJOR) &&
> (vf->version_minor <= I40E_VIRTCHNL_VERSION_MINOR)) {
> /* Peer is running non-DPDK PF driver. */ PMD_INIT_LOG(ERR, "VF can't disable
> HW CRC Strip"); return -EINVAL; } } “
> - We see that VF strips VLAN from packet. Can we preserve tag in the packet?
> Following DPDK API setting does not help: “port_conf.rxmode.hw_vlan_strip =
> 0”.
> 
> Please advice.
> =============
> Best regards
> Arkady Gilinsky.


More information about the dev mailing list