Go to the documentation of this file.
48 #ifndef __DEV_DIST_ETHERLINK_HH__
49 #define __DEV_DIST_ETHERLINK_HH__
56 #include "params/DistEtherLink.hh"
228 virtual void init()
override;
229 virtual void startup()
override;
237 #endif // __DEV_DIST_ETHERLINK_HH__
int16_t PortID
Port index/ID type, and a symbolic name for an invalid port id.
Model for a receive link.
void rxDone()
Receive done callback method.
void serialize(CheckpointOut &cp) const override
Serialize an object.
DistEtherLink(const Params &p)
void txDone()
Send done callback.
DistIface * distIface
Interface to talk to the peer gem5 processes.
RxLink * rxLink
Receive link.
EventFunctionWrapper _doneEvent
double ticksPerByte
Per byte send delay.
const std::string & name() const
Return port name (for DPRINTF).
Interface to the local simulated system.
void unserialize(CheckpointIn &cp) override
Unserialize an object.
const EventFunctionWrapper * doneEvent() const
Done events will be scheduled by DistIface (so we need the accessor)
const PortID InvalidPortID
LocalIface(const std::string &name, TxLink *tx, RxLink *rx, DistIface *m)
Model base class for a single uni-directional link.
Basic support for object serialization.
void unserialize(CheckpointIn &cp) override
Unserialize an object.
TxLink * txLink
Send link.
std::shared_ptr< EthPacketData > EthPacketPtr
Tick delayVar
Random component of the send delay.
uint64_t Tick
Tick count type.
Tick linkDelay
Transmission delay for the simulated Ethernet link.
Abstract superclass for simulation objects.
RxLink(const std::string &name, DistEtherLink *p, Tick delay, EtherDump *d)
TxLink(const std::string &name, DistEtherLink *p, double invBW, Tick delay_var, EtherDump *d)
Model for a fixed bandwidth full duplex ethernet link.
virtual void init() override
init() is called after all C++ SimObjects have been created and all ports are connected.
void setDistInt(DistIface *m)
Register our dist interface to talk to the peer gem5 processes.
void setDistInt(DistIface *m)
Register the dist interface to be used to talk to the peer gem5 processes.
virtual void sendDone()=0
The interface class to talk to peer gem5 processes.
Ports are used to interface objects to each other.
void serialize(CheckpointOut &cp) const override
Serialize an object.
Port & getPort(const std::string &if_name, PortID idx=InvalidPortID) override
Get a port with a given name and index.
EventFunctionWrapper doneEvent
DistEtherLinkParams Params
const std::string name() const
std::ostream CheckpointOut
bool recvPacket(EthPacketPtr pkt)
bool transmit(EthPacketPtr packet)
Initiate sending of a packet via this link.
void setLocalInt(LocalIface *i)
Reference material can be found at the JEDEC website: UFS standard http://www.jedec....
virtual void startup() override
startup() is the final initialization call before simulation.
Link(const std::string &name, DistEtherLink *p, EtherDump *d, Event *e)
Generated on Sun Jul 30 2023 01:56:55 for gem5 by doxygen 1.8.17