{
"info": {
"author": "Oladimeji Fayomi",
"author_email": "olafayomi@gmail.com",
"bugtrack_url": null,
"classifiers": [],
"description": ":version: 0.0.2\n:copyright: 2016 `WAND `_. All Rights Reserved.\n\n.. meta::\n :keywords: Openflow, Ryu, RheaFlow, Routing, SDN\n\n========\nRheaFlow\n========\n\nRheaFlow is a Software Defined Networking (SDN) routing application that uses IP routing protocols to implement routing on any number of OpenFlow switches. RheaFlow multiplexes the OpenFlow switches used for routing into a single logical device on a Linux host machine, allowing any number of OpenFlow switches controlled by RheaFlow to behave like a single hardware router. This provides a network administrator with a single point of access in the network for performing debugging and configuration tasks with regular Linux tools. RheaFlow is developed as an application for the `Ryu OpenFlow Controller Platform `_.\n\n============\nInstallation\n============\n\nRheaFlow can be installed with Python pip. RheaFlow requires additional Python packages such as ryu, eventlet, netaddr, PyYaml and pyroute2 for a successful installation. Pip automatically installs these dependent Python packages when RheaFlow is installed.\n\nYou have to run this as ``root`` or use ``sudo``\n::\n # pip install RheaFlow\n # pip show RheaFlow\n\nOptionally, RheaFlow can be installed by download the git repo.\nYou have to run this as ``root`` or use ``sudo``\n::\n # git clone https://github.com/wandsdn/RheaFlow /tmp/RheaFlow\n # cd /tmp/RheaFlow\n # pip install .\n\nUninstall\n---------\n\nTo uninstall RheaFlow.\n::\n # pip uninstall RheaFlow\n\n=============\nConfiguration\n=============\n\nRheaFlow is configured with a YAML-based configuration file which is located by default in ``/usr/local/etc/ryu`` directory of the Linux host machine. A sample configuration file is supplied in ``/usr/local/etc/ryu/config.yaml``. \n\nThe configuration file consists of two block collections. The ``datapaths`` collection is used to provide information about the OpenFlow switches that will be controlled by RheaFlow. A node in the ``datapaths`` collection represents an OpenFlow switch, the entries in each node are:\n\n * name: human-readable name assigned to the OpenFlow switch e.g ``switch-at-x930``.\n * type: identifies the vendor of the OpenFlow switch e.g ``Allied Telesis``.\n * dp_id: Unique datapath ID of the OpenFlow switch.\n * vs_port_prefix: provides the interface name format for the virtual\n interface siblings of the ports of the OpenFlow switch that will be used\n for routing by the Linux host machine.\n * ports: specifies the OpenFlow port number of the interfaces on the\n OpenFlow switch that will be used for routing and the IP addresses\n that should be assigned to their virtual siblings on the Linux host machine.\n * decrement_ttl: Used to specify that TTL decrement actions should be\n included in the OpenFlow rules installed on the switch.\n * fastpath_port: specifies the OpenFlow port number of the interface that\n will used for FastPath on the switch.\n * fastpath_vs: specifies the OpenFlow port number of the FastPath\n interface on the Linux host machine.\n * interswitch_links: specifies the local OpenFlow port number,\n remote datapath ID and port number for inter-switch links on the switch.\n\nThe ``Virtual-switch`` collection is used to configure the virtual switch on the Linux host machine. ``fastpath_interface`` specifies the interface on the Linux host machine that will be used for the FastPath link to an OpenFlow switch. ``fastpath_port`` specifies OpenFlow port number that should be assigned to ``fastpath_interface``, ``fastpath_port`` should be the same as ``fastpath_vs`` provided the OpenFlow switch in the ``datapaths`` collection.\n\nOptional\n--------\n\nSome of RheaFlow's default configuration options can be modified by editing the ``ryu.conf`` file in ``/usr/local/etc/ryu``. For example, RheaFlow can be modified to used a different configuration file by modifying ``rhea_config`` in ``ryu.conf``. The TCP port on which RheaFlow listens for connection from the OpenFlow switches can be changed by modifying ``ofp_tcp_listen_port``.\n\n=====\nUsage\n=====\n\nThe Linux machine hosting RheaFlow requires Open vSwitch and BIRD Internet Routing Daemon installation. Open vSwitch allows RheaFlow to create and configure a virtual switch instance on the Linux machine that multiplexes the interfaces of the OpenFlow switches controlled by RheaFlow. BIRD provides the routing information needed to compute the Forwarding Information Base (FIB) which RheaFlow converts to OpenFlow rules that allow routing on the OpenFlow switches. The BIRD Routing Daemon is a fork that has been modified to send route information to RheaFlow in JSON format over a TCP socket. The image below shows the deployment of RheaFlow on a Linux machine.\n\n.. image:: docs/images/RheaFlow.png\n\nOpen vSwitch Installation\n-------------------------\n\nYou have to run this as ``root`` or use ``sudo``\n::\n # apt-get install openvswitch-switch\n\nBIRD installation\n-----------------\n\nInstall the following packages to compile the modified BIRD routing daemon.\n::\n # apt get install gcc make build-essential m4 binutils bison flex libncurses5-dev libreadline6 libreadline6-dev automake autoconf libzmq3-dev\n\nDownload a copy of the modified BIRD router code from git and install on the Linux host machine.\n::\n # git clone https://github.com/olafayomi/bird.git /tmp/bird\n # cd /tmp/bird\n # autoconf\n # ./configure\n # make\n # make install\n\nOperation\n---------\n\nEdit the configuration file ``/usr/local/etc/ryu/config.yaml`` to provide the information required to configure the OpenFlow switches controlled by RheaFlow.\n\nStart RheaFlow using systemd (If available) as ``root`` or use ``sudo``.\n::\n # systemctl start rheaflow \n\nOr with RheaManager as ``root`` or use ``sudo``.\n::\n # /usr/local/bin/RheaManager --start\n\nEdit the BIRD configuration and start the BIRD daemon to provide route information to RheaFlow.\nTo stop RheaFlow:\n::\n # systemctl stop rheaflow\nOr\n::\n # /usr/local/bin/RheaManager --stop\nThe BIRD routing daemon should be started after RheaFlow has been started otherwise it will not establish a connection with RheaFlow. Additionally, the BIRD daemon should be reloaded if RheaFlow is restarted or after RheaFlow has been stopped and started again.\n \n=======================\nOpenFlow switch support\n=======================\n\nRheaFlow has been tested and would work with the following OpenFlow switches for OpenFlow v1.3.\n\nAllied Telesis\n--------------\n\n`Allied Telesis `.\n",
"description_content_type": null,
"docs_url": null,
"download_url": "",
"downloads": {
"last_day": -1,
"last_month": -1,
"last_week": -1
},
"home_page": "https://github.com/wandsdn/RheaFlow",
"keywords": "",
"license": "Apache License Version 2.0, January 2004 http://www.apache.org/licenses/",
"maintainer": "",
"maintainer_email": "",
"name": "RheaFlow",
"package_url": "https://pypi.org/project/RheaFlow/",
"platform": null,
"project_url": "https://pypi.org/project/RheaFlow/",
"project_urls": {
"Homepage": "https://github.com/wandsdn/RheaFlow"
},
"release_url": "https://pypi.org/project/RheaFlow/0.0.27/",
"requires_dist": null,
"requires_python": "",
"summary": "Software defined network router",
"version": "0.0.27"
},
"last_serial": 2592464,
"releases": {
"0.0.1": [
{
"comment_text": "",
"digests": {
"md5": "3d6907e04a25037dc707b2b6fc1eb057",
"sha256": "70c2e8f88adccc20a4f705bda09f5dc58c75b5a66c2d0308a87be87bf3e28c73"
},
"downloads": -1,
"filename": "RheaFlow-0.0.1-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "3d6907e04a25037dc707b2b6fc1eb057",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 51990,
"upload_time": "2016-11-29T02:18:48",
"url": "https://files.pythonhosted.org/packages/51/b2/42e4d1bd94f589a4572c758152dc715ea8f6608fc91663fc893ca8df837a/RheaFlow-0.0.1-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "a0f409482fc8811ea7cac444c36cd515",
"sha256": "28c317449568accb6e30504e9d0eb83d407f32554609c27d2a609ed92caa4f45"
},
"downloads": -1,
"filename": "RheaFlow-0.0.1.tar.gz",
"has_sig": false,
"md5_digest": "a0f409482fc8811ea7cac444c36cd515",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 34745,
"upload_time": "2016-11-29T02:18:52",
"url": "https://files.pythonhosted.org/packages/4e/1c/42aac0efecec522c10931836c07e81c5d2adbb1f27b0d2a9cbbcc096f444/RheaFlow-0.0.1.tar.gz"
}
],
"0.0.2": [
{
"comment_text": "",
"digests": {
"md5": "c64f4631b1a9913e46f249c0263b66ca",
"sha256": "d2b8f9e6f57eaf370f1a60070328fc35e2a3d6bcc563de607000e385c053d4d9"
},
"downloads": -1,
"filename": "RheaFlow-0.0.2-py2-none-any.whl",
"has_sig": false,
"md5_digest": "c64f4631b1a9913e46f249c0263b66ca",
"packagetype": "bdist_wheel",
"python_version": "py2",
"requires_python": null,
"size": 51983,
"upload_time": "2016-11-29T03:01:17",
"url": "https://files.pythonhosted.org/packages/ac/b0/457e075e5c7dd7de92dae775aa98a3779a154c8013840bbfde0d30ec4112/RheaFlow-0.0.2-py2-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "e63a306ef3dff377a5994e4a12cf2480",
"sha256": "8df756b79b02d7c4005c472ca61453410973b0599f08b4158fa53e0ef367475f"
},
"downloads": -1,
"filename": "RheaFlow-0.0.2.tar.gz",
"has_sig": false,
"md5_digest": "e63a306ef3dff377a5994e4a12cf2480",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 34752,
"upload_time": "2016-11-29T03:01:21",
"url": "https://files.pythonhosted.org/packages/87/32/5d77568ed9e5b882adc461e4b956aabeaf1ba1990c0386223da946e35617/RheaFlow-0.0.2.tar.gz"
}
],
"0.0.21": [
{
"comment_text": "",
"digests": {
"md5": "c204e51ec21931f2d5d7abc57c9caf3b",
"sha256": "7430acae9b885efda0dcc0250e2c7cb6f360d6c5c12d9dc64f4c04cfca1735de"
},
"downloads": -1,
"filename": "RheaFlow-0.0.21-py2-none-any.whl",
"has_sig": false,
"md5_digest": "c204e51ec21931f2d5d7abc57c9caf3b",
"packagetype": "bdist_wheel",
"python_version": "py2",
"requires_python": null,
"size": 52007,
"upload_time": "2016-11-29T03:15:13",
"url": "https://files.pythonhosted.org/packages/19/32/0eecc9b1d24f1599e91f32b6e7efb138d049d41fdc98b75c66ef185e197e/RheaFlow-0.0.21-py2-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "39e2d626533b8307d99fd2028a60fbe7",
"sha256": "2ec497ed13e397f4ac1266e124533b09ccfd9181337fad3dbd04504fcbd6dbab"
},
"downloads": -1,
"filename": "RheaFlow-0.0.21.tar.gz",
"has_sig": false,
"md5_digest": "39e2d626533b8307d99fd2028a60fbe7",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 34763,
"upload_time": "2016-11-29T03:15:16",
"url": "https://files.pythonhosted.org/packages/4f/49/dd952a02498fa05651f78cc9623d9d54ea9429fdbbcbc76d38eeb31ef2e6/RheaFlow-0.0.21.tar.gz"
}
],
"0.0.22": [
{
"comment_text": "",
"digests": {
"md5": "6a26d5b176afc928ea8776b89f66a087",
"sha256": "bc36a7e994fa15aabbd2e9f2470f3e5662b8a7ef2944141b70dda472986e73fb"
},
"downloads": -1,
"filename": "RheaFlow-0.0.22-py2-none-any.whl",
"has_sig": false,
"md5_digest": "6a26d5b176afc928ea8776b89f66a087",
"packagetype": "bdist_wheel",
"python_version": "py2",
"requires_python": null,
"size": 52008,
"upload_time": "2016-11-29T03:26:29",
"url": "https://files.pythonhosted.org/packages/35/33/4d49e58b1eff22491c00b5c56e4aa92808d27f622bf66a6864071d439ec0/RheaFlow-0.0.22-py2-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "6e6d1046319d25663b361a378c64942e",
"sha256": "433ff0577ed9a17d1c90402803ff57b568931fcc1bd0fd591f472b663fba83a5"
},
"downloads": -1,
"filename": "RheaFlow-0.0.22.tar.gz",
"has_sig": false,
"md5_digest": "6e6d1046319d25663b361a378c64942e",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 34766,
"upload_time": "2016-11-29T03:26:32",
"url": "https://files.pythonhosted.org/packages/f3/b1/eb02b7f3e5958a19a9fba5a01f6c8a738b74daf5668f68c334137ac424e5/RheaFlow-0.0.22.tar.gz"
}
],
"0.0.23": [
{
"comment_text": "",
"digests": {
"md5": "7f7272279dc399766b870ad08d91e98e",
"sha256": "10b1eaf049782d82809b1d9e6ac5fcfe6c8f1c700a53b8d76d30b4b131063bb7"
},
"downloads": -1,
"filename": "RheaFlow-0.0.23-py2-none-any.whl",
"has_sig": false,
"md5_digest": "7f7272279dc399766b870ad08d91e98e",
"packagetype": "bdist_wheel",
"python_version": "py2",
"requires_python": null,
"size": 52007,
"upload_time": "2017-01-22T04:16:19",
"url": "https://files.pythonhosted.org/packages/d7/1d/444500165e9a3daec5fc1460d8ea56cfacf2fddba2d7b7f9a4335a47adc6/RheaFlow-0.0.23-py2-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "d119bfab3ecec76a05df3d2cf2bee034",
"sha256": "16e6e60db081006b1d3dfeac785ca205b092c8c926ab0bc1e05881adb134e109"
},
"downloads": -1,
"filename": "RheaFlow-0.0.23.tar.gz",
"has_sig": false,
"md5_digest": "d119bfab3ecec76a05df3d2cf2bee034",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 65661,
"upload_time": "2017-01-22T04:16:22",
"url": "https://files.pythonhosted.org/packages/a5/75/5369891da38d86cf837b5e919a7b638c4728b821a852a5594a68829d354b/RheaFlow-0.0.23.tar.gz"
}
],
"0.0.24": [
{
"comment_text": "",
"digests": {
"md5": "23b03447606c2b143960a0eff694b3f7",
"sha256": "e30336cc8ed99f6394c1f087a50c3d86abcc6a77da34aaffb9d770c9f9b2d388"
},
"downloads": -1,
"filename": "RheaFlow-0.0.24-py2-none-any.whl",
"has_sig": false,
"md5_digest": "23b03447606c2b143960a0eff694b3f7",
"packagetype": "bdist_wheel",
"python_version": "py2",
"requires_python": null,
"size": 52113,
"upload_time": "2017-01-22T06:30:19",
"url": "https://files.pythonhosted.org/packages/28/d9/795f4f115e18b736fab22a353521cefc2f07b90a12d13afe7ea4a8c72cf9/RheaFlow-0.0.24-py2-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "48aedb2e83175252791d8d40e4643648",
"sha256": "a484e42a60d00cbb8f600628d0c97855a9009ffcd19e618fb262adedcddf5481"
},
"downloads": -1,
"filename": "RheaFlow-0.0.24.tar.gz",
"has_sig": false,
"md5_digest": "48aedb2e83175252791d8d40e4643648",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 65664,
"upload_time": "2017-01-22T06:30:22",
"url": "https://files.pythonhosted.org/packages/7b/84/8f27f17879427f777a1f3b9850c48d939fcaf56ed99fd07a8161eb6b5e5b/RheaFlow-0.0.24.tar.gz"
}
],
"0.0.25": [
{
"comment_text": "",
"digests": {
"md5": "bb4ef100771e89c6afd58e5b0489dcf0",
"sha256": "507cd70ad539b0a81d1148f5702daf0ceb82d81ebf1e1b0c20f57e9c46279820"
},
"downloads": -1,
"filename": "RheaFlow-0.0.25.tar.gz",
"has_sig": false,
"md5_digest": "bb4ef100771e89c6afd58e5b0489dcf0",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 65673,
"upload_time": "2017-01-22T23:38:44",
"url": "https://files.pythonhosted.org/packages/2c/c7/94ce660386f17f070d950de56a99e4e5f2316f0aacd8f2baec547017215e/RheaFlow-0.0.25.tar.gz"
}
],
"0.0.26": [
{
"comment_text": "",
"digests": {
"md5": "8d58a1239517f95cb4fe131eddb6bcf8",
"sha256": "8a039ace1f1998ed44584b8fd19de225b6a7f27582bb6ebf3b95758900983291"
},
"downloads": -1,
"filename": "RheaFlow-0.0.26.tar.gz",
"has_sig": false,
"md5_digest": "8d58a1239517f95cb4fe131eddb6bcf8",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 65833,
"upload_time": "2017-01-23T03:02:02",
"url": "https://files.pythonhosted.org/packages/1b/58/9c3a726b6b67c329d374ad6fc5158dc27f17ab14994c24288a7d9bb8d7b1/RheaFlow-0.0.26.tar.gz"
}
],
"0.0.27": [
{
"comment_text": "",
"digests": {
"md5": "5cd2de91547e17afe06991fd1bb2d9eb",
"sha256": "3d4389c4aee85f8c2ec896e16cfa669c9241b21269898c7ec971c663051079b5"
},
"downloads": -1,
"filename": "RheaFlow-0.0.27.tar.gz",
"has_sig": false,
"md5_digest": "5cd2de91547e17afe06991fd1bb2d9eb",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 66714,
"upload_time": "2017-01-23T10:48:45",
"url": "https://files.pythonhosted.org/packages/c2/8f/c2b672e9d1673453218803102e8ddf7b9ad0d3a1eeb9d841b8b603667fe1/RheaFlow-0.0.27.tar.gz"
}
]
},
"urls": [
{
"comment_text": "",
"digests": {
"md5": "5cd2de91547e17afe06991fd1bb2d9eb",
"sha256": "3d4389c4aee85f8c2ec896e16cfa669c9241b21269898c7ec971c663051079b5"
},
"downloads": -1,
"filename": "RheaFlow-0.0.27.tar.gz",
"has_sig": false,
"md5_digest": "5cd2de91547e17afe06991fd1bb2d9eb",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 66714,
"upload_time": "2017-01-23T10:48:45",
"url": "https://files.pythonhosted.org/packages/c2/8f/c2b672e9d1673453218803102e8ddf7b9ad0d3a1eeb9d841b8b603667fe1/RheaFlow-0.0.27.tar.gz"
}
]
}