source tb_compat.tcl set ns [new Simulator] tb-use-endnodeshaping 1 ################################################################################ # Set project/experiment directories ################################################################################ set pdir "/proj/TSCANR/exp/multicoi" set bindir "${pdir}/bin" set tmpdir "${pdir}/tmp" ################################################################################ # Set the image for nodes to run ################################################################################ #set os_image "UBUNTU18-64-STD" set os_image "FBSD92-STD" ################################################################################ # Create the nodes ################################################################################ # 6 COI's, 12 ships, 3 nodes in each coi, some nodes are all on the same ship # Ship 1 - coi a, b, d set host1 [$ns node] set router1 [$ns node] set modem1a [$ns node] set modem1b [$ns node] set modem1d [$ns node] # Ship 2 - coi b, c, e set host2 [$ns node] set router2 [$ns node] set modem2b [$ns node] set modem2c [$ns node] set modem2e [$ns node] # Ship 3 - coi d, e, f set host3 [$ns node] set router3 [$ns node] set modem3d [$ns node] set modem3e [$ns node] set modem3f [$ns node] # Ship 4 - coi a set host4 [$ns node] set router4 [$ns node] set modem4a [$ns node] # Ship 5 - coi c set host5 [$ns node] set router5 [$ns node] set modem5c [$ns node] # Ship 6 - coi f set host6 [$ns node] set router6 [$ns node] set modem6f [$ns node] # Ship 7 - coi a set host7 [$ns node] set router7 [$ns node] set modem7a [$ns node] # Ship 8 - coi c set host8 [$ns node] set router8 [$ns node] set modem8c [$ns node] # Ship 9 - coi f set host9 [$ns node] set router9 [$ns node] set modem9f [$ns node] # Ship 10 - coi a #set host10 [$ns node] #set router10 [$ns node] #set modem10a [$ns node] # Ship 11 - coi c #set host11 [$ns node] #set router11 [$ns node] #set modem11c [$ns node] # Ship 12 - coi f #set host12 [$ns node] #set router12 [$ns node] #set modem12f [$ns node] ### connect each host node to the remote host in the lab ### each hostX node requires the "add-desire CSTAR" and the tb-fix-node $host1 add-desire CSTAR 1.0 tb-fix-node $host1 LabNode1 $host2 add-desire CSTAR 1.0 tb-fix-node $host2 LabNode2 $host3 add-desire CSTAR 1.0 tb-fix-node $host3 LabNode3 $host4 add-desire CSTAR 1.0 tb-fix-node $host4 LabNode4 $host5 add-desire CSTAR 1.0 tb-fix-node $host5 LabNode5 $host6 add-desire CSTAR 1.0 tb-fix-node $host6 LabNode6 $host7 add-desire CSTAR 1.0 tb-fix-node $host7 LabNode7 $host8 add-desire CSTAR 1.0 tb-fix-node $host8 LabNode8 $host9 add-desire CSTAR 1.0 tb-fix-node $host9 LabNode9 #$host10 add-desire CSTAR 1.0 #tb-fix-node $host10 LabNode10 #$host11 add-desire CSTAR 1.0 #tb-fix-node $host11 LabNode11 #$host12 add-desire CSTAR 1.0 #tb-fix-node $host12 LabNode12 ################################################################################ # Set the platforms ################################################################################ tb-set-node-os $router1 $os_image tb-set-node-os $modem1a $os_image tb-set-node-os $modem1b $os_image tb-set-node-os $modem1d $os_image tb-set-node-os $router2 $os_image tb-set-node-os $modem2b $os_image tb-set-node-os $modem2c $os_image tb-set-node-os $modem2e $os_image tb-set-node-os $router3 $os_image tb-set-node-os $modem3d $os_image tb-set-node-os $modem3e $os_image tb-set-node-os $modem3f $os_image tb-set-node-os $router4 $os_image tb-set-node-os $modem4a $os_image tb-set-node-os $router5 $os_image tb-set-node-os $modem5c $os_image tb-set-node-os $router6 $os_image tb-set-node-os $modem6f $os_image tb-set-node-os $router7 $os_image tb-set-node-os $modem7a $os_image tb-set-node-os $router8 $os_image tb-set-node-os $modem8c $os_image tb-set-node-os $router9 $os_image tb-set-node-os $modem9f $os_image #tb-set-node-os $router10 $os_image #tb-set-node-os $modem10a $os_image #tb-set-node-os $router11 $os_image #tb-set-node-os $modem11c $os_image #tb-set-node-os $router12 $os_image #tb-set-node-os $modem12f $os_image # Set router1 as the sync server tb-set-sync-server $router1 ################################################################################ # Create links ################################################################################ set ship1host1 [$ns duplex-link $router1 $host1 1Mb 0ms DropTail] set ship1modem1a [$ns duplex-link $router1 $modem1a 1Mb 0ms DropTail] set ship1modem1b [$ns duplex-link $router1 $modem1b 1Mb 0ms DropTail] set ship1modem1d [$ns duplex-link $router1 $modem1d 1Mb 0ms DropTail] set ship2host2 [$ns duplex-link $router2 $host2 1Mb 0ms DropTail] set ship2modem2b [$ns duplex-link $router2 $modem2b 1Mb 0ms DropTail] set ship2modem2c [$ns duplex-link $router2 $modem2c 1Mb 0ms DropTail] set ship2modem2e [$ns duplex-link $router2 $modem2e 1Mb 0ms DropTail] set ship3host3 [$ns duplex-link $router3 $host3 1Mb 0ms DropTail] set ship3modem3d [$ns duplex-link $router3 $modem3d 1Mb 0ms DropTail] set ship3modem3e [$ns duplex-link $router3 $modem3e 1Mb 0ms DropTail] set ship3modem3f [$ns duplex-link $router3 $modem3f 1Mb 0ms DropTail] set ship4host4 [$ns duplex-link $router4 $host4 1Mb 0ms DropTail] set ship4modem4a [$ns duplex-link $router4 $modem4a 1Mb 0ms DropTail] set ship5host5 [$ns duplex-link $router5 $host5 1Mb 0ms DropTail] set ship5modem5c [$ns duplex-link $router5 $modem5c 1Mb 0ms DropTail] set ship6host6 [$ns duplex-link $router6 $host6 1Mb 0ms DropTail] set ship6modem6f [$ns duplex-link $router6 $modem6f 1Mb 0ms DropTail] set ship7host7 [$ns duplex-link $router7 $host7 1Mb 0ms DropTail] set ship7modem7a [$ns duplex-link $router7 $modem7a 1Mb 0ms DropTail] set ship8host8 [$ns duplex-link $router8 $host8 1Mb 0ms DropTail] set ship8modem8c [$ns duplex-link $router8 $modem8c 1Mb 0ms DropTail] set ship9host9 [$ns duplex-link $router9 $host9 1Mb 0ms DropTail] set ship9modem9f [$ns duplex-link $router9 $modem9f 1Mb 0ms DropTail] #set ship10host10 [$ns duplex-link $router10 $host10 1Mb 0ms DropTail] #set ship10modem10a [$ns duplex-link $router10 $modem10a 1Mb 0ms DropTail] #set ship11host11 [$ns duplex-link $router11 $host11 1Mb 0ms DropTail] #set ship11modem11c [$ns duplex-link $router11 $modem11c 1Mb 0ms DropTail] #set ship12host12 [$ns duplex-link $router12 $host12 1Mb 0ms DropTail] #set ship12modem12f [$ns duplex-link $router12 $modem12f 1Mb 0ms DropTail] set satcom [$ns make-lan "$modem1a $modem1b $modem1d $modem2b $modem2c $modem2e $modem3d $modem3e $modem3f $modem4a $modem5c $modem6f $modem7a $modem8c $modem9f" 1Mb 0ms] #set satcom [$ns make-lan "$modem1a $modem1b $modem1d $modem2b $modem2c $modem2e $modem3d $modem3e $modem3f $modem4a $modem5c $modem6f $modem7a $modem8c $modem9f $modem10a $modem11c $modem12f" 10Mb 0ms] tb-set-noshaping $ship1host1 1 tb-set-noshaping $ship1modem1a 1 tb-set-noshaping $ship1modem1b 1 tb-set-noshaping $ship1modem1d 1 tb-set-noshaping $ship2host2 1 tb-set-noshaping $ship2modem2b 1 tb-set-noshaping $ship2modem2c 1 tb-set-noshaping $ship2modem2e 1 tb-set-noshaping $ship3host3 1 tb-set-noshaping $ship3modem3d 1 tb-set-noshaping $ship3modem3e 1 tb-set-noshaping $ship3modem3f 1 tb-set-noshaping $ship4host4 1 tb-set-noshaping $ship4modem4a 1 tb-set-noshaping $ship5host5 1 tb-set-noshaping $ship5modem5c 1 tb-set-noshaping $ship6host6 1 tb-set-noshaping $ship6modem6f 1 tb-set-noshaping $ship7host7 1 tb-set-noshaping $ship7modem7a 1 tb-set-noshaping $ship8host8 1 tb-set-noshaping $ship8modem8c 1 tb-set-noshaping $ship9host9 1 tb-set-noshaping $ship9modem9f 1 tb-set-noshaping $satcom 1 ################################################################################ # Set IP addresses ################################################################################ tb-set-ip-link $router1 $ship1host1 10.1.0.1 tb-set-ip-link $host1 $ship1host1 10.1.0.100 tb-set-ip-link $router1 $ship1modem1a 10.1.100.1 tb-set-ip-link $modem1a $ship1modem1a 10.1.100.10 tb-set-ip-link $router1 $ship1modem1b 10.1.101.1 tb-set-ip-link $modem1b $ship1modem1b 10.1.101.10 tb-set-ip-link $router1 $ship1modem1d 10.1.102.1 tb-set-ip-link $modem1d $ship1modem1d 10.1.102.10 tb-set-ip-link $router2 $ship2host2 10.2.0.1 tb-set-ip-link $host2 $ship2host2 10.2.0.100 tb-set-ip-link $router2 $ship2modem2b 10.2.100.1 tb-set-ip-link $modem2b $ship2modem2b 10.2.100.10 tb-set-ip-link $router2 $ship2modem2c 10.2.101.1 tb-set-ip-link $modem2c $ship2modem2c 10.2.101.10 tb-set-ip-link $router2 $ship2modem2e 10.2.102.1 tb-set-ip-link $modem2e $ship2modem2e 10.2.102.10 tb-set-ip-link $router3 $ship3host3 10.3.0.1 tb-set-ip-link $host3 $ship3host3 10.3.0.100 tb-set-ip-link $router3 $ship3modem3d 10.3.100.1 tb-set-ip-link $modem3d $ship3modem3d 10.3.100.10 tb-set-ip-link $router3 $ship3modem3e 10.3.101.1 tb-set-ip-link $modem3e $ship3modem3e 10.3.101.10 tb-set-ip-link $router3 $ship3modem3f 10.3.102.1 tb-set-ip-link $modem3f $ship3modem3f 10.3.102.10 tb-set-ip-link $router4 $ship4host4 10.4.0.1 tb-set-ip-link $host4 $ship4host4 10.4.0.100 tb-set-ip-link $router4 $ship4modem4a 10.4.100.1 tb-set-ip-link $modem4a $ship4modem4a 10.4.100.10 tb-set-ip-link $router5 $ship5host5 10.5.0.1 tb-set-ip-link $host5 $ship5host5 10.5.0.100 tb-set-ip-link $router5 $ship5modem5c 10.5.100.1 tb-set-ip-link $modem5c $ship5modem5c 10.5.100.10 tb-set-ip-link $router6 $ship6host6 10.6.0.1 tb-set-ip-link $host6 $ship6host6 10.6.0.100 tb-set-ip-link $router6 $ship6modem6f 10.6.100.1 tb-set-ip-link $modem6f $ship6modem6f 10.6.100.10 tb-set-ip-link $router7 $ship7host7 10.7.0.1 tb-set-ip-link $host7 $ship7host7 10.7.0.100 tb-set-ip-link $router7 $ship7modem7a 10.7.100.1 tb-set-ip-link $modem7a $ship7modem7a 10.7.100.10 tb-set-ip-link $router8 $ship8host8 10.8.0.1 tb-set-ip-link $host8 $ship8host8 10.8.0.100 tb-set-ip-link $router8 $ship8modem8c 10.8.100.1 tb-set-ip-link $modem8c $ship8modem8c 10.8.100.10 tb-set-ip-link $router9 $ship9host9 10.9.0.1 tb-set-ip-link $host9 $ship9host9 10.9.0.100 tb-set-ip-link $router9 $ship9modem9f 10.9.100.1 tb-set-ip-link $modem9f $ship9modem9f 10.9.100.10 #tb-set-ip-link $router10 $ship10host10 10.10.0.1 #tb-set-ip-link $host10 $ship10host10 10.10.0.100 #tb-set-ip-link $router10 $ship10modem10a 10.10.100.1 #tb-set-ip-link $modem10a $ship10modem10a 10.10.100.10 #tb-set-ip-link $router11 $ship11host11 10.11.0.1 #tb-set-ip-link $host11 $ship11host11 10.11.0.100 #tb-set-ip-link $router11 $ship11modem11c 10.11.100.1 #tb-set-ip-link $modem11c $ship11modem11c 10.11.100.10 #tb-set-ip-link $router12 $ship12host12 10.12.0.1 #tb-set-ip-link $host12 $ship12host12 10.12.0.100 #tb-set-ip-link $router12 $ship12modem12f 10.12.100.1 #tb-set-ip-link $modem12f $ship12modem12f 10.12.100.10 tb-set-ip-lan $modem1a $satcom 10.255.255.1 tb-set-ip-lan $modem1b $satcom 10.255.255.2 tb-set-ip-lan $modem1d $satcom 10.255.255.3 tb-set-ip-lan $modem2b $satcom 10.255.255.4 tb-set-ip-lan $modem2c $satcom 10.255.255.5 tb-set-ip-lan $modem2e $satcom 10.255.255.6 tb-set-ip-lan $modem3d $satcom 10.255.255.7 tb-set-ip-lan $modem3e $satcom 10.255.255.8 tb-set-ip-lan $modem3f $satcom 10.255.255.9 tb-set-ip-lan $modem4a $satcom 10.255.255.10 tb-set-ip-lan $modem5c $satcom 10.255.255.11 tb-set-ip-lan $modem6f $satcom 10.255.255.12 tb-set-ip-lan $modem7a $satcom 10.255.255.13 tb-set-ip-lan $modem8c $satcom 10.255.255.14 tb-set-ip-lan $modem9f $satcom 10.255.255.15 #tb-set-ip-lan $modem10a $satcom 10.255.255.16 #tb-set-ip-lan $modem11c $satcom 10.255.255.17 #tb-set-ip-lan $modem12f $satcom 10.255.255.18 ################################################################################ # Set the start up command ################################################################################ tb-set-node-startcmd $router1 "${bindir}/setup-node.sh $router1 >& ${tmpdir}/start_router1.log" tb-set-node-startcmd $router2 "${bindir}/setup-node.sh $router2 >& ${tmpdir}/start_router2.log" tb-set-node-startcmd $router3 "${bindir}/setup-node.sh $router3 >& ${tmpdir}/start_router3.log" tb-set-node-startcmd $router4 "${bindir}/setup-node.sh $router4 >& ${tmpdir}/start_router4.log" tb-set-node-startcmd $router5 "${bindir}/setup-node.sh $router5 >& ${tmpdir}/start_router5.log" tb-set-node-startcmd router6 "${bindir}/setup-node.sh $router6 >& ${tmpdir}/start_router6.log" tb-set-node-startcmd $router7 "${bindir}/setup-node.sh $router7 >& ${tmpdir}/start_router7.log" tb-set-node-startcmd $router8 "${bindir}/setup-node.sh $router8 >& ${tmpdir}/start_router8.log" tb-set-node-startcmd $router9 "${bindir}/setup-node.sh $router9 >& ${tmpdir}/start_router9.log" #tb-set-node-startcmd $router10 "${bindir}/setup-node.sh $router10 >& ${tmpdir}/start_router10.log" #tb-set-node-startcmd $router11 "${bindir}/setup-node.sh $router11 >& ${tmpdir}/start_router11.log" #tb-set-node-startcmd $router12 "${bindir}/setup-node.sh $router12 >& ${tmpdir}/start_router12.log" tb-set-node-startcmd $modem1a "${bindir}/setup-node.sh $modem1a >& ${tmpdir}/start_modem1a.log" tb-set-node-startcmd $modem1b "${bindir}/setup-node.sh $modem1b >& ${tmpdir}/start_modem1b.log" tb-set-node-startcmd $modem1d "${bindir}/setup-node.sh $modem1d >& ${tmpdir}/start_modem1d.log" tb-set-node-startcmd $modem2b "${bindir}/setup-node.sh $modem2b >& ${tmpdir}/start_modem2b.log" tb-set-node-startcmd $modem2c "${bindir}/setup-node.sh $modem2c >& ${tmpdir}/start_modem2c.log" tb-set-node-startcmd $modem2e "${bindir}/setup-node.sh $modem2e >& ${tmpdir}/start_modem2e.log" tb-set-node-startcmd $modem3d "${bindir}/setup-node.sh $modem3d >& ${tmpdir}/start_modem3d.log" tb-set-node-startcmd $modem3e "${bindir}/setup-node.sh $modem3e >& ${tmpdir}/start_modem3e.log" tb-set-node-startcmd $modem3f "${bindir}/setup-node.sh $modem3f >& ${tmpdir}/start_modem3f.log" tb-set-node-startcmd $modem4a "${bindir}/setup-node.sh $modem4a >& ${tmpdir}/start_modem4a.log" tb-set-node-startcmd $modem5c "${bindir}/setup-node.sh $modem5c >& ${tmpdir}/start_modem5c.log" tb-set-node-startcmd $modem6f "${bindir}/setup-node.sh $modem6f >& ${tmpdir}/start_modem6f.log" tb-set-node-startcmd $modem7a "${bindir}/setup-node.sh $modem7a >& ${tmpdir}/start_modem7a.log" tb-set-node-startcmd $modem8c "${bindir}/setup-node.sh $modem8c >& ${tmpdir}/start_modem8c.log" tb-set-node-startcmd $modem9f "${bindir}/setup-node.sh $modem9f >& ${tmpdir}/start_modem9f.log" #tb-set-node-startcmd $modem10a "${bindir}/setup-node.sh $modem10a >& ${tmpdir}/start_modem10a.log" #tb-set-node-startcmd $modem11c "${bindir}/setup-node.sh $modem11c >& ${tmpdir}/start_modem11c.log" #tb-set-node-startcmd $modem12f "${bindir}/setup-node.sh $modem12f >& ${tmpdir}/start_modem12f.log" ################################################################################ # GO! ################################################################################ $ns run