DPDK patches and discussions
 help / color / mirror / Atom feed
* [dpdk-dev]  XL710: [Q] traffic steering under DPDK.
@ 2018-02-14 10:19 Anton Grichina
  0 siblings, 0 replies; 3+ messages in thread
From: Anton Grichina @ 2018-02-14 10:19 UTC (permalink / raw)
  To: dev, qi.z.zhang
  Cc: muthurajan.jayakumar, beilei.xing, jingjing.wu, helin.zhang

Hello,
I am working with Arkady on VLAN steering. I have few questions regarding it on top of what was asked before.
7.4.8.4 "VEB/VEPA Switching Algorithm" states that filtering happens by MAC+VLAN. It is impossible to perform filtering by VLAN only, as I understand it is HW limitation.

XL710 has something called "7.4.8.2 S-comp Forwarding Algorithm" which looks like exactly what we want. It does forwarding of packets to specific VSI based on S-tag.
S-tag is a part of "7.4.9.5.5.1 Add VSI (0x0210)" command. I guess we can configure several VSIs for expected S-tags.
Do you know anything about this algorithm?

As I understood "port virtualizer" (7.4.2.4.3 "Cascaded VEB and port virtualizers") supposed to be configured to use this switching algorithm.
In i40e driver (kernel or DPDK) I do not see anything related to configuration of "port virtualizers", except "i40e_aq_add_pvirt" function which is not used anywhere.
Is it possible to configure "port virtualizer" with existing i40e driver?

Another question is about "i40e_aq_set_vsi_uc_promisc_on_vlan" function in i40e driver (7.4.9.5.9.5 "Set VSI Promiscuous Modes"). It enables promiscuous mode for unicast packets with specific VLAN, so all packets with that VLAN will be replicated to configured VSI. In XL710 datasheet I`ve found that it works only in "Cloud VEB algorithm" (7.4.8.6). Can we somehow enable this algorithm with existing i40e drivers?

Thanks

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [dpdk-dev] XL710: [Q] traffic steering under DPDK.
  2018-02-02  8:15 Arkady Gilinsky
@ 2018-02-04 14:22 ` Zhang, Qi Z
  0 siblings, 0 replies; 3+ messages in thread
From: Zhang, Qi Z @ 2018-02-04 14:22 UTC (permalink / raw)
  To: Arkady Gilinsky, dev
  Cc: Jayakumar, Muthurajan, Xing, Beilei, Wu, Jingjing, Zhang, Helin

Hi Arkady:

	See my comment inline

Regards
Qi

> -----Original Message-----
> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Arkady Gilinsky
> Sent: Friday, February 2, 2018 4:15 PM
> To: dev@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.

^ permalink raw reply	[flat|nested] 3+ messages in thread

* [dpdk-dev] XL710: [Q] traffic steering under DPDK.
@ 2018-02-02  8:15 Arkady Gilinsky
  2018-02-04 14:22 ` Zhang, Qi Z
  0 siblings, 1 reply; 3+ messages in thread
From: Arkady Gilinsky @ 2018-02-02  8:15 UTC (permalink / raw)
  To: dev

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;
}
…
“
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.

- 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.)
- What mechanism supposed to be used to configure L2 steering? VEB (Virtual
Ethernet Bridge) or Flow Director?
- i40evf driver from DPDK does not allow us to disable “CRC stripping”
feature.
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.

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2018-02-14 10:19 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-02-14 10:19 [dpdk-dev] XL710: [Q] traffic steering under DPDK Anton Grichina
  -- strict thread matches above, loose matches on Subject: below --
2018-02-02  8:15 Arkady Gilinsky
2018-02-04 14:22 ` Zhang, Qi Z

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).