mbox series

[v7,00/18] Introduce Microsoft Azure Network Adatper (MANA) PMD

Message ID 1662169260-4953-1-git-send-email-longli@linuxonhyperv.com (mailing list archive)
Headers
Series Introduce Microsoft Azure Network Adatper (MANA) PMD |

Message

Long Li Sept. 3, 2022, 1:40 a.m. UTC
  From: Long Li <longli@microsoft.com>

MANA is a network interface card to be used in the Azure cloud environment.
MANA provides safe access to user memory through memory registration. It has
IOMMU built into the hardware.

MANA uses IB verbs and RDMA layer to configure hardware resources. It
requires the corresponding RDMA kernel-mode and user-mode drivers.

The MANA RDMA kernel-mode driver is being reviewed at:
https://patchwork.kernel.org/project/netdevbpf/cover/1655345240-26411-1-git-send-email-longli@linuxonhyperv.com/

The MANA RDMA user-mode driver is being reviewed at:
https://github.com/linux-rdma/rdma-core/pull/1177


Long Li (18):
  net/mana: add basic driver, build environment and doc
  net/mana: add device configuration and stop
  net/mana: add function to report support ptypes
  net/mana: add link update
  net/mana: add function for device removal interrupts
  net/mana: add device info
  net/mana: add function to configure RSS
  net/mana: add function to configure RX queues
  net/mana: add function to configure TX queues
  net/mana: implement memory registration
  net/mana: implement the hardware layer operations
  net/mana: add function to start/stop TX queues
  net/mana: add function to start/stop RX queues
  net/mana: add function to receive packets
  net/mana: add function to send packets
  net/mana: add function to start/stop device
  net/mana: add function to report queue stats
  net/mana: add function to support RX interrupts

 MAINTAINERS                       |    6 +
 doc/guides/nics/features/mana.ini |   21 +
 doc/guides/nics/index.rst         |    1 +
 doc/guides/nics/mana.rst          |   66 ++
 drivers/net/mana/gdma.c           |  289 ++++++
 drivers/net/mana/mana.c           | 1449 +++++++++++++++++++++++++++++
 drivers/net/mana/mana.h           |  552 +++++++++++
 drivers/net/mana/meson.build      |   48 +
 drivers/net/mana/mp.c             |  323 +++++++
 drivers/net/mana/mr.c             |  324 +++++++
 drivers/net/mana/rx.c             |  519 +++++++++++
 drivers/net/mana/tx.c             |  412 ++++++++
 drivers/net/mana/version.map      |    3 +
 drivers/net/meson.build           |    1 +
 14 files changed, 4014 insertions(+)
 create mode 100644 doc/guides/nics/features/mana.ini
 create mode 100644 doc/guides/nics/mana.rst
 create mode 100644 drivers/net/mana/gdma.c
 create mode 100644 drivers/net/mana/mana.c
 create mode 100644 drivers/net/mana/mana.h
 create mode 100644 drivers/net/mana/meson.build
 create mode 100644 drivers/net/mana/mp.c
 create mode 100644 drivers/net/mana/mr.c
 create mode 100644 drivers/net/mana/rx.c
 create mode 100644 drivers/net/mana/tx.c
 create mode 100644 drivers/net/mana/version.map
  

Comments

Ferruh Yigit Sept. 6, 2022, 1:03 p.m. UTC | #1
On 9/3/2022 2:40 AM, longli@linuxonhyperv.com wrote:

> 
> From: Long Li <longli@microsoft.com>
> 
> MANA is a network interface card to be used in the Azure cloud environment.
> MANA provides safe access to user memory through memory registration. It has
> IOMMU built into the hardware.
> 
> MANA uses IB verbs and RDMA layer to configure hardware resources. It
> requires the corresponding RDMA kernel-mode and user-mode drivers.
> 
> The MANA RDMA kernel-mode driver is being reviewed at:
> https://patchwork.kernel.org/project/netdevbpf/cover/1655345240-26411-1-git-send-email-longli@linuxonhyperv.com/
> 
> The MANA RDMA user-mode driver is being reviewed at:
> https://github.com/linux-rdma/rdma-core/pull/1177
> 
> 
> Long Li (18):
>    net/mana: add basic driver, build environment and doc
>    net/mana: add device configuration and stop
>    net/mana: add function to report support ptypes
>    net/mana: add link update
>    net/mana: add function for device removal interrupts
>    net/mana: add device info
>    net/mana: add function to configure RSS
>    net/mana: add function to configure RX queues
>    net/mana: add function to configure TX queues
>    net/mana: implement memory registration
>    net/mana: implement the hardware layer operations
>    net/mana: add function to start/stop TX queues
>    net/mana: add function to start/stop RX queues
>    net/mana: add function to receive packets
>    net/mana: add function to send packets
>    net/mana: add function to start/stop device
>    net/mana: add function to report queue stats
>    net/mana: add function to support RX interrupts
> 

Can you please send new versions of the patches as reply to previous 
versions, so all versions can be in same thread, using git send-email 
'--in-reply-to' argument?

More details in the contribution guide:
https://doc.dpdk.org/guides/contributing/patches.html#sending-patches
  
Ferruh Yigit Sept. 6, 2022, 2:38 p.m. UTC | #2
On 9/6/2022 2:03 PM, Ferruh Yigit wrote:
> On 9/3/2022 2:40 AM, longli@linuxonhyperv.com wrote:
> 
>>
>> From: Long Li <longli@microsoft.com>
>>
>> MANA is a network interface card to be used in the Azure cloud 
>> environment.
>> MANA provides safe access to user memory through memory registration. 
>> It has
>> IOMMU built into the hardware.
>>
>> MANA uses IB verbs and RDMA layer to configure hardware resources. It
>> requires the corresponding RDMA kernel-mode and user-mode drivers.
>>
>> The MANA RDMA kernel-mode driver is being reviewed at:
>> https://patchwork.kernel.org/project/netdevbpf/cover/1655345240-26411-1-git-send-email-longli@linuxonhyperv.com/
>>
>> The MANA RDMA user-mode driver is being reviewed at:
>> https://github.com/linux-rdma/rdma-core/pull/1177
>>
>>
>> Long Li (18):
>>    net/mana: add basic driver, build environment and doc
>>    net/mana: add device configuration and stop
>>    net/mana: add function to report support ptypes
>>    net/mana: add link update
>>    net/mana: add function for device removal interrupts
>>    net/mana: add device info
>>    net/mana: add function to configure RSS
>>    net/mana: add function to configure RX queues
>>    net/mana: add function to configure TX queues
>>    net/mana: implement memory registration
>>    net/mana: implement the hardware layer operations
>>    net/mana: add function to start/stop TX queues
>>    net/mana: add function to start/stop RX queues
>>    net/mana: add function to receive packets
>>    net/mana: add function to send packets
>>    net/mana: add function to start/stop device
>>    net/mana: add function to report queue stats
>>    net/mana: add function to support RX interrupts
>>
> 
> Can you please send new versions of the patches as reply to previous 
> versions, so all versions can be in same thread, using git send-email 
> '--in-reply-to' argument?
> 
> More details in the contribution guide:
> https://doc.dpdk.org/guides/contributing/patches.html#sending-patches
> 

Also for next version, can you please fix warnings reported by 
'./devtools/check-git-log.sh'.
  
Long Li Sept. 7, 2022, 1:40 a.m. UTC | #3
> Subject: Re: [Patch v7 00/18] Introduce Microsoft Azure Network Adatper
> (MANA) PMD
> 
> On 9/3/2022 2:40 AM, longli@linuxonhyperv.com wrote:
> 
> >
> > From: Long Li <longli@microsoft.com>
> >
> > MANA is a network interface card to be used in the Azure cloud
> environment.
> > MANA provides safe access to user memory through memory registration.
> > It has IOMMU built into the hardware.
> >
> > MANA uses IB verbs and RDMA layer to configure hardware resources. It
> > requires the corresponding RDMA kernel-mode and user-mode drivers.
> >
> > The MANA RDMA kernel-mode driver is being reviewed at:
> >
> https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fpatc
> > hwork.kernel.org%2Fproject%2Fnetdevbpf%2Fcover%2F1655345240-
> 26411-1-gi
> > t-send-email-
> longli%40linuxonhyperv.com%2F&amp;data=05%7C01%7Clongli%4
> >
> 0microsoft.com%7C8cd6ffba9b5544435e8308da900846a8%7C72f988bf86f141
> af91
> >
> ab2d7cd011db47%7C1%7C0%7C637980662484490031%7CUnknown%7CTWFp
> bGZsb3d8ey
> >
> JWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%
> 7C300
> >
> 0%7C%7C%7C&amp;sdata=nr6rB9%2BN8hNV3RWhVr%2B5XgB0I5V6XtajWDz
> NIgF5un4%3
> > D&amp;reserved=0
> >
> > The MANA RDMA user-mode driver is being reviewed at:
> >
> https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgith
> > ub.com%2Flinux-rdma%2Frdma-
> core%2Fpull%2F1177&amp;data=05%7C01%7Clongl
> >
> i%40microsoft.com%7C8cd6ffba9b5544435e8308da900846a8%7C72f988bf86f
> 141a
> >
> f91ab2d7cd011db47%7C1%7C0%7C637980662484490031%7CUnknown%7CT
> WFpbGZsb3d
> >
> 8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%
> 3D%7C
> >
> 3000%7C%7C%7C&amp;sdata=LNlH77y0MHa2C43j5ArWZy%2BKlMaXNpb%2F
> AE0am971F4
> > 4%3D&amp;reserved=0
> >
> >
> > Long Li (18):
> >    net/mana: add basic driver, build environment and doc
> >    net/mana: add device configuration and stop
> >    net/mana: add function to report support ptypes
> >    net/mana: add link update
> >    net/mana: add function for device removal interrupts
> >    net/mana: add device info
> >    net/mana: add function to configure RSS
> >    net/mana: add function to configure RX queues
> >    net/mana: add function to configure TX queues
> >    net/mana: implement memory registration
> >    net/mana: implement the hardware layer operations
> >    net/mana: add function to start/stop TX queues
> >    net/mana: add function to start/stop RX queues
> >    net/mana: add function to receive packets
> >    net/mana: add function to send packets
> >    net/mana: add function to start/stop device
> >    net/mana: add function to report queue stats
> >    net/mana: add function to support RX interrupts
> >
> 
> Can you please send new versions of the patches as reply to previous
> versions, so all versions can be in same thread, using git send-email '--in-
> reply-to' argument?

Sure, I will send soon.

> 
> More details in the contribution guide:
> https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdoc.
> dpdk.org%2Fguides%2Fcontributing%2Fpatches.html%23sending-
> patches&amp;data=05%7C01%7Clongli%40microsoft.com%7C8cd6ffba9b554
> 4435e8308da900846a8%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7
> C637980662484490031%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAw
> MDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%
> 7C&amp;sdata=YTEWfVRjiobdQPQDCGoMuLW4N5NISl7VZYKhf6mvSxQ%3D
> &amp;reserved=0
  
Long Li Sept. 7, 2022, 1:41 a.m. UTC | #4
> Subject: Re: [Patch v7 00/18] Introduce Microsoft Azure Network Adatper
> (MANA) PMD
> 
> On 9/6/2022 2:03 PM, Ferruh Yigit wrote:
> > On 9/3/2022 2:40 AM, longli@linuxonhyperv.com wrote:
> >
> >>
> >> From: Long Li <longli@microsoft.com>
> >>
> >> MANA is a network interface card to be used in the Azure cloud
> >> environment.
> >> MANA provides safe access to user memory through memory registration.
> >> It has
> >> IOMMU built into the hardware.
> >>
> >> MANA uses IB verbs and RDMA layer to configure hardware resources. It
> >> requires the corresponding RDMA kernel-mode and user-mode drivers.
> >>
> >> The MANA RDMA kernel-mode driver is being reviewed at:
> >>
> https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fpat
> >> chwork.kernel.org%2Fproject%2Fnetdevbpf%2Fcover%2F1655345240-
> 26411-1-
> >> git-send-email-
> longli%40linuxonhyperv.com%2F&amp;data=05%7C01%7Clongl
> >>
> i%40microsoft.com%7C7b028477af2f4dc9adbb08da901578ca%7C72f988bf86f
> 141
> >>
> af91ab2d7cd011db47%7C1%7C0%7C637980719147810170%7CUnknown%7CT
> WFpbGZsb
> >>
> 3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0
> %3D
> >> %7C3000%7C%7C%7C&amp;sdata=1cHl7GcqA7IVaPYeOj1Fr59%2FkkizeQij
> t7Rqi6aQ
> >> 9gw%3D&amp;reserved=0
> >>
> >> The MANA RDMA user-mode driver is being reviewed at:
> >>
> https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgit
> >> hub.com%2Flinux-rdma%2Frdma-
> core%2Fpull%2F1177&amp;data=05%7C01%7Clon
> >>
> gli%40microsoft.com%7C7b028477af2f4dc9adbb08da901578ca%7C72f988bf86
> f1
> >>
> 41af91ab2d7cd011db47%7C1%7C0%7C637980719147810170%7CUnknown%7
> CTWFpbGZ
> >>
> sb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6M
> n0%
> >>
> 3D%7C3000%7C%7C%7C&amp;sdata=vSWsqSZycwOIBw1hq1IZ4s3G8lXKV82J
> bpy99f1K
> >> Bck%3D&amp;reserved=0
> >>
> >>
> >> Long Li (18):
> >>    net/mana: add basic driver, build environment and doc
> >>    net/mana: add device configuration and stop
> >>    net/mana: add function to report support ptypes
> >>    net/mana: add link update
> >>    net/mana: add function for device removal interrupts
> >>    net/mana: add device info
> >>    net/mana: add function to configure RSS
> >>    net/mana: add function to configure RX queues
> >>    net/mana: add function to configure TX queues
> >>    net/mana: implement memory registration
> >>    net/mana: implement the hardware layer operations
> >>    net/mana: add function to start/stop TX queues
> >>    net/mana: add function to start/stop RX queues
> >>    net/mana: add function to receive packets
> >>    net/mana: add function to send packets
> >>    net/mana: add function to start/stop device
> >>    net/mana: add function to report queue stats
> >>    net/mana: add function to support RX interrupts
> >>
> >
> > Can you please send new versions of the patches as reply to previous
> > versions, so all versions can be in same thread, using git send-email
> > '--in-reply-to' argument?
> >
> > More details in the contribution guide:
> >
> https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdoc.
> > dpdk.org%2Fguides%2Fcontributing%2Fpatches.html%23sending-
> patches&amp;
> >
> data=05%7C01%7Clongli%40microsoft.com%7C7b028477af2f4dc9adbb08da90
> 1578
> >
> ca%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C6379807191478101
> 70%7CU
> >
> nknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI
> 6Ik1ha
> >
> WwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&amp;sdata=N0XBkRX9LdgkT2jA
> lPZEP6g0GB
> > aH%2ByHeG1jLHKJB6AE%3D&amp;reserved=0
> >
> 
> Also for next version, can you please fix warnings reported by
> './devtools/check-git-log.sh'.

Will fix those.