#include <ldp.h>
Inheritance diagram for LDPAgent:


Definition at line 139 of file ldp.h.
Public Member Functions | |
| nsaddr_t & | addr () |
| virtual void | attachApp (Application *app) |
| virtual void | close () |
| virtual int | command (int argc, const char *const *argv) |
| virtual void | connect (nsaddr_t dst) |
| nsaddr_t & | daddr () |
| virtual void | debug (const char *fmt,...) |
| virtual int | delay_bind_dispatch (const char *, const char *, TclObject *) |
| virtual void | delay_bind_init_all () |
| nsaddr_t & | dport () |
| virtual void | drop (Packet *p) |
| packet_t | get_pkttype () |
| int | isdebug () const |
| LDPAgent () | |
| virtual void | listen () |
| void | MSGTdelete (int entrynb) |
| void | MSGTdump () |
| int | MSGTinsert (int MsgID, int FEC, int LspID, int Src, int PMsgID) |
| int | MSGTlocate (int FEC, int LspID, int Src) |
| int | MSGTlocate (int MsgID) |
| void | MSGTlookup (int entrynb, int &MsgID, int &FEC, int &LspID, int &src, int &PMsgID, int &LabelOp) |
| int | peer () const |
| void | PKTinit (hdr_ldp *hdrldp, int msgtype, const char *pathvec, const char *er) |
| int | PKTsize (const char *pathvec, const char *er) |
| nsaddr_t & | port () |
| virtual void | recv (Packet *p, const char *s) |
| virtual void | recv (Packet *, Handler *) |
| void | recvOnly (Packet *) |
| virtual void | send (int nbytes) |
| virtual void | send (int sz, AppData *data) |
| void | send (Packet *p, Handler *h) |
| virtual void | sendmsg (int nbytes, const char *flags=0) |
| virtual void | sendmsg (int sz, AppData *, const char *flags=0) |
| virtual void | sendto (int nbytes, const char *flags, ns_addr_t dst) |
| virtual void | sendto (int nbytes, const char *flags, nsaddr_t dst) |
| virtual void | sendto (int sz, AppData *, const char *flags, ns_addr_t dst) |
| virtual void | sendto (int sz, AppData *, const char *flags, nsaddr_t dst) |
| void | set_pkttype (packet_t pkttype) |
| void | setDropTarget (NsObject *dt) |
| virtual int & | size () |
| void | target (NsObject *target) |
| NsObject * | target () |
| virtual void | timeout (int tno) |
| void | turn_on_trace () |
Protected Member Functions | |
| void | addAgentTrace (const char *name) |
| Packet * | allocpkt (int) const |
| Packet * | allocpkt () const |
| void | deleteAgentTrace () |
| virtual void | drop (Packet *p, const char *s) |
| void | dumpTracedVars () |
| void | handle (Event *) |
| virtual void | idle () |
| void | initpkt (Packet *) const |
| void | insertOldValue (TracedVar *v, const char *value) |
| OldValue * | lookupOldValue (TracedVar *v) |
| void | monitorAgentTrace () |
| char * | parse_msgtype (int msgtype, int lspid) |
| char * | parse_status (int status) |
| virtual void | recvBytes (int bytes) |
| virtual void | reset () |
| virtual void | trace (TracedVar *v) |
| void | trace (ns_addr_t src, hdr_ldp *hdrldp) |
| virtual void | trace_event (char *eventtype) |
Protected Attributes | |
| Application * | app_ |
| Tcl_Channel | channel_ |
| int | debug_ |
| int | defttl_ |
| NsObject * | drop_ |
| ns_addr_t | dst_ |
| EventTrace * | et_ |
| int | fid_ |
| int | flags_ |
| ns_addr_t | here_ |
| MsgT | MSGT_ |
| int | new_msgid_ |
| OldValue * | oldValueList_ |
| int | peer_ |
| int | prio_ |
| int | size_ |
| NsObject * | target_ |
| int | trace_ldp_ |
| char * | traceName_ |
| packet_t | type_ |
Static Protected Attributes | |
| static int | uidcnt_ |
|
|
Definition at line 91 of file ldp.cc. References MSGT_, and MsgT::NB. 00091 : Agent(PT_LDP), 00092 new_msgid_(0), trace_ldp_(0), peer_(0) 00093 { 00094 MSGT_.NB = 0; 00095 }
|
|
|
Definition at line 326 of file agent.cc. References ns_addr_t::addr_, Agent::channel_, Scheduler::clock(), Agent::dst_, Agent::here_, Scheduler::instance(), TIME_FORMAT, and Agent::traceName_. Referenced by Agent::command(). 00327 { 00328 char wrk[256]; 00329 int n; 00330 double curTime = (&Scheduler::instance() == NULL ? 0 : 00331 Scheduler::instance().clock()); 00332 00333 sprintf(wrk, "a -t "TIME_FORMAT" -s %d -d %d -n %s", 00334 curTime, here_.addr_, dst_.addr_, name); 00335 n = strlen(wrk); 00336 wrk[n] = '\n'; 00337 wrk[n+1] = 0; 00338 if (channel_) 00339 (void)Tcl_Write(channel_, wrk, n+1); 00340 // keep agent trace name 00341 if (traceName_ != NULL) 00342 delete[] traceName_; 00343 traceName_ = new char[strlen(name)+1]; 00344 strcpy(traceName_, name); 00345 }
Here is the call graph for this function: ![]() |
|
|
|
Definition at line 528 of file agent.cc. References Packet::allocdata(), and Agent::allocpkt(). 00529 { 00530 Packet* p = allocpkt(); 00531 00532 if (n > 0) 00533 p->allocdata(n); 00534 00535 return(p); 00536 }
Here is the call graph for this function: ![]() |
|
|
|
Definition at line 372 of file agent.cc. References Agent::app_. Referenced by WormApp::command(), HttpMInvalCache::command(), Application::command(), TcpApp::TcpApp(), and TcpApp::~TcpApp(). 00373 { 00374 app_ = app; 00375 }
|
|
|
Reimplemented in FullTcpAgent. Definition at line 377 of file agent.cc. Referenced by Agent::command().
|
|
||||||||||||
|
Reimplemented from Agent. Definition at line 172 of file ldp.cc. References hdr_ldp::access(), Agent::allocpkt(), Agent::command(), MsgT::Entry, MsgTable::ERLspID, hdr_ldp::fec, hdr_ldp::label, MsgTable::LabelOp, LDP_LabelPASS, LDP_LabelSTACK, LDP_LoopDetected, LDP_MappingMSG, LDP_NoRoute, LDP_NotificationMSG, LDP_ReleaseMSG, LDP_RequestMSG, LDP_WithdrawMSG, hdr_ldp::lspid, MSGT_, MSGTdelete(), MSGTdump(), MSGTinsert(), MSGTlocate(), MSGTlookup(), new_msgid_, peer_, PKTinit(), PKTsize(), hdr_ldp::rc, hdr_ldp::reqmsgid, Agent::send(), Agent::size_, and hdr_ldp::status. 00173 { 00174 Tcl& tcl = Tcl::instance(); 00175 if (argc == 2) { 00176 if (strcmp(argv[1], "msgtbl-dump") == 0) { 00177 MSGTdump(); 00178 return (TCL_OK); 00179 } else if (strcmp(argv[1], "new-msgid") == 0) { 00180 tcl.resultf("%d", ++new_msgid_); 00181 return (TCL_OK); 00182 } else if (strcmp(argv[1], "peer-ldpnode") == 0) { 00183 tcl.resultf("%d", peer_); 00184 return (TCL_OK); 00185 } 00186 } else if (argc == 3) { 00187 if (strcmp(argv[1], "set-peer") == 0) { 00188 peer_ = atoi(argv[2]); 00189 return (TCL_OK); 00190 } 00191 00192 // The following is shared by all if-s in this branch 00193 int MsgID = atoi(argv[2]); 00194 int msgid,fec,lspid,src,pmsgid,labelop; 00195 int entrynb = MSGTlocate(MsgID); 00196 MSGTlookup(entrynb,msgid,fec,lspid,src,pmsgid,labelop); 00197 00198 if (strcmp(argv[1], "msgtbl-clear") == 0) { 00199 /* <agent> MSGTdelete MsgID */ 00200 if (entrynb > -1) 00201 MSGTdelete(entrynb); 00202 return (TCL_OK); 00203 } else if (strcmp(argv[1], "msgtbl-get-src") == 0) { 00204 /* <agent> GetMSGTsrc MsgID */ 00205 tcl.resultf("%d", src); 00206 return (TCL_OK); 00207 } else if (strcmp(argv[1], "msgtbl-get-reqmsgid") == 0) { 00208 /* <agent> GetMSGTpmsgid msgid */ 00209 tcl.resultf("%d",pmsgid); 00210 return (TCL_OK); 00211 } else if (strcmp(argv[1], "msgtbl-get-labelop") == 0) { 00212 /* <agent> GetMSGTlabelpass msgid */ 00213 tcl.resultf("%d", labelop); 00214 return (TCL_OK); 00215 } else if (strcmp(argv[1], "msgtbl-get-erlspid") == 0) { 00216 /* 00217 * <agent> msgtbl-get-erlspid <msgid> 00218 */ 00219 tcl.resultf("%d",MSGT_.Entry[entrynb].ERLspID); 00220 return (TCL_OK); 00221 } else if (strcmp(argv[1], "msgtbl-set-labelpass") == 0) { 00222 /* 00223 * <agent> msgtbl-set-labelpass <msgid> 00224 */ 00225 MSGT_.Entry[entrynb].LabelOp = LDP_LabelPASS; 00226 return (TCL_OK); 00227 } 00228 } else if (argc == 4) { 00229 if (strcmp(argv[1], "notification-msg") == 0) { 00230 /* 00231 * <agent> notification-msg <status> <lspid> 00232 */ 00233 size_ = PKTsize("*", "*"); 00234 if ( atoi(argv[3]) > -1 ) /* packet size adjustment */ 00235 size_ += 16; 00236 else 00237 size_ += 8; 00238 Packet* pkt = allocpkt(); 00239 hdr_ldp *hdrldp = hdr_ldp::access(pkt); 00240 PKTinit(hdrldp, LDP_NotificationMSG, "*", "*"); 00241 00242 if (strcmp(argv[2], "LoopDetected") == 0) 00243 hdrldp->status = LDP_LoopDetected; 00244 else if (strcmp(argv[2], "NoRoute") == 0) 00245 hdrldp->status = LDP_NoRoute; 00246 00247 hdrldp->lspid = atoi(argv[3]); 00248 send(pkt, 0); 00249 return (TCL_OK); 00250 } else if (strcmp(argv[1], "withdraw-msg") == 0) { 00251 /* 00252 * <agent> withdraw-msg <fec> <lspid> 00253 */ 00254 size_ = PKTsize("*","*"); 00255 if ( atoi(argv[3]) > -1 ) /* packet size adjustment */ 00256 size_ += 16; 00257 else 00258 size_ += 8; 00259 Packet* pkt = allocpkt(); 00260 hdr_ldp *hdrldp = hdr_ldp::access(pkt); 00261 PKTinit(hdrldp, LDP_WithdrawMSG, "*", "*"); 00262 hdrldp->fec = atoi(argv[2]); 00263 hdrldp->lspid = atoi(argv[3]); 00264 send(pkt, 0); 00265 return (TCL_OK); 00266 } else if (strcmp(argv[1], "release-msg") == 0) { 00267 /* 00268 * <agent> release-msg <fec> <lspid> 00269 */ 00270 size_ = PKTsize("*","*"); 00271 if ( atoi(argv[3]) > -1 ) /* packet size adjustment */ 00272 size_ += 16; 00273 else 00274 size_ += 8; 00275 Packet* pkt = allocpkt(); 00276 hdr_ldp *hdrldp = hdr_ldp::access(pkt); 00277 PKTinit(hdrldp, LDP_ReleaseMSG,"*","*"); 00278 hdrldp->fec = atoi(argv[2]); 00279 hdrldp->lspid = atoi(argv[3]); 00280 send(pkt, 0); 00281 return (TCL_OK); 00282 } else if (strcmp(argv[1], "request-msg") == 0) { 00283 /* 00284 * <agent> request-msg <fec> <pathvec> 00285 */ 00286 size_ = PKTsize(argv[3],"*"); 00287 size_ += 8; /* packet size adjustment */ 00288 Packet* pkt = allocpkt(); 00289 hdr_ldp *hdrldp = hdr_ldp::access(pkt); 00290 PKTinit(hdrldp, LDP_RequestMSG, argv[3], "*"); 00291 hdrldp->fec = atoi(argv[2]); 00292 send(pkt, 0); 00293 return (TCL_OK); 00294 } else if (strcmp(argv[1], "msgtbl-set-labelstack") == 0) { 00295 /* 00296 * <agent> msgtbl-set-labelstack <msgid> <erlspid> 00297 */ 00298 int MsgID = atoi(argv[2]); 00299 int ERLspID = atoi(argv[3]); 00300 int entrynb = MSGTlocate(MsgID); 00301 MSGT_.Entry[entrynb].LabelOp = LDP_LabelSTACK; 00302 MSGT_.Entry[entrynb].ERLspID = ERLspID; 00303 return (TCL_OK); 00304 } 00305 } else if (argc == 5) { 00306 if (strcmp(argv[1], "msgtbl-get-msgid") == 0) { 00307 /* 00308 * <classifier> msgtbl-get-msgid <FEC> <LspID> <Src> 00309 */ 00310 int msgid,tmp; 00311 int fec = atoi(argv[2]); 00312 int LspID = atoi(argv[3]); 00313 int src = atoi(argv[4]); 00314 int entrynb = MSGTlocate(fec,LspID,src); 00315 00316 MSGTlookup(entrynb,msgid,tmp,tmp,tmp,tmp,tmp); 00317 tcl.resultf("%d", msgid); 00318 return (TCL_OK); 00319 } 00320 } else if (argc == 6) { 00321 if (strcmp(argv[1], "mapping-msg") == 0) { 00322 /* 00323 * <agent> mapping <fec> <label> <pathvec> <premsgid> 00324 */ 00325 size_ = PKTsize(argv[4],"*"); 00326 if ( atoi(argv[5]) > -1 ) /* packet size adjustment*/ 00327 size_ += 24; 00328 else 00329 size_ += 16; 00330 Packet* pkt = allocpkt(); 00331 hdr_ldp *hdrldp = hdr_ldp::access(pkt); 00332 PKTinit(hdrldp, LDP_MappingMSG, argv[4], "*"); 00333 hdrldp->fec = atoi(argv[2]); 00334 hdrldp->label = atoi(argv[3]); 00335 hdrldp->reqmsgid= atoi(argv[5]); 00336 send(pkt, 0); 00337 return (TCL_OK); 00338 } else if (strcmp(argv[1], "cr-mapping-msg") == 0) { 00339 /* 00340 * <agent> cr-mapping-msg <fec> <label> <lspid> 00341 * <premsgid> 00342 */ 00343 size_ = PKTsize("*","*"); 00344 size_ += 32; /* packet size adjustment */ 00345 Packet* pkt = allocpkt(); 00346 hdr_ldp *hdrldp = hdr_ldp::access(pkt); 00347 PKTinit(hdrldp, LDP_MappingMSG, "*", "*"); 00348 hdrldp->fec = atoi(argv[2]); 00349 hdrldp->label = atoi(argv[3]); 00350 hdrldp->lspid = atoi(argv[4]); 00351 hdrldp->reqmsgid= atoi(argv[5]); 00352 send(pkt, 0); 00353 return (TCL_OK); 00354 } 00355 } else if (argc == 7) { 00356 if (strcmp(argv[1], "cr-request-msg") == 0) { 00357 /* 00358 * <agent> cr-request <fec> <pathvec> <er> <lspid> <rc> 00359 */ 00360 size_ = PKTsize(argv[3],argv[4]); 00361 if (atoi(argv[6]) > -1) /* packet size adjustment */ 00362 size_ += 24; 00363 else 00364 size_ += 16; 00365 Packet* pkt = allocpkt(); 00366 hdr_ldp *hdrldp = hdr_ldp::access(pkt); 00367 PKTinit(hdrldp, LDP_RequestMSG, argv[3], argv[4]); 00368 hdrldp->fec = atoi(argv[2]); 00369 hdrldp->lspid = atoi(argv[5]); 00370 hdrldp->rc = atoi(argv[6]); 00371 send(pkt, 0); 00372 return (TCL_OK); 00373 } else if (strcmp(argv[1], "msgtbl-install") == 0) { 00374 /* 00375 * <agent> msgtbl-install <msgid> <FEC> <LspID> 00376 * <Src> <Pmsgid> 00377 */ 00378 int msgid = atoi(argv[2]); 00379 int fec = atoi(argv[3]); 00380 int LspID = atoi(argv[4]); 00381 int src = atoi(argv[5]); 00382 int PMsgID = atoi(argv[6]); 00383 int entrynb = MSGTinsert(msgid,fec,LspID,src,PMsgID); 00384 tcl.resultf("%d", entrynb); 00385 return (TCL_OK); 00386 } 00387 } 00388 return (Agent::command(argc, argv)); 00389 }
Here is the call graph for this function: ![]() |
|
|
Definition at line 389 of file agent.cc. Referenced by Agent::command().
|
|
|
||||||||||||
|
Definition at line 102 of file object.cc. References NsObject::debug_. 00103 { 00104 if (!debug_) 00105 return; 00106 va_list ap; 00107 va_start(ap, fmt); 00108 vprintf(fmt, ap); 00109 }
|
|
||||||||||||||||
|
Reimplemented from Agent. Definition at line 103 of file ldp.cc. References Agent::delay_bind_dispatch(), and trace_ldp_. 00105 { 00106 if (delay_bind_bool(varName,localName,"trace_ldp_",&trace_ldp_,tracer)) 00107 return TCL_OK; 00108 return Agent::delay_bind_dispatch(varName, localName, tracer); 00109 }
Here is the call graph for this function: ![]() |
|
|
Reimplemented from Agent. Definition at line 97 of file ldp.cc. References Agent::delay_bind_init_all(). 00098 { 00099 delay_bind_init_one("trace_ldp_"); 00100 Agent::delay_bind_init_all(); 00101 }
Here is the call graph for this function: ![]() |
|
|
Definition at line 222 of file agent.cc. References ns_addr_t::addr_, Agent::dst_, Agent::flushAVar(), Agent::here_, Scheduler::instance(), TIME_FORMAT, and Agent::traceName_. Referenced by Agent::command(). 00223 { 00224 char wrk[256]; 00225 00226 // XXX we don't know InstVar outside of Tcl! Is there any 00227 // tracedvars hidden in InstVar? If so, shall we have a tclclInt.h? 00228 TracedVar* var = tracedvar_; 00229 for ( ; var != 0; var = var->next_) 00230 flushAVar(var); 00231 00232 // we need to flush all var values to trace file, 00233 // so nam can do backtracing 00234 sprintf(wrk, "a -t "TIME_FORMAT" -s %d -d %d -n %s -x", 00235 Scheduler::instance().clock(), here_.addr_, 00236 dst_.addr_, traceName_); 00237 if (traceName_ != NULL) 00238 delete[] traceName_; 00239 traceName_ = NULL; 00240 }
Here is the call graph for this function: ![]() |
|
|
||||||||||||
|
Definition at line 114 of file connector.cc. References Connector::drop_, Packet::free(), and NsObject::recv(). 00115 { 00116 if (drop_ != 0) 00117 drop_->recv(p, s); 00118 else 00119 Packet::free(p); 00120 }
Here is the call graph for this function: ![]() |
|
|
|
|
|
|
Definition at line 104 of file agent.h. References Agent::type_. 00104 { return type_; }
|
|
|
Implements Handler. Reimplemented in LinkDelay, LL, AckRecons, and Snoop. Definition at line 91 of file object.cc. References NsObject::recv().
Here is the call graph for this function: ![]() |
|
|
Definition at line 363 of file agent.cc. References Agent::app_, and Application::resume(). Referenced by FullTcpAgent::foutput(), XcpAgent::output(), TcpAgent::output(), RFC793eduTcpAgent::output(), QSNewRenoTcpAgent::output(), IntTcpAgent::output(), BayFullTcpAgent::output(), UdpAgent::sendmsg(), SA_Agent::sendmsg(), RTPAgent::sendmsg(), MessagePassingAgent::sendmsg(), TPAgent::sendto(), and MessagePassingAgent::sendto().
Here is the call graph for this function: ![]() |
|
|
Definition at line 456 of file agent.cc. References hdr_nv::access(), hdr_flags::access(), hdr_ip::access(), hdr_cmn::access(), ns_addr_t::addr_, Scheduler::clock(), hdr_flags::cong_action_, hdr_ip::daddr(), Agent::defttl_, hdr_cmn::direction(), hdr_ip::dport(), Agent::dst_, hdr_flags::ecn_, hdr_flags::ecn_capable_, hdr_flags::ecn_to_echo_, hdr_flags::eln_, hdr_cmn::error(), Agent::fid_, hdr_ip::flowid(), hdr_flags::fs_, NixNode::GetNixVector(), NixNode::GetNodeObject(), hdr_nv::h_used, Agent::here_, hdr_cmn::iface(), Scheduler::instance(), hdr_flags::no_ts_, hdr_cmn::NONE, hdr_nv::nv(), hdr_ip::offset(), hdr_nv::offset(), ns_addr_t::port_, hdr_flags::pri_, hdr_ip::prio(), Agent::prio_, hdr_cmn::ptype(), hdr_flags::qs_, NixVec::Reset(), hdr_ip::saddr(), hdr_cmn::size(), Agent::size_, hdr_ip::sport(), hdr_cmn::timestamp(), hdr_ip::ttl(), Agent::type_, hdr_cmn::uid(), Agent::uidcnt_, UNKN_IFACE, and iface_literal::value(). Referenced by Agent::allocpkt(), and PingResponder::recv(). 00457 { 00458 hdr_cmn* ch = hdr_cmn::access(p); 00459 ch->uid() = uidcnt_++; 00460 ch->ptype() = type_; 00461 ch->size() = size_; 00462 ch->timestamp() = Scheduler::instance().clock(); 00463 ch->iface() = UNKN_IFACE.value(); // from packet.h (agent is local) 00464 ch->direction() = hdr_cmn::NONE; 00465 00466 ch->error() = 0; /* pkt not corrupt to start with */ 00467 00468 hdr_ip* iph = hdr_ip::access(p); 00469 iph->saddr() = here_.addr_; 00470 iph->sport() = here_.port_; 00471 iph->daddr() = dst_.addr_; 00472 iph->dport() = dst_.port_; 00473 00474 //DEBUG 00475 //if (dst_ != -1) 00476 // printf("pl break\n"); 00477 00478 iph->flowid() = fid_; 00479 iph->prio() = prio_; 00480 iph->ttl() = defttl_; 00481 00482 hdr_flags* hf = hdr_flags::access(p); 00483 hf->ecn_capable_ = 0; 00484 hf->ecn_ = 0; 00485 hf->eln_ = 0; 00486 hf->ecn_to_echo_ = 0; 00487 hf->fs_ = 0; 00488 hf->no_ts_ = 0; 00489 hf->pri_ = 0; 00490 hf->cong_action_ = 0; 00491 hf->qs_ = 0; 00492 #ifdef HAVE_STL 00493 00494 hdr_nv* nv = hdr_nv::access(p); 00495 if (0) 00496 printf("Off hdr_nv %d, ip_hdr %d myaddr %d\n", 00497 hdr_nv::offset(), hdr_ip::offset(), here_.addr_); 00498 NixNode* pNixNode = NixNode::GetNodeObject(here_.addr_); 00499 if (0) 00500 printf("Node Object %p\n", pNixNode); 00501 if (pNixNode) { 00502 // If we get non-null, indicates nixvector routing in use 00503 // Delete any left over nv in the packet 00504 // Get a nixvector to the target (may create new) 00505 NixVec* pNv = pNixNode->GetNixVector(dst_.addr_); 00506 pNv->Reset(); 00507 nv->nv() = pNv; // And set the nixvec in the packet 00508 nv->h_used = 0; // And reset used portion to 0 00509 } 00510 #endif //HAVE_STL 00511 }
Here is the call graph for this function: ![]() |
|
||||||||||||
|
Definition at line 250 of file agent.cc. References min, OldValue::next_, Agent::oldValueList_, TRACEVAR_MAXVALUELENGTH, OldValue::val_, and OldValue::var_. Referenced by Agent::trace(). 00251 { 00252 OldValue *p = new OldValue; 00253 assert(p != NULL); 00254 strncpy(p->val_, value, min(strlen(value)+1, TRACEVAR_MAXVALUELENGTH)); 00255 p->var_ = v; 00256 p->next_ = NULL; 00257 if (oldValueList_ == NULL) 00258 oldValueList_ = p; 00259 else { 00260 p->next_ = oldValueList_; 00261 oldValueList_ = p; 00262 } 00263 }
|
|
|
Definition at line 61 of file object.h. References NsObject::debug_. 00061 { return debug_; }
|
|
|
Reimplemented in BayFullTcpAgent, RapAgent, and FullTcpAgent. Definition at line 381 of file agent.cc. Referenced by Agent::command().
|
|
|
Definition at line 242 of file agent.cc. References OldValue::next_, Agent::oldValueList_, and OldValue::var_. Referenced by Agent::trace(). 00243 { 00244 OldValue *p = oldValueList_; 00245 while ((p != NULL) && (p->var_ != v)) 00246 p = p->next_; 00247 return p; 00248 }
|
|
|
Definition at line 310 of file agent.cc. References ns_addr_t::addr_, Agent::channel_, Scheduler::clock(), Agent::here_, Scheduler::instance(), TIME_FORMAT, and Agent::traceName_. Referenced by Agent::command(). 00311 { 00312 char wrk[256]; 00313 int n; 00314 double curTime = (&Scheduler::instance() == NULL ? 0 : 00315 Scheduler::instance().clock()); 00316 00317 sprintf(wrk, "v -t "TIME_FORMAT" -e monitor_agent %d %s", 00318 curTime, here_.addr_, traceName_); 00319 n = strlen(wrk); 00320 wrk[n] = '\n'; 00321 wrk[n+1] = 0; 00322 if (channel_) 00323 (void)Tcl_Write(channel_, wrk, n+1); 00324 }
Here is the call graph for this function: ![]() |
|
|
Definition at line 489 of file ldp.cc. References MsgT::Entry, MsgTable::ERLspID, MsgTable::FEC, MsgTable::LabelOp, MsgTable::LspID, MsgTable::MsgID, MSGT_, MsgT::NB, MsgTable::PMsgID, and MsgTable::Src. Referenced by command(). 00490 { 00491 if ( (entrynb > -1) && (entrynb < MSGT_.NB) ) { 00492 MSGT_.Entry[entrynb].MsgID = -1; 00493 MSGT_.Entry[entrynb].FEC = MSGT_.Entry[entrynb].LspID = -1; 00494 MSGT_.Entry[entrynb].Src = MSGT_.Entry[entrynb].PMsgID = -1; 00495 MSGT_.Entry[entrynb].LabelOp = -1; 00496 MSGT_.Entry[entrynb].ERLspID = -1; 00497 } 00498 }
|
|
|
Definition at line 551 of file ldp.cc. References MsgT::Entry, MsgTable::FEC, MsgTable::LabelOp, MsgTable::LspID, MsgTable::MsgID, MSGT_, MsgT::NB, MsgTable::PMsgID, and MsgTable::Src. Referenced by command(). 00552 { 00553 for (int i = 0; i < MSGT_.NB; i++) { 00554 cerr << " # MsgID =" << MSGT_.Entry[i].MsgID << " "; 00555 cerr << " # FEC =" << MSGT_.Entry[i].FEC << " "; 00556 cerr << " # LspID =" << MSGT_.Entry[i].LspID << " "; 00557 cerr << " # Src =" << MSGT_.Entry[i].Src << " "; 00558 cerr << " # PMsgID=" << MSGT_.Entry[i].PMsgID<< " "; 00559 cerr << " # LabelOp=" << MSGT_.Entry[i].LabelOp << "\n"; 00560 } 00561 }
|
|
||||||||||||||||||||||||
|
Definition at line 468 of file ldp.cc. References MsgT::Entry, MsgTable::ERLspID, MsgTable::FEC, MsgTable::LabelOp, LDP_LabelALLOC, LDP_MaxMSGTEntryNB, MsgTable::LspID, MsgTable::MsgID, MSGT_, MSGTlocate(), MsgT::NB, MsgTable::PMsgID, and MsgTable::Src. Referenced by command(). 00469 { 00470 if (MSGT_.NB == LDP_MaxMSGTEntryNB - 1) 00471 return(-1); 00472 00473 if (MSGTlocate(FEC, LspID, Src) > -1) 00474 return(-1); 00475 00476 MSGT_.Entry[MSGT_.NB].MsgID = MsgID; 00477 MSGT_.Entry[MSGT_.NB].FEC = FEC; 00478 MSGT_.Entry[MSGT_.NB].LspID = LspID; 00479 MSGT_.Entry[MSGT_.NB].Src = Src; 00480 MSGT_.Entry[MSGT_.NB].PMsgID = PMsgID; 00481 MSGT_.Entry[MSGT_.NB].LabelOp = LDP_LabelALLOC; 00482 MSGT_.Entry[MSGT_.NB].ERLspID = -1; 00483 00484 MSGT_.NB++; 00485 00486 return(MSGT_.NB-1); 00487 }
Here is the call graph for this function: ![]() |
|
||||||||||||||||
|
Definition at line 513 of file ldp.cc. References MsgT::Entry, MsgTable::FEC, MsgTable::LspID, MSGT_, MsgT::NB, and MsgTable::Src. 00514 { 00515 int i; 00516 if ( (FEC < 0) && (Src < 0) ) { 00517 if ( LspID > -1) { 00518 for (i=0; i<MSGT_.NB; i++) 00519 if ( MSGT_.Entry[i].LspID == LspID ) 00520 return(i); 00521 } 00522 return(-1); 00523 } 00524 00525 for (i=0; i<MSGT_.NB; i++) { 00526 if ( (MSGT_.Entry[i].FEC == FEC ) && 00527 (MSGT_.Entry[i].LspID == LspID) && 00528 (MSGT_.Entry[i].Src == Src ) ) 00529 00530 return(i); 00531 } 00532 00533 return(-1); 00534 }
|
|
|
Definition at line 500 of file ldp.cc. References MsgT::Entry, MsgTable::MsgID, MSGT_, and MsgT::NB. Referenced by command(), and MSGTinsert(). 00501 { 00502 if ( MsgID < 0 ) 00503 return(-1); 00504 00505 for (int i=0; i<MSGT_.NB; i++) { 00506 if ( MSGT_.Entry[i].MsgID == MsgID ) 00507 return(i); 00508 } 00509 00510 return(-1); 00511 }
|
|
||||||||||||||||||||||||||||||||
|
Definition at line 536 of file ldp.cc. References MsgT::Entry, MsgTable::FEC, MsgTable::LabelOp, MsgTable::LspID, MsgTable::MsgID, MSGT_, MsgT::NB, MsgTable::PMsgID, and MsgTable::Src. Referenced by command(). 00538 { 00539 if ( (entrynb > -1) && (entrynb < MSGT_.NB) ) { 00540 MsgID = MSGT_.Entry[entrynb].MsgID; 00541 FEC = MSGT_.Entry[entrynb].FEC; 00542 LspID = MSGT_.Entry[entrynb].LspID; 00543 Src = MSGT_.Entry[entrynb].Src; 00544 PMsgID = MSGT_.Entry[entrynb].PMsgID; 00545 LabelOp= MSGT_.Entry[entrynb].LabelOp; 00546 } else { 00547 MsgID = FEC = LspID = Src = PMsgID = LabelOp = -1; 00548 } 00549 }
|
|
||||||||||||
|
Definition at line 591 of file ldp.cc. References LDP_MappingMSG, LDP_NotificationMSG, LDP_ReleaseMSG, LDP_RequestMSG, and LDP_WithdrawMSG. Referenced by trace(). 00592 { 00593 00594 switch (msgtype) { 00595 case LDP_NotificationMSG: /* Notification */ 00596 return("Notification"); 00597 00598 case LDP_MappingMSG: /* Label Mapping */ 00599 if (lspid >= 0) /* CR-LDP */ 00600 return("CR-Mapping"); 00601 else 00602 return("Mapping"); 00603 00604 case LDP_RequestMSG: /* Label Request */ 00605 if (lspid >= 0) 00606 return("CR-Request"); 00607 else 00608 return("Request"); 00609 00610 case LDP_WithdrawMSG: /* Label Withdraw */ 00611 return("Withdraw"); 00612 00613 case LDP_ReleaseMSG: /* Label Release */ 00614 return("Release"); 00615 } 00616 00617 return ("Error"); 00618 }
|
|
|
Definition at line 620 of file ldp.cc. References LDP_LoopDetected, and LDP_NoRoute. Referenced by recv(), and trace(). 00621 { 00622 switch (status) { 00623 case LDP_LoopDetected: 00624 return "LoopDetected"; 00625 00626 case LDP_NoRoute: 00627 return "NoRoute"; 00628 00629 default: 00630 return "Unknown"; 00631 } 00632 }
|
|
|
Definition at line 150 of file ldp.h. References peer_. 00150 { return peer_; }
|
|
||||||||||||||||||||
|
Definition at line 137 of file ldp.cc. References hdr_ldp::fec, hdr_ldp::label, hdr_ldp::msgid, hdr_ldp::msgtype, new_msgid_, hdr_ldp::pathvec, hdr_ldp::reqmsgid, and hdr_ldp::status. Referenced by command(). 00139 { 00140 hdrldp->msgtype = msgtype; 00141 hdrldp->msgid = new_msgid_; 00142 hdrldp->fec = -1; 00143 hdrldp->label = -1; 00144 hdrldp->reqmsgid= -1; 00145 hdrldp->status = -1; 00146 00147 int i; 00148 int len = strlen(pathvec); 00149 hdrldp->pathvec = (char *) malloc(len+1); 00150 for (i=0; i<len; i++) { 00151 if ( *(pathvec+i) == ' ' ) 00152 *(hdrldp->pathvec+i) = '_'; 00153 else 00154 *(hdrldp->pathvec+i) = *(pathvec+i); 00155 } 00156 *(hdrldp->pathvec+len) = '\0'; 00157 00158 len = strlen(er); 00159 hdrldp->er = (char *) malloc(len+1); 00160 for (i=0; i<len; i++) { 00161 if ( *(er+i) == ' ' ) 00162 *(hdrldp->er+i) = '_'; 00163 else 00164 *(hdrldp->er+i) = *(er+i); 00165 } 00166 *(hdrldp->er+len) = '\0'; 00167 00168 hdrldp->lspid = -1; 00169 hdrldp->rc = -1; 00170 }
|
|
||||||||||||
|
Definition at line 111 of file ldp.cc. Referenced by command(). 00112 { 00113 // header size for Version, PDU Length, and LDP Identifier 00114 int psize = 10; 00115 // size for message type and message id 00116 psize += 8; 00117 00118 int len = strlen(pathvec); 00119 if (len > 1) { 00120 psize += 4; // size for path vector header 00121 for (int i=0; i<len; i++) 00122 if ( *(pathvec+i) == ' ' ) { 00123 psize += 4; // size for path vector data 00124 } 00125 } 00126 00127 len = strlen(er); 00128 if (len > 1) { 00129 psize += 4; // size for explicit route header 00130 for (int i=0; i<len; i++) 00131 if (*(er+i) == ' ') 00132 psize += 4; // size for explicit route data 00133 } 00134 return (psize); 00135 }
|
|
|
||||||||||||
|
Reimplemented in CMUTrace. Definition at line 96 of file object.cc. References Packet::free(). 00097 { 00098 Packet::free(p); 00099 }
Here is the call graph for this function: ![]() |
|
||||||||||||
|
Reimplemented from Agent. Definition at line 391 of file ldp.cc. References hdr_ip::access(), hdr_ldp::access(), ns_addr_t::addr_, code, hdr_ldp::er, hdr_ldp::fec, Packet::free(), hdr_ldp::label, LDP_MappingMSG, LDP_NotificationMSG, LDP_ReleaseMSG, LDP_RequestMSG, LDP_WithdrawMSG, hdr_ldp::lspid, hdr_ldp::msgid, hdr_ldp::msgtype, parse_status(), hdr_ldp::pathvec, hdr_ldp::rc, rc, hdr_ldp::reqmsgid, hdr_ip::src_, hdr_ldp::status, and trace(). 00392 { 00393 char out[400]; 00394 Tcl& tcl = Tcl::instance(); 00395 00396 hdr_ldp *hdrldp = hdr_ldp::access(pkt); 00397 int msgtype = hdrldp->msgtype; 00398 int msgid = hdrldp->msgid; 00399 int fec = hdrldp->fec; 00400 int label = hdrldp->label; 00401 int reqmsgid= hdrldp->reqmsgid; 00402 int status = hdrldp->status; 00403 int lspid = hdrldp->lspid; 00404 int rc = hdrldp->rc; 00405 00406 char pathvec[400]; 00407 char er[400]; 00408 strcpy(pathvec, hdrldp->pathvec); 00409 strcpy(er, hdrldp->er); 00410 00411 ns_addr_t src = hdr_ip::access(pkt)->src_; 00412 trace(src, hdrldp); 00413 00414 free(hdrldp->pathvec); 00415 free(hdrldp->er); 00416 Packet::free(pkt); 00417 00418 switch (msgtype) { 00419 case LDP_NotificationMSG: /* Notification */ 00420 char code[30]; 00421 strcpy(code, parse_status(status)); 00422 sprintf(out, "%s get-notification-msg %d %s %d", 00423 name(), src.addr_, code, lspid); 00424 tcl.eval(out); 00425 break; 00426 00427 case LDP_MappingMSG: /* Label Mapping */ 00428 if (lspid >= 0) { 00429 /* CR-LDP */ 00430 sprintf(out, "%s get-cr-mapping-msg %d %d %d %d %d %d", 00431 name(), msgid, src.addr_, fec, 00432 label, lspid, reqmsgid); 00433 } else { 00434 sprintf(out, "%s get-mapping-msg %d %d %d %d %s %d", 00435 name(), msgid, src.addr_, fec, 00436 label, pathvec, reqmsgid); 00437 } 00438 tcl.eval(out); 00439 break; 00440 00441 case LDP_RequestMSG: /* Label Request */ 00442 if (lspid >= 0) { 00443 sprintf(out, 00444 "%s get-cr-request-msg %d %d %d %s %s %d %d", 00445 name(), msgid, src.addr_, fec, pathvec, 00446 er, lspid, rc); 00447 } else { 00448 sprintf(out, "%s get-request-msg %d %d %d %s", 00449 name(), msgid, src.addr_, fec, pathvec); 00450 } 00451 tcl.eval(out); 00452 break; 00453 00454 case LDP_WithdrawMSG: /* Label Withdraw */ 00455 sprintf(out, "%s get-withdraw-msg %d %d %d", 00456 name(), src.addr_, fec, lspid); 00457 tcl.eval(out); 00458 break; 00459 00460 case LDP_ReleaseMSG: /* Label Release */ 00461 sprintf(out, "%s get-release-msg %d %d %d", 00462 name(), src.addr_, fec, lspid); 00463 tcl.eval(out); 00464 break; 00465 } 00466 }
Here is the call graph for this function: ![]() |
|
|
Definition at line 354 of file agent.cc. References Agent::app_, and Application::recv(). Referenced by TcpAsymSink::recv(). 00355 { 00356 if (app_) 00357 app_->recv(nbytes); 00358 }
Here is the call graph for this function: ![]() |
|
|
Reimplemented from NsObject. Definition at line 78 of file agent.h.
|
|
|
Reimplemented in BayFullTcpAgent, HashClassifier, IvsSource, dsREDQueue, DiffusionRate, SinkAgent, DiffusionAgent, FloodingAgent, OmniMcastAgent, LinkDelay, CBQueue, DropTail, ErrorModel, PIQueue, Queue< T >, RedPDQueue, REDQueue, REMQueue, RIOQueue, Snoop, FackTcpAgent, FullTcpAgent, SackFullTcpAgent, RFC793eduTcpAgent, Sack1TcpAgent, TcpSink, DelAckSink, TcpAgent, VegasTcpAgent, toraAgent, Queue< T >, and XcpSink. Definition at line 70 of file object.cc. Referenced by NsObject::command().
|
|
|
Reimplemented in SRMAgent. Definition at line 91 of file agent.h. References Agent::sendmsg(). 00091 { sendmsg(nbytes); }
Here is the call graph for this function: ![]() |
|
||||||||||||
|
Reimplemented in HttpInvalAgent. Definition at line 84 of file agent.h. References Agent::sendmsg(). 00084 { sendmsg(sz, data, 0); }
Here is the call graph for this function: ![]() |
|
||||||||||||
|
||||||||||||
|
Reimplemented in SA_Agent, RTPAgent, UdpAgent, MessagePassingAgent, LmsSender, SRMAgent, SctpAgent, FullTcpAgent, TcpAgent, TfrcAgent, and SimpleTcpAgent. Definition at line 407 of file agent.cc.
|
|
||||||||||||||||
|
Reimplemented in UdpAgent, and MessagePassingAgent. Definition at line 400 of file agent.cc. References abort(). Referenced by Agent::command(), Application::send(), Agent::send(), TrafficTrace::timeout(), TelnetApp::timeout(), SctpApp1::timeout(), EXPOO_Traffic::timeout(), and CBR_PP_Traffic::timeout(). 00401 { 00402 fprintf(stderr, 00403 "Agent::sendmsg(int, AppData*, const char*) not implemented\n"); 00404 abort(); 00405 }
Here is the call graph for this function: ![]() |
|
||||||||||||||||
|
Reimplemented in MessagePassingAgent. |
|
||||||||||||||||
|
|
|
||||||||||||||||||||
|
Reimplemented in MessagePassingAgent. Definition at line 420 of file agent.cc.
|
|
||||||||||||||||||||
|
Definition at line 411 of file agent.cc. References abort(). Referenced by Agent::command(), AnWormApp::probe(), and DnhWormApp::send_probe(). 00413 { 00414 fprintf(stderr, 00415 "Agent::sendmsg(int, AppData*, const char*) not implemented\n"); 00416 abort(); 00417 }
Here is the call graph for this function: ![]() |
|
|
Definition at line 103 of file agent.h. References Agent::type_. Referenced by Agent::command(), RA_Traffic::init(), POO_Traffic::init(), EXPOO_Traffic::init(), and CBR_PP_Traffic::init(). 00103 { type_ = pkttype; }
|
|
|
Definition at line 51 of file connector.h. References Connector::drop_. Referenced by XCPWrapQ::command(). 00051 {drop_ = dt; }
|
|
|
Reimplemented in FullTcpAgent. Definition at line 98 of file agent.h. References Agent::size_. Referenced by rtProtoDV::command(), RLM_Sender::command(), imepAgent::getResponseListSize(), LandmarkAgent::makeUpdate(), Agent::recv(), SSMSRMAgent::send_glb_sess(), SSMSRMAgent::send_loc_sess(), SSMSRMAgent::send_rep_sess(), SRMAgent::send_sess(), TelnetApp::timeout(), and SctpApp1::timeout(). 00098 { return size_; }
|
|
|
Definition at line 49 of file connector.h. References Connector::target(), and Connector::target_.
Here is the call graph for this function: ![]() |
|
|
Definition at line 48 of file connector.h. References Connector::target_. Referenced by JoBS::assignRateDropsADC(), FQ::deque(), MIPMHAgent::reg(), MIPBSAgent::send_ads(), and Connector::target(). 00048 { return target_; }
|
|
|
Reimplemented in SA_Agent, RTPAgent, FtpClientAgent, BayFullTcpAgent, SinkAgent, RLM_Sender, MIPBSAgent, MIPMHAgent, RapAgent, RTCPAgent, TcpAsymSink, FackTcpAgent, FullTcpAgent, QSNewRenoTcpAgent, RBPVegasTcpAgent, RBPRenoTcpAgent, SackRHTcpAgent, Sack1TcpAgent, TcpSessionAgent, DelAckSink, TcpAgent, RenoTcpAgent, VegasTcpAgent, and SimpleTcpAgent. Definition at line 347 of file agent.cc. Referenced by SimpleTimer::expire().
|
|
|
Reimplemented in SctpAgent, and TcpAgent. Definition at line 266 of file agent.cc. References ns_addr_t::addr_, Agent::channel_, Agent::dst_, Agent::here_, Agent::insertOldValue(), Scheduler::instance(), Agent::lookupOldValue(), min, TIME_FORMAT, Agent::traceName_, TRACEVAR_MAXVALUELENGTH, and OldValue::val_. Referenced by TcpAgent::trace(). 00267 { 00268 if (channel_ == 0) 00269 return; 00270 char wrk[256], value[128]; 00271 int n; 00272 00273 // XXX we need to keep track of old values. What's the best way? 00274 v->value(value, 128); 00275 00276 // XXX hack: how do I know ns has not started yet? 00277 // if there's nothing in value, return 00278 static int started = 0; 00279 if (!started) { 00280 Tcl::instance().evalc("[Simulator instance] is-started"); 00281 if (Tcl::instance().result()[0] == '0') 00282 // Simulator not started, do nothing 00283 return; 00284 // remember for next time (so we don't always have to call to tcl) 00285 started = 1; 00286 }; 00287 00288 OldValue *ov = lookupOldValue(v); 00289 if (ov != NULL) { 00290 sprintf(wrk, 00291 "f -t "TIME_FORMAT" -s %d -d %d -n %s -a %s -v %s -o %s -T v", 00292 Scheduler::instance().clock(), here_.addr_, 00293 dst_.addr_, v->name(), traceName_, value, ov->val_); 00294 strncpy(ov->val_, 00295 value, 00296 min(strlen(value)+1, TRACEVAR_MAXVALUELENGTH)); 00297 } else { 00298 // if there is value, insert it into old value list 00299 sprintf(wrk, "f -t "TIME_FORMAT" -s %d -d %d -n %s -a %s -v %s -T v", 00300 Scheduler::instance().clock(), here_.addr_, 00301 dst_.addr_, v->name(), traceName_, value); 00302 insertOldValue(v, value); 00303 } 00304 n = strlen(wrk); 00305 wrk[n] = '\n'; 00306 wrk[n+1] = 0; 00307 (void)Tcl_Write(channel_, wrk, n+1); 00308 }
Here is the call graph for this function: ![]() |
|
||||||||||||
|
Definition at line 563 of file ldp.cc. References ns_addr_t::addr_, Scheduler::clock(), hdr_ldp::er, hdr_ldp::fec, Scheduler::instance(), hdr_ldp::label, hdr_ldp::lspid, hdr_ldp::msgid, hdr_ldp::msgtype, parse_msgtype(), parse_status(), hdr_ldp::pathvec, ns_addr_t::port_, hdr_ldp::rc, hdr_ldp::reqmsgid, hdr_ldp::status, and trace_ldp_. Referenced by recv(). 00564 { 00565 // XXX will be changed later to directly write to a output channel 00566 // instead of sending stuff to otcl 00567 if (trace_ldp_ == 1) { 00568 const char *msgtype = parse_msgtype(hdrldp->msgtype, 00569 hdrldp->lspid); 00570 const char *status = (hdrldp->msgtype == 0x0001) ? 00571 parse_status(hdrldp->status) : "*"; 00572 Tcl::instance().evalf("%s trace-ldp-packet %d %d %s %d %d %d " 00573 "%s %d %s %d %d %s %7f", 00574 name(), 00575 src.addr_, 00576 src.port_, 00577 msgtype, 00578 hdrldp->msgid, 00579 hdrldp->fec, 00580 hdrldp->label, 00581 hdrldp->pathvec, 00582 hdrldp->lspid, 00583 hdrldp->er, 00584 hdrldp->rc, 00585 hdrldp->reqmsgid, 00586 status, 00587 Scheduler::instance().clock()); 00588 } 00589 }
Here is the call graph for this function: ![]() |
|
|
Reimplemented in TcpAgent. Definition at line 149 of file agent.h.
|
|
|
Definition at line 151 of file ldp.h. References trace_ldp_. 00151 { trace_ldp_ = 1; }
|
|
|
Reimplemented in BayFullTcpAgent. Definition at line 137 of file agent.h. Referenced by Agent::attachApp(), Agent::idle(), RapAgent::IpgTimeout(), UdpAgent::recv(), TPAgent::recv(), SimpleTcpAgent::recv(), RapAgent::recv(), MessagePassingAgent::recv(), HttpInvalAgent::recv(), Agent::recv(), and Agent::recvBytes(). |
|
|
|
Reimplemented in FECModel, FloodAgent, and LandmarkAgent. Definition at line 66 of file object.h. Referenced by REDQueue::command(), RedPDQueue::command(), PushbackQueue::command(), NsObject::debug(), NsObject::delay_bind_dispatch(), PushbackQueue::enque(), NsObject::isdebug(), NsObject::NsObject(), TfrcAgent::recv(), PushbackQueue::reportDrop(), SctpAgent::Reset(), REDQueue::reset(), DropTail::shrink_queue(), and Delayer::try_send(). |
|
|
Definition at line 124 of file agent.h. Referenced by Agent::delay_bind_dispatch(), and Agent::initpkt(). |
|
|
Definition at line 59 of file connector.h. Referenced by XCPWrapQ::command(), Connector::command(), Connector::drop(), ErrorModel::recv(), and Connector::setDropTarget(). |
|
|
Reimplemented in AckRecons. Definition at line 118 of file agent.h. Referenced by Agent::addAgentTrace(), Agent::daddr(), Agent::delay_bind_dispatch(), Agent::deleteAgentTrace(), Agent::dport(), DSRProto::DSRProto(), Agent::flushAVar(), Agent::initpkt(), SRMAgent::recv(), SSMSRMAgent::recv(), NatAgent::recv(), SRMAgent::sendmsg(), PushbackAgent::sendMsg(), and Agent::trace(). |
|
|
Definition at line 148 of file agent.h. Referenced by TcpAgent::command(), and TcpAgent::trace_event(). |
|
|
Definition at line 121 of file agent.h. Referenced by Agent::delay_bind_dispatch(), AbsTcpAgent::flowid(), Agent::initpkt(), CtrMcastEncap::recv(), Sack1TcpAgent::timeout(), and TcpAgent::trace_event(). |
|
|
Reimplemented in BayFullTcpAgent, RapAgent, and FullTcpAgent. Definition at line 123 of file agent.h. Referenced by Agent::delay_bind_dispatch(). |
|
|
|
Definition at line 174 of file ldp.h. Referenced by command(), LDPAgent(), MSGTdelete(), MSGTdump(), MSGTinsert(), MSGTlocate(), and MSGTlookup(). |
|
|
|
|
|
Definition at line 135 of file agent.h. Referenced by Agent::insertOldValue(), Agent::lookupOldValue(), and Agent::~Agent(). |
|
|
|
|
|
Definition at line 122 of file agent.h. Referenced by Agent::delay_bind_dispatch(), and Agent::initpkt(). |
|
|
|
|
Definition at line 167 of file ldp.h. Referenced by delay_bind_dispatch(), trace(), and turn_on_trace(). |
|
|
Definition at line 134 of file agent.h. Referenced by Agent::addAgentTrace(), Agent::command(), Agent::deleteAgentTrace(), Agent::flushAVar(), Agent::monitorAgentTrace(), and Agent::trace(). |
|
|
Definition at line 120 of file agent.h. Referenced by Agent::get_pkttype(), Agent::initpkt(), FullTcpAgent::listen(), BayFullTcpAgent::listen(), RapAgent::SendAck(), SRMAgent::sendmsg(), RapAgent::SendPacket(), Agent::set_pkttype(), and XcpAgent::XcpAgent(). |
|
|
Definition at line 131 of file agent.h. Referenced by imepAgent::handlerControlTimer(), Agent::initpkt(), imepAgent::sendAck(), imepAgent::sendBeacon(), toraAgent::sendCLR(), imepAgent::sendHello(), toraAgent::sendQRY(), and toraAgent::sendUPD(). |
1.4.6