My initial thought in this regard, was to insert the Agent into Node N1's entry, and then set the Agent's target_ to the Clasifier in Node N1.
Here's what I did in my Agent's command function: -------------------------------------- int MyAgent::command(int argc, const char*const* argv) { Tcl& tcl = Tcl::instance(); // tcl instance if (argc == 3) { if (strcmp(argv[1], "set-target") == 0) { target_ = (NsObject*)(TclObject::lookup(argv[2])); printf("Setting MyAgent target_ to %s\n", argv[2]); if (target_ == NULL) { tcl.add_errorf("MyAgent target_ was NULL: %s", argv[2]); return TCL_ERROR; } return(TCL_OK); } } return (Agent::command(argc, argv)); } -------------------------------------- Then, in tcl I do something like this: -------------------------------------- set n1_old_entry [$n1 entry] ;# points to classifier_ $n1 insert-entry [new RtModule] $my_agent $my_agent set-target $n1_old_entry -------------------------------------- However, when I attept to send a packet across N1, I get a Bus Error. Any ideas? Am I going about this all wrong? Thanks in advance! Brad On 7/13/06 1:45 AM, "Brad Montgomery" <[EMAIL PROTECTED]> wrote: > > All, > > I would like to write an Agent that inspects all packets that pass through > the node to which it is connected. For example: > > Given the topology, > > N0 - N1 - N2 > > An Agent attached to N1 would execute it's recv() function even if N2 was > sending a packet to N0. Is this possible? If so, any pointers to examples > or descriptions would be greatly appreciated! > > Also, as a new NS user, I'm still a little unsure of the exact "path through > the ns code" that a packet takes on it's way from a sender to a destination. > Is there a more succinct description of this process than what is in the ns > documentation? > > Thanks! > > Brad >