mbox series

[v7,0/8] introduce GVE PMD

Message ID 20221021091928.2674471-1-junfeng.guo@intel.com (mailing list archive)
Headers
Series introduce GVE PMD |

Message

Junfeng Guo Oct. 21, 2022, 9:19 a.m. UTC
  Introduce a new PMD for Google Virtual Ethernet (GVE).

gve (or gVNIC) is the standard virtual ethernet interface on Google Cloud
Platform (GCP), which is one of the multiple virtual interfaces from those
leading CSP customers in the world.

Having a well maintained/optimized gve PMD on DPDK community can help those
cloud instance consumers with better experience of performance, maintenance
who wants to run their own VNFs on GCP.

Please refer to https://cloud.google.com/compute/docs/networking/using-gvnic
for the device description.

This patch set requires an exception for MIT license for GVE base code.
And the base code includes the following files:
 - gve_adminq.c
 - gve_adminq.h
 - gve_desc.h
 - gve_desc_dqo.h
 - gve_register.h

It's based on GVE kernel driver v1.3.0 and the original code is in
https://github.com/GoogleCloudPlatform/compute-virtual-ethernet-linux/tree/v1.3.0


v2:
fix some CI check error.

v3:
refactor some code and fix some build error.

v4:
move the Google base code files into DPDK base folder.

v5:
reorder commit sequence and drop the stats feature.

v6-v7:
improve the code.

Junfeng Guo (8):
  net/gve/base: introduce base code
  net/gve/base: add OS specific implementation
  net/gve: add support for device initialization
  net/gve: add support for link update
  net/gve: add support for MTU setting
  net/gve: add support for dev info get and dev configure
  net/gve: add support for queue operations
  net/gve: add support for Rx/Tx

 MAINTAINERS                            |   6 +
 doc/guides/nics/features/gve.ini       |  16 +
 doc/guides/nics/gve.rst                |  76 ++
 doc/guides/nics/index.rst              |   1 +
 doc/guides/rel_notes/release_22_11.rst |   5 +
 drivers/net/gve/base/gve.h             |  56 ++
 drivers/net/gve/base/gve_adminq.c      | 923 +++++++++++++++++++++++++
 drivers/net/gve/base/gve_adminq.h      | 381 ++++++++++
 drivers/net/gve/base/gve_desc.h        | 138 ++++
 drivers/net/gve/base/gve_desc_dqo.h    | 255 +++++++
 drivers/net/gve/base/gve_osdep.h       | 159 +++++
 drivers/net/gve/base/gve_register.h    |  29 +
 drivers/net/gve/gve_ethdev.c           | 700 +++++++++++++++++++
 drivers/net/gve/gve_ethdev.h           | 298 ++++++++
 drivers/net/gve/gve_logs.h             |  14 +
 drivers/net/gve/gve_rx.c               | 354 ++++++++++
 drivers/net/gve/gve_tx.c               | 668 ++++++++++++++++++
 drivers/net/gve/meson.build            |  16 +
 drivers/net/gve/version.map            |   3 +
 drivers/net/meson.build                |   1 +
 20 files changed, 4099 insertions(+)
 create mode 100644 doc/guides/nics/features/gve.ini
 create mode 100644 doc/guides/nics/gve.rst
 create mode 100644 drivers/net/gve/base/gve.h
 create mode 100644 drivers/net/gve/base/gve_adminq.c
 create mode 100644 drivers/net/gve/base/gve_adminq.h
 create mode 100644 drivers/net/gve/base/gve_desc.h
 create mode 100644 drivers/net/gve/base/gve_desc_dqo.h
 create mode 100644 drivers/net/gve/base/gve_osdep.h
 create mode 100644 drivers/net/gve/base/gve_register.h
 create mode 100644 drivers/net/gve/gve_ethdev.c
 create mode 100644 drivers/net/gve/gve_ethdev.h
 create mode 100644 drivers/net/gve/gve_logs.h
 create mode 100644 drivers/net/gve/gve_rx.c
 create mode 100644 drivers/net/gve/gve_tx.c
 create mode 100644 drivers/net/gve/meson.build
 create mode 100644 drivers/net/gve/version.map
  

Comments

Ferruh Yigit Oct. 21, 2022, 1:12 p.m. UTC | #1
On 10/21/2022 10:19 AM, Junfeng Guo wrote:
> Introduce a new PMD for Google Virtual Ethernet (GVE).
> 
> gve (or gVNIC) is the standard virtual ethernet interface on Google Cloud
> Platform (GCP), which is one of the multiple virtual interfaces from those
> leading CSP customers in the world.
> 
> Having a well maintained/optimized gve PMD on DPDK community can help those
> cloud instance consumers with better experience of performance, maintenance
> who wants to run their own VNFs on GCP.
> 
> Please refer tohttps://cloud.google.com/compute/docs/networking/using-gvnic
> for the device description.
> 
> This patch set requires an exception for MIT license for GVE base code.
> And the base code includes the following files:
>   - gve_adminq.c
>   - gve_adminq.h
>   - gve_desc.h
>   - gve_desc_dqo.h
>   - gve_register.h
> 
> It's based on GVE kernel driver v1.3.0 and the original code is in
> https://github.com/GoogleCloudPlatform/compute-virtual-ethernet-linux/tree/v1.3.0
> 
> 
> v2:
> fix some CI check error.
> 
> v3:
> refactor some code and fix some build error.
> 
> v4:
> move the Google base code files into DPDK base folder.
> 
> v5:
> reorder commit sequence and drop the stats feature.
> 
> v6-v7:
> improve the code.
> 
> Junfeng Guo (8):
>    net/gve/base: introduce base code
>    net/gve/base: add OS specific implementation
>    net/gve: add support for device initialization
>    net/gve: add support for link update
>    net/gve: add support for MTU setting
>    net/gve: add support for dev info get and dev configure
>    net/gve: add support for queue operations
>    net/gve: add support for Rx/Tx

Can you please check the build error reported by CI:
https://mails.dpdk.org/archives/test-report/2022-October/318054.html


Following link can be helpful:
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=225324
  
Ferruh Yigit Oct. 24, 2022, 10:50 a.m. UTC | #2
On 10/21/2022 2:12 PM, Ferruh Yigit wrote:
> On 10/21/2022 10:19 AM, Junfeng Guo wrote:
>> Introduce a new PMD for Google Virtual Ethernet (GVE).
>>
>> gve (or gVNIC) is the standard virtual ethernet interface on Google Cloud
>> Platform (GCP), which is one of the multiple virtual interfaces from 
>> those
>> leading CSP customers in the world.
>>
>> Having a well maintained/optimized gve PMD on DPDK community can help 
>> those
>> cloud instance consumers with better experience of performance, 
>> maintenance
>> who wants to run their own VNFs on GCP.
>>
>> Please refer 
>> tohttps://cloud.google.com/compute/docs/networking/using-gvnic
>> for the device description.
>>
>> This patch set requires an exception for MIT license for GVE base code.
>> And the base code includes the following files:
>>   - gve_adminq.c
>>   - gve_adminq.h
>>   - gve_desc.h
>>   - gve_desc_dqo.h
>>   - gve_register.h
>>
>> It's based on GVE kernel driver v1.3.0 and the original code is in
>> https://github.com/GoogleCloudPlatform/compute-virtual-ethernet-linux/tree/v1.3.0
>>
>>
>> v2:
>> fix some CI check error.
>>
>> v3:
>> refactor some code and fix some build error.
>>
>> v4:
>> move the Google base code files into DPDK base folder.
>>
>> v5:
>> reorder commit sequence and drop the stats feature.
>>
>> v6-v7:
>> improve the code.
>>
>> Junfeng Guo (8):
>>    net/gve/base: introduce base code
>>    net/gve/base: add OS specific implementation
>>    net/gve: add support for device initialization
>>    net/gve: add support for link update
>>    net/gve: add support for MTU setting
>>    net/gve: add support for dev info get and dev configure
>>    net/gve: add support for queue operations
>>    net/gve: add support for Rx/Tx
> 
> Can you please check the build error reported by CI:
> https://mails.dpdk.org/archives/test-report/2022-October/318054.html
> 
> 
> Following link can be helpful:
> https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=225324
> 

Reminder if this build error, please send v8 with fix.
  
Junfeng Guo Oct. 24, 2022, 1:25 p.m. UTC | #3
> -----Original Message-----
> From: Ferruh Yigit <ferruh.yigit@amd.com>
> Sent: Monday, October 24, 2022 18:50
> To: Guo, Junfeng <junfeng.guo@intel.com>; Zhang, Qi Z
> <qi.z.zhang@intel.com>; Wu, Jingjing <jingjing.wu@intel.com>; Xing,
> Beilei <beilei.xing@intel.com>
> Cc: dev@dpdk.org; Li, Xiaoyun <xiaoyun.li@intel.com>;
> awogbemila@google.com; Richardson, Bruce
> <bruce.richardson@intel.com>; hemant.agrawal@nxp.com;
> stephen@networkplumber.org; Xia, Chenbo <chenbo.xia@intel.com>;
> Zhang, Helin <helin.zhang@intel.com>
> Subject: Re: [PATCH v7 0/8] introduce GVE PMD
> 
> On 10/21/2022 2:12 PM, Ferruh Yigit wrote:
> > On 10/21/2022 10:19 AM, Junfeng Guo wrote:
> >> Introduce a new PMD for Google Virtual Ethernet (GVE).
> >>
> >> gve (or gVNIC) is the standard virtual ethernet interface on Google
> Cloud
> >> Platform (GCP), which is one of the multiple virtual interfaces from
> >> those
> >> leading CSP customers in the world.
> >>
> >> Having a well maintained/optimized gve PMD on DPDK community can
> help
> >> those
> >> cloud instance consumers with better experience of performance,
> >> maintenance
> >> who wants to run their own VNFs on GCP.
> >>
> >> Please refer
> >> tohttps://cloud.google.com/compute/docs/networking/using-gvnic
> >> for the device description.
> >>
> >> This patch set requires an exception for MIT license for GVE base code.
> >> And the base code includes the following files:
> >>   - gve_adminq.c
> >>   - gve_adminq.h
> >>   - gve_desc.h
> >>   - gve_desc_dqo.h
> >>   - gve_register.h
> >>
> >> It's based on GVE kernel driver v1.3.0 and the original code is in
> >> https://github.com/GoogleCloudPlatform/compute-virtual-ethernet-
> linux/tree/v1.3.0
> >>
> >>
> >> v2:
> >> fix some CI check error.
> >>
> >> v3:
> >> refactor some code and fix some build error.
> >>
> >> v4:
> >> move the Google base code files into DPDK base folder.
> >>
> >> v5:
> >> reorder commit sequence and drop the stats feature.
> >>
> >> v6-v7:
> >> improve the code.
> >>
> >> Junfeng Guo (8):
> >>    net/gve/base: introduce base code
> >>    net/gve/base: add OS specific implementation
> >>    net/gve: add support for device initialization
> >>    net/gve: add support for link update
> >>    net/gve: add support for MTU setting
> >>    net/gve: add support for dev info get and dev configure
> >>    net/gve: add support for queue operations
> >>    net/gve: add support for Rx/Tx
> >
> > Can you please check the build error reported by CI:
> > https://mails.dpdk.org/archives/test-report/2022-October/318054.html
> >
> >
> > Following link can be helpful:
> > https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=225324
> >
> 
> Reminder if this build error, please send v8 with fix.

Sure, will try to fix this. Thanks for reminding this!