I'm trying to set-up a simulation of a wireless network, where nodes
can go down during the course of an FTP transfer.
To achieve this, I schedule the shutdown of a node with
$ns_ at $time "$node_($i) off"

The problem is that, when I run the simulation, this is the error
message that NS-2 gives me

ns: _o90 reset-state:
    (_o90 cmd line 1)
    invoked from within
"_o90 cmd reset-state"
    invoked from within
"catch "$self cmd $args" ret"
    invoked from within
"if [catch "$self cmd $args" ret] {
set cls [$self info class]
global errorInfo
set savedInfo $errorInfo
error "error when calling class $cls: $args" $..."
    (procedure "_o90" line 2)
    (SplitObject unknown line 2)
    invoked from within
"_o90 reset-state"

I looked into the file 'mobilenode.cc', in the method
MobileNode::command(....), and this is the C++ code called when the
Tcl command "off" is called

                } else if (strcmp(argv[1], "off") == 0) {
                        energy_model()->node_on() = false;
                        tcl.evalf("%s set netif_(0)", name_);
                        const char *str = tcl.result();
                        tcl.evalf("%s NodeOff", str);
                        tcl.evalf("%s set ragent_", name_);
                        str = tcl.result();
                        tcl.evalf("%s reset-state", str);
                        God::instance()->ComputeRoute();
                        return TCL_OK;

So, I guess that the problem arises when the command "reset-state" is
called on the DSR routing agent, represented in Tcl by the node's
variable "ragent_". I looked into the file 'dsragent.cc', and
elsewhere in the C++ source of NS-2, but there's no mention of a
corresponsing method, it's like if this "reset-state" command is not
bound to any C++ method.
Do you have more information about this strange behaviour? I tried to
shutdown nodes using
"$node_($i) shutdown"
But that doesn't work, in fact if I visualize the nam trace, traffic
from/to the shutted down node continues...
Do you know if there would be "collateral effects" if I'd comment the line
tcl.evalf("%s reset-state", str) ?

Thanks a lot

Reply via email to