#include <wired-phy.h>
Inheritance diagram for WiredPhy:


Definition at line 43 of file wired-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 |
| virtual void | recv (Packet *p, const char *s) |
| void | recv (Packet *p, Handler *h) |
| virtual void | recvOnly (Packet *) |
| void | removechnl () |
| void | sendDown (Packet *p) |
| int | sendUp (Packet *p) |
| void | setchnl (Channel *chnl) |
| virtual void | setnode (Node *node) |
| double | txtime (int bytes) |
| double | txtime (Packet *p) |
| NsObject * | uptarget () |
| WiredPhy (void) | |
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_ |
Private Member Functions | |
| int | initialized () |
|
|
Definition at line 47 of file wired-phy.cc. References Phy::bandwidth_. 00047 : Phy() 00048 { 00049 //propagation_ = 0; 00050 //bandwidth_ = 10*1e6; // 10M 00051 bind_bw("bandwidth_", &bandwidth_); 00052 }
|
|
|
Definition at line 85 of file phy.h. References Phy::bandwidth_. 00085 { return 1/bandwidth_; }
|
|
|
Definition at line 105 of file phy.h. References Phy::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 Phy. Definition at line 56 of file wired-phy.cc. References Phy::command(). 00056 { 00057 if (argc == 3) { 00058 TclObject *obj; 00059 if( (obj = TclObject::lookup(argv[2])) == 0) { 00060 fprintf(stderr, "%s lookup failed\n", argv[1]); 00061 return TCL_ERROR; 00062 } 00063 00064 //if (strcmp(argv[1], "propagation") == 0) { 00065 //assert(propagation_ == 0); 00066 //propagation_ = (TclObject*) obj; 00067 //return TCL_OK; 00068 //} 00069 } 00070 00071 return Phy::command(argc, argv); 00072 }
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 Phy::channel_, Phy::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 Phy::head_. Referenced by SatRouteObject::compute_topology(), SatChannel::find_peer_mac_addr(), LinkHandoffMgr::get_peer_linkhead(), and SatPhy::sendDown(). 00108 { return head_; }
|
|
|
Definition at line 68 of file wired-phy.h. References BiConnector::downtarget_, Phy::node_, and BiConnector::uptarget_. Referenced by sendDown(), and sendUp(). 00068 { 00069 return (node_ && uptarget_ && downtarget_ ); 00070 }
|
|
|
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 Phy::node_. Referenced by SatRouteObject::compute_topology(), Mac802_15_4::recv(), Mac802_11::send(), SatPhy::sendDown(), Mac802_15_4::sendDown(), WirelessChannel::sendUp(), Channel::sendUp(), and Phy::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(), Phy::sendDown(), Phy::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: ![]() |
|
|
Implements Phy. Definition at line 76 of file wired-phy.cc. References Phy::channel_, initialized(), and Channel::recv(). 00077 { 00078 /* 00079 * Sanity Check 00080 */ 00081 assert(initialized()); 00082 00083 /* 00084 * Stamp the packet with the interface arguments, txtime and 00085 * info reqd by recving interface to determine 00086 * collision/contention 00087 */ 00088 00089 00090 // and then send the packet 00091 channel_->recv(p, this); 00092 }
Here is the call graph for this function: ![]() |
|
||||||||||||
|
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: ![]() |
|
|
Implements Phy. Definition at line 95 of file wired-phy.cc. References initialized(). 00096 { 00097 /* 00098 * Sanity Check 00099 */ 00100 assert(initialized()); 00101 00102 /* check with propagation model for collision, channel 00103 contention */ 00104 /* Return one if pkt recv , else return zero.*/ 00105 return 1; 00106 }
Here is the call graph for this function: ![]() |
|
|
Definition at line 102 of file phy.h. References Phy::channel_. Referenced by SatChannel::add_interface(), and SatChannel::remove_interface(). 00102 { channel_ = chnl; }
|
|
|
Definition at line 103 of file phy.h. References Phy::node(), and Phy::node_. Referenced by SatNode::command(), and MobileNode::command().
Here is the call graph for this function: ![]() |
|
|
Definition at line 83 of file phy.h. References Phy::bandwidth_. 00083 { 00084 return (8.0 * bytes / bandwidth_); }
|
|
|
Definition at line 81 of file phy.h. References hdr_cmn::access(), and Phy::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 Phy::bittime(), Phy::Phy(), Phy::txtime(), and WiredPhy(). |
|
|
Definition at line 138 of file phy.h. Referenced by Phy::channel(), Phy::command(), Phy::dump(), Phy::Phy(), WirelessPhy::sendDown(), sendDown(), RepeaterPhy::sendDown(), SatPhy::sendDown(), and Phy::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 116 of file phy.h. Referenced by Phy::command(), Phy::head(), and Phy::Phy(). |
|
|
Definition at line 113 of file phy.h. Referenced by Phy::command(), Phy::dump(), Phy802_15_4::PD_DATA_request(), Phy::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