Hi, I was trying to assign and use state variables inside a FullTcp agent like is done using normal TCP agents. For ex, I create and use a session_number state variable below:
set tcpagent [new Agent/TCP/FullTcp] $tcpagent set session_number 0 When I overload the done{} method for the FullTcp agent, I am not able to access any state variables which I created. ie, when I try Agent/TCP/FullTcp instproc done { } { puts [$self set session_number] } I get an error ---------------------------- ns: _o89 done: can't read "session_number": no such variable while executing "subst $[subst $var]" (procedure "_o89" line 5) (Object next line 5) invoked from within "_o89 next session_number" ("eval" body line 1) invoked from within "eval $self next $args" (procedure "_o89" line 18) (Agent set line 18) invoked from within "$agent set session_number" (procedure "_o89" line 4) (Agent/TCP/FullTcp done line 4) invoked from within "_o89 done" ------------------------------ The wierd thing is, if I create a done method specific to a particular instance of the FullTcp agent, I am able to use the state variables and I get no error. ie, the following works fine set tcpagent [new Agent/TCP/FullTcp] $tcpagent set session_number 0 $tcpagent proc done { } { puts [$self set session_number] } I have been digging around the code for the past 3 days but have not found why it behaves this way for the FullTcp agent alone (because it behaves just fine for a normal TCP agent). And yes, I did search the archives to the best of my knowledge and I couldn't find any information related to this. Any help would be greatly appreciated! Thanks, Sid