1 #ifndef artdaq_DAQrate_detail_RoutingPacket_hh
2 #define artdaq_DAQrate_detail_RoutingPacket_hh
4 #include "artdaq-core/Data/Fragment.hh"
5 #define MAX_ROUTING_TABLE_SIZE 65000
11 struct RoutingPacketEntry;
56 #define ROUTING_MAGIC 0x1337beef
66 std::bitset<1024> already_acknowledged_ranks;
94 #define TOKEN_MAGIC 0xbeefcafe
108 #endif //artdaq_Application_Routing_RoutingPacket_hh
RoutingMasterMode
Mode indicating whether the RoutingMaster is routing events by Sequence ID or by Send Count...
A row of the Routing Table.
A RoutingAckPacket contains the rank of the table receiver, plus the first and last sequence IDs in t...
unsigned new_slots_free
The number of slots free in the token sender (usually 1)
Events should be routed by sequence ID (BR -> EB)
The RoutingToken contains the magic bytes, the rank of the token sender, and the number of slots free...
Fragment::sequence_id_t first_sequence_id
The first sequence ID in the received RoutingPacket.
RoutingPacketEntry(Fragment::sequence_id_t seq, int rank)
Construct a RoutingPacketEntry with the given sequence ID and destination rank.
int destination_rank
The destination rank for this sequence ID.
Fragment::sequence_id_t last_sequence_id
The last sequence ID in the received RoutingPacket.
std::vector< RoutingPacketEntry > RoutingPacket
A RoutingPacket is simply a vector of RoutingPacketEntry objects. It is not suitable for network tran...
int rank
The rank from which the RoutingToken came.
int rank
The rank from which the RoutingAckPacket came.
Fragment::sequence_id_t sequence_id
The sequence ID of the RoutingPacketEntry.
unsigned run_number
The Run with which this token should be associated.
RoutingPacketEntry()
Default Constructor.
Events should be routed by send count (EB -> Agg)
uint32_t header
The magic bytes that help validate the RoutingToken.