|
gem5 v23.0.0.1
|
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 () |
| virtual void | serialize (CheckpointOut &cp) const =0 |
| Serialize an object. | |
| virtual void | unserialize (CheckpointIn &cp)=0 |
| Unserialize an object. | |
| 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, 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.