#!/usr/bin/env python

"""
"""
from mininet.topo import Topo

class AttMplsTopo( Topo ):
    "Internet Topology Zoo Specimen."

    def __init__( self ):
        "Create a topology."

        # Initialize Topology
        Topo.__init__( self )

        # add nodes, switches first...
        NY54 = self.addSwitch( 's25' ) # 40.728270, -73.994483
        CMBR = self.addSwitch( 's1' )  # 42.373730, -71.109734
        CHCG = self.addSwitch( 's2' )  # 41.877461, -87.642892
        CLEV = self.addSwitch( 's3' )  # 41.498928, -81.695217
        RLGH = self.addSwitch( 's4' )  # 35.780150, -78.644026
        ATLN = self.addSwitch( 's5' )  # 33.749017, -84.394168
        PHLA = self.addSwitch( 's6' )  # 39.952906, -75.172278
        WASH = self.addSwitch( 's7' )  # 38.906696, -77.035509
        NSVL = self.addSwitch( 's8' )  # 36.166410, -86.787305
        STLS = self.addSwitch( 's9' )  # 38.626418, -90.198143
        NWOR = self.addSwitch( 's10' ) # 29.951475, -90.078434
        HSTN = self.addSwitch( 's11' ) # 29.763249, -95.368332
        SNAN = self.addSwitch( 's12' ) # 29.424331, -98.491745
        DLLS = self.addSwitch( 's13' ) # 32.777665, -96.802064
        ORLD = self.addSwitch( 's14' ) # 28.538641, -81.381110
        DNVR = self.addSwitch( 's15' ) # 39.736623, -104.984887
        KSCY = self.addSwitch( 's16' ) # 39.100725, -94.581228
        SNFN = self.addSwitch( 's17' ) # 37.779751, -122.409791
        SCRM = self.addSwitch( 's18' ) # 38.581001, -121.497844
        PTLD = self.addSwitch( 's19' ) # 45.523317, -122.677768
        STTL = self.addSwitch( 's20' ) # 47.607326, -122.331786
        SLKC = self.addSwitch( 's21' ) # 40.759577, -111.895079
        LA03 = self.addSwitch( 's22' ) # 34.056346, -118.235951
        SNDG = self.addSwitch( 's23' ) # 32.714564, -117.153528
        PHNX = self.addSwitch( 's24' ) # 33.448289, -112.076299

        # ... and now hosts
        NY54_host = self.addHost( 'h25' )
        CMBR_host = self.addHost( 'h1' )
        CHCG_host = self.addHost( 'h2' )
        CLEV_host = self.addHost( 'h3' )
        RLGH_host = self.addHost( 'h4' )
        ATLN_host = self.addHost( 'h5' )
        PHLA_host = self.addHost( 'h6' )
        WASH_host = self.addHost( 'h7' )
        NSVL_host = self.addHost( 'h8' )
        STLS_host = self.addHost( 'h9' )
        NWOR_host = self.addHost( 'h10' )
        HSTN_host = self.addHost( 'h11' )
        SNAN_host = self.addHost( 'h12' )
        DLLS_host = self.addHost( 'h13' )
        ORLD_host = self.addHost( 'h14' )
        DNVR_host = self.addHost( 'h15' )
        KSCY_host = self.addHost( 'h16' )
        SNFN_host = self.addHost( 'h17' )
        SCRM_host = self.addHost( 'h18' )
        PTLD_host = self.addHost( 'h19' )
        STTL_host = self.addHost( 'h20' )
        SLKC_host = self.addHost( 'h21' )
        LA03_host = self.addHost( 'h22' )
        SNDG_host = self.addHost( 'h23' )
        PHNX_host = self.addHost( 'h24' )

        # add edges between switch and corresponding host
        self.addLink( NY54 , NY54_host )
        self.addLink( CMBR , CMBR_host )
        self.addLink( CHCG , CHCG_host )
        self.addLink( CLEV , CLEV_host )
        self.addLink( RLGH , RLGH_host )
        self.addLink( ATLN , ATLN_host )
        self.addLink( PHLA , PHLA_host )
        self.addLink( WASH , WASH_host )
        self.addLink( NSVL , NSVL_host )
        self.addLink( STLS , STLS_host )
        self.addLink( NWOR , NWOR_host )
        self.addLink( HSTN , HSTN_host )
        self.addLink( SNAN , SNAN_host )
        self.addLink( DLLS , DLLS_host )
        self.addLink( ORLD , ORLD_host )
        self.addLink( DNVR , DNVR_host )
        self.addLink( KSCY , KSCY_host )
        self.addLink( SNFN , SNFN_host )
        self.addLink( SCRM , SCRM_host )
        self.addLink( PTLD , PTLD_host )
        self.addLink( STTL , STTL_host )
        self.addLink( SLKC , SLKC_host )
        self.addLink( LA03 , LA03_host )
        self.addLink( SNDG , SNDG_host )
        self.addLink( PHNX , PHNX_host )

        # add edges between switches
        self.addLink( NY54 , CMBR)
        self.addLink( NY54 , CMBR)
        self.addLink( NY54 , CMBR)
        self.addLink( NY54 , CHCG)
        self.addLink( NY54 , PHLA)
        self.addLink( NY54 , PHLA)
        self.addLink( NY54 , WASH)
        self.addLink( CMBR , PHLA)
        self.addLink( CHCG , CLEV)
        self.addLink( CHCG , PHLA)
        self.addLink( CHCG , STLS)
        self.addLink( CHCG , DNVR)
        self.addLink( CHCG , KSCY)
        self.addLink( CHCG , KSCY)
        self.addLink( CHCG , SNFN)
        self.addLink( CHCG , STTL)
        self.addLink( CHCG , SLKC)
        self.addLink( CLEV , NSVL)
        self.addLink( CLEV , STLS)
        self.addLink( CLEV , PHLA)
        self.addLink( RLGH , ATLN)
        self.addLink( RLGH , WASH)
        self.addLink( ATLN , WASH)
        self.addLink( ATLN , NSVL)
        self.addLink( ATLN , STLS)
        self.addLink( ATLN , DLLS)
        self.addLink( ATLN , DLLS)
        self.addLink( ATLN , DLLS)
        self.addLink( ATLN , ORLD)
        self.addLink( PHLA , WASH)
        self.addLink( NSVL , STLS)
        self.addLink( NSVL , DLLS)
        self.addLink( STLS , DLLS)
        self.addLink( STLS , KSCY)
        self.addLink( STLS , LA03)
        self.addLink( NWOR , HSTN)
        self.addLink( NWOR , DLLS)
        self.addLink( NWOR , ORLD)
        self.addLink( HSTN , SNAN)
        self.addLink( HSTN , DLLS)
        self.addLink( HSTN , ORLD)
        self.addLink( SNAN , PHNX)
        self.addLink( SNAN , DLLS)
        self.addLink( DLLS , DNVR)
        self.addLink( DLLS , DNVR)
        self.addLink( DLLS , KSCY)
        self.addLink( DLLS , KSCY)
        self.addLink( DLLS , SNFN)
        self.addLink( DLLS , LA03)
        self.addLink( DLLS , LA03)
        self.addLink( DNVR , KSCY)
        self.addLink( DNVR , SNFN)
        self.addLink( DNVR , SNFN)
        self.addLink( DNVR , SLKC)
        self.addLink( KSCY , SNFN)
        self.addLink( SNFN , SCRM)
        self.addLink( SNFN , PTLD)
        self.addLink( SNFN , STTL)
        self.addLink( SNFN , SLKC)
        self.addLink( SNFN , LA03)
        self.addLink( SNFN , LA03)
        self.addLink( SNFN , LA03)
        self.addLink( SCRM , SLKC)
        self.addLink( PTLD , STTL)
        self.addLink( SLKC , LA03)
        self.addLink( LA03 , SNDG)
        self.addLink( LA03 , SNDG)
        self.addLink( LA03 , PHNX)
        self.addLink( LA03 , PHNX)
        self.addLink( SNDG , PHNX)

topos = { 'att': ( lambda: AttMplsTopo() ) }

if __name__ == '__main__':
    from onosnet import run
    run( AttMplsTopo() )
