diff --git a/tools/test/topos/regions-korea.sh b/tools/test/topos/regions-korea.sh new file mode 100755 index 0000000000..513566ce88 --- /dev/null +++ b/tools/test/topos/regions-korea.sh @@ -0,0 +1,215 @@ +#!/bin/bash +# ----------------------------------------------------------------------------- +# Creates a Korean-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... but we'll live with it for now + +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 \ +# + +onos ${host} <<-EOF + +region-add rGG "Gyeonggi-do" COUNTRY 37.4138000 127.5183000 geo ${host} +region-add rGW "Gangwon-do" COUNTRY 37.8228000 128.1555000 geo ${host} +region-add rCC "Chungcheng-do" COUNTRY 36.5622940 126.9541070 geo ${host} +region-add rJL "Jeolla-do" COUNTRY 35.3564250 126.9541070 geo ${host} +region-add rGS "Gyeongsang-do" COUNTRY 35.8059060 128.9876740 geo ${host} +region-add rJJ "Jeju-do" COUNTRY 33.4890110 126.4983020 geo ${host} + +EOF + +###------------------------------------------------------ +### Add layouts, associating backing regions, and optional parent. +# layout-add \ +# [ ] +# + +onos ${host} <<-EOF + +# -- root layout +layout-add root @s_korea . . 1 0 -10 + +# -- layouts for top level regions +layout-add lGG @s_korea rGG root 5.480 -1582.5196 -770.0172 +layout-add lGW @s_korea rGW root 2.606 -1050.3955 -30.8123 +layout-add lCC @s_korea rCC root 3.083 -988.8076 -699.3067 +layout-add lJL @s_korea rJL root 2.747 -705.7564 -1211.7502 +layout-add lGS @s_korea rGS root 3.024 -1737.0638 -1231.4722 +layout-add lJJ @s_korea rJJ root 2.885 -496.0931 -2347.7142 + +# -- summary of installed layouts +layouts +EOF + +###------------------------------------------------------ +### Add devices, hosts and links for each of the regions + +onos ${host} <<-EOF + +# -- GG devices + +null-create-device switch Seoul ${nports} 37.5665350 126.9779690 +null-create-device switch Incheon ${nports} 37.4562560 126.7052060 +null-create-device switch Suwon ${nports} 37.2635730 127.0286010 +null-create-device switch Goyang ${nports} 37.6583600 126.8320200 +null-create-device switch Yongin ${nports} 37.2410860 127.1775540 +null-create-device switch Seongnam ${nports} 37.4449170 127.1388680 + +# -- Assign GG devices to GG region + +region-add-devices rGG \ + null:0000000000000001 \ + null:0000000000000002 \ + null:0000000000000003 \ + null:0000000000000004 \ + null:0000000000000005 \ + null:0000000000000006 \ + +# -- GG connectivity + +null-create-link direct Seoul Suwon +null-create-link direct Seoul Seongnam +null-create-link direct Incheon Yongin +null-create-link direct Incheon Goyang +null-create-link direct Goyang Suwon +null-create-link direct Seongnam Suwon + +# -- GW devices + +null-create-device switch Wonju ${nports} 37.3422190 127.9201620 +null-create-device switch Chuncheon ${nports} 37.8813150 127.7299710 +null-create-device switch Gangneung ${nports} 37.7518530 128.8760570 + +# -- Assign GW devices to GW region + +region-add-devices rGW \ + null:0000000000000007 \ + null:0000000000000008 \ + null:0000000000000009 \ + +# -- GW connectivity + +null-create-link direct Wonju Chuncheon +null-create-link direct Wonju Gangneung +null-create-link direct Gangneung Chuncheon + +# -- CC devices + +null-create-device switch Daejeon ${nports} 36.3504120 127.3845480 +null-create-device switch Cheongju ${nports} 36.6424340 127.4890320 +null-create-device switch Asan ${nports} 36.7897960 127.0018490 +null-create-device switch Chungju ${nports} 36.9910110 127.9259500 + +# -- Assign CC devices to CC region + +region-add-devices rCC \ + null:000000000000000a \ + null:000000000000000b \ + null:000000000000000c \ + null:000000000000000d \ + +# -- CC connectivity + +null-create-link direct Daejeon Cheongju +null-create-link direct Daejeon Asan +null-create-link direct Daejeon Chungju +null-create-link direct Chungju Cheongju +null-create-link direct Asan Cheongju + +# -- GS devices + +null-create-device switch Busan ${nports} 35.1795540 129.0756420 +null-create-device switch Daegu ${nports} 35.8714350 128.6014450 +null-create-device switch Ulsan ${nports} 35.5383770 129.3113600 +null-create-device switch Pohang ${nports} 36.0190180 129.3434810 + +# -- Assign GS devices to GS region + +region-add-devices rGS \ + null:000000000000000e \ + null:000000000000000f \ + null:0000000000000010 \ + null:0000000000000011 \ + +# -- GS connectivity + +null-create-link direct Busan Daegu +null-create-link direct Busan Ulsan +null-create-link direct Busan Pohang +null-create-link direct Daegu Pohang +null-create-link direct Pohang Ulsan + +# -- JL devices + +null-create-device switch Gwangju ${nports} 35.1595450 126.8526010 +null-create-device switch Jeonju ${nports} 35.8242240 127.1479530 +null-create-device switch Iksan ${nports} 35.9482860 126.9575990 +null-create-device switch Yeosu ${nports} 34.7603740 127.6622220 +null-create-device switch Suncheon ${nports} 34.9506370 127.4872140 + +# -- Assign JL devices to JL region + +region-add-devices rJL \ + null:0000000000000012 \ + null:0000000000000013 \ + null:0000000000000014 \ + null:0000000000000015 \ + null:0000000000000016 \ + +# -- JL connectivity + +null-create-link direct Gwangju Jeonju +null-create-link direct Gwangju Iksan +null-create-link direct Gwangju Yeosu +null-create-link direct Gwangju Suncheon +null-create-link direct Yeosu Suncheon +null-create-link direct Jeonju Iksan +null-create-link direct Jeonju Yeosu + +# -- JJ devices + +null-create-device switch Jeju ${nports} 33.4890110 126.4983020 +null-create-device switch Seogwipo ${nports} 33.2541210 126.5600760 + +# -- Assign JJ devices to JJ region + +region-add-devices rJJ \ + null:0000000000000017 \ + null:0000000000000018 \ + +# -- JJ connectivity + +null-create-link direct Jeju Seogwipo + +### 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