#!/bin/bash
# -----------------------------------------------------------------------------
# Creates a Europe-based topology (with regions) using ONOS null provider
# -----------------------------------------------------------------------------

# config
host=${1:-localhost}
nports=24
sleepfor=5


### start up null provider
onos ${host} null-simulation stop custom
onos ${host} wipe-out please
onos ${host} null-simulation start custom


## unfortunately, it takes a time for the sim to start up
#  this is not ideal...

echo
echo "Sleeping while sim starts up... (${sleepfor} seconds)..."
echo
sleep ${sleepfor}


###------------------------------------------------------
### Start by adding Country regions
# Note that Long/Lat places region icon nicely in the country center

# region-add <region-id> <region-name> <region-type> <lat/Y> <long/X> <region-master>

onos ${host} <<-EOF

region-add rUK "United Kingdom" COUNTRY 52.206035 -1.310384 ${host}
region-add rIT "Italy"   COUNTRY 44.447951  11.093161 ${host}
region-add rFR "France"  COUNTRY 47.066264  2.711458 ${host}
region-add rDE "Germany" COUNTRY 50.863152  9.761971 ${host}
region-add rES "Spain"   COUNTRY 40.416704 -3.7035824 ${host}

region-add rMilan "Milan" METRO 45.4654 9.1859 ${host}

EOF


###------------------------------------------------------
### Add layouts, associating backing regions, and optional parent.
# layout-add <layout-id> <bg-ref> \
#   [ <region-id> <parent-layout-id> <scale> <offset-x> <offset-y> ]
#

onos ${host} <<-EOF

# -- root layout
layout-add root @europe . . 4.66 -2562.93 -412.56

# -- layouts for top level regions
layout-add lUK @europe rUK root 11.63 -6652.54 -938.04
layout-add lIT @europe rIT root 7.15 -4818.73 -1330.36
layout-add lFR @europe rFR root 8.98 -5378.99 -1334.77
layout-add lDE @europe rDE root 10.06 -6739.05 -1002.4
layout-add lES @europe rES root 10.34 -5804.84 -2464.81

# -- layouts for country sub-regions
layout-add lMilan +segmentRoutingTwo rMilan lIT 0.86 68.58 54.71

# -- summary of installed layouts
layouts
EOF

###------------------------------------------------------
### Add devices, hosts and links for each of the regions

onos ${host} <<-EOF

# -- UK devices

null-create-device switch London     ${nports} 51.5073 -0.1276
null-create-device switch Reading    ${nports} 51.4543 -0.9781
null-create-device switch Portsmouth ${nports} 50.8198 -1.0880
null-create-device switch Bristol    ${nports} 51.4545 -2.5879
null-create-device switch Warrington ${nports} 53.3900 -2.5970
null-create-device switch Leeds      ${nports} 53.8008 -1.5491

# -- Assign UK devices to UK region

region-add-devices rUK \
    null:0000000000000001 \
    null:0000000000000002 \
    null:0000000000000003 \
    null:0000000000000004 \
    null:0000000000000005 \
    null:0000000000000006 \

# -- UK hosts

null-create-host London  192.168.1.1   51.8697 -0.0287
null-create-host London  192.168.1.2   51.7225  0.7624
null-create-host London  192.168.1.3   51.1437  0.4694

null-create-host Bristol 192.168.1.4   51.7500  -2.6000

# -- UK connectivity

null-create-link direct London Reading
null-create-link direct London Portsmouth
null-create-link direct Reading Bristol
null-create-link direct Portsmouth Bristol
null-create-link direct Reading Warrington
null-create-link direct London Leeds
null-create-link direct Leeds Warrington

# -- UK Peers
## TODO: figure out why this data isn't getting put into runtime config?!
region-add-peer-loc rUK rES 50.4060  -3.3860
region-add-peer-loc rUK rFR 50.4060  -1.8482
region-add-peer-loc rUK rIT 50.4060  -0.1361
region-add-peer-loc rUK rDE 50.4060   1.2491


# -- France Devices

null-create-device switch Paris      ${nports} 48.8566  2.3522
null-create-device switch Lyon       ${nports} 45.7640  4.8357
null-create-device switch Bordeaux   ${nports} 44.8378 -0.5792
null-create-device switch Marseille  ${nports} 43.2965  5.3698
null-create-device switch Nice       ${nports} 43.7102  7.2620

# -- Assign France devices to France region

region-add-devices rFR \
    null:0000000000000007 \
    null:0000000000000008 \
    null:0000000000000009 \
    null:000000000000000a \
    null:000000000000000b \


# -- France hosts

null-create-host Paris  192.168.2.1   49.5134 2.8882
null-create-host Lyon   192.168.2.2   46.4590 5.2380

# -- France connectivity

null-create-link direct Paris Lyon
null-create-link direct Paris Bordeaux
null-create-link direct Lyon Bordeaux
null-create-link direct Marseille Bordeaux
null-create-link direct Marseille Lyon
null-create-link direct Marseille Nice
null-create-link direct Lyon Nice

# -- France Peers

region-add-peer-loc rFR rES  42.6806  -2.1273
region-add-peer-loc rFR rUK  50.6164  -2.1013
region-add-peer-loc rFR rIT  45.1105   9.7450
region-add-peer-loc rFR rDE  49.6307   7.9326


# -- Italy Devices

# these four in a mini fabric (data center?)

null-create-device switch Milan-1      ${nports} 10.0 20.0 grid
null-create-device switch Milan-2      ${nports} 10.0 50.0 grid
null-create-device switch Milan-3      ${nports} 45.0 20.0 grid
null-create-device switch Milan-4      ${nports} 45.0 50.0 grid

null-create-host Milan-3 192.168.3.13 60.0 15.0 grid
null-create-host Milan-4 192.168.3.14 60.0 45.0 grid

region-add-devices rMilan \
    null:000000000000000c \
    null:000000000000000d \
    null:000000000000000e \
    null:000000000000000f \

null-create-device switch Venice  ${nports} 45.4408  12.3155
null-create-device switch Rome    ${nports} 41.9028  12.4964
null-create-device switch Naples  ${nports} 40.8518  14.2681

region-add-devices rIT \
    null:0000000000000010 \
    null:0000000000000011 \
    null:0000000000000012 \

# -- Italy Connectivity

null-create-link direct Milan-1 Milan-3
null-create-link direct Milan-1 Milan-4
null-create-link direct Milan-2 Milan-3
null-create-link direct Milan-2 Milan-4

null-create-link direct Milan-1 Venice
null-create-link direct Milan-2 Rome

null-create-link direct Venice Rome
null-create-link direct Venice Naples
null-create-link direct Rome Naples

# -- Italy Peers

#region-add-peer-loc rIT rES  xx.xxxx  xx.xxxx
#region-add-peer-loc rIT rUK  xx.xxxx  xx.xxxx
#region-add-peer-loc rIT rFR  xx.xxxx  xx.xxxx
#region-add-peer-loc rIT rDE  xx.xxxx  xx.xxxx

# -- Germany Devices

null-create-device switch Munich     ${nports} 48.1351 11.5820
null-create-device switch Berlin     ${nports} 52.5200 13.4050
null-create-device switch Bremen     ${nports} 53.0793  8.8017
null-create-device switch Frankfurt  ${nports} 50.1109  8.6821
null-create-device switch Stuttgart  ${nports} 48.7758  9.1829

null-create-host Munich 192.168.4.1  47.4818 11.7441
null-create-host Berlin 192.168.4.2  53.0537 13.5310

region-add-devices rDE \
    null:0000000000000013 \
    null:0000000000000014 \
    null:0000000000000015 \
    null:0000000000000016 \
    null:0000000000000017 \

# -- Germany Connectivity

null-create-link direct Munich Berlin
null-create-link direct Munich Stuttgart
null-create-link direct Munich Stuttgart
null-create-link direct Frankfurt Stuttgart
null-create-link direct Frankfurt Bremen
null-create-link direct Berlin Bremen
null-create-link direct Berlin Frankfurt

# -- Germany Peers

#region-add-peer-loc rDE rES  xx.xxxx  xx.xxxx
#region-add-peer-loc rDE rUK  xx.xxxx  xx.xxxx
#region-add-peer-loc rDE rFR  xx.xxxx  xx.xxxx
#region-add-peer-loc rDE rIT  xx.xxxx  xx.xxxx

# -- Spain Devices

null-create-device switch Madrid     ${nports} 40.4168 -3.7038
null-create-device switch Barcelona  ${nports} 41.3851  2.1734
null-create-device switch Valencia   ${nports} 39.4699 -0.3763
null-create-device switch Seville    ${nports} 37.3891 -5.9845

null-create-host Madrid    192.168.5.1  41.0797 -3.9559
null-create-host Barcelona 192.168.5.2  41.8507  2.0399
null-create-host Valencia  192.168.5.3  38.8488 -0.5097
null-create-host Seville   192.168.5.4  38.0110 -6.4442

region-add-devices rES \
    null:0000000000000018 \
    null:0000000000000019 \
    null:000000000000001a \
    null:000000000000001b \

# -- Spain Connectivity

null-create-link direct Barcelona Madrid
null-create-link direct Barcelona Valencia
null-create-link direct Seville Madrid
null-create-link direct Seville Valencia
null-create-link direct Madrid Valencia

# -- Spain Peers

#region-add-peer-loc rES rDE  xx.xxxx  xx.xxxx
#region-add-peer-loc rES rUK  xx.xxxx  xx.xxxx
#region-add-peer-loc rES rFR  xx.xxxx  xx.xxxx
#region-add-peer-loc rES rIT  xx.xxxx  xx.xxxx


# -- Inter-Region Connectivity

# Spain-France
null-create-link direct Barcelona Marseille
null-create-link direct Madrid Bordeaux

# France-Italy
null-create-link direct Rome Nice
null-create-link direct Milan-1 Lyon

# Italy-Germany
null-create-link direct Venice Munich

# France-Germany
null-create-link direct Lyon Stuttgart
null-create-link direct Paris Frankfurt

# England-France
null-create-link direct Portsmouth Paris

# England-Germany
null-create-link direct London Bremen
null-create-link direct London Frankfurt

EOF

### Set up debug log messages for classes we care about
onos ${host} <<-EOF
log:set DEBUG org.onosproject.ui.impl.topo.Topo2ViewMessageHandler
log:set DEBUG org.onosproject.ui.impl.topo.Topo2Jsonifier
log:set DEBUG org.onosproject.ui.impl.UiWebSocket
log:set DEBUG org.onosproject.ui.impl.UiTopoSession
log:list
EOF
