# This is a comment (no in-line comments) 5.0 &ev1| $sb run_client_of 'server_a' # 5.0 is the time trigger (after 5 seconds). Its a float # $sb is the storyboard object # run_client_of is the method to invoke 10.3 &echo_cmd|$sb run_command 'node_a' 'echo "test"' # methods can have multiple space-delimited arguments. # single-quoted strings are used to enclose a single (string) argument # which must be preceded and followed by a space. # &echo_cmd is a label, it can be used to reference this # event from other events 10.5 &ev2|$sb run_client_of 'server_b' 12 'node_a' # And optional arguments (same syntax as the method) # also, whitespace tolerant around the | token # NOTE: in the absence of optional arguments, they will be randomly # generated, so you might not get the exact same experiment every time 13 &ev3| $Node.node_a execute_command 'echo "test"' # $Node. is a Node object. # This command is actually equivalent to echo_cmd echo_cmd &echo2 | $sb run_command $Node.node_b 'echo "test2"' # events can be triggered by the completion of other events echo2, 18 &ev4| $sb run_client_of $Server.server_b # or both time AND other events # Moreover, one can use entity syntax in arguments too 1.2 &ev5| run_client_of $Server.server_c # Events need _not_ be in temporal order # if no object ($ handle) is provided, the storyboard # is assumed as the object 14 | $Node.node_a set_link_state $ShimEthDIF.e1 'up' 16 | $ShimEthDIF.e1 set_delay 30 10 28 | $ShimEthDIF.e1 set_loss 2