blob: 06272477557ac287341dd1f59006482909cec2c1 [file] [log] [blame]
stevenvanrossem0e66baf2017-01-28 15:34:14 +01001"""
2Copyright (c) 2015 SONATA-NFV
3ALL RIGHTS RESERVED.
4
5Licensed under the Apache License, Version 2.0 (the "License");
6you may not use this file except in compliance with the License.
7You may obtain a copy of the License at
8
9 http://www.apache.org/licenses/LICENSE-2.0
10
11Unless required by applicable law or agreed to in writing, software
12distributed under the License is distributed on an "AS IS" BASIS,
13WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14See the License for the specific language governing permissions and
15limitations under the License.
16
17Neither the name of the SONATA-NFV [, ANY ADDITIONAL AFFILIATION]
18nor the names of its contributors may be used to endorse or promote
19products derived from this software without specific prior written
20permission.
21
22This work has been performed in the framework of the SONATA project,
23funded by the European Commission under Grant number 671517 through
24the Horizon 2020 and 5G-PPP programmes. The authors would like to
25acknowledge the contributions of their colleagues of the SONATA
26partner consortium (www.sonata-nfv.eu).
27"""
28"""
29A simple topology with two PoPs for the y1 demo story board.
30
31 (dc1) <<-->> s1 <<-->> (dc2)
32
33- SAP deployment enabled
34- learning switch enabled
35"""
36
37import logging
38from mininet.log import setLogLevel
39from emuvim.dcemulator.net import DCNetwork
40from emuvim.api.rest.rest_api_endpoint import RestApiEndpoint
41from emuvim.api.sonata import SonataDummyGatekeeperEndpoint
42from mininet.node import RemoteController
43
44logging.basicConfig(level=logging.INFO)
45
46
47def create_topology1():
48 # create topology
49 net = DCNetwork(controller=RemoteController, monitor=True, enable_learning=True)
50 dc1 = net.addDatacenter("dc1")
51
52
53 # add the command line interface endpoint to each DC (REST API)
54 rapi1 = RestApiEndpoint("0.0.0.0", 5001)
55 rapi1.connectDCNetwork(net)
56 rapi1.connectDatacenter(dc1)
57 # run API endpoint server (in another thread, don't block)
58 rapi1.start()
59
60 # add the SONATA dummy gatekeeper to each DC
61 sdkg1 = SonataDummyGatekeeperEndpoint("0.0.0.0", 5000, deploy_sap=True)
62 sdkg1.connectDatacenter(dc1)
63 # run the dummy gatekeeper (in another thread, don't block)
64 sdkg1.start()
65
66 # start the emulation platform
67 net.start()
68 net.CLI()
69 net.stop()
70
71
72def main():
73 setLogLevel('info') # set Mininet loglevel
74 create_topology1()
75
76
77if __name__ == '__main__':
78 main()