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

Re: [UNIKRAFT PATCH v3 00/16] Introduce a tap driver for Unikraft



Dear Sharan,

I migrated this patch series to GitHub for further review and integration:
https://github.com/unikraft/unikraft/pull/251

Thanks,

Simon

On 22.07.20 12:14, Sharan Santhanam wrote:
The patch series introduces a tap driver for the linuxu platform. The series is
structured as follows:
- Introduce the uk_netdev interface implemented by the tap driver
- Introduce pseudo tap bus to initialize the driver and probe a tap device.
- The tap device discovered are registered with the uk_netdev.
- Configure the netdevice by creating tap network interface.
- Configure the hw address on the tap device.
- Attach the tap device to a bridge interface.
- Fetch and configure the MTU.
- Check if the promiscuous mode is set
- Fetch the txq/rxq information.
- Configure the tx queue.
- Configure the rx queue.
- Start the tap interface.
- Implement packet receive on the tap interface
- Implement packet send on the tap interface
- Fix the error code difference between Unikraft and linux.

Changes since v2:
- Fix the tap_write implementation
- Change the mac generate implementation
- Minor fixes
- Make feature independent from the poll patch

Changes since v1:
- Complete the sys_open implementation with support for flags
- Fix bug in calloc usage.
- Move definitions into the required patches
- Add some comments for the library parameters
- Add descriptions to the struct definitions
- Fix some typos.

Sharan Santhanam (16):
   plat/linuxu/tap: Introduce tap driver
   plat/tap: Bus interface for the tap device
   plat/driver: Add tap device to the uk_netdev
   plat/driver: Create a tap dev during configuration
   plat/driver: Set features supported on tap device
   plat/tap: Get/Set hw_addr
   plat/tap: Add tap to the bridge
   plat/tap: Get/Set MTU
   plat/tap: Get promiscuous mode
   plat/tap: Fetch txq and rxq info
   plat/tap: Setup txq
   plat/tap: Setup rxq
   plat/tap: Start a tap device
   plat/tap: Support tap_netdev_recv
   plat/tap: Support tap_netdev_xmit
   plat/linuxu: Convert linux errno to unikraft errno

  plat/drivers/include/tap/tap.h              |  51 ++
  plat/drivers/tap/tap.c                      | 868 ++++++++++++++++++++
  plat/linuxu/Config.uk                       |  18 +
  plat/linuxu/Makefile.uk                     |  15 +
  plat/linuxu/include/linuxu/syscall-arm_32.h |   6 +
  plat/linuxu/include/linuxu/syscall-x86_64.h |   7 +
  plat/linuxu/include/linuxu/syscall.h        |  86 ++
  plat/linuxu/include/linuxu/tap.h            | 152 ++++
  plat/linuxu/tap_io.c                        | 160 ++++
  9 files changed, 1363 insertions(+)
  create mode 100644 plat/drivers/include/tap/tap.h
  create mode 100644 plat/drivers/tap/tap.c
  create mode 100644 plat/linuxu/include/linuxu/tap.h
  create mode 100644 plat/linuxu/tap_io.c




 


Rackspace

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