IO Visor Project provides a programmable data plane and development tools to simplify the creation and sharing of dynamic “IO Modules”. At its heart is IO Visor_Engine, which is an universal in-kernel IO Virtual Machine that provides run-time extensibility. IO Visor_Engine has a set of IO Visor_Plugins to provide functionality to different areas.
Under IO Visor Project, you’ll get a set of development tools called IO Visor_Dev_Tools and a set of management and operations tools of the IO Visor_Engine called IO Visor_Tools. With this framework and toolkit, you can build IO_Modules on top of the IO Visor framework for security, networking, tracing or any other area of your interest.
For more information on how to build and use IO Modules, and download all the necessary components, please visit the following:
- main bpf man page: http://man7.org/linux/man-pages/man2/bpf.2.html
- tc-bpf man page: http://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.