Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # Creating New Simulator
- set ns [new Simulator]
- # Use distance vector routing protocol
- # $ns rtproto DV
- # Set up nodes - creating the simulation environment
- set D1 [$ns node]
- puts "D1: [$D1 id]"
- set A1 [$ns node]
- puts "A1: [$A1 id]"
- set A2 [$ns node]
- puts "A2: [$A2 id]"
- set A3 [$ns node]
- puts "A3: [$A3 id]"
- set A4 [$ns node]
- puts "A4: [$A4 id]"
- set A5 [$ns node]
- puts "A5: [$A5 id]"
- set A7 [$ns node]
- puts "A7: [$A7 id]"
- set D2 [$ns node]
- puts "D2: [$D2 id]"
- set D3 [$ns node]
- puts "D3: [$D3 id]"
- set A6 [$ns node]
- puts "A6: [$A6 id]"
- set A8 [$ns node]
- puts "A8: [$A8 id]"
- set A9 [$ns node]
- puts "A9: [$A9 id]"
- set A10 [$ns node]
- puts "A10: [$A10 id]"
- set A11 [$ns node]
- puts "A11: [$A11 id]"
- set A12 [$ns node]
- puts "A12: [$A12 id]"
- set A13 [$ns node]
- puts "A13: [$A13 id]"
- set R2 [$ns node]
- puts "R2: [$R2 id]"
- set R1 [$ns node]
- puts "R1: [$R1 id]"
- set W1 [$ns node]
- puts "W1: [$W1 id]"
- for {set q 0} {$q < 120 } {incr q} {
- set GF_Call_Centre_node_($q) [$ns node]
- puts "GF_Call_Centre_node_($q): [$GF_Call_Centre_node_($q) id]"
- }
- for {set q 0} {$q < 40 } {incr q} {
- set GF_IT_Office_node_($q) [$ns node]
- puts "GF_IT_Office_node_($q): [$GF_IT_Office_node_($q) id]"
- }
- for {set q 0} {$q < 40 } {incr q} {
- set GF_Office_1_node_($q) [$ns node]
- puts "GF_Office_1_node_($q): [$GF_Office_1_node_($q) id]"
- }
- for {set q 0} {$q < 3 } {incr q} {
- set GF_Reception_node_($q) [$ns node]
- puts "GF_Reception_node_($q): [$GF_Reception_node_($q) id]"
- }
- for {set q 0} {$q < 3 } {incr q} {
- set GF_Tech_Office_node_($q) [$ns node]
- puts "GF_Tech_Office_node_($q): [$GF_Tech_Office_node_($q) id]"
- }
- for {set q 0} {$q < 80 } {incr q} {
- set FF_Support_Office_node_($q) [$ns node]
- puts "FF_Support_Office_node_($q): [$FF_Support_Office_node_($q) id]"
- }
- for {set q 0} {$q < 3 } {incr q} {
- set FF_Meeting_Rooms_node_($q) [$ns node]
- puts "FF_Meeting_Rooms_node_($q): [$FF_Meeting_Rooms_node_($q) id]"
- }
- for {set q 0} {$q < 15 } {incr q} {
- set FF_Offices_1_node_($q) [$ns node]
- puts "FF_Offices_1_node_($q): [$FF_Offices_1_node_($q) id]"
- }
- for {set q 0} {$q < 8 } {incr q} {
- set FF_Offices_2_node_($q) [$ns node]
- puts "FF_Offices_2_node_($q): [$FF_Offices_2_node_($q) id]"
- }
- for {set q 0} {$q < 30 } {incr q} {
- set FF_Offices_3_node_($q) [$ns node]
- puts "FF_Offices_3_node_($q): [$FF_Offices_3_node_($q) id]"
- }
- for {set q 0} {$q < 5 } {incr q} {
- set SF_Offices_1_node_($q) [$ns node]
- puts "SF_Offices_1_node_($q): [$SF_Offices_1_node_($q) id]"
- }
- for {set q 0} {$q < 4 } {incr q} {
- set SF_Office_2_node_($q) [$ns node]
- puts "SF_Office_2_node_($q): [$SF_Office_2_node_($q) id]"
- }
- for {set q 0} {$q < 5 } {incr q} {
- set SF_Meeting_Rooms_node_($q) [$ns node]
- puts "SF_Meeting_Rooms_node_($q): [$SF_Meeting_Rooms_node_($q) id]"
- }
- # Ground floor to D1
- $ns duplex-link $A1 $D1 100Mb 0ms DropTail
- $ns duplex-link $A2 $D1 100Mb 0ms DropTail
- $ns duplex-link $A3 $D1 100Mb 0ms DropTail
- $ns duplex-link $A4 $D1 100Mb 0ms DropTail
- $ns duplex-link $A5 $D1 100Mb 0ms DropTail
- # Doubled up links
- $ns duplex-link $A1 $D2 100Mb 0ms DropTail
- $ns duplex-link $A5 $D2 100Mb 0ms DropTail
- $ns duplex-link $A6 $D3 100Mb 0ms DropTail
- # First floor to D2
- $ns duplex-link $A6 $D2 100Mb 0ms DropTail
- $ns duplex-link $A7 $D2 100Mb 0ms DropTail
- $ns duplex-link $A8 $D2 100Mb 0ms DropTail
- $ns duplex-link $A9 $D2 100Mb 0ms DropTail
- $ns duplex-link $A10 $D2 100Mb 0ms DropTail
- # Second floor to D3
- $ns duplex-link $A11 $D3 100Mb 0ms DropTail
- $ns duplex-link $A12 $D3 100Mb 0ms DropTail
- $ns duplex-link $A13 $D3 100Mb 0ms DropTail
- # Router links to W1
- $ns duplex-link $R1 $W1 10Gb 0ms DropTail
- $ns duplex-link $R2 $W1 10Gb 0ms DropTail
- # Core layer to core layer
- $ns duplex-link $R1 $R2 10Gb 0ms DropTail
- # Distribution layers to core layers
- $ns duplex-link $D1 $R1 10Gb 0ms DropTail
- $ns duplex-link $D1 $R2 10Gb 0ms DropTail
- $ns duplex-link $D2 $R1 10Gb 0ms DropTail
- $ns duplex-link $D2 $R2 10Gb 0ms DropTail
- $ns duplex-link $D3 $R1 10Gb 0ms DropTail
- $ns duplex-link $D3 $R2 10Gb 0ms DropTail
- # Distribution layer to distribution layer
- $ns duplex-link $D1 $D2 10Gb 0ms DropTail
- $ns duplex-link $D2 $D3 10Gb 0ms DropTail
- # Set up links for groups
- for {set q 0} {$q < 120 } {incr q} {
- $ns duplex-link $A1 $GF_Call_Centre_node_($q) 100Mb 0ms DropTail
- }
- for {set q 0} {$q < 40 } {incr q} {
- $ns duplex-link $A2 $GF_IT_Office_node_($q) 100Mb 0ms DropTail
- }
- for {set q 0} {$q < 40 } {incr q} {
- $ns duplex-link $A3 $GF_Office_1_node_($q) 100Mb 0ms DropTail
- }
- for {set q 0} {$q < 3 } {incr q} {
- $ns duplex-link $A4 $GF_Reception_node_($q) 100Mb 0ms DropTail
- }
- for {set q 0} {$q < 3 } {incr q} {
- $ns duplex-link $A5 $GF_Tech_Office_node_($q) 100Mb 0ms DropTail
- }
- for {set q 0} {$q < 80 } {incr q} {
- $ns duplex-link $A6 $FF_Support_Office_node_($q) 100Mb 0ms DropTail
- }
- for {set q 0} {$q < 3 } {incr q} {
- $ns duplex-link $A7 $FF_Meeting_Rooms_node_($q) 100Mb 0ms DropTail
- }
- for {set q 0} {$q < 15 } {incr q} {
- $ns duplex-link $A8 $FF_Offices_1_node_($q) 100Mb 0ms DropTail
- }
- for {set q 0} {$q < 8 } {incr q} {
- $ns duplex-link $A9 $FF_Offices_2_node_($q) 100Mb 0ms DropTail
- }
- for {set q 0} {$q < 30 } {incr q} {
- $ns duplex-link $A10 $FF_Offices_3_node_($q) 100Mb 0ms DropTail
- }
- for {set q 0} {$q < 5 } {incr q} {
- $ns duplex-link $A11 $SF_Offices_1_node_($q) 100Mb 0ms DropTail
- }
- for {set q 0} {$q < 4 } {incr q} {
- $ns duplex-link $A12 $SF_Office_2_node_($q) 100Mb 0ms DropTail
- }
- for {set q 0} {$q < 5 } {incr q} {
- $ns duplex-link $A13 $SF_Meeting_Rooms_node_($q) 100Mb 0ms DropTail
- }
- # Cache and Server nodes
- set WebCache [$ns node]
- puts "WebCache: [$WebCache id]"
- set Server [$ns node]
- puts "Server: [$Server id]"
- # Cache and Server service
- set WebService [new Http/Server $ns $Server]
- $ns duplex-link $Server $WebCache 10Gb 0ms DropTail
- set Cache [new Http/Cache $ns $WebCache]
- $ns duplex-link $WebCache $W1 10Gb 0ms DropTail
- set pgp [new PagePool/Math]
- set tmp [new RandomVariable/Constant]
- $tmp set val_ 4096
- $pgp ranvar-size $tmp
- set tmp [new RandomVariable/Exponential]
- $tmp set avg_ 6
- $pgp ranvar-age $tmp
- $WebService set-page-generator $pgp
- set tmp [new RandomVariable/Exponential]
- $tmp set avg_ 0.5
- $Cache connect $WebService
- # Using applications - setting up HTTP Clients
- # Ground Floor
- # GF Call Centre
- for {set q 0} {$q < 120} {incr q} {
- set GF_Call_Centre_Client($q) [new Http/Client $ns $GF_Call_Centre_node_($q)]
- $GF_Call_Centre_Client($q) set-interval-generator $tmp
- $GF_Call_Centre_Client($q) set-page-generator $pgp
- $GF_Call_Centre_Client($q) connect $Cache
- }
- # GF IT Office
- for {set q 0} {$q < 40} {incr q} {
- set GF_IT_Office_Client($q) [new Http/Client $ns $GF_IT_Office_node_($q)]
- $GF_IT_Office_Client($q) set-interval-generator $tmp
- $GF_IT_Office_Client($q) set-page-generator $pgp
- $GF_IT_Office_Client($q) connect $Cache
- }
- # GF Office 1
- for {set q 0} {$q < 40} {incr q} {
- set GF_Office_1_Client($q) [new Http/Client $ns $GF_Office_1_node_($q)]
- $GF_Office_1_Client($q) set-interval-generator $tmp
- $GF_Office_1_Client($q) set-page-generator $pgp
- $GF_Office_1_Client($q) connect $Cache
- }
- # GF Reception
- for {set q 0} {$q < 3} {incr q} {
- set GF_Reception_Client($q) [new Http/Client $ns $GF_Reception_node_($q)]
- $GF_Reception_Client($q) set-interval-generator $tmp
- $GF_Reception_Client($q) set-page-generator $pgp
- $GF_Reception_Client($q) connect $Cache
- }
- # GF Tech Office
- for {set q 0} {$q < 3} {incr q} {
- set GF_Tech_Office_Client($q) [new Http/Client $ns $GF_Tech_Office_node_($q)]
- $GF_Tech_Office_Client($q) set-interval-generator $tmp
- $GF_Tech_Office_Client($q) set-page-generator $pgp
- $GF_Tech_Office_Client($q) connect $Cache
- }
- # First Floor
- # FF Support Office Client
- for {set q 0} {$q < 80} {incr q} {
- set FF_Support_Office_Client($q) [new Http/Client $ns $FF_Support_Office_node_($q)]
- $FF_Support_Office_Client($q) set-interval-generator $tmp
- $FF_Support_Office_Client($q) set-page-generator $pgp
- $FF_Support_Office_Client($q) connect $Cache
- }
- # FF Meeting Rooms
- for {set q 0} {$q < 3} {incr q} {
- set FF_Meeting_Rooms_Client($q) [new Http/Client $ns $FF_Meeting_Rooms_node_($q)]
- $FF_Meeting_Rooms_Client($q) set-interval-generator $tmp
- $FF_Meeting_Rooms_Client($q) set-page-generator $pgp
- $FF_Meeting_Rooms_Client($q) connect $Cache
- }
- # FF Offices 1
- for {set q 0} {$q < 15} {incr q} {
- set FF_Offices_1_Client($q) [new Http/Client $ns $FF_Offices_1_node_($q)]
- $FF_Offices_1_Client($q) set-interval-generator $tmp
- $FF_Offices_1_Client($q) set-page-generator $pgp
- $FF_Offices_1_Client($q) connect $Cache
- }
- # FF Offices 2
- for {set q 0} {$q < 8} {incr q} {
- set FF_Offices_2_Client($q) [new Http/Client $ns $FF_Offices_2_node_($q)]
- $FF_Offices_2_Client($q) set-interval-generator $tmp
- $FF_Offices_2_Client($q) set-page-generator $pgp
- $FF_Offices_2_Client($q) connect $Cache
- }
- # FF Offices 3
- for {set q 0} {$q < 30} {incr q} {
- set FF_Offices_3_Client($q) [new Http/Client $ns $FF_Offices_3_node_($q)]
- $FF_Offices_3_Client($q) set-interval-generator $tmp
- $FF_Offices_3_Client($q) set-page-generator $pgp
- $FF_Offices_3_Client($q) connect $Cache
- }
- # Second Floor
- # SF Offices 1
- for {set q 0} {$q < 5} {incr q} {
- set SF_Offices_1_Client($q) [new Http/Client $ns $SF_Offices_1_node_($q)]
- $SF_Offices_1_Client($q) set-interval-generator $tmp
- $SF_Offices_1_Client($q) set-page-generator $pgp
- $SF_Offices_1_Client($q) connect $Cache
- }
- # SF Office 2
- for {set q 0} {$q < 4} {incr q} {
- set SF_Office_2_Client($q) [new Http/Client $ns $SF_Office_2_node_($q)]
- $SF_Office_2_Client($q) set-interval-generator $tmp
- $SF_Office_2_Client($q) set-page-generator $pgp
- $SF_Office_2_Client($q) connect $Cache
- }
- # SF Meeting Rooms
- for {set q 0} {$q < 5} {incr q} {
- set SF_Meeting_Rooms_Client($q) [new Http/Client $ns $SF_Meeting_Rooms_node_($q)]
- $SF_Meeting_Rooms_Client($q) set-interval-generator $tmp
- $SF_Meeting_Rooms_Client($q) set-page-generator $pgp
- $SF_Meeting_Rooms_Client($q) connect $Cache
- }
- # Keeping the data
- # Creates an event log (trace file) and the animation log (nam trace file)
- # set f [open out.tr w]
- set R1_to_W1 [open R1_to_W1.tr w]
- set R2_to_W1 [open R2_to_W1.tr w]
- set R1_to_R2 [open R1_to_R2.tr w]
- set D1_to_R1 [open D1_to_R1.tr w]
- set D1_to_R2 [open D1_to_R2.tr w]
- set D2_to_R1 [open D2_to_R1.tr w]
- set D2_to_R2 [open D2_to_R2.tr w]
- set D3_to_R1 [open D3_to_R1.tr w]
- set D3_to_R2 [open D3_to_R2.tr w]
- set D1_to_D2 [open D1_to_D2.tr w]
- set D2_to_D3 [open D1_to_D3.tr w]
- # $ns trace-all $f
- $ns trace-queue $R1 $W1 $R1_to_W1
- $ns trace-queue $R2 $W1 $R2_to_W1
- $ns trace-queue $R1 $R2 $R1_to_R2
- $ns trace-queue $D1 $R1 $D1_to_R1
- $ns trace-queue $D1 $R2 $D1_to_R2
- $ns trace-queue $D2 $R1 $D2_to_R1
- $ns trace-queue $D2 $R2 $D2_to_R2
- $ns trace-queue $D3 $R1 $D3_to_R1
- $ns trace-queue $D3 $R2 $D3_to_R2
- $ns trace-queue $D1 $D2 $D1_to_D2
- $ns trace-queue $D2 $D3 $D2_to_D3
- proc finish {} {
- # global ns nf f
- # $ns flush-trace
- puts "Simulation completed."
- # close $f
- exit 0
- }
- # Introducing randomness
- # Randomness for 3 nodes
- set three [new RNG]
- $three seed 0
- set rng_3 [new RandomVariable/Uniform]
- $rng_3 set min_ 0
- $rng_3 set max_ 3
- $rng_3 use-rng $three
- set value_3_1 [$rng_3 value]
- set value_3_2 [$rng_3 value]
- set value_3_3 [$rng_3 value]
- # Randomness for 4 nodes
- set four [new RNG]
- $four seed 0
- set rng_4 [new RandomVariable/Uniform]
- $rng_4 set min_ 0
- $rng_4 set max_ 4
- $rng_4 use-rng $four
- set value_4_1 [$rng_4 value]
- # Randomness for 5 nodes
- set five [new RNG]
- $five seed 0
- set rng_5 [new RandomVariable/Uniform]
- $rng_5 set min_ 0
- $rng_5 set max_ 5
- $rng_5 use-rng $five
- set value_5_1 [$rng_5 value]
- set value_5_2 [$rng_5 value]
- # Randomness for 8 nodes
- set eight [new RNG]
- $eight seed 0
- set rng_8 [new RandomVariable/Uniform]
- $rng_8 set min_ 0
- $rng_8 set max_ 8
- $rng_8 use-rng $eight
- set value_8_1 [$rng_8 value]
- # Randomness for 15 nodes
- set fifteen [new RNG]
- $fifteen seed 0
- set rng_15 [new RandomVariable/Uniform]
- $rng_15 set min_ 0
- $rng_15 set max_ 15
- $rng_15 use-rng $fifteen
- set value_15_1 [$rng_15 value]
- # Randomness for 30 nodes
- set thirty [new RNG]
- $thirty seed 0
- set rng_30 [new RandomVariable/Uniform]
- $rng_30 set min_ 0
- $rng_30 set max_ 30
- $rng_30 use-rng $thirty
- set value_30_1 [$rng_30 value]
- # Randomness for 40 nodes
- set fourty [new RNG]
- $fourty seed 0
- set rng_40 [new RandomVariable/Uniform]
- $rng_40 set min_ 0
- $rng_40 set max_ 40
- $rng_40 use-rng $fourty
- set value_40_1 [$rng_40 value]
- set value_40_2 [$rng_40 value]
- # Randomness for 80 nodes
- set eighty [new RNG]
- $eighty seed 0
- set rng_80 [new RandomVariable/Uniform]
- $rng_80 set min_ 0
- $rng_80 set max_ 80
- $rng_80 use-rng $eighty
- set value_80_1 [$rng_80 value]
- # Randomness for 120 nodes
- set onetwenty [new RNG]
- $onetwenty seed 0
- set rng_120 [new RandomVariable/Uniform]
- $rng_120 set min_ 0
- $rng_120 set max_ 120
- $rng_120 use-rng $onetwenty
- set value_120_1 [$rng_120 value]
- # Setting random times
- set seconds [new RNG]
- $seconds seed 0
- set rng_time [new RandomVariable/Uniform]
- $rng_time set min_ 0.5
- $rng_time set max_ 3570.0
- $rng_time use-rng $seconds
- set value_time_1 [$rng_time value]
- set value_time_2 [$rng_time value]
- set value_time_3 [$rng_time value]
- set value_time_4 [$rng_time value]
- set value_time_5 [$rng_time value]
- set value_time_6 [$rng_time value]
- set value_time_7 [$rng_time value]
- set value_time_8 [$rng_time value]
- set value_time_9 [$rng_time value]
- set value_time_10 [$rng_time value]
- set value_time_11 [$rng_time value]
- set value_time_12 [$rng_time value]
- set value_time_13 [$rng_time value]
- # Making traffic run
- for {set q 0} {$q < $value_120_1} {incr q} {
- $ns at 1 "$GF_Call_Centre_Client($q) start-session $Cache $WebService"
- }
- for {set q 0} {$q < $value_40_1} {incr q} {
- $ns at 1 "$GF_IT_Office_Client($q) start-session $Cache $WebService"
- }
- for {set q 0} {$q < $value_40_2} {incr q} {
- $ns at 1 "$GF_Office_1_Client($q) start-session $Cache $WebService"
- }
- for {set q 0} {$q < $value_3_1} {incr q} {
- $ns at 1 "$GF_Reception_Client($q) start-session $Cache $WebService"
- }
- for {set q 0} {$q < $value_3_2} {incr q} {
- $ns at 1 "$GF_Tech_Office_Client($q) start-session $Cache $WebService"
- }
- for {set q 0} {$q < $value_80_1} {incr q} {
- $ns at 1 "$FF_Support_Office_Client($q) start-session $Cache $WebService"
- }
- for {set q 0} {$q < $value_3_3} {incr q} {
- $ns at 1 "$FF_Meeting_Rooms_Client($q) start-session $Cache $WebService"
- }
- for {set q 0} {$q < $value_15_1} {incr q} {
- $ns at 1 "$FF_Offices_1_Client($q) start-session $Cache $WebService"
- }
- for {set q 0} {$q < $value_8_1} {incr q} {
- $ns at 1 "$FF_Offices_2_Client($q) start-session $Cache $WebService"
- }
- for {set q 0} {$q < $value_30_1} {incr q} {
- $ns at 1 "$FF_Offices_3_Client($q) start-session $Cache $WebService"
- }
- for {set q 0} {$q < $value_5_1} {incr q} {
- $ns at 1 "$SF_Offices_1_Client($q) start-session $Cache $WebService"
- }
- for {set q 0} {$q < $value_4_1} {incr q} {
- $ns at 1 "$SF_Office_2_Client($q) start-session $Cache $WebService"
- }
- for {set q 0} {$q < $value_5_2} {incr q} {
- $ns at 1 "$SF_Meeting_Rooms_Client($q) start-session $Cache $WebService"
- }
- # Using applications - setting up MPEG4 (video streaming)
- # set udpAgent [new Agent/UDP]
- # UDP agent for sending
- # $ns attach-agent $n0 $udpAgent
- # set udpSink [new Agent/Null]
- # UDP sink for receiving
- # $ns attach-agent $n1 $udpSink
- # $ns connect $udpAgent $udpSink
- # set vdo [new Application/Traffic/MPEG4]
- # $vdo set initialSeed_0.5
- # $vdo set rateFactor_5
- # $vdo attach-agent $udpAgent
- # Using applications - setting up CBR - Constant Bit Rate (VoIP)
- for {set i 0} {$i < 120} {incr i} {
- set udpAgent($i) [new Agent/UDP]
- # UDP agent for sending
- $ns attach-agent $W1 $udpAgent($i)
- set udpSink($i) [new Agent/Null]
- # UDP sink for receiving
- $ns attach-agent $GF_Call_Centre_Client($i) $udpSink($i)
- $ns connect $udpAgent($i) $udpSink($i)
- set cbr($i) [new Application/Traffic/CBR]
- $cbr($i) set packetSize_ 500
- $cbr($i) set interval_ 0.005
- $cbr($i) attach-agent $udpAgent($i)
- }
- for {set i 1} {$i < 120} {incr i} {
- $ns at 0.5 "$cbr($i) start"
- }
- # Link failure
- # Test 1
- $ns rtmodel-at 300.0 down $A1 $D1
- $ns rtmodel-at 600.0 up $A1 $D1
- # Test 2
- $ns rtmodel-at 900.0 down $A1 $D1
- $ns rtmodel-at 900.0 down $D1 $R1
- $ns rtmodel-at 1080.0 up $A1 $D1
- $ns rtmodel-at 1200.0 up $D1 $R1
- # Test 3
- $ns rtmodel-at 1500.0 down $A1 $D1
- $ns rtmodel-at 1680.0 down $A6 $D2
- $ns rtmodel-at 1800.0 up $A1 $D1
- $ns rtmodel-at 1800.0 up $A6 $D2
- # Test 4
- $ns rtmodel-at 2100.0 down $D1 $R1
- $ns rtmodel-at 2280.0 down $D1 $R2
- $ns rtmodel-at 2400.0 up $D1 $R1
- $ns rtmodel-at 2700.0 up $D1 $R2
- # Test 5
- $ns rtmodel-at 2760.0 down $A1 $D1
- $ns rtmodel-at 2820.0 down $D1 $R2
- $ns rtmodel-at 2880.0 down $D2 $R2
- $ns rtmodel-at 2940.0 down $R1 $W1
- $ns rtmodel-at 3120.0 up $A1 $D1
- $ns rtmodel-at 3180.0 up $D1 $R2
- $ns rtmodel-at 3240.0 up $D2 $R2
- $ns rtmodel-at 3300.0 up $R1 $W1
- # Stop the simulation after 3600 seconds
- $ns at 20.0 "finish"
- # Run the simulation
- $ns run
Advertisement
Add Comment
Please, Sign In to add comment