Hi ns_user:
  I encounter some troubles when I simulate rsvp/ns module under micromobility 
environment in NS2. Because micromobility(CIMS) module uses hierarchical 
address to identify nodes, but rsvp uses flat format address. Every time I run 
the tcl script, NS2 gives me an error message "no target for slot 1". 
  I checked inside NS2's C++ code, and found this error is raised in function: 
Classifier::find(...). 
NsObject* Classifier::find(Packet* p)
{
 NsObject* node = NULL;
 int cl = classify(p);
 if (cl < 0 || cl >= nslot_ || (node = slot_[cl]) == 0) { 

  if (default_target_) return default_target_;

  /*
   * Sigh.  Can't pass the pkt out to tcl because it's
   * not an object.
   */
  Tcl::instance().evalf("%s no-slot %ld", name(), cl);
  if (cl == TWICE) {
   /*
    * Try again.  Maybe callback patched up the table.
    */
   cl = classify(p);
   if (cl < 0 || cl >= nslot_ || (node = slot_[cl]) == 0)
    return (NULL);
  }
 }
 return (node);
}
  In the conditional statement of "if (cl < 0 || cl >= nslot_ || (node = 
slot_[cl]) == 0)", node was assigned a NULL value, so the next segment 
"Tcl::instance().evalf("%s no-slot %ld", name(), cl);" was executed because the 
member variable "default_target_" was initialized to NULL. 
  What should I do in order to make rsvp/ns module compatible with hierarchical 
format address? Make some modification about NS2's C++ code such as the 
classifier, route, etc??
  Please help me!
  Best regards!
                                    Andy

Reply via email to