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


Public Member Functions | |
| LDPAgent () | |
| virtual int | command (int argc, const char *const *argv) |
| virtual void | recv (Packet *, Handler *) |
| virtual void | delay_bind_init_all () |
| virtual int | delay_bind_dispatch (const char *, const char *, TclObject *) |
| int | peer () const |
| void | turn_on_trace () |
| void | PKTinit (hdr_ldp *hdrldp, int msgtype, const char *pathvec, const char *er) |
| int | PKTsize (const char *pathvec, const char *er) |
| int | MSGTinsert (int MsgID, int FEC, int LspID, int Src, int PMsgID) |
| void | MSGTdelete (int entrynb) |
| int | MSGTlocate (int MsgID) |
| int | MSGTlocate (int FEC, int LspID, int Src) |
| void | MSGTlookup (int entrynb, int &MsgID, int &FEC, int &LspID, int &src, int &PMsgID, int &LabelOp) |
| void | MSGTdump () |
| virtual void | recv (Packet *p, const char *s) |
| void | recvOnly (Packet *) |
| void | send (Packet *p, Handler *h) |
| virtual void | send (int sz, AppData *data) |
| virtual void | send (int nbytes) |
| virtual void | timeout (int tno) |
| virtual void | sendmsg (int sz, AppData *, const char *flags=0) |
| virtual void | sendmsg (int nbytes, const char *flags=0) |
| virtual void | sendto (int sz, AppData *, const char *flags, nsaddr_t dst) |
| virtual void | sendto (int nbytes, const char *flags, nsaddr_t dst) |
| virtual void | connect (nsaddr_t dst) |
| virtual void | close () |
| virtual void | listen () |
| virtual void | attachApp (Application *app) |
| virtual int & | size () |
| nsaddr_t & | addr () |
| nsaddr_t & | port () |
| nsaddr_t & | daddr () |
| nsaddr_t & | dport () |
| void | set_pkttype (packet_t pkttype) |
| packet_t | get_pkttype () |
| NsObject * | target () |
| virtual void | drop (Packet *p) |
| int | isdebug () const |
| virtual void | debug (const char *fmt,...) |
Protected Member Functions | |
| void | trace (ns_addr_t src, hdr_ldp *hdrldp) |
| char * | parse_msgtype (int msgtype, int lspid) |
| char * | parse_status (int status) |
| virtual void | recvBytes (int bytes) |
| virtual void | idle () |
| Packet * | allocpkt () const |
| Packet * | allocpkt (int) const |
| void | initpkt (Packet *) const |
| virtual void | trace (TracedVar *v) |
| void | deleteAgentTrace () |
| void | addAgentTrace (const char *name) |
| void | monitorAgentTrace () |
| OldValue * | lookupOldValue (TracedVar *v) |
| void | insertOldValue (TracedVar *v, const char *value) |
| void | dumpTracedVars () |
| virtual void | trace_event (char *eventtype) |
| virtual void | drop (Packet *p, const char *s) |
| virtual void | reset () |
| void | handle (Event *) |
Protected Attributes | |
| int | new_msgid_ |
| int | trace_ldp_ |
| int | peer_ |
| MsgT | MSGT_ |
| ns_addr_t | here_ |
| ns_addr_t | dst_ |
| int | size_ |
| packet_t | type_ |
| int | fid_ |
| int | prio_ |
| int | flags_ |
| int | defttl_ |
| Tcl_Channel | channel_ |
| char * | traceName_ |
| OldValue * | oldValueList_ |
| Application * | app_ |
| EventTrace * | et_ |
| NsObject * | target_ |
| NsObject * | drop_ |
| int | debug_ |
Static Protected Attributes | |
| int | uidcnt_ |
|
|
Definition at line 69 of file ldp.cc. References MSGT_, MsgT::NB, and PT_LDP.
00069 : Agent(PT_LDP), 00070 new_msgid_(0), trace_ldp_(0), peer_(0) 00071 { 00072 MSGT_.NB = 0; 00073 } |
|
|
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 517 of file agent.cc. References Packet::allocdata(), and Agent::allocpkt().
|
Here is the call graph for this function:

|
Here is the call graph for this function:

|
|
Definition at line 372 of file agent.cc. References Agent::app_. Referenced by 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().
00378 {
00379 }
|
|
||||||||||||
|
Reimplemented from Agent. Definition at line 150 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.
00151 {
00152 Tcl& tcl = Tcl::instance();
00153 if (argc == 2) {
00154 if (strcmp(argv[1], "msgtbl-dump") == 0) {
00155 MSGTdump();
00156 return (TCL_OK);
00157 } else if (strcmp(argv[1], "new-msgid") == 0) {
00158 tcl.resultf("%d", ++new_msgid_);
00159 return (TCL_OK);
00160 } else if (strcmp(argv[1], "peer-ldpnode") == 0) {
00161 tcl.resultf("%d", peer_);
00162 return (TCL_OK);
00163 }
00164 } else if (argc == 3) {
00165 if (strcmp(argv[1], "set-peer") == 0) {
00166 peer_ = atoi(argv[2]);
00167 return (TCL_OK);
00168 }
00169
00170 // The following is shared by all if-s in this branch
00171 int MsgID = atoi(argv[2]);
00172 int msgid,fec,lspid,src,pmsgid,labelop;
00173 int entrynb = MSGTlocate(MsgID);
00174 MSGTlookup(entrynb,msgid,fec,lspid,src,pmsgid,labelop);
00175
00176 if (strcmp(argv[1], "msgtbl-clear") == 0) {
00177 /* <agent> MSGTdelete MsgID */
00178 if (entrynb > -1)
00179 MSGTdelete(entrynb);
00180 return (TCL_OK);
00181 } else if (strcmp(argv[1], "msgtbl-get-src") == 0) {
00182 /* <agent> GetMSGTsrc MsgID */
00183 tcl.resultf("%d", src);
00184 return (TCL_OK);
00185 } else if (strcmp(argv[1], "msgtbl-get-reqmsgid") == 0) {
00186 /* <agent> GetMSGTpmsgid msgid */
00187 tcl.resultf("%d",pmsgid);
00188 return (TCL_OK);
00189 } else if (strcmp(argv[1], "msgtbl-get-labelop") == 0) {
00190 /* <agent> GetMSGTlabelpass msgid */
00191 tcl.resultf("%d", labelop);
00192 return (TCL_OK);
00193 } else if (strcmp(argv[1], "msgtbl-get-erlspid") == 0) {
00194 /*
00195 * <agent> msgtbl-get-erlspid <msgid>
00196 */
00197 tcl.resultf("%d",MSGT_.Entry[entrynb].ERLspID);
00198 return (TCL_OK);
00199 } else if (strcmp(argv[1], "msgtbl-set-labelpass") == 0) {
00200 /*
00201 * <agent> msgtbl-set-labelpass <msgid>
00202 */
00203 MSGT_.Entry[entrynb].LabelOp = LDP_LabelPASS;
00204 return (TCL_OK);
00205 }
00206 } else if (argc == 4) {
00207 if (strcmp(argv[1], "notification-msg") == 0) {
00208 /*
00209 * <agent> notification-msg <status> <lspid>
00210 */
00211 size_ = PKTsize("*", "*");
00212 if ( atoi(argv[3]) > -1 ) /* packet size adjustment */
00213 size_ += 16;
00214 else
00215 size_ += 8;
00216 Packet* pkt = allocpkt();
00217 hdr_ldp *hdrldp = hdr_ldp::access(pkt);
00218 PKTinit(hdrldp, LDP_NotificationMSG, "*", "*");
00219
00220 if (strcmp(argv[2], "LoopDetected") == 0)
00221 hdrldp->status = LDP_LoopDetected;
00222 else if (strcmp(argv[2], "NoRoute") == 0)
00223 hdrldp->status = LDP_NoRoute;
00224
00225 hdrldp->lspid = atoi(argv[3]);
00226 send(pkt, 0);
00227 return (TCL_OK);
00228 } else if (strcmp(argv[1], "withdraw-msg") == 0) {
00229 /*
00230 * <agent> withdraw-msg <fec> <lspid>
00231 */
00232 size_ = PKTsize("*","*");
00233 if ( atoi(argv[3]) > -1 ) /* packet size adjustment */
00234 size_ += 16;
00235 else
00236 size_ += 8;
00237 Packet* pkt = allocpkt();
00238 hdr_ldp *hdrldp = hdr_ldp::access(pkt);
00239 PKTinit(hdrldp, LDP_WithdrawMSG, "*", "*");
00240 hdrldp->fec = atoi(argv[2]);
00241 hdrldp->lspid = atoi(argv[3]);
00242 send(pkt, 0);
00243 return (TCL_OK);
00244 } else if (strcmp(argv[1], "release-msg") == 0) {
00245 /*
00246 * <agent> release-msg <fec> <lspid>
00247 */
00248 size_ = PKTsize("*","*");
00249 if ( atoi(argv[3]) > -1 ) /* packet size adjustment */
00250 size_ += 16;
00251 else
00252 size_ += 8;
00253 Packet* pkt = allocpkt();
00254 hdr_ldp *hdrldp = hdr_ldp::access(pkt);
00255 PKTinit(hdrldp, LDP_ReleaseMSG,"*","*");
00256 hdrldp->fec = atoi(argv[2]);
00257 hdrldp->lspid = atoi(argv[3]);
00258 send(pkt, 0);
00259 return (TCL_OK);
00260 } else if (strcmp(argv[1], "request-msg") == 0) {
00261 /*
00262 * <agent> request-msg <fec> <pathvec>
00263 */
00264 size_ = PKTsize(argv[3],"*");
00265 size_ += 8; /* packet size adjustment */
00266 Packet* pkt = allocpkt();
00267 hdr_ldp *hdrldp = hdr_ldp::access(pkt);
00268 PKTinit(hdrldp, LDP_RequestMSG, argv[3], "*");
00269 hdrldp->fec = atoi(argv[2]);
00270 send(pkt, 0);
00271 return (TCL_OK);
00272 } else if (strcmp(argv[1], "msgtbl-set-labelstack") == 0) {
00273 /*
00274 * <agent> msgtbl-set-labelstack <msgid> <erlspid>
00275 */
00276 int MsgID = atoi(argv[2]);
00277 int ERLspID = atoi(argv[3]);
00278 int entrynb = MSGTlocate(MsgID);
00279 MSGT_.Entry[entrynb].LabelOp = LDP_LabelSTACK;
00280 MSGT_.Entry[entrynb].ERLspID = ERLspID;
00281 return (TCL_OK);
00282 }
00283 } else if (argc == 5) {
00284 if (strcmp(argv[1], "msgtbl-get-msgid") == 0) {
00285 /*
00286 * <classifier> msgtbl-get-msgid <FEC> <LspID> <Src>
00287 */
00288 int msgid,tmp;
00289 int fec = atoi(argv[2]);
00290 int LspID = atoi(argv[3]);
00291 int src = atoi(argv[4]);
00292 int entrynb = MSGTlocate(fec,LspID,src);
00293
00294 MSGTlookup(entrynb,msgid,tmp,tmp,tmp,tmp,tmp);
00295 tcl.resultf("%d", msgid);
00296 return (TCL_OK);
00297 }
00298 } else if (argc == 6) {
00299 if (strcmp(argv[1], "mapping-msg") == 0) {
00300 /*
00301 * <agent> mapping <fec> <label> <pathvec> <premsgid>
00302 */
00303 size_ = PKTsize(argv[4],"*");
00304 if ( atoi(argv[5]) > -1 ) /* packet size adjustment*/
00305 size_ += 24;
00306 else
00307 size_ += 16;
00308 Packet* pkt = allocpkt();
00309 hdr_ldp *hdrldp = hdr_ldp::access(pkt);
00310 PKTinit(hdrldp, LDP_MappingMSG, argv[4], "*");
00311 hdrldp->fec = atoi(argv[2]);
00312 hdrldp->label = atoi(argv[3]);
00313 hdrldp->reqmsgid= atoi(argv[5]);
00314 send(pkt, 0);
00315 return (TCL_OK);
00316 } else if (strcmp(argv[1], "cr-mapping-msg") == 0) {
00317 /*
00318 * <agent> cr-mapping-msg <fec> <label> <lspid>
00319 * <premsgid>
00320 */
00321 size_ = PKTsize("*","*");
00322 size_ += 32; /* packet size adjustment */
00323 Packet* pkt = allocpkt();
00324 hdr_ldp *hdrldp = hdr_ldp::access(pkt);
00325 PKTinit(hdrldp, LDP_MappingMSG, "*", "*");
00326 hdrldp->fec = atoi(argv[2]);
00327 hdrldp->label = atoi(argv[3]);
00328 hdrldp->lspid = atoi(argv[4]);
00329 hdrldp->reqmsgid= atoi(argv[5]);
00330 send(pkt, 0);
00331 return (TCL_OK);
00332 }
00333 } else if (argc == 7) {
00334 if (strcmp(argv[1], "cr-request-msg") == 0) {
00335 /*
00336 * <agent> cr-request <fec> <pathvec> <er> <lspid> <rc>
00337 */
00338 size_ = PKTsize(argv[3],argv[4]);
00339 if (atoi(argv[6]) > -1) /* packet size adjustment */
00340 size_ += 24;
00341 else
00342 size_ += 16;
00343 Packet* pkt = allocpkt();
00344 hdr_ldp *hdrldp = hdr_ldp::access(pkt);
00345 PKTinit(hdrldp, LDP_RequestMSG, argv[3], argv[4]);
00346 hdrldp->fec = atoi(argv[2]);
00347 hdrldp->lspid = atoi(argv[5]);
00348 hdrldp->rc = atoi(argv[6]);
00349 send(pkt, 0);
00350 return (TCL_OK);
00351 } else if (strcmp(argv[1], "msgtbl-install") == 0) {
00352 /*
00353 * <agent> msgtbl-install <msgid> <FEC> <LspID>
00354 * <Src> <Pmsgid>
00355 */
00356 int msgid = atoi(argv[2]);
00357 int fec = atoi(argv[3]);
00358 int LspID = atoi(argv[4]);
00359 int src = atoi(argv[5]);
00360 int PMsgID = atoi(argv[6]);
00361 int entrynb = MSGTinsert(msgid,fec,LspID,src,PMsgID);
00362 tcl.resultf("%d", entrynb);
00363 return (TCL_OK);
00364 }
00365 }
00366 return (Agent::command(argc, argv));
00367 }
|
Here is the call graph for this function:

|
|
Definition at line 389 of file agent.cc. Referenced by Agent::command().
00390 {
00391 /*
00392 dst_ = dst;
00393 */
00394 }
|
|
|
||||||||||||
|
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 81 of file ldp.cc. References Agent::delay_bind_dispatch(), and trace_ldp_.
00083 {
00084 if (delay_bind_bool(varName,localName,"trace_ldp_",&trace_ldp_,tracer))
00085 return TCL_OK;
00086 return Agent::delay_bind_dispatch(varName, localName, tracer);
00087 }
|
Here is the call graph for this function:

|
|
Reimplemented from Agent. Definition at line 75 of file ldp.cc. References Agent::delay_bind_init_all().
00076 {
00077 delay_bind_init_one("trace_ldp_");
00078 Agent::delay_bind_init_all();
00079 }
|
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 99 of file agent.h. References Agent::dst_, nsaddr_t, and ns_addr_t::port_. Referenced by DSDV_Agent::lost_link(), TcpAsymSink::recv(), CtrMcastEncap::recv(), IntTcpAgent::rxmit_last(), IntTcpAgent::send_one(), rtProtoDV::sendpkt(), TcpAgent::trace_event(), TcpAgent::traceAll(), TcpAsymAgent::traceAll(), TcpAgent::traceVar(), TcpSessionAgent::traceVar(), and TcpAsymAgent::traceVar().
|
|
||||||||||||
|
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:

|
Here is the call graph for this function:

|
|
|
|
|
Definition at line 101 of file agent.h. References packet_t, and Agent::type_. Referenced by CBR_Traffic::init().
00101 { 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(), TcpAgent::output(), VegasTcpAgent::output(), RFC793eduTcpAgent::output(), QSNewRenoTcpAgent::output(), IntTcpAgent::output(), BayFullTcpAgent::output(), UdpAgent::sendmsg(), SA_Agent::sendmsg(), and RTPAgent::sendmsg().
|
Here is the call graph for this function:

|
|
Definition at line 446 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(), NixVec::Reset(), hdr_ip::saddr(), hdr_cmn::size(), Agent::size_, hdr_ip::sport(), hdr_cmn::timestamp(), hdr_ip::ttl(), Agent::type_, hdr_cmn::uid(), and Agent::uidcnt_. Referenced by Agent::allocpkt(), and PingResponder::recv().
00447 {
00448 hdr_cmn* ch = hdr_cmn::access(p);
00449 ch->uid() = uidcnt_++;
00450 ch->ptype() = type_;
00451 ch->size() = size_;
00452 ch->timestamp() = Scheduler::instance().clock();
00453 ch->iface() = UNKN_IFACE.value(); // from packet.h (agent is local)
00454 ch->direction() = hdr_cmn::NONE;
00455
00456 ch->error() = 0; /* pkt not corrupt to start with */
00457
00458 hdr_ip* iph = hdr_ip::access(p);
00459 iph->saddr() = here_.addr_;
00460 iph->sport() = here_.port_;
00461 iph->daddr() = dst_.addr_;
00462 iph->dport() = dst_.port_;
00463
00464 //DEBUG
00465 //if (dst_ != -1)
00466 // printf("pl break\n");
00467
00468 iph->flowid() = fid_;
00469 iph->prio() = prio_;
00470 iph->ttl() = defttl_;
00471
00472 hdr_flags* hf = hdr_flags::access(p);
00473 hf->ecn_capable_ = 0;
00474 hf->ecn_ = 0;
00475 hf->eln_ = 0;
00476 hf->ecn_to_echo_ = 0;
00477 hf->fs_ = 0;
00478 hf->no_ts_ = 0;
00479 hf->pri_ = 0;
00480 hf->cong_action_ = 0;
00481 #ifdef HAVE_STL
00482
00483 hdr_nv* nv = hdr_nv::access(p);
00484 if (0)
00485 printf("Off hdr_nv %d, ip_hdr %d myaddr %ld\n",
00486 hdr_nv::offset(), hdr_ip::offset(), here_.addr_);
00487 NixNode* pNixNode = NixNode::GetNodeObject(here_.addr_);
00488 if (0)
00489 printf("Node Object %p\n", pNixNode);
00490 if (pNixNode) {
00491 // If we get non-null, indicates nixvector routing in use
00492 // Delete any left over nv in the packet
00493 // Get a nixvector to the target (may create new)
00494 NixVec* pNv = pNixNode->GetNixVector(dst_.addr_);
00495 pNv->Reset();
00496 nv->nv() = pNv; // And set the nixvec in the packet
00497 nv->h_used = 0; // And reset used portion to 0
00498 }
00499 #endif //HAVE_STL
00500 }
|
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().
00382 {
00383 }
|
|
|
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 467 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().
00468 {
00469 if ( (entrynb > -1) && (entrynb < MSGT_.NB) ) {
00470 MSGT_.Entry[entrynb].MsgID = -1;
00471 MSGT_.Entry[entrynb].FEC = MSGT_.Entry[entrynb].LspID = -1;
00472 MSGT_.Entry[entrynb].Src = MSGT_.Entry[entrynb].PMsgID = -1;
00473 MSGT_.Entry[entrynb].LabelOp = -1;
00474 MSGT_.Entry[entrynb].ERLspID = -1;
00475 }
00476 }
|
|
|
Definition at line 529 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 MPLSModule::command(), and command().
00530 {
00531 for (int i = 0; i < MSGT_.NB; i++) {
00532 cerr << " # MsgID =" << MSGT_.Entry[i].MsgID << " ";
00533 cerr << " # FEC =" << MSGT_.Entry[i].FEC << " ";
00534 cerr << " # LspID =" << MSGT_.Entry[i].LspID << " ";
00535 cerr << " # Src =" << MSGT_.Entry[i].Src << " ";
00536 cerr << " # PMsgID=" << MSGT_.Entry[i].PMsgID<< " ";
00537 cerr << " # LabelOp=" << MSGT_.Entry[i].LabelOp << "\n";
00538 }
00539 }
|
|
||||||||||||||||||||||||
|
Definition at line 446 of file ldp.cc. References MsgT::Entry, LDP_LabelALLOC, LDP_MaxMSGTEntryNB, MSGT_, MSGTlocate(), and MsgT::NB. Referenced by command().
00447 {
00448 if (MSGT_.NB == LDP_MaxMSGTEntryNB - 1)
00449 return(-1);
00450
00451 if (MSGTlocate(FEC, LspID, Src) > -1)
00452 return(-1);
00453
00454 MSGT_.Entry[MSGT_.NB].MsgID = MsgID;
00455 MSGT_.Entry[MSGT_.NB].FEC = FEC;
00456 MSGT_.Entry[MSGT_.NB].LspID = LspID;
00457 MSGT_.Entry[MSGT_.NB].Src = Src;
00458 MSGT_.Entry[MSGT_.NB].PMsgID = PMsgID;
00459 MSGT_.Entry[MSGT_.NB].LabelOp = LDP_LabelALLOC;
00460 MSGT_.Entry[MSGT_.NB].ERLspID = -1;
00461
00462 MSGT_.NB++;
00463
00464 return(MSGT_.NB-1);
00465 }
|
Here is the call graph for this function:

|
||||||||||||||||
|
Definition at line 491 of file ldp.cc. References MsgT::Entry, MsgTable::FEC, MsgTable::LspID, MSGT_, MsgT::NB, and MsgTable::Src.
00492 {
00493 int i;
00494 if ( (FEC < 0) && (Src < 0) ) {
00495 if ( LspID > -1) {
00496 for (i=0; i<MSGT_.NB; i++)
00497 if ( MSGT_.Entry[i].LspID == LspID )
00498 return(i);
00499 }
00500 return(-1);
00501 }
00502
00503 for (i=0; i<MSGT_.NB; i++) {
00504 if ( (MSGT_.Entry[i].FEC == FEC ) &&
00505 (MSGT_.Entry[i].LspID == LspID) &&
00506 (MSGT_.Entry[i].Src == Src ) )
00507
00508 return(i);
00509 }
00510
00511 return(-1);
00512 }
|
|
|
Definition at line 478 of file ldp.cc. References MsgT::Entry, MsgTable::MsgID, MSGT_, and MsgT::NB. Referenced by command(), and MSGTinsert().
|
|
||||||||||||||||||||||||||||||||
|
Definition at line 514 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().
00516 {
00517 if ( (entrynb > -1) && (entrynb < MSGT_.NB) ) {
00518 MsgID = MSGT_.Entry[entrynb].MsgID;
00519 FEC = MSGT_.Entry[entrynb].FEC;
00520 LspID = MSGT_.Entry[entrynb].LspID;
00521 Src = MSGT_.Entry[entrynb].Src;
00522 PMsgID = MSGT_.Entry[entrynb].PMsgID;
00523 LabelOp= MSGT_.Entry[entrynb].LabelOp;
00524 } else {
00525 MsgID = FEC = LspID = Src = PMsgID = LabelOp = -1;
00526 }
00527 }
|
|
||||||||||||
|
Definition at line 569 of file ldp.cc. References LDP_MappingMSG, LDP_NotificationMSG, LDP_ReleaseMSG, LDP_RequestMSG, and LDP_WithdrawMSG. Referenced by trace().
00570 {
00571
00572 switch (msgtype) {
00573 case LDP_NotificationMSG: /* Notification */
00574 return("Notification");
00575
00576 case LDP_MappingMSG: /* Label Mapping */
00577 if (lspid >= 0) /* CR-LDP */
00578 return("CR-Mapping");
00579 else
00580 return("Mapping");
00581
00582 case LDP_RequestMSG: /* Label Request */
00583 if (lspid >= 0)
00584 return("CR-Request");
00585 else
00586 return("Request");
00587
00588 case LDP_WithdrawMSG: /* Label Withdraw */
00589 return("Withdraw");
00590
00591 case LDP_ReleaseMSG: /* Label Release */
00592 return("Release");
00593 }
00594
00595 return ("Error");
00596 }
|
|
|
Definition at line 598 of file ldp.cc. References LDP_LoopDetected, and LDP_NoRoute. Referenced by recv(), and trace().
00599 {
00600 switch (status) {
00601 case LDP_LoopDetected:
00602 return "LoopDetected";
00603
00604 case LDP_NoRoute:
00605 return "NoRoute";
00606
00607 default:
00608 return "Unknown";
00609 }
00610 }
|
|
|
Definition at line 128 of file ldp.h. References peer_. Referenced by MPLSModule::exist_ldp().
00128 { return peer_; }
|
|
||||||||||||||||||||
|
Definition at line 115 of file ldp.cc. References hdr_ldp::er, hdr_ldp::fec, hdr_ldp::label, len, hdr_ldp::lspid, hdr_ldp::msgid, hdr_ldp::msgtype, new_msgid_, hdr_ldp::pathvec, hdr_ldp::rc, hdr_ldp::reqmsgid, and hdr_ldp::status. Referenced by command().
00117 {
00118 hdrldp->msgtype = msgtype;
00119 hdrldp->msgid = new_msgid_;
00120 hdrldp->fec = -1;
00121 hdrldp->label = -1;
00122 hdrldp->reqmsgid= -1;
00123 hdrldp->status = -1;
00124
00125 int i;
00126 int len = strlen(pathvec);
00127 hdrldp->pathvec = (char *) malloc(len+1);
00128 for (i=0; i<len; i++) {
00129 if ( *(pathvec+i) == ' ' )
00130 *(hdrldp->pathvec+i) = '_';
00131 else
00132 *(hdrldp->pathvec+i) = *(pathvec+i);
00133 }
00134 *(hdrldp->pathvec+len) = '\0';
00135
00136 len = strlen(er);
00137 hdrldp->er = (char *) malloc(len+1);
00138 for (i=0; i<len; i++) {
00139 if ( *(er+i) == ' ' )
00140 *(hdrldp->er+i) = '_';
00141 else
00142 *(hdrldp->er+i) = *(er+i);
00143 }
00144 *(hdrldp->er+len) = '\0';
00145
00146 hdrldp->lspid = -1;
00147 hdrldp->rc = -1;
00148 }
|
|
||||||||||||
|
Definition at line 89 of file ldp.cc. References len. Referenced by command().
00090 {
00091 // header size for Version, PDU Length, and LDP Identifier
00092 int psize = 10;
00093 // size for message type and message id
00094 psize += 8;
00095
00096 int len = strlen(pathvec);
00097 if (len > 1) {
00098 psize += 4; // size for path vector header
00099 for (int i=0; i<len; i++)
00100 if ( *(pathvec+i) == ' ' ) {
00101 psize += 4; // size for path vector data
00102 }
00103 }
00104
00105 len = strlen(er);
00106 if (len > 1) {
00107 psize += 4; // size for explicit route header
00108 for (int i=0; i<len; i++)
00109 if (*(er+i) == ' ')
00110 psize += 4; // size for explicit route data
00111 }
00112 return (psize);
00113 }
|
|
|
Definition at line 97 of file agent.h. References Agent::here_, nsaddr_t, and ns_addr_t::port_. Referenced by LmsAgent::pkt2agent(), TcpAsymSink::recv(), MIPBSAgent::recv(), LmsAgent::recv(), HttpInvalAgent::recv(), CtrMcastEncap::recv(), IntTcpAgent::rxmit_last(), IntTcpAgent::send_one(), LmsReceiver::send_refresh(), IcmpAgent::sendredirect(), TcpAgent::trace_event(), TcpAgent::traceAll(), TcpAsymAgent::traceAll(), TcpAgent::traceVar(), TcpSessionAgent::traceVar(), and TcpAsymAgent::traceVar().
|
|
||||||||||||
|
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 369 of file ldp.cc. References hdr_ip::access(), hdr_ldp::access(), ns_addr_t::addr_, 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().
00370 {
00371 char out[400];
00372 Tcl& tcl = Tcl::instance();
00373
00374 hdr_ldp *hdrldp = hdr_ldp::access(pkt);
00375 int msgtype = hdrldp->msgtype;
00376 int msgid = hdrldp->msgid;
00377 int fec = hdrldp->fec;
00378 int label = hdrldp->label;
00379 int reqmsgid= hdrldp->reqmsgid;
00380 int status = hdrldp->status;
00381 int lspid = hdrldp->lspid;
00382 int rc = hdrldp->rc;
00383
00384 char pathvec[400];
00385 char er[400];
00386 strcpy(pathvec, hdrldp->pathvec);
00387 strcpy(er, hdrldp->er);
00388
00389 ns_addr_t src = hdr_ip::access(pkt)->src_;
00390 trace(src, hdrldp);
00391
00392 free(hdrldp->pathvec);
00393 free(hdrldp->er);
00394 Packet::free(pkt);
00395
00396 switch (msgtype) {
00397 case LDP_NotificationMSG: /* Notification */
00398 char code[30];
00399 strcpy(code, parse_status(status));
00400 sprintf(out, "%s get-notification-msg %d %s %d",
00401 name(), src.addr_, code, lspid);
00402 tcl.eval(out);
00403 break;
00404
00405 case LDP_MappingMSG: /* Label Mapping */
00406 if (lspid >= 0) {
00407 /* CR-LDP */
00408 sprintf(out, "%s get-cr-mapping-msg %d %d %d %d %d %d",
00409 name(), msgid, src.addr_, fec,
00410 label, lspid, reqmsgid);
00411 } else {
00412 sprintf(out, "%s get-mapping-msg %d %d %d %d %s %d",
00413 name(), msgid, src.addr_, fec,
00414 label, pathvec, reqmsgid);
00415 }
00416 tcl.eval(out);
00417 break;
00418
00419 case LDP_RequestMSG: /* Label Request */
00420 if (lspid >= 0) {
00421 sprintf(out,
00422 "%s get-cr-request-msg %d %d %d %s %s %d %d",
00423 name(), msgid, src.addr_, fec, pathvec,
00424 er, lspid, rc);
00425 } else {
00426 sprintf(out, "%s get-request-msg %d %d %d %s",
00427 name(), msgid, src.addr_, fec, pathvec);
00428 }
00429 tcl.eval(out);
00430 break;
00431
00432 case LDP_WithdrawMSG: /* Label Withdraw */
00433 sprintf(out, "%s get-withdraw-msg %d %d %d",
00434 name(), src.addr_, fec, lspid);
00435 tcl.eval(out);
00436 break;
00437
00438 case LDP_ReleaseMSG: /* Label Release */
00439 sprintf(out, "%s get-release-msg %d %d %d",
00440 name(), src.addr_, fec, lspid);
00441 tcl.eval(out);
00442 break;
00443 }
00444 }
|
Here is the call graph for this function:

|
|
Definition at line 354 of file agent.cc. References Agent::app_, and Application::recv(). Referenced by DelAckSink::recv(), TcpSink::recv(), QSTcpSink::recv(), FullTcpAgent::recv(), and TcpAsymSink::recv().
|
Here is the call graph for this function:

|
|
Reimplemented from NsObject. Definition at line 78 of file agent.h.
00078 {};
|
|
|
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, and Queue< T >. Definition at line 70 of file object.cc. Referenced by NsObject::command().
00071 {
00072 }
|
|
|
Reimplemented in SRMAgent. Definition at line 89 of file agent.h. References Agent::sendmsg().
00089 { 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:

|
||||||||||||
Here is the call graph for this function:

|
||||||||||||
|
Reimplemented in SA_Agent, RTPAgent, UdpAgent, LmsSender, SRMAgent, FullTcpAgent, TcpAgent, TfrcAgent, and SimpleTcpAgent. Definition at line 415 of file agent.cc.
00416 {
00417 }
|
|
||||||||||||||||
|
Reimplemented in UdpAgent. Definition at line 400 of file agent.cc. References abort(). Referenced by Agent::command(), Application::send(), Agent::send(), TrafficTrace::timeout(), TelnetApp::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:

|
||||||||||||||||
|
|
|
||||||||||||||||||||
|
Definition at line 407 of file agent.cc. References abort(). Referenced by Agent::command().
00409 {
00410 fprintf(stderr,
00411 "Agent::sendmsg(int, AppData*, const char*) not implemented\n");
00412 abort();
00413 }
|
Here is the call graph for this function:

|
|
Definition at line 100 of file agent.h. References Agent::type_. Referenced by Agent::command(), HttpUInvalClass::create(), RA_Traffic::init(), POO_Traffic::init(), EXPOO_Traffic::init(), CBR_Traffic::init(), and CBR_PP_Traffic::init().
00100 { type_ = pkttype; }
|
|
|
Reimplemented in FullTcpAgent. Definition at line 95 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(), and TelnetApp::timeout().
00095 { return size_; }
|
|
|
Definition at line 48 of file connector.h. References Connector::target_. Referenced by JoBS::assignRateDropsADC(), FQ::deque(), QSAgent::recv(), and MIPMHAgent::reg().
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().
00348 {
00349 }
|
|
|
Reimplemented in 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 541 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().
00542 {
00543 // XXX will be changed later to directly write to a output channel
00544 // instead of sending stuff to otcl
00545 if (trace_ldp_ == 1) {
00546 const char *msgtype = parse_msgtype(hdrldp->msgtype,
00547 hdrldp->lspid);
00548 const char *status = (hdrldp->msgtype == 0x0001) ?
00549 parse_status(hdrldp->status) : "*";
00550 Tcl::instance().evalf("%s trace-ldp-packet %d %d %s %d %d %d "
00551 "%s %d %s %d %d %s %7f",
00552 name(),
00553 src.addr_,
00554 src.port_,
00555 msgtype,
00556 hdrldp->msgid,
00557 hdrldp->fec,
00558 hdrldp->label,
00559 hdrldp->pathvec,
00560 hdrldp->lspid,
00561 hdrldp->er,
00562 hdrldp->rc,
00563 hdrldp->reqmsgid,
00564 status,
00565 Scheduler::instance().clock());
00566 }
00567 }
|
Here is the call graph for this function:

|
|
Reimplemented in TcpAgent. Definition at line 146 of file agent.h.
00146 {}
|
|
|
Definition at line 129 of file ldp.h. References trace_ldp_. Referenced by MPLSModule::command().
00129 { trace_ldp_ = 1; }
|
|
|
Reimplemented in BayFullTcpAgent. Definition at line 134 of file agent.h. Referenced by Agent::attachApp(), Agent::idle(), RapAgent::IpgTimeout(), UdpAgent::recv(), SimpleTcpAgent::recv(), RapAgent::recv(), HttpInvalAgent::recv(), Agent::recv(), and Agent::recvBytes(). |
|
|
Definition at line 130 of file agent.h. Referenced by Agent::addAgentTrace(), Agent::command(), Agent::flushAVar(), Agent::monitorAgentTrace(), TcpAsymSink::recv(), Agent::trace(), TcpAgent::traceAll(), TcpAsymAgent::traceAll(), TcpAgent::traceVar(), TcpSessionAgent::traceVar(), and TcpAsymAgent::traceVar(). |
|
|
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(), RedPDQueue::enque(), PushbackQueue::enque(), NsObject::isdebug(), NsObject::NsObject(), TfrcAgent::recv(), PushbackQueue::reportDrop(), and REDQueue::reset(). |
|
|
Definition at line 121 of file agent.h. Referenced by Agent::delay_bind_dispatch(), and Agent::initpkt(). |
|
|
Definition at line 57 of file connector.h. Referenced by Connector::command(), Connector::drop(), and ErrorModel::recv(). |
|
|
Reimplemented in AckRecons. Definition at line 115 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 145 of file agent.h. Referenced by TcpAgent::command(), and TcpAgent::trace_event(). |
|
|
Definition at line 118 of file agent.h. Referenced by Agent::delay_bind_dispatch(), AbsTcpAgent::flowid(), Agent::initpkt(), FullTcpAgent::recv(), CtrMcastEncap::recv(), AbsTcpAgent::send_batch(), Sack1TcpAgent::timeout(), and TcpAgent::trace_event(). |
|
|
Reimplemented in BayFullTcpAgent, RapAgent, and FullTcpAgent. Definition at line 120 of file agent.h. Referenced by Agent::delay_bind_dispatch(). |
|
|
|
Definition at line 152 of file ldp.h. Referenced by command(), LDPAgent(), MSGTdelete(), MSGTdump(), MSGTinsert(), MSGTlocate(), and MSGTlookup(). |
|
|
|
|
|
Definition at line 132 of file agent.h. Referenced by Agent::insertOldValue(), Agent::lookupOldValue(), and Agent::~Agent(). |
|
|
|
|
|
Definition at line 119 of file agent.h. Referenced by Agent::delay_bind_dispatch(), and Agent::initpkt(). |
|
|
|
|
Definition at line 145 of file ldp.h. Referenced by delay_bind_dispatch(), trace(), and turn_on_trace(). |
|
|
Definition at line 131 of file agent.h. Referenced by Agent::addAgentTrace(), Agent::command(), Agent::deleteAgentTrace(), Agent::flushAVar(), Agent::monitorAgentTrace(), and Agent::trace(). |
|
|
Definition at line 117 of file agent.h. Referenced by Agent::get_pkttype(), Agent::initpkt(), FullTcpAgent::listen(), BayFullTcpAgent::listen(), RapAgent::SendAck(), SRMAgent::sendmsg(), RapAgent::SendPacket(), and Agent::set_pkttype(). |
|
|
Definition at line 68 of file agent.cc. Referenced by imepAgent::handlerControlTimer(), imepAgent::handlerReXmitTimer(), Agent::initpkt(), imepAgent::sendAck(), imepAgent::sendBeacon(), toraAgent::sendCLR(), imepAgent::sendHello(), toraAgent::sendQRY(), DSRAgent::sendUnknownFlow(), toraAgent::sendUPD(), and DSRAgent::xmitFailed(). |
1.3.3