aboutsummaryrefslogtreecommitdiffstats
path: root/examples/examples-pcvs/src/main/resources/examples/scripts/pcvs/vpnsla/MininetTopology.py
diff options
context:
space:
mode:
Diffstat (limited to 'examples/examples-pcvs/src/main/resources/examples/scripts/pcvs/vpnsla/MininetTopology.py')
-rw-r--r--examples/examples-pcvs/src/main/resources/examples/scripts/pcvs/vpnsla/MininetTopology.py216
1 files changed, 0 insertions, 216 deletions
diff --git a/examples/examples-pcvs/src/main/resources/examples/scripts/pcvs/vpnsla/MininetTopology.py b/examples/examples-pcvs/src/main/resources/examples/scripts/pcvs/vpnsla/MininetTopology.py
deleted file mode 100644
index 4d6aea8f5..000000000
--- a/examples/examples-pcvs/src/main/resources/examples/scripts/pcvs/vpnsla/MininetTopology.py
+++ /dev/null
@@ -1,216 +0,0 @@
-# ============LICENSE_START=======================================================
-# Copyright (C) 2016-2018 Ericsson. 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.
-#
-# SPDX-License-Identifier: Apache-2.0
-# ============LICENSE_END=========================================================
-
-#Add Mininet to PATH
-import sys
-sys.path.insert(0, "/~/mininet")
-
-#Kafka
-import httplib
-import json
-import time
-from kafka import KafkaConsumer, KafkaProducer
-
-#Mininet
-from mininet.clean import *
-from mininet.cli import *
-from mininet.link import *
-from mininet.log import *
-from mininet.net import *
-from mininet.node import *
-from mininet.nodelib import *
-from mininet.topo import *
-from mininet.topolib import *
-
-class StaticFlowPusher(object):
- def __init__(self, server):
- self.server = server
-
- def enableFirewall(self, data):
- path = "/wm/firewall/module/enable/json"
- headers = {'Content-Type': 'application/json','Accept': 'application/json',}
- body = json.dumps(data)
- conn = httplib.HTTPConnection(self.server, 8080)
- conn.request("PUT", path, "")
- response = conn.getresponse()
- ret = (response.status, response.reason, response.read())
- conn.close()
- return ret
-
- def addRule(self, data):
- path = '/wm/firewall/rules/json'
- headers = {'Content-Type': 'application/json','Accept': 'application/json',}
- body = json.dumps(data)
- conn = httplib.HTTPConnection(self.server, 8080)
- conn.request('POST', path, body, headers)
- response = conn.getresponse()
- ret = (response.status, response.reason, response.read())
- conn.close()
- return ret
-
- def deleteRule(self, data):
- path = '/wm/firewall/rules/json'
- headers = {'Content-Type': 'application/json','Accept': 'application/json',}
- body = json.dumps(data)
- conn = httplib.HTTPConnection(self.server, 8080)
- conn.request('DELETE', path, body, headers)
- response = conn.getresponse()
- ret = (response.status, response.reason, response.read())
- conn.close()
- return ret
-
-#Build Pusher(REST/IN)
-pusher = StaticFlowPusher('127.0.0.1')
-
-net = Mininet(link=TCLink)
-
-#Create Customers
-customerA1 = net.addHost( 'A1' )
-customerA2 = net.addHost( 'A2' )
-customerB1 = net.addHost( 'B1' )
-customerB2 = net.addHost( 'B2' )
-
-#Create Switches
-switchA1CO = net.addSwitch( 's1' )
-switchA2CO = net.addSwitch( 's2' )
-switchB1CO = net.addSwitch( 's3' )
-switchB2CO = net.addSwitch( 's4' )
-switchBBL = net.addSwitch( 's5' )
-switchBBR = net.addSwitch( 's6' )
-# we need an extra switch here because Mininet does not allow two links between two switches
-switchEx = net.addSwitch( 's7' )
-
-#Create Links
-net.addLink( customerA1, switchA1CO )
-net.addLink( customerA2, switchA2CO )
-net.addLink( customerB1, switchB1CO )
-net.addLink( customerB2, switchB2CO )
-net.addLink( switchA1CO, switchBBL )
-net.addLink( switchB1CO, switchBBL )
-net.addLink( switchA2CO, switchBBR )
-net.addLink( switchB2CO, switchBBR )
-net.addLink( switchBBL, switchBBR)
-net.addLink( switchBBR, switchEx, bw=1.2 )
-net.addLink( switchEx, switchBBL )
-
-#Create Controller
-floodlightController = net.addController(name='c0' , controller=RemoteController , ip='127.0.0.1', port=6653)
-
-net.start()
-
-if pusher.enableFirewall({})[0] == 200:
- print("Firewall enabled!")
-
-#print(pusher.addRule({"switchid": "00:00:00:00:00:00:00:01"})[2])
-s1id = json.loads(pusher.addRule({"switchid": "00:00:00:00:00:00:00:01"})[2])['rule-id']
-s2id = json.loads(pusher.addRule({"switchid": "00:00:00:00:00:00:00:02"})[2])['rule-id']
-s3id = json.loads(pusher.addRule({"switchid": "00:00:00:00:00:00:00:03"})[2])['rule-id']
-s4id = json.loads(pusher.addRule({"switchid": "00:00:00:00:00:00:00:04"})[2])['rule-id']
-s5id = json.loads(pusher.addRule({"switchid": "00:00:00:00:00:00:00:05"})[2])['rule-id']
-s6id = json.loads(pusher.addRule({"switchid": "00:00:00:00:00:00:00:06"})[2])['rule-id']
-s7id = json.loads(pusher.addRule({"switchid": "00:00:00:00:00:00:00:07"})[2])['rule-id']
-
-
-result = 100
-while result!=0:
- result = net.pingAll(None)
-print("Network Simulation Complete")
-
-#Assume control and when finished "exit"
-cli = CLI( net )
-
-consumer = KafkaConsumer(bootstrap_servers='localhost:9092',auto_offset_reset='latest')
-consumer.subscribe(['apex-out'])
-print("Starting Message Loop")
-for message in consumer:
- myOutput = json.loads(message.value.decode())
- action = ""
- try:
- print("Checking Message")
- #print("SWITCHES= ",net.switches)
- #print("LINKS= ",net.links)
- #print("VALUES= ",net.values)
- if myOutput['edgeName'] != '':
- print("Message Received: ",myOutput['edgeName'])
- pusher.deleteRule({"ruleid": s1id})
- pusher.deleteRule({"ruleid": s2id})
- pusher.deleteRule({"ruleid": s3id})
- pusher.deleteRule({"ruleid": s4id})
- pusher.deleteRule({"ruleid": s5id})
- pusher.deleteRule({"ruleid": s6id})
- pusher.deleteRule({"ruleid": s7id})
- s1id = json.loads(pusher.addRule({"switchid": "00:00:00:00:00:00:00:01"})[2])['rule-id']
- s2id = json.loads(pusher.addRule({"switchid": "00:00:00:00:00:00:00:02"})[2])['rule-id']
- s3id = json.loads(pusher.addRule({"switchid": "00:00:00:00:00:00:00:03"})[2])['rule-id']
- s4id = json.loads(pusher.addRule({"switchid": "00:00:00:00:00:00:00:04"})[2])['rule-id']
- s5id = json.loads(pusher.addRule({"switchid": "00:00:00:00:00:00:00:05"})[2])['rule-id']
- s6id = json.loads(pusher.addRule({"switchid": "00:00:00:00:00:00:00:06"})[2])['rule-id']
- s7id = json.loads(pusher.addRule({"switchid": "00:00:00:00:00:00:00:07"})[2])['rule-id']
- if myOutput['edgeName'] == "L01":
- action = "link s1 s5 down"
- #net.configLinkStatus('s1', 's5', "down")
- pusher.deleteRule({"ruleid": s1id})
- s1id = json.loads(pusher.addRule({"switchid": "00:00:00:00:00:00:00:01", "action": "DENY"})[2])['rule-id']
- if myOutput['edgeName'] == "L02":
- action = "link s3 s5 down"
- #net.configLinkStatus('s3', 's5', "down")
- pusher.deleteRule({"ruleid": s3id})
- s3id = json.loads(pusher.addRule({"switchid": "00:00:00:00:00:00:00:03", "action": "DENY"})[2])['rule-id']
- if myOutput['edgeName'] == "L03":
- action = "link s2 s6 down"
- #net.configLinkStatus('s2', 's6', "down")
- pusher.deleteRule({"ruleid": s1id})
- s1id = json.loads(pusher.addRule({"switchid": "00:00:00:00:00:00:00:01", "action": "DENY"})[2])['rule-id']
- if myOutput['edgeName'] == "L04":
- action = "link s4 s6 down"
- #net.configLinkStatus('s4', 's6', "down")
- pusher.deleteRule({"ruleid": s3id})
- s3id = json.loads(pusher.addRule({"switchid": "00:00:00:00:00:00:00:03", "action": "DENY"})[2])['rule-id']
- if myOutput['edgeName'] == "L05":
- action = "link s1 s5 down"
- #net.configLinkStatus('s1', 's5', "down")
- pusher.deleteRule({"ruleid": s1id})
- s1id = json.loads(pusher.addRule({"switchid": "00:00:00:00:00:00:00:01", "action": "DENY"})[2])['rule-id']
- if myOutput['edgeName'] == "L06":
- action = "link s3 s5 down"
- #net.configLinkStatus('s3', 's5', "down")
- pusher.deleteRule({"ruleid": s3id})
- s3id = json.loads(pusher.addRule({"switchid": "00:00:00:00:00:00:00:03", "action": "DENY"})[2])['rule-id']
- if myOutput['edgeName'] == "L07":
- action = "link s2 s6 down"
- #net.configLinkStatus('s2', 's6', "down")
- pusher.deleteRule({"ruleid": s2id})
- s2id = json.loads(pusher.addRule({"switchid": "00:00:00:00:00:00:00:02", "action": "DENY"})[2])['rule-id']
- if myOutput['edgeName'] == "L08":
- action = "link s4 s6 down"
- #net.configLinkStatus('s4', 's6', "down")
- pusher.deleteRule({"ruleid": s4id})
- s4id = json.loads(pusher.addRule({"switchid": "00:00:00:00:00:00:00:04", "action": "DENY"})[2])['rule-id']
- if myOutput['edgeName'] == "L09":
- action = "link s5 s6 down"
- #net.configLinkStatus('s5', 's6', "down")
- pusher.deleteRule({"ruleid": s7id})
- s7id = json.loads(pusher.addRule({"switchid": "00:00:00:00:00:00:00:07", "action": "DENY"})[2])['rule-id']
- if myOutput['edgeName'] == "L10":
- print("L10")
- #print(action)
- #print("3")
- except KeyError:
- print(myOutput)
-print("HA")
-net.stop()