The FD.io Project is a Linux Foundation project to provide an IO services framework for the next wave of network and storage software. Architected as a collection of sub-projects, FD.io provides a modular, extensible user space IO services framework that supports rapid development of high-throughput, low-latency and resource-efficient IO services. The design of FD.io is hardware, kernel, and deployment (bare metal, VM, container) agnostic. FD.io is based on the Vector Packet Processing (VPP) technology. FD.io provides an out-of-the-box programmable vSwitch/vRouter. VPP runs in user space on multiple architectures, including x86, ARM, and Power and is deployed on various platforms including x86 servers and embedded devices. One of the immediate benefits of VPP is it two orders of magnitude faster than currently available open source options.
- What is FD.io?
- Who is supporting or investing in this work?
- Why is this effort needed?
- What is the scope of FD.io?
- What makes FD.io unique?
- Why is CPL a benefit?
- How does FD.io relate to DPDK?
- How does FD.io relate to IO Visor?
- How will FD.io work with other Linux Foundation networking-related projects like OpenDaylight (ODL) and OPNFV?
- Are hardware accelerators in scope for this project?
- What is the structure of the FD.io Project's governance?
- Do you have to be a member of The Linux Foundation to join FD.io?
- Where can I learn more?
Initial members of the project include Cisco, Ericsson, Intel, 6WIND, Huawei, Brocade, Cavium Networks, Comcast, Inocybe Technologies, Mesosphere, PLUMgrid, MetaSwitch, and Red Hat. As with any open source project, anyone is free to use the software (distributed under Apache 2 license), and the project welcomes sub-project proposals and code contributions from anyone. Membership is not a prerequisite to consume or contribute to FD.io
As the density of compute and network speeds expand and the techniques for flexibly and efficiently utilizing it improves; sophisticated, high performance, flexible networking and storage I/O Services are needed to connect workloads and workflows. There is no open source software that currently adequately meets these needs. FD.io does.
The FD.io project will initially address IO services defined as:
- I/O – the movement of packets to/from hardware/vHardware to cores and threads
- Processing – classify, transform, prioritize, forward and terminate actions
- Management agents – controlling and managing I/O processing
This scope includes networking and storage IO.
FD.io pushes extreme limits of performance and scale. VPP-powered FD.io is two orders of magnitude faster than currently available technologies. Details on testing and performance can be found in the Technology section—also see mention of CPL later in the FAQ.
FD.io has a modular, extensible user space IO Services Framework that allows for the creation of sophisticated services with maximum velocity of innovation. The design of FD.io is hardware, kernel and deployment (bare metal, VM, container) agnostic, and it enables I/O services that are high throughput, low latency and efficiently use resources at scale.
FD.io has a Continuous Performance Lab (CPL). The CPL provides fully automated testing infrastructure to for continuous verification of code functionality and performance. The CPL allows FD.io to guarantee performance, scalability, and stability for each release.
Code breakage and performance degradation is flagged before patch review, conserving project resources and increasing code quality. The physical hardware needed to run the performance testing will be hosted at FD.io, with donations of a diverse set of hardware from many vendors. The fully open sourced test framework for CPL is available at launch.
FD.io uses DPDK for the network IO Layer (getting packets to/from (v)NICs and thread/cores). The DPDK community is a separate project driven by the active contributors and hosted at DPDK.org. We would expect continue collaboration with this project (as a key user) as well as many other project that are users of the DPDK Network IO layer. There is an opportunity at closer project collaboration in addition to the existing architectural alignment.
The FD.io project and IO Visor as complementary projects. IO Visor Project focuses on dynamic run-time extensibility of data plane capabilities in the kernel. IO Visor aims at creating a repository of IO Modules that are portable across multiple possible data planes like eBPF in the Linux kernel and frameworks like FD.io.
We would expect collaboration with many of these projects looking to control or use a set of I/O services on the local compute node.
Yes. It is a requirement that the IO services can take advantage of both software and hardware capability when offered by the underlying platform, but code will not otherwise “break” if acceleration is not available—FD.io code should “run anywhere.”
There are two parts to FD.io governance, business governance and technical governance. Business Governance: The FD.io Project, Inc. is a not-for-profit membership corporation under Delaware General Corporation Law operating as an organization exempt from federal taxes pursuant to Section 503(c)(6) of the Internal Revenue Code of 1986. In addition to platinum, silver and gold membership classes, FD.io committers can become members of the project. Committer members will have the right to elect two directors to represent the committer members on the Board of Directors.
Technical Governance: Each subproject of FD.io has its own set of committers. Technical and release decisions for each subproject are made by that subproject’s committers. A technical steering committee will oversee technical coordination of numerous technical projects. Members of the technical steering committee will be core project technical leaders, a number of committer-at-large elected members and, initially, representatives of platinum members.
For more information about fd.io or to become a member, please visit http://fd.io/