#!/usr/bin/python
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()
