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

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



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

-- 
2.20.1




 


Rackspace

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