[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [UNIKRAFT PATCH v4 00/12] Introduce Xen Netfront driver



Hi Costin,

really, thanks a lot for picking up this patch series and driving it for upstreaming! This is great news. Lets make 2020 a lucky year for netfront ;-). I add a few comments inline to some patches that I briefly checked (I did a non-detailed review).

Please also consider the outstanding update to the Ethernet macro definitons in lib/uknetdev: https://patchwork.unikraft.org/patch/738013/ . Since Intel DPDK and in general NFV is one of our targets, we should support VLAN tags. This has an effect to the maximum transmission unit (1522 B). Do you know if your netfront driver can handle such frame sizes (more or less) out-of-the box? As far as I understood, we have some restrictions with our virtio driver currently and need to re-visit this.

Thanks,

Simon

On 13.08.20 10:53, Costin Lupu wrote:
The current changes are required for supporting netfront devices. They should
be used together with the lwip patch series because they depend on each other.

These changes follow the same approach used for the design and implementation
of the virtio-net driver.

The first version of these patches was sent in 2018. Maybe the current year is
a lucky one and we will achieve the performance to upstream these changes.

Changes since v1:
- Split into multiple patches
- Use the new uknetdev API

Changes since v2:
- Add more info to commit messages

Changes since v3:
- Use nb_align field for queue infos
- Add patch for enabling default drivers

Costin Lupu (12):
   plat/drivers/virtio: Fill MTU and queues alignments when retrieving
     information
   plat/xen: Add vif device type
   plat/xen/drivers: Add skeleton for netfront driver
   plat/xen/drivers/net: Configure netfront device
   plat/xen/drivers/net: Create netfront queues
   plat/xen/drivers/net: Configure netfront tx queue
   plat/xen/drivers/net: Configure netfront rx queue
   plat/xen/drivers/net: Enable/disable interrupts for rx queues
   plat/xen/drivers/net: Start netfront device
   plat/xen/drivers/net: Add transmit operation
   plat/xen/drivers/net: Add receive operation
   lib/uknetdev: Enable default drivers

  lib/uknetdev/Config.uk             |   2 +
  plat/drivers/virtio/virtio_net.c   |   3 +
  plat/xen/Config.uk                 |   7 +
  plat/xen/Makefile.uk               |  11 +
  plat/xen/drivers/net/exportsyms.uk |   1 +
  plat/xen/drivers/net/netfront.c    | 843 +++++++++++++++++++++++++++++
  plat/xen/drivers/net/netfront.h    | 145 +++++
  plat/xen/drivers/net/netfront_xb.h |  46 ++
  plat/xen/drivers/net/netfront_xs.c | 522 ++++++++++++++++++
  plat/xen/include/xenbus/xenbus.h   |   1 +
  plat/xen/xenbus/client.c           |   1 +
  11 files changed, 1582 insertions(+)
  create mode 100644 plat/xen/drivers/net/exportsyms.uk
  create mode 100644 plat/xen/drivers/net/netfront.c
  create mode 100644 plat/xen/drivers/net/netfront.h
  create mode 100644 plat/xen/drivers/net/netfront_xb.h
  create mode 100644 plat/xen/drivers/net/netfront_xs.c




 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.