[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Minios-devel] [UNIKRAFT PATCH v5 00/11] lib/uknetdev: Unikraft Network API
Introduces the Unikraft Network API, that acts as a generalized interface between network drivers and network stack implementations (or low level networking applications). Using the function definitions in netdev_core.h, the driver should include netdev_driver, implement the functions in uk_netdev_opts and fill some fields from uk_netdev. The user-facing part of the API is in netdev.h. The network stack glue code can use these functions to configure network devices, as well as send and receive packets. Inspired from from DPDK RTE Ethernet API. Changes since v3: - Introduce header with defintions intended for drivers (netdev_driver.h) - Introduce netbuf abstraction for scattered and zero-copy I/O. Abstraction is defined to enable cheap conversion between a stack's packet format and netbuf. - Multi-queue support - Event dispatching is done within libuknetdev (configurable with or without bottom-half threads). Threading code should not be necessary anymore in the driver code. - Netdev state fully managed by libuknetdev layer - Remove network device names, we expect that networks stacks will add this functionality by themselves - Introduce driver name querying - Remove incomplete netdev closing code for now Changes since v4: - Add reference to DPDK - Define following API functions as static inline - uk_netbuf_ref() - uk_netdev_rxq_intr_enable() - uk_netdev_rxq_intr_disable() - Made following function "error-safe", API users can expect that the function never returns an error - uk_netdev_mtu_get() - uk_netdev_promiscuous_get() - Rename uk_netbuf_refcount_single() to uk_netbuf_refcount_single_get() - Corrected description of some API interfaces - Corrected typos in some comments Razvan Cojocaru (7): lib/uknetdev: Library skeleton lib/uknetdev: Netdev registration lib/uknetdev: Netdev initialization lib/uknetdev: Hardware address interfaces lib/uknetdev: Promiscuous mode interfaces lib/uknetdev: MTU interfaces lib/uknetdev: Packet reception and transmission interfaces Simon Kuenzer (4): lib/uknetdev: Introduce Netbufs lib/uknetdev: Netbuf chaining lib/uknetdev: Netbuf refcounting and releasing lib/uknetdev: Netbuf headroom and tailroom helpers lib/Config.uk | 1 + lib/Makefile.uk | 1 + lib/uknetdev/Config.uk | 32 ++ lib/uknetdev/Makefile.uk | 7 + lib/uknetdev/exportsyms.uk | 31 ++ lib/uknetdev/include/uk/netbuf.h | 528 ++++++++++++++++++++++++++++++++ lib/uknetdev/include/uk/netdev.h | 520 +++++++++++++++++++++++++++++++ lib/uknetdev/include/uk/netdev_core.h | 375 +++++++++++++++++++++++ lib/uknetdev/include/uk/netdev_driver.h | 102 ++++++ lib/uknetdev/netbuf.c | 292 ++++++++++++++++++ lib/uknetdev/netdev.c | 526 +++++++++++++++++++++++++++++++ 11 files changed, 2415 insertions(+) create mode 100644 lib/uknetdev/Config.uk create mode 100644 lib/uknetdev/Makefile.uk create mode 100644 lib/uknetdev/exportsyms.uk create mode 100644 lib/uknetdev/include/uk/netbuf.h create mode 100644 lib/uknetdev/include/uk/netdev.h create mode 100644 lib/uknetdev/include/uk/netdev_core.h create mode 100644 lib/uknetdev/include/uk/netdev_driver.h create mode 100644 lib/uknetdev/netbuf.c create mode 100644 lib/uknetdev/netdev.c -- 2.7.4 _______________________________________________ Minios-devel mailing list Minios-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/minios-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |