{"id":13557773,"url":"https://github.com/Beacon-Unime/Federation-Agent","last_synced_at":"2025-04-03T12:31:07.390Z","repository":{"id":75373256,"uuid":"61815125","full_name":"Beacon-Unime/Federation-Agent","owner":"Beacon-Unime","description":null,"archived":false,"fork":false,"pushed_at":"2017-05-08T13:19:06.000Z","size":77,"stargazers_count":2,"open_issues_count":0,"forks_count":2,"subscribers_count":3,"default_branch":"netfa","last_synced_at":"2024-11-04T08:36:10.122Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Beacon-Unime.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":null,"funding":null,"license":"License.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2016-06-23T15:15:08.000Z","updated_at":"2017-01-11T22:58:56.000Z","dependencies_parsed_at":"2023-06-06T07:15:05.751Z","dependency_job_id":null,"html_url":"https://github.com/Beacon-Unime/Federation-Agent","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Beacon-Unime%2FFederation-Agent","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Beacon-Unime%2FFederation-Agent/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Beacon-Unime%2FFederation-Agent/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Beacon-Unime%2FFederation-Agent/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Beacon-Unime","download_url":"https://codeload.github.com/Beacon-Unime/Federation-Agent/tar.gz/refs/heads/netfa","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247002224,"owners_count":20867429,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-01T12:04:32.250Z","updated_at":"2025-04-03T12:31:07.048Z","avatar_url":"https://github.com/Beacon-Unime.png","language":"Python","readme":"###########################################################################\n#Copyright 2016 Anna Levin, Liran Shour - IBM\n#\n#   Licensed under the Apache License, Version 2.0 (the \"License\");\n#   you may not use this file except in compliance with the License.\n#   You may obtain a copy of the License at\n#\n#       http://www.apache.org/licenses/LICENSE-2.0\n#\n#   Unless required by applicable law or agreed to in writing, software\n#   distributed under the License is distributed on an \"AS IS\" BASIS,\n#   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n#   See the License for the specific language governing permissions and\n#   limitations under the License.\n############################################################################\nWhat's Net-fa\n=============\nNet-fa is a Ryu based application that implements federation agent OF\ncontroller.\n\nNet-fa is a generic SDN federation agent that exposes REST management and \ncontrol API to the Cloud Management Software and between network federation \nagents peers.\nIn order to support a specific SDN implementation, one should write its own \nFaController class that is derived from the abstract FaSdnController class.\nMinimal implementation (L2 ARP based control) should implement the following \nmethods: \n    register_vnid() and get_module_name().\n\nBasic architecture:\n-------------------\n\n                             +------------------------+\n                             |                        |\n       RYU infratstructure   |    RYU OF controller   |\n                             |                        |\n                             +------------------------+\n               ------------------|------------------|---------------------\n                                 |            +--------------+                 \n                        +-----------------+   |              |\n       RYU application  | instance derived|\u003c-\u003e|    NetFA     |\n                        |    from         |   |              |\n                        | FaSdnController |   +--------------+\n                        +-----------------+          |\n                               |                     |\n                          +---------+           +---------+  Tunnels to peers\n                          | Network |+          | FA DP   |\u003c-----------------\u003e\n                          +---------+|          +---------+\n                           +-----|---+            | | | |\n                                 +----------------+ \n                           (patch port per registered network)\n\nNet-fa comes with a specific reference SDN implementation for OVN in \nfa_ovn_controller.py (FaOvnController).\nIf you want Net-fa to work with your own SDN implementation, take a look\nin FaOvnController as a reference implementation and write a class that is\ndereived from the abstract class FaSdnController. \n\nNet-FA OVN implementatiopn was tested on a Fedora21 but should work on any\nLinux distribution with kernel\u003e=3.18 (Geneve support)\n\nQuick Start\n===========\nInstall the following packages: python-pip, python-dev python-neutronclient python-keystoneclient\nInstall Openvswitch from source\n\n% git clone \u003cnet-fa Git repository\u003e\n% git checkout netfa\n% cd net-fa\n% sudo pip install -r requirments.txt\n% sudo python ./setup.py install\n# OR: % cd net-fa; python ./setup.py develop \n\n# To setup FA ovs datapath:\n  Edit OVS_DIR\n% sudo setup-fa-ovs.sh \u003chost_ip\u003e\n\n# If you run over OVN you will need to run setup-ovn.sh:\n% sudo setup-ovn.sh \u003chost_ip\u003e \u003covn_db_ip\u003e\n\nCopy and edit netfa.conf file:\n% cp netfa.conf.sample netfa.conf\n( Edit netfa.conf...)\nudo setup-fa-ovs.sh\n% sudo ryu-manager --verbose --wsapi-port=4567 --ofp-tcp-listen-port=1234 --config-file=./netfa.conf ./netfa/net_fa.py \u003cfile contains a class derived from FaSdnController e.g ./netfa/fa_ovn_controller.py\u003e\n\nRyu-manager runs 2 Ryu applications net_fa.py that implements all the REST \nAPIs and controlling the FA datapath and a class that implements \nFaSdnController to communicate with teh specific SDN implementation \n(e.g FaOvnController)\n\nWe have a script for sharing networks of 2 OpenStack clouds according to the \nnetfa.mgmt file. The script generate Net-FA REST API to share tenant's \nnetworks.\n\n% python ./fc-mgmt-share.py\n","funding_links":[],"categories":["Python","others"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FBeacon-Unime%2FFederation-Agent","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FBeacon-Unime%2FFederation-Agent","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FBeacon-Unime%2FFederation-Agent/lists"}