10.9 Commands at a glance

Following are the agent related commands used in simulation scripts:

ns_ attach-agent node agent
This command attaches the <agent> to the <node>. We assume here that the <agent> has already been created. An agent is typically created by set agent [new Agent/AgentType] where Agent/AgentType defines the class definiton of the specified agent type.

$agent port
This returns the port number to which the agent is attached.

$agent dst-port
This returns the port number of the destination. When any connection is setup between 2 nodes, each agent stores the destination port in its instance variable called dst_port_.

$agent attach-app s_type
This commands attaches an application of type s_type to the agent. A handle to the application object is returned. Also note that the application type must be defined as a packet type in packet.h.

$agent attach-source s_type
This used to be the procedure to attach source of type s_type to the agent. But this is obsolete now. Use attach-app (described above) instead.

$agent attach-tbf tbf
Attaches a token bucket filter (tbf) to the agent.

$ns_ connect src dst
Sets up a connection between the src and dst agents.

$ns_ create-connection srctype src dsttype dst pktclass
This sets up a complete connection between two agents. First creates a source of type <srctype> and binds it to <src>. Then creates a destination of type <dsttype> and binds it to <dst>. Finally connects the src and dst agents and returns a handle to the source agent.

$ns_ create-connection-list srctype src dsttype dst pktclass
This command is exactly similar to create-connection described above. But instead of returning only the source-agent, this returns a list of source and destination agents.

Internal procedures:

$ns_ simplex-connect src dst
This is an internal method that actually sets up an unidirectional connection between the <src> agent and <dst> agent. It simply sets the destination address and destination port of the <src> as <dst>'s agent-address and agent-port. The "connect" described above calls this method twice to set up a bi-directional connection between the src and dst.

$agent set args
This is an internal procedure used to inform users of the backward compatibility issues resulting from the upgrade to 32-bit addressing space currently used in ns.

$agent attach-trace file
This attaches the <file> to the agent to allow nam-tracing of the agent events.

In addition to the agent related procedures described here, there are additional methods that support different type of agents like Agent/Null, Agent/TCP, Agent/CBR, Agent/TORA, Agent/mcast etc. These additional methods along with the procedures described here can be found in ns/tcl/lib/(ns-agent.tcl, ns-lib.tcl, ns-mip.tcl, ns-mobilenode.tcl, ns-namsupp.tcl, ns-queue.tcl, ns-route.tcl, ns-sat.tcl, ns-source.tcl). They are also described in the previous section.

Tom Henderson 2011-11-05