All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Chen, Jing D" <jing.d.chen@intel.com>
To: Vincent JARDIN <vincent.jardin@6wind.com>,
	"Yigit, Ferruh" <ferruh.yigit@intel.com>,
	"dev@dpdk.org" <dev@dpdk.org>
Cc: "Wu, Jingjing" <jingjing.wu@intel.com>,
	"Zhang, Helin" <helin.zhang@intel.com>
Subject: Re: [PATCH v5 00/29] Support VFD and DPDK PF + kernel VF on i40e
Date: Mon, 19 Dec 2016 09:01:09 +0000	[thread overview]
Message-ID: <4341B239C0EFF9468EE453F9E9F4604D3C5B7FE2@shsmsx102.ccr.corp.intel.com> (raw)
In-Reply-To: <5846f66b-9a83-faa6-3de1-c7ae12236201@6wind.com>

Hi, Vincent,


> -----Original Message-----
> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Vincent JARDIN
> Sent: Saturday, December 17, 2016 4:36 AM
> To: Yigit, Ferruh <ferruh.yigit@intel.com>; dev@dpdk.org
> Cc: Wu, Jingjing <jingjing.wu@intel.com>; Zhang, Helin <helin.zhang@intel.com>
> Subject: Re: [dpdk-dev] [PATCH v5 00/29] Support VFD and DPDK PF + kernel VF on
> i40e
> 
> Le 16/12/2016 à 20:02, Ferruh Yigit a écrit :
> > As we need to support the scenario kernel PF + DPDK VF,
> > DPDK follows the interface between kernel PF + kernel VF.
> 
> Please, it has to be proven that DPDK provides the same interface that
> the kernel. It seems insane to duplicate kernel's PF into the DPDK
> without a strong guarantee that it is a strict same behaviour. For instance,
>    - what will happen when the DPDK's PF will have a new feature which
> is not into the kernel?
>    - what will happen when the Kernel's PF will have a feature with
> different capabilities that the kernel?
> 
> Please, make it clear before. Currently, for me it is a nack of this serie.
> 
Let me try to explain.
When we DPDK developed i40e drivers several years ago,  we found the API and
data structures defined in shared code for VF and PF device communication can
satisfy DPDK's requirements, so we just followed that API.  At that time, we'll try 
to satisfy 3 scenarios.
1. Linux PF + Linux VF : it's not our scope.
2. Linux PF + DPDK VF: there is no problems observed since we use same API.
3. DPDK PF + DPDK VF: that's fully under control.
The only scenario was not considered is DPDK PF + Linux VF.

Since then, both Linux and DPDK keep developing code. Then, we found it's
necessary to extend VF capability (Like promiscuous mode). It will be hard to
ask Linux PF to support that service considering upstream effort in Linux world.
So, supporting it in scenario of DPDK PF + DPDK VF became best candidate. But 
how can VF identify who is serving it then decide if extended request can be dispatched?
So, DPDK PF will send a special version number for this purpose.

As time passed by, we realized there some use case for DPDK PF + Linux VF and it's not
supported yet. Then, we found our implementation in DPDK PF is not complete since we
only had considered how to serve DPDK VF at that time. So, we need some improvement
on the PF host driver. Besides that, 'send a special version' to VF doesn't work now since
Linux VF can't interpret the version info. So, we behave the same as Linux PF driver with
sacrifice of extended function in DPDK VF. 

Let me summary the chang here.
1. We shared the same interface with Linux driver from beginning. 
2. This change will support both Linux VF and DPDK VF.
3. We'll find a way for DPDK VF identifying who is serving it so it can use extended function
in future release.

  reply	other threads:[~2016-12-19  9:01 UTC|newest]

Thread overview: 125+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-12-15 21:04 [PATCH v3 00/29] Support VFD and DPDK PF + kernel VF on i40e Qi Zhang
2016-12-15 21:04 ` [PATCH v3 01/29] net/i40e: support link status notification Qi Zhang
2016-12-15 21:04 ` [PATCH v3 02/29] net/i40e: add callback to user on VF to PF mbox msg Qi Zhang
2016-12-15 21:04 ` [PATCH v3 03/29] net/i40e: set VF MAC anti-spoofing from PF Qi Zhang
2016-12-15 21:04 ` [PATCH v3 04/29] net/i40e: set VF VLAN " Qi Zhang
2016-12-15 21:04 ` [PATCH v3 05/29] net/i40e: set Tx loopback " Qi Zhang
2016-12-15 21:04 ` [PATCH v3 06/29] net/i40e: set VF unicast promisc mode " Qi Zhang
2016-12-15 21:04 ` [PATCH v3 07/29] net/i40e: set VF multicast " Qi Zhang
2016-12-15 21:04 ` [PATCH v3 08/29] net/i40e: enable VF MTU change Qi Zhang
2016-12-15 21:04 ` [PATCH v3 09/29] net/i40e: fix VF reset flow Qi Zhang
2016-12-15 21:05 ` [PATCH v3 10/29] net/i40e: set VF MAC from PF support Qi Zhang
2016-12-15 21:05 ` [PATCH v3 11/29] net/i40e: set VF MAC from VF support Qi Zhang
2016-12-15 21:05 ` [PATCH v3 12/29] net/i40e: fix VF MAC address assignment Qi Zhang
2016-12-15 21:05 ` [PATCH v3 13/29] net/i40e: add VF VLAN strip func Qi Zhang
2016-12-15 21:05 ` [PATCH v3 14/29] net/i40e: add set VF VLAN insert function Qi Zhang
2016-12-15 21:05 ` [PATCH v3 15/29] net/i40e: set VF broadcast mode from PF Qi Zhang
2016-12-15 21:05 ` [PATCH v3 16/29] net/i40e: set VF VLAN tag " Qi Zhang
2016-12-15 21:05 ` [PATCH v3 17/29] net/i40e: set VF VLAN filter " Qi Zhang
2016-12-15 21:05 ` [PATCH v3 18/29] app/testpmd: use VFD APIs on i40e Qi Zhang
2016-12-15 21:05 ` [PATCH v3 19/29] app/testpmd: use unicast promiscuous mode " Qi Zhang
2016-12-15 21:05 ` [PATCH v3 20/29] app/testpmd: use multicast " Qi Zhang
2016-12-15 21:05 ` [PATCH v3 21/29] app/testpmd: add command to test VF broadcast " Qi Zhang
2016-12-15 21:05 ` [PATCH v3 22/29] app/testpmd: add command to test VF VLAN tag " Qi Zhang
2016-12-15 21:05 ` [PATCH v3 23/29] app/testpmd: handle i40e in VF VLAN filter command Qi Zhang
2016-12-15 21:05 ` [PATCH v3 24/29] net/i40e: change version number to support Linux VF Qi Zhang
2016-12-15 21:05 ` [PATCH v3 25/29] net/i40e: return correct VSI id Qi Zhang
2016-12-15 21:05 ` [PATCH v3 26/29] net/i40e: parse more VF parameter and configure Qi Zhang
2016-12-15 21:05 ` [PATCH v3 27/29] net/i40e: support Linux VF to configure IRQ link list Qi Zhang
2016-12-15 21:05 ` [PATCH v3 28/29] net/i40e: enhance in sanity check of MAC Qi Zhang
2016-12-15 21:05 ` [PATCH v3 29/29] net/i40e: set/clear VF stats from PF Qi Zhang
2016-12-16 14:28 ` [PATCH v3 00/29] Support VFD and DPDK PF + kernel VF on i40e Ferruh Yigit
2016-12-16 14:38 ` [PATCH v4 " Ferruh Yigit
2016-12-16 14:38   ` [PATCH v4 01/29] net/i40e: support link status notification Ferruh Yigit
2016-12-16 14:38   ` [PATCH v4 02/29] net/i40e: add callback to user on VF to PF mbox msg Ferruh Yigit
2016-12-16 14:38   ` [PATCH v4 03/29] net/i40e: set VF MAC anti-spoofing from PF Ferruh Yigit
2016-12-16 14:38   ` [PATCH v4 04/29] net/i40e: set VF VLAN " Ferruh Yigit
2016-12-16 14:38   ` [PATCH v4 05/29] net/i40e: set Tx loopback " Ferruh Yigit
2016-12-16 14:38   ` [PATCH v4 06/29] net/i40e: set VF unicast promisc mode " Ferruh Yigit
2016-12-16 14:38   ` [PATCH v4 07/29] net/i40e: set VF multicast " Ferruh Yigit
2016-12-16 14:38   ` [PATCH v4 08/29] net/i40e: enable VF MTU change Ferruh Yigit
2016-12-16 14:38   ` [PATCH v4 09/29] net/i40e: fix VF reset flow Ferruh Yigit
2016-12-16 14:39   ` [PATCH v4 10/29] net/i40e: set VF MAC from PF support Ferruh Yigit
2016-12-16 14:39   ` [PATCH v4 11/29] net/i40e: set VF MAC from VF support Ferruh Yigit
2016-12-16 14:39   ` [PATCH v4 12/29] net/i40e: fix VF MAC address assignment Ferruh Yigit
2016-12-16 14:39   ` [PATCH v4 13/29] net/i40e: add VF VLAN strip func Ferruh Yigit
2016-12-16 14:39   ` [PATCH v4 14/29] net/i40e: add set VF VLAN insert function Ferruh Yigit
2016-12-16 14:39   ` [PATCH v4 15/29] net/i40e: set VF broadcast mode from PF Ferruh Yigit
2016-12-16 14:39   ` [PATCH v4 16/29] net/i40e: set VF VLAN tag " Ferruh Yigit
2016-12-16 14:39   ` [PATCH v4 17/29] net/i40e: set VF VLAN filter " Ferruh Yigit
2016-12-16 14:39   ` [PATCH v4 18/29] app/testpmd: use VFD APIs on i40e Ferruh Yigit
2016-12-16 14:39   ` [PATCH v4 19/29] app/testpmd: use unicast promiscuous mode " Ferruh Yigit
2016-12-16 14:39   ` [PATCH v4 20/29] app/testpmd: use multicast " Ferruh Yigit
2016-12-16 14:39   ` [PATCH v4 21/29] app/testpmd: add command to test VF broadcast " Ferruh Yigit
2016-12-16 14:39   ` [PATCH v4 22/29] app/testpmd: add command to test VF VLAN tag " Ferruh Yigit
2016-12-16 14:39   ` [PATCH v4 23/29] app/testpmd: handle i40e in VF VLAN filter command Ferruh Yigit
2016-12-16 14:39   ` [PATCH v4 24/29] net/i40e: change version number to support Linux VF Ferruh Yigit
2016-12-16 14:39   ` [PATCH v4 25/29] net/i40e: return correct VSI id Ferruh Yigit
2016-12-16 14:39   ` [PATCH v4 26/29] net/i40e: parse more VF parameter and configure Ferruh Yigit
2016-12-16 14:39   ` [PATCH v4 27/29] net/i40e: support Linux VF to configure IRQ link list Ferruh Yigit
2016-12-16 14:39   ` [PATCH v4 28/29] net/i40e: enhance in sanity check of MAC Ferruh Yigit
2016-12-16 14:39   ` [PATCH v4 29/29] net/i40e: set/clear VF stats from PF Ferruh Yigit
2016-12-16 14:45   ` [PATCH v4 00/29] Support VFD and DPDK PF + kernel VF on i40e Vincent Jardin
2016-12-16 19:02   ` [PATCH v5 " Ferruh Yigit
2016-12-16 19:02     ` [PATCH v5 01/29] net/i40e: support link status notification Ferruh Yigit
2016-12-16 19:02     ` [PATCH v5 02/29] net/i40e: add callback to user on VF to PF mbox msg Ferruh Yigit
2016-12-16 19:02     ` [PATCH v5 03/29] net/i40e: set VF MAC anti-spoofing from PF Ferruh Yigit
2016-12-16 19:02     ` [PATCH v5 04/29] net/i40e: set VF VLAN " Ferruh Yigit
2016-12-16 19:02     ` [PATCH v5 05/29] net/i40e: set Tx loopback " Ferruh Yigit
2016-12-16 19:02     ` [PATCH v5 06/29] net/i40e: set VF unicast promisc mode " Ferruh Yigit
2016-12-16 19:02     ` [PATCH v5 07/29] net/i40e: set VF multicast " Ferruh Yigit
2016-12-16 19:02     ` [PATCH v5 08/29] net/i40e: enable VF MTU change Ferruh Yigit
2016-12-16 19:02     ` [PATCH v5 09/29] net/i40e: fix VF reset flow Ferruh Yigit
2016-12-16 19:02     ` [PATCH v5 10/29] net/i40e: set VF MAC from PF support Ferruh Yigit
2016-12-16 19:02     ` [PATCH v5 11/29] net/i40e: set VF MAC from VF support Ferruh Yigit
2016-12-16 19:02     ` [PATCH v5 12/29] net/i40e: fix VF MAC address assignment Ferruh Yigit
2016-12-16 19:02     ` [PATCH v5 13/29] net/i40e: add VF VLAN strip func Ferruh Yigit
2016-12-16 19:02     ` [PATCH v5 14/29] net/i40e: add set VF VLAN insert function Ferruh Yigit
2016-12-16 19:02     ` [PATCH v5 15/29] net/i40e: set VF broadcast mode from PF Ferruh Yigit
2016-12-16 19:02     ` [PATCH v5 16/29] net/i40e: set VF VLAN tag " Ferruh Yigit
2016-12-16 19:02     ` [PATCH v5 17/29] net/i40e: set VF VLAN filter " Ferruh Yigit
2016-12-16 19:02     ` [PATCH v5 18/29] app/testpmd: use VFD APIs on i40e Ferruh Yigit
2016-12-16 20:30       ` Vincent JARDIN
2016-12-19 11:03         ` Ferruh Yigit
2016-12-20 15:19           ` Vincent JARDIN
2016-12-19 17:09       ` Ferruh Yigit
2016-12-20  1:05         ` Lu, Wenzhuo
2016-12-16 19:02     ` [PATCH v5 19/29] app/testpmd: use unicast promiscuous mode " Ferruh Yigit
2016-12-16 20:28       ` Vincent JARDIN
2016-12-19 11:05         ` Ferruh Yigit
2016-12-16 19:02     ` [PATCH v5 20/29] app/testpmd: use multicast " Ferruh Yigit
2016-12-16 19:02     ` [PATCH v5 21/29] app/testpmd: add command to test VF broadcast " Ferruh Yigit
2016-12-16 19:02     ` [PATCH v5 22/29] app/testpmd: add command to test VF VLAN tag " Ferruh Yigit
2016-12-16 19:02     ` [PATCH v5 23/29] app/testpmd: handle i40e in VF VLAN filter command Ferruh Yigit
2016-12-16 20:31       ` Vincent JARDIN
2016-12-19 11:13         ` Ferruh Yigit
2016-12-16 19:02     ` [PATCH v5 24/29] net/i40e: change version number to support Linux VF Ferruh Yigit
2016-12-16 19:02     ` [PATCH v5 25/29] net/i40e: return correct VSI id Ferruh Yigit
2016-12-16 19:02     ` [PATCH v5 26/29] net/i40e: parse more VF parameter and configure Ferruh Yigit
2016-12-16 19:02     ` [PATCH v5 27/29] net/i40e: support Linux VF to configure IRQ link list Ferruh Yigit
2016-12-16 19:02     ` [PATCH v5 28/29] net/i40e: enhance in sanity check of MAC Ferruh Yigit
2016-12-16 19:02     ` [PATCH v5 29/29] net/i40e: set/clear VF stats from PF Ferruh Yigit
2016-12-20 13:24       ` Ferruh Yigit
2016-12-20 13:40         ` Iremonger, Bernard
2016-12-21  0:56           ` Lu, Wenzhuo
2016-12-22 16:38             ` Iremonger, Bernard
2016-12-16 20:36     ` [PATCH v5 00/29] Support VFD and DPDK PF + kernel VF on i40e Vincent JARDIN
2016-12-19  9:01       ` Chen, Jing D [this message]
2016-12-19 13:20         ` Thomas Monjalon
2016-12-19 13:39           ` Chen, Jing D
2016-12-19 13:45             ` Vincent JARDIN
2016-12-20  4:48               ` Chen, Jing D
2016-12-20 15:18                 ` Vincent JARDIN
2016-12-20 15:31                   ` Ferruh Yigit
2016-12-21  0:50                     ` Lu, Wenzhuo
2016-12-22  8:10                   ` Chen, Jing D
2016-12-22 13:46                     ` Vincent JARDIN
2016-12-26 11:59                       ` Chen, Jing D
2017-01-04 21:09                         ` Scott Daniels
2017-01-10 13:29                           ` Vincent JARDIN
2017-01-12  3:47                             ` Chen, Jing D
2017-01-13 23:04                               ` John Fastabend
2017-01-13 23:49                                 ` JOSHI, KAUSTUBH  (KAUSTUBH)
2017-01-15 23:32                                   ` Vincent JARDIN
2017-01-16 11:42                                   ` Ferruh Yigit
2017-01-16  9:32                                 ` Thomas Monjalon

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4341B239C0EFF9468EE453F9E9F4604D3C5B7FE2@shsmsx102.ccr.corp.intel.com \
    --to=jing.d.chen@intel.com \
    --cc=dev@dpdk.org \
    --cc=ferruh.yigit@intel.com \
    --cc=helin.zhang@intel.com \
    --cc=jingjing.wu@intel.com \
    --cc=vincent.jardin@6wind.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.