What is IO Visor?
IO Visor brings universal IO extensibility to the Linux Kernel and enables infrastructure/IO developers to create, publish, and deploy applications in live systems without having to recompile or reboot kernel code.
What is the IO Visor Project?
The IO Visor Project is a Linux Foundation Collaborative Project chartered to create an open source, technical community where industry participants may easily contribute to and adopt the project’s technology for an open programmable data plane for modern IO and networking applications. By providing a programmable data plane and development tools to simplify the creation and sharing of dynamic IO modules, IO Visor Project enables a new way to innovate, develop and share IO and networking functions with the community.
What does the IO Visor Project bring to the Linux community?
The IO Visor Project provides universal IO extensibility for the Linux Kernel. This means that Linux distributions can provide a programmable data plane environment in which IO and network functions can be loaded, unloaded, and instantiated at run time, giving developers the ability to create, publish and deploy applications in live systems without recompiling.
What are the key challenges addressed by IO Visor Project?
As virtualization of compute, storage, and networking continues to grow exponentially, fundamental changes in IO and networking subsystems are needed to support elastic and dynamic applications and services. IO Visor addresses a number of challenges that software developers, system administrations and business leaders are facing as they build out modern, cloud-enabled data centers. These include but not limited to:
- Long infrastructure development cycles that require agile IO and networking functions
- Lack of flexibility due to legacy non-elastic, static designs for non-virtualized environments
- Limited performance and scale of IO and networking functions that can’t run in distributed models, in-kernel
- Rising demand and rapidly evolving needs across security, scale, performance
Who are the members of IO Visor Project?
The Project was initiated by PLUMgrid who up-streamed code to the Linux Kernel since version 3.16 as extended Berkeley Packet Filter (eBPF). With support from many companies, PLUMgrid worked with the Linux Foundation to form the Project with members Barefoot Networks, Broadcom, Cavium, Cisco, Facebook, Huawei, Intel, Netronome, SUSE, and Ubuntu Canonical. A larger developer community representing other companies have been actively involved for several years.
Who are the end users of the IO Visor Project?
IO Visor Project provides a broad set of benefits to any company leveraging Linux to build out data centers and clouds to run agile applications. Cloud & IT developers, architects, system admins, engineers, NOC and operations staff are end users.
How will IO Visor work with other open source projects in the networking space?
There are a number of open source projects that are focused on new network functions, management/orchestration, improving ease of use or performance in different areas of the networking stack. Other projects utilize these open source components to deliver a full networking platform for a specific use case. IO Visor provides the in-Kernel enhancements that these projects will leverage and expedite developer access to IO capabilities that may not be available today. By providing programmable data plane abstraction, in-Kernel capabilities, and tools, IO Visor Project will help developers in the networking space achieve faster innovation.
How does one contribute code?
Anyone can participate in the technical development community. The best place to start is reviewing the developer resources in the IO Visor Github at https://github.com/iovisor
Which license does the Project use?
IO Visor Project licenses vary by the components that are used. For example, the Kernel uses GPL, LLVM uses Illinois, libbpf uses LGPL, and other components use Apache. Additional licensing information are in the IO Visor Github at https://github.com/iovisor.
What kinds of products, applications can we expect to see as a result of this collaboration?
Developers have been participating and contributing to the IO Visor effort and as a result of this growing collaboration, additional networking, tracing, and security applications are being built.
Is there an Advisory Group for end users to engage and offer advice, experiences using IO Visor, or provide direction?
Currently we don’t have a formal advisory group for end users to engage and offer advice. There are active email lists that developers are using to collaborate. For further information, please contact [email protected].
Will companies be able to download and use IO Visor Project or will it have to be packaged with other components to use it?
You can download the IO Visor code and use it standalone or package it with other components.
The IO Visor Project refers to a collection of open source components:
- At its heart, the IO Visor Engine is an abstraction of a IO execution engine.
- A set of IO Visor Plugins to the Engine provides functionality to different areas
- IO Visor Project provides a set of development tools
- A set of IO Visor Tools for management and operations of the IO Visor Engine
- A set of Applications, Tools and open IO Modules built on top of the IO Visor framework
How do companies or organizations join as a sponsor?
IO Visor Project offers 2 sponsorship levels – Platinum and Silver. Platinum members are part of the governing board and technical steering committee. Silver members may participate in the board by nomination, and open to join other committees as project maintainers or marketing contributors. Universities and other academic institutions are welcomed. For more details, please contact [email protected].
Is IO Visor Project source code development visible to everyone?
Yes, IO Visor Project source code development is visible to everyone. You don’t need to be a member to be able to contribute to the IO Visor community or leverage the technology. Below are all the links needed to access and downloads IO Visor code and examples:
- main bpf man page: https://man7.org/linux/man-pages/man2/bpf.2.html
- tc-bpf man page: https://man7.org/linux/man-pages/man8/tc-bpf.8.html
- kernel code is available on kernel.org and you can find some examples in kernel samples/bpf/ directory.
- llvm component is on llvm.org
- user space bits: https://github.com/iovisor which includes ‘examples’ directory, readme, etc.
What are the sponsorship levels for the IO Visor Project?
IO Visor Project sponsorships offer 2 levels – Platinum and Silver. Platinum members are part of the governing board and technical steering committee. Silver members may participate in the board by nomination, and open to join other committees as project maintainers or marketing contributors. Universities and other academic institutions are welcomed.
What is the governance structure of IO Visor Project?
IO Visor Project adheres to the governance model of The Linux Foundation Collaborative Project with a board, technical steering committee, marketing, legal, and finance. IO Visor Project board members are Platinum sponsors with one Silver member for every five Silver sponsors.