#!/usr/bin/python

"""
Copyright 2016 Open Networking Foundation ( ONF )

Please refer questions to either the onos test mailing list at <onos-test@onosproject.org>,
the System Testing Plans and Results wiki page at <https://wiki.onosproject.org/x/voMg>,
or the System Testing Guide page at <https://wiki.onosproject.org/x/WYQg>

    TestON is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 2 of the License, or
    ( at your option ) any later version.

    TestON is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with TestON.  If not, see <http://www.gnu.org/licenses/>.
"""
from mininet.topo import Topo
from mininet.net import Mininet
from mininet.node import Host, RemoteController
from mininet.node import Node
from mininet.node import CPULimitedHost
from mininet.link import TCLink
from mininet.cli import CLI
from mininet.log import setLogLevel
from mininet.util import dumpNodeConnections
from mininet.node import ( UserSwitch, OVSSwitch, IVSSwitch )


class dualStackHost( Host ):

    def config( self, v6Addr='1000::1/64', **params ):
        r = super( Host, self ).config( **params )
        intf = self.defaultIntf()
        self.cmd( 'ip -6 addr add %s dev %s' % ( v6Addr, intf ) )
        return r


class spineTopo( Topo ):

    def __init__( self, **opts ):
        "Create a topology."

        # Initialize Topology
        Topo.__init__( self, **opts )

        # add nodes, Leaf switches
        s1 = self.addSwitch( 's1' )
        s2 = self.addSwitch( 's2' )
        s3 = self.addSwitch( 's3' )
        s4 = self.addSwitch( 's4' )
        s5 = self.addSwitch( 's5' )
        s6 = self.addSwitch( 's6' )
        s7 = self.addSwitch( 's7' )
        s8 = self.addSwitch( 's8' )
        s9 = self.addSwitch( 's9' )
        s10 = self.addSwitch( 's10' )
        s11 = self.addSwitch( 's11' )
        s12 = self.addSwitch( 's12' )
        s13 = self.addSwitch( 's13' )
        s14 = self.addSwitch( 's14' )

        # add nodes, Spine switches first...
        s15 = self.addSwitch( 's15' )
        s16 = self.addSwitch( 's16' )
        s17 = self.addSwitch( 's17' )
        s18 = self.addSwitch( 's18' )
        s19 = self.addSwitch( 's19' )
        s20 = self.addSwitch( 's20' )
        s21 = self.addSwitch( 's21' )
        s22 = self.addSwitch( 's22' )
        s23 = self.addSwitch( 's23' )
        s24 = self.addSwitch( 's24' )
        s25 = self.addSwitch( 's25' )
        s26 = self.addSwitch( 's26' )
        s27 = self.addSwitch( 's27' )
        s28 = self.addSwitch( 's28' )
        s29 = self.addSwitch( 's29' )
        s30 = self.addSwitch( 's30' )
        s31 = self.addSwitch( 's31' )
        s32 = self.addSwitch( 's32' )
        s33 = self.addSwitch( 's33' )
        s34 = self.addSwitch( 's34' )
        s35 = self.addSwitch( 's35' )
        s36 = self.addSwitch( 's36' )
        s37 = self.addSwitch( 's37' )
        s38 = self.addSwitch( 's38' )
        s39 = self.addSwitch( 's39' )
        s40 = self.addSwitch( 's40' )
        s41 = self.addSwitch( 's41' )
        s42 = self.addSwitch( 's42' )
        s43 = self.addSwitch( 's43' )
        s44 = self.addSwitch( 's44' )
        s45 = self.addSwitch( 's45' )
        s46 = self.addSwitch( 's46' )
        s47 = self.addSwitch( 's47' )
        s48 = self.addSwitch( 's48' )
        s49 = self.addSwitch( 's49' )
        s50 = self.addSwitch( 's50' )
        s51 = self.addSwitch( 's51' )
        s52 = self.addSwitch( 's52' )
        s53 = self.addSwitch( 's53' )
        s54 = self.addSwitch( 's54' )
        s55 = self.addSwitch( 's55' )
        s56 = self.addSwitch( 's56' )
        s57 = self.addSwitch( 's57' )
        s58 = self.addSwitch( 's58' )
        s59 = self.addSwitch( 's59' )
        s60 = self.addSwitch( 's60' )
        s61 = self.addSwitch( 's61' )
        s62 = self.addSwitch( 's62' )
        s63 = self.addSwitch( 's63' )
        s64 = self.addSwitch( 's64' )
        s65 = self.addSwitch( 's65' )
        s66 = self.addSwitch( 's66' )
        s67 = self.addSwitch( 's67' )
        s68 = self.addSwitch( 's68' )
        s69 = self.addSwitch( 's69' )
        s70 = self.addSwitch( 's70' )
        s71 = self.addSwitch( 's71' )
        s72 = self.addSwitch( 's72' )
        s73 = self.addSwitch( 's73' )
        s74 = self.addSwitch( 's74' )
        s75 = self.addSwitch( 's75' )
        s76 = self.addSwitch( 's76' )
        s77 = self.addSwitch( 's77' )
        s78 = self.addSwitch( 's78' )

        # ... and now hosts
        # s1_host = self.addHost( 'h1', ip='10.1.0.1/24', cls=dualStackHost, v6Addr='1000::1/64' )
        # s2_host = self.addHost( 'h2', ip='10.1.0.2/24', cls=dualStackHost, v6Addr='1000::2/64' )
        # s3_host = self.addHost( 'h3', ip='10.1.0.3/24', cls=dualStackHost, v6Addr='1000::3/64' )
        # s4_host = self.addHost( 'h4', ip='10.1.0.4/24', cls=dualStackHost, v6Addr='1000::4/64' )
        # s5_host = self.addHost( 'h5', ip='10.1.0.5/24', cls=dualStackHost, v6Addr='1000::5/64' )
        # s6_host = self.addHost( 'h6', ip='10.1.0.6/24', cls=dualStackHost, v6Addr='1000::6/64' )
        # s7_host = self.addHost( 'h7', ip='10.1.0.7/24', cls=dualStackHost, v6Addr='1000::7/64' )
        # s8_host = self.addHost( 'h8', ip='10.1.0.8/24', cls=dualStackHost, v6Addr='1000::8/64' )
        # s9_host = self.addHost( 'h9', ip='10.1.0.9/24', cls=dualStackHost, v6Addr='1000::9/64' )
        # s10_host = self.addHost( 'h10', ip='10.1.0.10/24', cls=dualStackHost, v6Addr='1000::10/64' )
        s11_host = self.addHost( 'h11', ip='10.1.0.11/24', cls=dualStackHost, v6Addr='1000::11/64' )
        s12_host = self.addHost( 'h12', ip='10.1.0.12/24', cls=dualStackHost, v6Addr='1000::12/64' )
        s13_host = self.addHost( 'h13', ip='10.1.0.13/24', cls=dualStackHost, v6Addr='1000::13/64' )
        s14_host = self.addHost( 'h14', ip='10.1.0.14/24', cls=dualStackHost, v6Addr='1000::14/64' )
        s15_host = self.addHost( 'h15', ip='10.1.0.15/24', cls=dualStackHost, v6Addr='1000::15/64' )
        s16_host = self.addHost( 'h16', ip='10.1.0.16/24', cls=dualStackHost, v6Addr='1000::16/64' )
        s17_host = self.addHost( 'h17', ip='10.1.0.17/24', cls=dualStackHost, v6Addr='1000::17/64' )
        s18_host = self.addHost( 'h18', ip='10.1.0.18/24', cls=dualStackHost, v6Addr='1000::18/64' )
        s19_host = self.addHost( 'h19', ip='10.1.0.19/24', cls=dualStackHost, v6Addr='1000::19/64' )
        s20_host = self.addHost( 'h20', ip='10.1.0.20/24', cls=dualStackHost, v6Addr='1000::20/64' )
        s21_host = self.addHost( 'h21', ip='10.1.0.21/24', cls=dualStackHost, v6Addr='1000::21/64' )
        s22_host = self.addHost( 'h22', ip='10.1.0.22/24', cls=dualStackHost, v6Addr='1000::22/64' )
        s23_host = self.addHost( 'h23', ip='10.1.0.23/24', cls=dualStackHost, v6Addr='1000::23/64' )
        s24_host = self.addHost( 'h24', ip='10.1.0.24/24', cls=dualStackHost, v6Addr='1000::24/64' )
        s25_host = self.addHost( 'h25', ip='10.1.0.25/24', cls=dualStackHost, v6Addr='1000::25/64' )
        s26_host = self.addHost( 'h26', ip='10.1.0.26/24', cls=dualStackHost, v6Addr='1000::26/64' )
        s27_host = self.addHost( 'h27', ip='10.1.0.27/24', cls=dualStackHost, v6Addr='1000::27/64' )
        s28_host = self.addHost( 'h28', ip='10.1.0.28/24', cls=dualStackHost, v6Addr='1000::28/64' )
        s29_host = self.addHost( 'h29', ip='10.1.0.29/24', cls=dualStackHost, v6Addr='1000::29/64' )
        s30_host = self.addHost( 'h30', ip='10.1.0.30/24', cls=dualStackHost, v6Addr='1000::30/64' )
        s31_host = self.addHost( 'h31', ip='10.1.0.31/24', cls=dualStackHost, v6Addr='1000::31/64' )
        s32_host = self.addHost( 'h32', ip='10.1.0.32/24', cls=dualStackHost, v6Addr='1000::32/64' )
        s33_host = self.addHost( 'h33', ip='10.1.0.33/24', cls=dualStackHost, v6Addr='1000::33/64' )
        s34_host = self.addHost( 'h34', ip='10.1.0.34/24', cls=dualStackHost, v6Addr='1000::34/64' )
        s35_host = self.addHost( 'h35', ip='10.1.0.35/24', cls=dualStackHost, v6Addr='1000::35/64' )
        s36_host = self.addHost( 'h36', ip='10.1.0.36/24', cls=dualStackHost, v6Addr='1000::36/64' )
        s37_host = self.addHost( 'h37', ip='10.1.0.37/24', cls=dualStackHost, v6Addr='1000::37/64' )
        s38_host = self.addHost( 'h38', ip='10.1.0.38/24', cls=dualStackHost, v6Addr='1000::38/64' )
        s39_host = self.addHost( 'h39', ip='10.1.0.39/24', cls=dualStackHost, v6Addr='1000::39/64' )
        s40_host = self.addHost( 'h40', ip='10.1.0.40/24', cls=dualStackHost, v6Addr='1000::40/64' )
        s41_host = self.addHost( 'h41', ip='10.1.0.41/24', cls=dualStackHost, v6Addr='1000::41/64' )
        s42_host = self.addHost( 'h42', ip='10.1.0.42/24', cls=dualStackHost, v6Addr='1000::42/64' )
        s43_host = self.addHost( 'h43', ip='10.1.0.43/24', cls=dualStackHost, v6Addr='1000::43/64' )
        s44_host = self.addHost( 'h44', ip='10.1.0.44/24', cls=dualStackHost, v6Addr='1000::44/64' )
        s45_host = self.addHost( 'h45', ip='10.1.0.45/24', cls=dualStackHost, v6Addr='1000::45/64' )
        s46_host = self.addHost( 'h46', ip='10.1.0.46/24', cls=dualStackHost, v6Addr='1000::46/64' )
        s47_host = self.addHost( 'h47', ip='10.1.0.47/24', cls=dualStackHost, v6Addr='1000::47/64' )
        s48_host = self.addHost( 'h48', ip='10.1.0.48/24', cls=dualStackHost, v6Addr='1000::48/64' )
        s49_host = self.addHost( 'h49', ip='10.1.0.49/24', cls=dualStackHost, v6Addr='1000::49/64' )
        s50_host = self.addHost( 'h50', ip='10.1.0.50/24', cls=dualStackHost, v6Addr='1000::50/64' )
        s51_host = self.addHost( 'h51', ip='10.1.0.51/24', cls=dualStackHost, v6Addr='1000::51/64' )
        s52_host = self.addHost( 'h52', ip='10.1.0.52/24', cls=dualStackHost, v6Addr='1000::52/64' )
        s53_host = self.addHost( 'h53', ip='10.1.0.53/24', cls=dualStackHost, v6Addr='1000::53/64' )
        s54_host = self.addHost( 'h54', ip='10.1.0.54/24', cls=dualStackHost, v6Addr='1000::54/64' )
        s55_host = self.addHost( 'h55', ip='10.1.0.55/24', cls=dualStackHost, v6Addr='1000::55/64' )
        s56_host = self.addHost( 'h56', ip='10.1.0.56/24', cls=dualStackHost, v6Addr='1000::56/64' )
        s57_host = self.addHost( 'h57', ip='10.1.0.57/24', cls=dualStackHost, v6Addr='1000::57/64' )
        s58_host = self.addHost( 'h58', ip='10.1.0.58/24', cls=dualStackHost, v6Addr='1000::58/64' )
        s59_host = self.addHost( 'h59', ip='10.1.0.59/24', cls=dualStackHost, v6Addr='1000::59/64' )
        s60_host = self.addHost( 'h60', ip='10.1.0.60/24', cls=dualStackHost, v6Addr='1000::60/64' )
        s61_host = self.addHost( 'h61', ip='10.1.0.61/24', cls=dualStackHost, v6Addr='1000::61/64' )
        s62_host = self.addHost( 'h62', ip='10.1.0.62/24', cls=dualStackHost, v6Addr='1000::62/64' )
        s63_host = self.addHost( 'h63', ip='10.1.0.63/24', cls=dualStackHost, v6Addr='1000::63/64' )
        s64_host = self.addHost( 'h64', ip='10.1.0.64/24', cls=dualStackHost, v6Addr='1000::64/64' )
        s65_host = self.addHost( 'h65', ip='10.1.0.65/24', cls=dualStackHost, v6Addr='1000::65/64' )
        s66_host = self.addHost( 'h66', ip='10.1.0.66/24', cls=dualStackHost, v6Addr='1000::66/64' )
        s67_host = self.addHost( 'h67', ip='10.1.0.67/24', cls=dualStackHost, v6Addr='1000::67/64' )
        s68_host = self.addHost( 'h68', ip='10.1.0.68/24', cls=dualStackHost, v6Addr='1000::68/64' )
        s69_host = self.addHost( 'h69', ip='10.1.0.69/24', cls=dualStackHost, v6Addr='1000::69/64' )
        s70_host = self.addHost( 'h70', ip='10.1.0.70/24', cls=dualStackHost, v6Addr='1000::70/64' )
        s71_host = self.addHost( 'h71', ip='10.1.0.71/24', cls=dualStackHost, v6Addr='1000::71/64' )
        s72_host = self.addHost( 'h72', ip='10.1.0.72/24', cls=dualStackHost, v6Addr='1000::72/64' )
        s73_host = self.addHost( 'h73', ip='10.1.0.73/24', cls=dualStackHost, v6Addr='1000::73/64' )
        s74_host = self.addHost( 'h74', ip='10.1.0.74/24', cls=dualStackHost, v6Addr='1000::74/64' )
        s75_host = self.addHost( 'h75', ip='10.1.0.75/24', cls=dualStackHost, v6Addr='1000::75/64' )
        s76_host = self.addHost( 'h76', ip='10.1.0.76/24', cls=dualStackHost, v6Addr='1000::76/64' )
        s77_host = self.addHost( 'h77', ip='10.1.0.77/24', cls=dualStackHost, v6Addr='1000::77/64' )
        s78_host = self.addHost( 'h78', ip='10.1.0.78/24', cls=dualStackHost, v6Addr='1000::78/64' )

        # add edges between switch and corresponding host
        # self.addLink( s1 , s1_host )
        # self.addLink( s2 , s2_host )
        # self.addLink( s3 , s3_host )
        # self.addLink( s4 , s4_host )
        # self.addLink( s5 , s5_host )
        # self.addLink( s6 , s6_host )
        # self.addLink( s7 , s7_host )
        # self.addLink( s8 , s8_host )
        # self.addLink( s9 , s9_host )
        # self.addLink( s10 , s10_host )
        self.addLink( s11, s11_host )
        self.addLink( s12, s12_host )
        self.addLink( s13, s13_host )
        self.addLink( s14, s14_host )
        self.addLink( s15, s15_host )
        self.addLink( s16, s16_host )
        self.addLink( s17, s17_host )
        self.addLink( s18, s18_host )
        self.addLink( s19, s19_host )
        self.addLink( s20, s20_host )
        self.addLink( s21, s21_host )
        self.addLink( s22, s22_host )
        self.addLink( s23, s23_host )
        self.addLink( s24, s24_host )
        self.addLink( s25, s25_host )
        self.addLink( s26, s26_host )
        self.addLink( s27, s27_host )
        self.addLink( s28, s28_host )
        self.addLink( s29, s29_host )
        self.addLink( s30, s30_host )
        self.addLink( s31, s31_host )
        self.addLink( s32, s32_host )
        self.addLink( s33, s33_host )
        self.addLink( s34, s34_host )
        self.addLink( s35, s35_host )
        self.addLink( s36, s36_host )
        self.addLink( s37, s37_host )
        self.addLink( s38, s38_host )
        self.addLink( s39, s39_host )
        self.addLink( s40, s40_host )
        self.addLink( s41, s41_host )
        self.addLink( s42, s42_host )
        self.addLink( s43, s43_host )
        self.addLink( s44, s44_host )
        self.addLink( s45, s45_host )
        self.addLink( s46, s46_host )
        self.addLink( s47, s47_host )
        self.addLink( s48, s48_host )
        self.addLink( s49, s49_host )
        self.addLink( s50, s50_host )
        self.addLink( s51, s51_host )
        self.addLink( s52, s52_host )
        self.addLink( s53, s53_host )
        self.addLink( s54, s54_host )
        self.addLink( s55, s55_host )
        self.addLink( s56, s56_host )
        self.addLink( s57, s57_host )
        self.addLink( s58, s58_host )
        self.addLink( s59, s59_host )
        self.addLink( s60, s60_host )
        self.addLink( s61, s61_host )
        self.addLink( s62, s62_host )
        self.addLink( s63, s63_host )
        self.addLink( s64, s64_host )
        self.addLink( s65, s65_host )
        self.addLink( s66, s66_host )
        self.addLink( s67, s67_host )
        self.addLink( s68, s68_host )
        self.addLink( s69, s69_host )
        self.addLink( s70, s70_host )
        self.addLink( s71, s71_host )
        self.addLink( s72, s72_host )
        self.addLink( s73, s73_host )
        self.addLink( s74, s74_host )
        self.addLink( s75, s75_host )
        self.addLink( s76, s76_host )
        self.addLink( s77, s77_host )
        self.addLink( s78, s78_host )

        # info( '*** Add Leaf links\n' )
        self.addLink( s1, s9 )
        self.addLink( s2, s10 )
        self.addLink( s3, s9 )
        self.addLink( s4, s10 )
        self.addLink( s5, s9 )
        self.addLink( s6, s10 )
        self.addLink( s7, s9 )
        self.addLink( s8, s10 )
        self.addLink( s9, s11 )
        self.addLink( s9, s12 )
        self.addLink( s10, s13 )
        self.addLink( s10, s14 )
        self.addLink( s11, s12 )
        self.addLink( s13, s14 )

        # info( '*** Add Spine-1 links\n' )
        self.addLink( s15, s1 )
        self.addLink( s15, s2 )
        self.addLink( s16, s1 )
        self.addLink( s16, s2 )
        self.addLink( s17, s1 )
        self.addLink( s17, s2 )
        self.addLink( s18, s1 )
        self.addLink( s18, s2 )
        self.addLink( s19, s1 )
        self.addLink( s19, s2 )
        self.addLink( s20, s1 )
        self.addLink( s20, s2 )
        self.addLink( s21, s1 )
        self.addLink( s21, s2 )
        self.addLink( s22, s1 )
        self.addLink( s22, s2 )
        self.addLink( s23, s1 )
        self.addLink( s23, s2 )
        self.addLink( s24, s1 )
        self.addLink( s24, s2 )
        self.addLink( s25, s1 )
        self.addLink( s25, s2 )
        self.addLink( s26, s1 )
        self.addLink( s26, s2 )
        self.addLink( s27, s1 )
        self.addLink( s27, s2 )
        self.addLink( s28, s1 )
        self.addLink( s28, s2 )
        self.addLink( s29, s1 )
        self.addLink( s29, s2 )
        self.addLink( s30, s1 )
        self.addLink( s30, s2 )

        # info( '*** Add Spine-2 links\n' )
        self.addLink( s31, s3 )
        self.addLink( s31, s4 )
        self.addLink( s32, s3 )
        self.addLink( s32, s4 )
        self.addLink( s33, s3 )
        self.addLink( s33, s4 )
        self.addLink( s34, s3 )
        self.addLink( s34, s4 )
        self.addLink( s35, s3 )
        self.addLink( s35, s4 )
        self.addLink( s36, s3 )
        self.addLink( s36, s4 )
        self.addLink( s37, s3 )
        self.addLink( s37, s4 )
        self.addLink( s38, s3 )
        self.addLink( s38, s4 )
        self.addLink( s39, s3 )
        self.addLink( s39, s4 )
        self.addLink( s40, s3 )
        self.addLink( s40, s4 )
        self.addLink( s41, s3 )
        self.addLink( s41, s4 )
        self.addLink( s42, s3 )
        self.addLink( s42, s4 )
        self.addLink( s43, s3 )
        self.addLink( s43, s4 )
        self.addLink( s44, s3 )
        self.addLink( s44, s4 )
        self.addLink( s45, s3 )
        self.addLink( s45, s4 )
        self.addLink( s46, s3 )
        self.addLink( s46, s4 )

        # info( '*** Add Spine-3 links\n' )
        self.addLink( s47, s5 )
        self.addLink( s47, s6 )
        self.addLink( s48, s5 )
        self.addLink( s48, s6 )
        self.addLink( s49, s5 )
        self.addLink( s49, s6 )
        self.addLink( s50, s5 )
        self.addLink( s50, s6 )
        self.addLink( s51, s5 )
        self.addLink( s51, s6 )
        self.addLink( s52, s5 )
        self.addLink( s52, s6 )
        self.addLink( s53, s5 )
        self.addLink( s53, s6 )
        self.addLink( s54, s5 )
        self.addLink( s54, s6 )
        self.addLink( s55, s5 )
        self.addLink( s55, s6 )
        self.addLink( s56, s5 )
        self.addLink( s56, s6 )
        self.addLink( s57, s5 )
        self.addLink( s57, s6 )
        self.addLink( s58, s5 )
        self.addLink( s58, s6 )
        self.addLink( s59, s5 )
        self.addLink( s59, s6 )
        self.addLink( s60, s5 )
        self.addLink( s60, s6 )
        self.addLink( s61, s5 )
        self.addLink( s61, s6 )
        self.addLink( s62, s5 )
        self.addLink( s62, s6 )

        # info( '*** Add Spine-4 links\n' )
        self.addLink( s63, s7 )
        self.addLink( s63, s8 )
        self.addLink( s64, s7 )
        self.addLink( s64, s8 )
        self.addLink( s65, s7 )
        self.addLink( s65, s8 )
        self.addLink( s66, s7 )
        self.addLink( s66, s8 )
        self.addLink( s67, s7 )
        self.addLink( s67, s8 )
        self.addLink( s68, s7 )
        self.addLink( s68, s8 )
        self.addLink( s69, s7 )
        self.addLink( s69, s8 )
        self.addLink( s70, s7 )
        self.addLink( s70, s8 )
        self.addLink( s71, s7 )
        self.addLink( s71, s8 )
        self.addLink( s72, s7 )
        self.addLink( s72, s8 )
        self.addLink( s73, s7 )
        self.addLink( s73, s8 )
        self.addLink( s74, s7 )
        self.addLink( s74, s8 )
        self.addLink( s75, s7 )
        self.addLink( s75, s8 )
        self.addLink( s76, s7 )
        self.addLink( s76, s8 )
        self.addLink( s77, s7 )
        self.addLink( s77, s8 )
        self.addLink( s78, s7 )
        self.addLink( s78, s8 )

topos = { 'spine': ( lambda: spineTopo() ) }

# HERE THE CODE DEFINITION OF THE TOPOLOGY ENDS


def setupNetwork():
    "Create network"
    topo = spineTopo()
    # if controller_ip == '':
    # controller_ip = '10.0.2.2';
    #    controller_ip = '127.0.0.1';
    network = Mininet( topo=topo, switch=OVSSwitch, link=TCLink, autoSetMacs=True, controller=None )
    network.start()
    CLI( network )
    network.stop()

if __name__ == '__main__':
    setLogLevel( 'info' )
    # setLogLevel( 'debug' )
    setupNetwork()
