From 8eac3cc3f7f58f7490ab6714217d985b8992af70 Mon Sep 17 00:00:00 2001 From: stevenvanrossem Date: Mon, 30 Jan 2017 13:14:27 +0100 Subject: [PATCH] add simple topology example --- src/emuvim/examples/sonata_simple_topology.py | 78 +++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100755 src/emuvim/examples/sonata_simple_topology.py diff --git a/src/emuvim/examples/sonata_simple_topology.py b/src/emuvim/examples/sonata_simple_topology.py new file mode 100755 index 0000000..0627247 --- /dev/null +++ b/src/emuvim/examples/sonata_simple_topology.py @@ -0,0 +1,78 @@ +""" +Copyright (c) 2015 SONATA-NFV +ALL RIGHTS RESERVED. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +Neither the name of the SONATA-NFV [, ANY ADDITIONAL AFFILIATION] +nor the names of its contributors may be used to endorse or promote +products derived from this software without specific prior written +permission. + +This work has been performed in the framework of the SONATA project, +funded by the European Commission under Grant number 671517 through +the Horizon 2020 and 5G-PPP programmes. The authors would like to +acknowledge the contributions of their colleagues of the SONATA +partner consortium (www.sonata-nfv.eu). +""" +""" +A simple topology with two PoPs for the y1 demo story board. + + (dc1) <<-->> s1 <<-->> (dc2) + +- SAP deployment enabled +- learning switch enabled +""" + +import logging +from mininet.log import setLogLevel +from emuvim.dcemulator.net import DCNetwork +from emuvim.api.rest.rest_api_endpoint import RestApiEndpoint +from emuvim.api.sonata import SonataDummyGatekeeperEndpoint +from mininet.node import RemoteController + +logging.basicConfig(level=logging.INFO) + + +def create_topology1(): + # create topology + net = DCNetwork(controller=RemoteController, monitor=True, enable_learning=True) + dc1 = net.addDatacenter("dc1") + + + # add the command line interface endpoint to each DC (REST API) + rapi1 = RestApiEndpoint("0.0.0.0", 5001) + rapi1.connectDCNetwork(net) + rapi1.connectDatacenter(dc1) + # run API endpoint server (in another thread, don't block) + rapi1.start() + + # add the SONATA dummy gatekeeper to each DC + sdkg1 = SonataDummyGatekeeperEndpoint("0.0.0.0", 5000, deploy_sap=True) + sdkg1.connectDatacenter(dc1) + # run the dummy gatekeeper (in another thread, don't block) + sdkg1.start() + + # start the emulation platform + net.start() + net.CLI() + net.stop() + + +def main(): + setLogLevel('info') # set Mininet loglevel + create_topology1() + + +if __name__ == '__main__': + main() -- 2.17.1