SEBA-151 Deploy Ponsim and Mininet for SEBA testing/development

Change-Id: If65ce52c01b28395a27c04b834d3cc0faff23c91
diff --git a/mininet/toposcripts/topo.py b/mininet/toposcripts/topo.py
new file mode 100644
index 0000000..7dd6070
--- /dev/null
+++ b/mininet/toposcripts/topo.py
@@ -0,0 +1,63 @@
+#!/usr/bin/python
+
+# Copyright 2017-present Open Networking Foundation
+#
+# 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.
+
+import re
+import sys
+import socket
+
+from mininet.cli import CLI
+from mininet.log import setLogLevel, info, error
+from mininet.net import Mininet
+from mininet.link import Intf
+from mininet.topo import SingleSwitchTopo
+from mininet.node import OVSSwitch, RemoteController
+from functools import partial
+from mininet.util import quietRun
+
+if __name__ == '__main__':
+    setLogLevel( 'info' )
+
+    info( '*** Installing required software' )
+    print quietRun( 'apt-get update' )
+    print quietRun( 'apt-get -y install dnsmasq ethtool' )
+
+    info( '*** Creating network\n' )
+    OVSSwitch13 = partial( OVSSwitch, protocols='OpenFlow13' )
+    controllerIp = socket.gethostbyname( 'onos-openflow.default.svc.cluster.local' )
+    net = Mininet( topo=SingleSwitchTopo(1),
+                   controller=lambda name: RemoteController( name, ip=controllerIp, port=6653 ),
+                   switch=OVSSwitch13
+    )
+
+    switch = net.switches[ 0 ]
+    info( '*** Adding hardware interface eth1 to switch', switch.name, '\n' )
+    _intf = Intf( 'eth1', node=switch )
+
+    info( '*** Turning off checksum offloading for eth1\n' )
+    print quietRun( 'ethtool -K eth1 tx off rx off' )
+
+    bgphost = net.hosts [ 0 ]
+    info( '*** Adding VLAN interface to host\n')
+    bgphost.cmd( 'ip link add link h1-eth0 name h1-eth0.222 type vlan id 222' )
+    bgphost.cmd( 'ip link add link h1-eth0.222 name h1-eth0.222.111 type vlan id 111' )
+    bgphost.cmd( 'ifconfig h1-eth0.222 up' )
+    bgphost.cmd( 'ifconfig h1-eth0.222.111 up' )
+    bgphost.cmd( 'ifconfig h1-eth0.222.111 172.18.0.10/24' )
+    bgphost.cmd( 'dnsmasq --dhcp-range=172.18.0.50,172.18.0.150,12h' )
+
+    net.start()
+    CLI( net )
+    net.stop()