#include <phy.h>
Inheritance diagram for Phy:


Definition at line 71 of file phy.h.
Public Member Functions | |
| virtual double | bittime () const |
| virtual Channel * | channel (void) const |
| virtual void | debug (const char *fmt,...) |
| virtual int | delay_bind_dispatch (const char *varName, const char *localName, TclObject *tracer) |
| virtual void | delay_bind_init_all () |
| NsObject * | downtarget () |
| virtual void | drop (Packet *p) |
| virtual void | dump (void) const |
| LinkHead * | head () |
| void | insertchnl (struct if_head *head) |
| void | insertnode (struct if_head *head) |
| int | isdebug () const |
| Phy * | nextchnl (void) const |
| Phy * | nextnode (void) const |
| virtual Node * | node (void) const |
| Phy () | |
| virtual void | recv (Packet *p, const char *s) |
| void | recv (Packet *p, Handler *h) |
| virtual void | recvOnly (Packet *) |
| void | removechnl () |
| virtual void | sendDown (Packet *p)=0 |
| virtual int | sendUp (Packet *p)=0 |
| void | setchnl (Channel *chnl) |
| virtual void | setnode (Node *node) |
| double | txtime (int bytes) |
| double | txtime (Packet *p) |
| NsObject * | uptarget () |
Protected Member Functions | |
| int | command (int argc, const char *const *argv) |
| virtual void | drop (Packet *p, const char *s) |
| void | handle (Event *) |
| LIST_ENTRY (Phy) node_link_ | |
| LIST_ENTRY (Phy) chnl_link_ | |
| virtual void | reset () |
| virtual void | sendDown (Packet *p, Handler *h) |
| virtual void | sendUp (Packet *p, Handler *h) |
Protected Attributes | |
| double | bandwidth_ |
| Channel * | channel_ |
| int | debug_ |
| NsObject * | downtarget_ |
| NsObject * | drop_ |
| LinkHead * | head_ |
| int | index_ |
| Node * | node_ |
| NsObject * | uptarget_ |
|
|
Definition at line 54 of file phy.cc. References bandwidth_, channel_, head_, index_, InterfaceIndex, and node_. 00054 : BiConnector() { 00055 index_ = InterfaceIndex++; 00056 bandwidth_ = 0.0; 00057 channel_ = 0; 00058 node_ = 0; 00059 head_ = 0; 00060 }
|
|
|
Definition at line 85 of file phy.h. References bandwidth_. 00085 { return 1/bandwidth_; }
|
|
|
Definition at line 105 of file phy.h. References channel_. Referenced by SatLL::channel(), SatRouteObject::compute_topology(), LinkHandoffMgr::get_peer(), LinkHandoffMgr::get_peer_linkhead(), LinkHandoffMgr::get_peer_next_linkhead(), Mac802_3::sendDown(), and WirelessChannel::sendUp(). 00105 {return channel_;}
|
|
||||||||||||
|
Reimplemented from BiConnector. Reimplemented in WiredPhy, WirelessPhy, and SatPhy. Definition at line 63 of file phy.cc. References channel_, BiConnector::command(), BiConnector::downtarget_, head_, index_, and node_. Referenced by WirelessPhy::command(), WiredPhy::command(), and SatPhy::command(). 00063 { 00064 if (argc == 2) { 00065 Tcl& tcl = Tcl::instance(); 00066 00067 if(strcmp(argv[1], "id") == 0) { 00068 tcl.resultf("%d", index_); 00069 return TCL_OK; 00070 } 00071 } 00072 00073 else if(argc == 3) { 00074 00075 TclObject *obj; 00076 00077 if( (obj = TclObject::lookup(argv[2])) == 0) { 00078 fprintf(stderr, "%s lookup failed\n", argv[1]); 00079 return TCL_ERROR; 00080 } 00081 if (strcmp(argv[1], "channel") == 0) { 00082 assert(channel_ == 0); 00083 channel_ = (Channel*) obj; 00084 downtarget_ = (NsObject*) obj; 00085 // LIST_INSERT_HEAD() is done by Channel 00086 return TCL_OK; 00087 } 00088 else if (strcmp(argv[1], "node") == 0) { 00089 assert(node_ == 0); 00090 node_ = (Node*) obj; 00091 // LIST_INSERT_HEAD() is done by Node 00092 return TCL_OK; 00093 } 00094 else if (strcmp(argv[1], "linkhead") == 0) { 00095 head_ = (LinkHead*) obj; 00096 return (TCL_OK); 00097 } 00098 00099 } 00100 return BiConnector::command(argc, argv); 00101 }
Here is the call graph for this function: ![]() |
|
||||||||||||
|
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 in BayFullTcpAgent, Agent, MPLSAddressClassifier, LDPAgent, HbAfterRtoSctpAgent, MfrHbAfterRtoSctpAgent, MfrTimestampSctpAgent, MultipleFastRtxSctpAgent, NewRenoSctpAgent, TimestampSctpAgent, SctpAgent, FullTcpAgent, SackFullTcpAgent, RFC793eduTcpAgent, TcpSink, TcpAgent, VegasTcpAgent, XcpAgent, and XcpSink. Definition at line 63 of file object.cc. References NsObject::debug_. Referenced by MPLSAddressClassifier::delay_bind_dispatch(), and Agent::delay_bind_dispatch(). 00064 { 00065 if (delay_bind_bool(varName, localName, "debug_", &debug_, tracer)) 00066 return TCL_OK; 00067 return TclObject::delay_bind_dispatch(varName, localName, tracer); 00068 }
|
|
|
Reimplemented in BayFullTcpAgent, Agent, MPLSAddressClassifier, LDPAgent, HbAfterRtoSctpAgent, MfrHbAfterRtoSctpAgent, MfrTimestampSctpAgent, MultipleFastRtxSctpAgent, NewRenoSctpAgent, TimestampSctpAgent, SctpAgent, FullTcpAgent, SackFullTcpAgent, RFC793eduTcpAgent, TcpSink, TcpAgent, VegasTcpAgent, XcpAgent, and XcpSink. Definition at line 57 of file object.cc. Referenced by MPLSAddressClassifier::delay_bind_init_all(), and Agent::delay_bind_init_all().
|
|
|
Definition at line 49 of file bi-connector.h. References BiConnector::downtarget_. Referenced by SatLL::channel(). 00049 { return downtarget_; }
|
|
||||||||||||
|
Definition at line 144 of file bi-connector.cc. References BiConnector::drop_, Packet::free(), and NsObject::recv(). 00145 { 00146 if (drop_ != 0) 00147 drop_->recv(p, s); 00148 else 00149 Packet::free(p); 00150 }
Here is the call graph for this function: ![]() |
|
|
Definition at line 135 of file bi-connector.cc. References BiConnector::drop_, Packet::free(), and NsObject::recv(). Referenced by Mac802_3::collision(), SMAC::drop_CTS(), SMAC::drop_DATA(), SMAC::drop_RTS(), SMAC::drop_SYNC(), UnslottedAlohaMac::end_of_contention(), Mac802_15_4::recv(), MacTdma::recvHandler(), MacSimple::recvHandler(), Phy802_15_4::recvOverHandler(), Mac::resume(), MacCsma::resume(), UnslottedAlohaMac::sendUp(), SatMac::sendUp(), Mac::sendUp(), MacTdma::TX_Time(), and Mac802_11::txtime(). 00136 { 00137 if (drop_ != 0) 00138 drop_->recv(p); 00139 else 00140 Packet::free(p); 00141 }
Here is the call graph for this function: ![]() |
|
|
Reimplemented in WirelessPhy. Definition at line 183 of file phy.cc. References channel_, index_, and BiConnector::uptarget_. Referenced by WirelessPhy::dump(), MobileNode::dump(), and Channel::dump(). 00184 { 00185 fprintf(stdout, "\tINDEX: %d\n", 00186 index_); 00187 fprintf(stdout, "\tuptarget: %lx, channel: %lx", 00188 (long) uptarget_, (long) channel_); 00189 00190 }
|
|
|
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 108 of file phy.h. References head_. Referenced by SatRouteObject::compute_topology(), SatChannel::find_peer_mac_addr(), LinkHandoffMgr::get_peer_linkhead(), and SatPhy::sendDown(). 00108 { return head_; }
|
|
|
Definition at line 89 of file phy.h. References LIST_INSERT_HEAD. Referenced by SatChannel::add_interface(). 00089 { 00090 LIST_INSERT_HEAD(head, this, chnl_link_); 00091 //channel_ = chnl; 00092 }
|
|
|
Definition at line 95 of file phy.h. References LIST_INSERT_HEAD. Referenced by SatNode::command(), and MobileNode::command(). 00095 { 00096 LIST_INSERT_HEAD(head, this, node_link_); 00097 //node_ = node; 00098 }
|
|
|
Definition at line 61 of file object.h. References NsObject::debug_. 00061 { return debug_; }
|
|
|
|
|
|
|
|
|
Definition at line 88 of file phy.h. Referenced by WirelessChannel::calcHighestAntennaZ(), SatRouteObject::compute_topology(), Channel::dump(), LinkHandoffMgr::get_peer(), LinkHandoffMgr::get_peer_linkhead(), and Channel::sendUp().
|
|
|
Definition at line 94 of file phy.h. Referenced by MobileNode::dump(), and WirelessChannel::sendUp().
|
|
|
Reimplemented in WirelessPhy. Definition at line 104 of file phy.h. References node_. Referenced by SatRouteObject::compute_topology(), Mac802_15_4::recv(), Mac802_11::send(), SatPhy::sendDown(), Mac802_15_4::sendDown(), WirelessChannel::sendUp(), Channel::sendUp(), and setnode(). 00104 { return node_; }
|
|
||||||||||||
|
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 BiConnector. Reimplemented in RepeaterPhy, and Phy802_15_4. Definition at line 106 of file phy.cc. References hdr_cmn::direction(), hdr_cmn::DOWN, Packet::free(), HDR_CMN, NsObject::recv(), sendDown(), sendUp(), hdr_cmn::UP, and BiConnector::uptarget_. 00107 { 00108 struct hdr_cmn *hdr = HDR_CMN(p); 00109 //struct hdr_sr *hsr = HDR_SR(p); 00110 00111 /* 00112 * Handle outgoing packets 00113 */ 00114 switch(hdr->direction()) { 00115 case hdr_cmn::DOWN : 00116 /* 00117 * The MAC schedules its own EOT event so we just 00118 * ignore the handler here. It's only purpose 00119 * it distinguishing between incoming and outgoing 00120 * packets. 00121 */ 00122 sendDown(p); 00123 return; 00124 case hdr_cmn::UP : 00125 if (sendUp(p) == 0) { 00126 /* 00127 * XXX - This packet, even though not detected, 00128 * contributes to the Noise floor and hence 00129 * may affect the reception of other packets. 00130 */ 00131 Packet::free(p); 00132 return; 00133 } else { 00134 uptarget_->recv(p, (Handler*) 0); 00135 } 00136 break; 00137 default: 00138 printf("Direction for pkt-flow not specified; Sending pkt up the stack on default.\n\n"); 00139 if (sendUp(p) == 0) { 00140 /* 00141 * XXX - This packet, even though not detected, 00142 * contributes to the Noise floor and hence 00143 * may affect the reception of other packets. 00144 */ 00145 Packet::free(p); 00146 return; 00147 } else { 00148 uptarget_->recv(p, (Handler*) 0); 00149 } 00150 } 00151 00152 }
Here is the call graph for this function: ![]() |
|
|
Reimplemented in Agent, and Trace. Definition at line 56 of file object.h. Referenced by Trace::recvOnly().
|
|
|
Definition at line 99 of file phy.h. References LIST_REMOVE. Referenced by SatChannel::remove_interface(). 00099 { 00100 LIST_REMOVE(this, chnl_link_); 00101 }
|
|
|
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 Mac802_3, and Mac802_15_4. Definition at line 55 of file bi-connector.h. References BiConnector::downtarget_, and NsObject::recv(). Referenced by BiConnector::recv(). 00056 { downtarget_->recv(p, h); }
Here is the call graph for this function: ![]() |
|
|
Implemented in WiredPhy, WirelessPhy, SatPhy, and RepeaterPhy. Referenced by recv(). |
|
||||||||||||
|
Reimplemented in Mac802_3. Definition at line 57 of file bi-connector.h. References NsObject::recv(), and BiConnector::uptarget_. Referenced by BiConnector::recv().
Here is the call graph for this function: ![]() |
|
|
Implemented in WiredPhy, WirelessPhy, SatPhy, and RepeaterPhy. Referenced by recv(). |
|
|
Definition at line 102 of file phy.h. References channel_. Referenced by SatChannel::add_interface(), and SatChannel::remove_interface(). 00102 { channel_ = chnl; }
|
|
|
Definition at line 103 of file phy.h. Referenced by SatNode::command(), and MobileNode::command().
Here is the call graph for this function: ![]() |
|
|
Definition at line 83 of file phy.h. References bandwidth_. 00083 { 00084 return (8.0 * bytes / bandwidth_); }
|
|
|
Definition at line 81 of file phy.h. References hdr_cmn::access(), and bandwidth_. Referenced by Mac802_3::collision(), Mac8023HandlerSend::handle(), MacHandlerRetx::schedule(), WirelessPhy::sendDown(), and Mac802_3::sendDown(). 00081 { 00082 return (hdr_cmn::access(p)->size() * 8.0) / bandwidth_; }
Here is the call graph for this function: ![]() |
|
|
Definition at line 48 of file bi-connector.h. References BiConnector::uptarget_. 00048 { return uptarget_; }
|
|
|
Definition at line 137 of file phy.h. Referenced by bittime(), Phy(), txtime(), and WiredPhy::WiredPhy(). |
|
|
Definition at line 138 of file phy.h. Referenced by channel(), command(), dump(), Phy(), WirelessPhy::sendDown(), WiredPhy::sendDown(), RepeaterPhy::sendDown(), SatPhy::sendDown(), and setchnl(). |
|
|
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 64 of file bi-connector.h. Referenced by BiConnector::command(), and BiConnector::drop(). |
|
|
|
|
|
Definition at line 113 of file phy.h. Referenced by command(), dump(), Phy802_15_4::PD_DATA_request(), Phy(), Phy802_15_4::PLME_SET_request(), Phy802_15_4::PLME_SET_TRX_STATE_request(), Phy802_15_4::recv(), Phy802_15_4::recvOverHandler(), and Phy802_15_4::sendOverHandler(). |
|
|
1.4.6