WARNING: As previously announced on our communication channels, the Kytos project will enter the "shutdown" phase on May 31, 2021. After this date, only critical patches (security and core bug fixes) will be accepted, and the project will be in "critical-only" mode for another six months (until November 30, 2021). For more information visit the FAQ at <https://kytos.io/faq>. We'll have eternal gratitude to the entire community of developers and users that made the project so far.
The kytos project was conceived to fill a gap left by common popular controllers: a controller that could be easily deployed and that was centered on the development of applications by its users. Thus, our intention is not only to build a new OpenFlow controller, but also build a community of developers around it, creating new applications that benefit from the SDN paradigm.
The project was born in 2014, when the first version of the message parsing library was built. After some time stalled, the development took off in earlier 2016.
In less than a year a new library was built, following a strictly free open source software philosophy. Also, a new controller and a basic set of network applications known as NApps was developed.
Our team is mainly composed by Computer Scientist and Engineers and some of us have participated in several demonstrations involving tests with high-speed networks (~ 1 terabit/s), some even involving data transfers from/to Caltech, CERN and São Paulo State University.
Considering that background we enumerate some of our major values:
We keep the word performance in mind since the beginning of the development. The controller should be able to handle large amount of requests on high-speed networks.
The architecture designed for our project allows for a high level of reuse. Thus, when a new OpenFlow version is released, the amount of work needed to implement it is minimized by reusing the parts that did not change between version.
This means that the first version (1.0.0 = v0x01) was fully coded from the OpenFlow 1.0.0 Protocol. The 1.1 version (v0x02) imports the 1.0 version and then do the necessary changes to make it compatible with the OpenFlow 1.1.0 Protocol, and so on.
We chose python for its simplicity and code clarity, thus, we try to code in a "pythonic way". We also try to keep the most complete and didactic API documentation. Once you get a hold on how the library works, understanding how the controller works is a trivial task.
OpenFlow was born with a simple idea: make your network more vendor agnostic and we like that!
We are advocates and supporters of free software and we believe that the more eyes reviewing a certain code, the better the code will be. This project can receive support of many vendors, but will never follow a particular vendor direction.
We always will keep this code open.
We have a fully implemented OpenFlow 1.0 and 1.3 APIs and currently we are working to deliver other versions.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.