gem5 v24.0.0.0
|
Class to encapsulate information about data packets received. More...
Classes | |
struct | Desc |
Received packet descriptor. More... | |
Public Member Functions | |
RecvScheduler (EventManager *em) | |
Scheduler for the incoming data packets. | |
void | init (Event *recv_done, Tick link_delay) |
Initialize network link parameters. | |
EthPacketPtr | popPacket () |
Fetch the next packet that is to be received by the simulated network link. | |
void | pushPacket (EthPacketPtr new_packet, Tick send_tick, Tick send_delay) |
Push a newly arrived packet into the desc queue. | |
void | serialize (CheckpointOut &cp) const override |
Serialize an object. | |
void | unserialize (CheckpointIn &cp) override |
Unserialize an object. | |
void | resumeRecvTicks () |
Adjust receive ticks for pending packets when restoring from a checkpoint. | |
Public Member Functions inherited from gem5::Serializable | |
Serializable () | |
virtual | ~Serializable () |
void | serializeSection (CheckpointOut &cp, const char *name) const |
Serialize an object into a new section. | |
void | serializeSection (CheckpointOut &cp, const std::string &name) const |
void | unserializeSection (CheckpointIn &cp, const char *name) |
Unserialize an a child object. | |
void | unserializeSection (CheckpointIn &cp, const std::string &name) |
Private Member Functions | |
Tick | calcReceiveTick (Tick send_tick, Tick send_delay, Tick prev_recv_tick) |
Calculate the tick to schedule the next receive done event. | |
Private Attributes | |
std::queue< Desc > | descQueue |
The queue to store the receive descriptors. | |
Tick | prevRecvTick |
The tick when the most recent receive event was processed. | |
Event * | recvDone |
The receive done event for the simulated Ethernet link. | |
Tick | linkDelay |
The link delay in ticks for the simulated Ethernet link. | |
EventManager * | eventManager |
The event manager associated with the simulated Ethernet link. | |
bool | ckptRestore |
Flag to set if receive ticks for pending packets need to be recalculated due to changed link latencies at a resume. | |
Additional Inherited Members | |
Static Public Member Functions inherited from gem5::Serializable | |
static const std::string & | currentSection () |
Gets the fully-qualified name of the active section. | |
static void | generateCheckpointOut (const std::string &cpt_dir, std::ofstream &outstream) |
Generate a checkpoint file so that the serialization can be routed to it. | |
Class to encapsulate information about data packets received.
Definition at line 333 of file dist_iface.hh.
|
inline |
Scheduler for the incoming data packets.
em | The event manager associated with the simulated Ethernet link. |
Definition at line 418 of file dist_iface.hh.
|
private |
Calculate the tick to schedule the next receive done event.
send_tick | The tick the packet was sent. |
send_delay | The simulated delay at the sender side. |
prev_recv_tick | Tick when the last receive event was processed. |
Definition at line 444 of file dist_iface.cc.
References gem5::curTick(), and panic_if.
Initialize network link parameters.
Definition at line 432 of file dist_iface.cc.
References gem5::curEventQueue().
Referenced by gem5::DistIface::recvThreadFunc().
EthPacketPtr gem5::DistIface::RecvScheduler::popPacket | ( | ) |
Fetch the next packet that is to be received by the simulated network link.
Definition at line 535 of file dist_iface.cc.
References gem5::curTick().
Referenced by gem5::DistIface::packetIn().
void gem5::DistIface::RecvScheduler::pushPacket | ( | EthPacketPtr | new_packet, |
Tick | send_tick, | ||
Tick | send_delay ) |
Push a newly arrived packet into the desc queue.
Definition at line 497 of file dist_iface.cc.
References gem5::curEventQueue(), DPRINTF, gem5::EventQueue::lock(), panic_if, gem5::DistIface::primary, gem5::GlobalSyncEvent::repeat, gem5::DistIface::syncEvent, gem5::EventQueue::unlock(), and gem5::BaseGlobalEvent::when().
Referenced by gem5::DistIface::recvThreadFunc().
void gem5::DistIface::RecvScheduler::resumeRecvTicks | ( | ) |
Adjust receive ticks for pending packets when restoring from a checkpoint.
Definition at line 464 of file dist_iface.cc.
References gem5::curTick(), gem5::ArmISA::d, gem5::DistIface::RecvScheduler::Desc::sendTick, and gem5::ArmISA::v.
Referenced by gem5::DistIface::drainResume().
|
overridevirtual |
Serialize an object.
Output an object's state into the current checkpoint section.
cp | Checkpoint state |
Implements gem5::Serializable.
Definition at line 571 of file dist_iface.cc.
References gem5::csprintf(), gem5::ArmISA::i, and SERIALIZE_SCALAR.
|
overridevirtual |
Unserialize an object.
Read an object's state from the current checkpoint section.
cp | Checkpoint state |
Implements gem5::Serializable.
Definition at line 587 of file dist_iface.cc.
References gem5::csprintf(), gem5::ArmISA::i, UNSERIALIZE_SCALAR, and gem5::Serializable::unserializeSection().
|
private |
Flag to set if receive ticks for pending packets need to be recalculated due to changed link latencies at a resume.
Definition at line 409 of file dist_iface.hh.
|
private |
The queue to store the receive descriptors.
Definition at line 359 of file dist_iface.hh.
|
private |
The event manager associated with the simulated Ethernet link.
Definition at line 388 of file dist_iface.hh.
|
private |
The link delay in ticks for the simulated Ethernet link.
Definition at line 381 of file dist_iface.hh.
|
private |
The tick when the most recent receive event was processed.
Definition at line 367 of file dist_iface.hh.
|
private |
The receive done event for the simulated Ethernet link.
Definition at line 374 of file dist_iface.hh.