47 #ifndef __DEV_NET_ETHERLINK_HH__
48 #define __DEV_NET_ETHERLINK_HH__
56 #include "params/EtherLink.hh"
166 #endif // __DEV_NET_ETHERLINK_HH__
std::deque< std::pair< Tick, EthPacketPtr > > txQueue
Maintain a queue of in-flight packets.
void txComplete(EthPacketPtr packet)
Interface(const std::string &name, Link *txlink, Link *rxlink)
void unserialize(const std::string &base, CheckpointIn &cp)
EventWrapper< Link,&Link::txDone > DoneEvent
const std::string objName
void unserialize(CheckpointIn &cp) override
Unserialize an object.
Link(const std::string &name, EtherLink *p, int num, double rate, Tick delay, Tick delay_var, EtherDump *dump)
EventWrapper< Link,&Link::processTxQueue > TxQueueEvent
void serialize(const std::string &base, CheckpointOut &cp) const
uint64_t Tick
Tick count type.
EtherLink(const Params *p)
bool recvPacket(EthPacketPtr packet)
TxQueueEvent txQueueEvent
std::shared_ptr< EthPacketData > EthPacketPtr
void serialize(CheckpointOut &cp) const override
Serialize an object.
const Params * params() const
Defines global host-dependent types: Counter, Tick, and (indirectly) {int,uint}{8,16,32,64}_t.
The base EtherObject class, allows for an accesor function to a simobj that returns the Port...
EtherInt * getEthPort(const std::string &if_name, int idx) override
Additional function to return the Port of a memory object.
std::ostream CheckpointOut
const double ticksPerByte
void setRxInt(Interface *i)
const SimObjectParams * _params
Cached copy of the object parameters.
const std::string & name() const
Return port name (for DPRINTF).
virtual void sendDone()=0
bool transmit(EthPacketPtr packet)
void setTxInt(Interface *i)
const std::string name() const
Base Ethernet Object declaration.