Code Monkey home page Code Monkey logo

of_l2ls's Introduction

Kytos SDN Platform

Experimental Tag Release License Build status Code coverage Code-quality score

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.

Kytos SDN Platform is the fastest way to deploy an SDN Network. With this you can deploy a basic OpenFlow controller or your own controller. Kytos was designed to be easy to install, use, develop and share Network Apps (NApps). Kytos is incredibly powerful and easy, its modular design makes Kytos a lightweight SDN Platform.

Kytos is conceived to ease SDN controllers development and deployment. It was motivated by some gaps left by common SDN solutions. Moreover, it has strong tights with a community view, so it is centered on the development of applications by its users. Thus, our intention is not only to build a new SDN solution, but also to build a community of developers around it, creating new applications that benefit from the SDN paradigm.

The project was born in 2014 and has been under active development since 2016.

For more information about this project, please visit Kytos project website.

Quick Start

Try First

You may try kytos without installing it by running our docker image. Just install docker from your package provider and run:

$ sudo docker run -it --privileged kytos/tryfirst

Installing

If you don't have Python 3 installed, please install it. Please make sure that you're using python3.6 or a later version:

$ apt install python3

Then, the first step is to clone kytos repository:

$ git clone https://github.com/kytos/kytos.git

After cloning, the installation process is done by standard setuptools install procedure:

$ cd kytos
$ sudo python3 setup.py install

Configuring

After kytos installation, all config files will be located at /etc/kytos/.

Kytos also accepts a configuration file as argument to change its default behaviour. You can view and modify the main config file at /etc/kytos/kytos.conf, and the logging config file at /etc/kytos/logging.ini.

For more information about the config options please visit the Kytos's Administrator Guide.

How to use

Once Kytos is installed, you can run the controller using:

$ kytosd

Kytos runs as a daemon by default. To run it in foreground, add the -f option to the command line:

$ kytosd -f

You can use -h or --help for more information about options to the command line.

With the above commands your controller will be running and ready to be used. Please note that you have to run it as an user with permission to open sockets at ports 6653 and 8181.

The Web Admin User Interface

Kytos installs automatically a web interface for administration. When Kytos is running, the Web UI runs in your localhost and can be accessed via browser, in http://localhost:8181. Have fun (:

Get Help

You can find us on the #kytos IRC channel on freenode.net network.

We also have two mailing lists:

Submit an Issue

If you find a bug or a mistake in the documentation, you can help us by submitting an issue to our repo. Even better, you can submit a Pull Request to fix it. Before sharing a fix with the Kytos Community, please, check the :ref:`contributing-submission-guidelines` section.

Get Involved

We'd love for you to contribute to our source code and to make Kytos better than it is today!

This is one component of the Kytos project. For more information on how to get involved, please, visit the section :doc:`/developer/how_to_contribute` of the Kytos documentation. Our mailing lists are in :doc:`/home/get_help`.

Authors

For a complete list of authors, please see AUTHORS.rst.

Contributing

If you want to contribute to this project, please read Kytos Documentation website.

License

This software is under MIT-License. For more information please read LICENSE file.

What's Next

You are now ready to browse our guide for :doc:`administrators </admin/intro>` or :doc:`developers </developer/intro>`. Check out!

.prev-next-nav li:last-child { display: none; }

of_l2ls's People

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

of_l2ls's Issues

TypeError - line 96

I want to use Kytos with Mininet based on this document. I get this error when I try to Ping.

  • mininet:
> h1 ping h2
  • kytosd logs:
Exception in thread Thread-105:
Traceback (most recent call last):
  File "/usr/lib/python3.8/threading.py", line 932, in _bootstrap_inner
    self.run()
  File "/usr/lib/python3.8/threading.py", line 870, in run
    self._target(*self._args, **self._kwargs)
  File "/usr/local/lib/python3.8/dist-packages/kytos-2021.1-py3.8.egg/kytos/core/helpers.py", line 70, in threaded_handler
    handler(*args)
  File "//var/lib/kytos/napps/kytos/of_l2ls/main.py", line 161, in handle_packet_in
    packet_out = self._create_packet_out(version, packet_in, ports, switch)
  File "//var/lib/kytos/napps/kytos/of_l2ls/main.py", line 96, in _create_packet_out
    if iface and (iface.config & PortConfig10.OFPPC_NO_FWD ==
TypeError: unsupported operand type(s) for &: 'NoneType' and 'int'

"Connection lost" issue when the topology contains interconnected loops

The Of_l2ls NApp is not working well in topologies that contains loops, like the connection between MIA1, MIA2, MIA3 FLZ1, SPO1 in the topology below:

topology-vip-students-mirror

Simplified error output:

2021-02-11 14:51:56,731 - INFO [kytos.core.controller] (MainThread) connection closed. Cannot send message
2021-02-11 14:51:56,732 - INFO [kytos.core.controller] (MainThread) connection closed. Cannot send message
2021-02-11 14:51:56,734 - INFO [kytos.core.controller] (MainThread) connection closed. Cannot send message

Steps to reproduce:

  1. Start Kytos
  2. Start Mininet (e.g. using this topology: https://www.dropbox.com/s/pabgr1qqnwsdxwh/vip-students-mirror.py?dl=0)

Related issue:

Upgrade development dependencies

  • Dependencies need to be upgraded
  • Tests are failing, immediate error message:
    def __init__(self, maxsize: int = 0) -> None:
>       self._loop = asyncio.get_running_loop()
E       RuntimeError: no running event loop

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.