4#include <boost/tuple/tuple.hpp>
5#include "portable_endian.h"
9 using EventNum_t = u_int64_t;
10 using UnixTimeNano_t = u_int64_t;
11 using UnixTimeMicro_t = u_int64_t;
12 using EventRate_t = u_int32_t;
14 constexpr u_int8_t rehdrVersion = 1;
15 constexpr u_int8_t rehdrVersionNibble = rehdrVersion << 4;
23 u_int8_t preamble[2] {rehdrVersionNibble, 0};
25 u_int32_t bufferOffset{0};
26 u_int32_t bufferLength{0};
27 EventNum_t eventNum{0};
32 inline void set(u_int16_t data_id, u_int32_t buff_off, u_int32_t buff_len, EventNum_t event_num)
34 dataId = htobe16(data_id);
35 bufferOffset = htobe32(buff_off);
36 bufferLength = htobe32(buff_len);
37 eventNum = htobe64(event_num);
45 return be64toh(eventNum);
53 return be32toh(bufferLength);
61 return be32toh(bufferOffset);
69 return be16toh(dataId);
81 inline const boost::tuple<u_int16_t, u_int32_t, u_int32_t, EventNum_t>
get_Fields()
const
85 } __attribute__((__packed__));
87 constexpr u_int8_t lbhdrVersion = 2;
95 char preamble[2] {
'L',
'B'};
96 u_int8_t version{lbhdrVersion};
97 u_int8_t nextProto{rehdrVersion};
100 EventNum_t eventNum{0L};
105 inline void set(u_int16_t ent, EventNum_t event_num)
107 entropy = htobe16(ent);
108 eventNum = htobe64(event_num);
132 return be16toh(entropy);
140 return be64toh(eventNum);
154 const boost::tuple<u_int8_t, u_int8_t, u_int16_t, EventNum_t>
get_Fields()
const
158 } __attribute__((__packed__));
164 } __attribute__((__packed__));
166 constexpr u_int8_t synchdrVersion = 2;
174 char preamble[2] {
'L',
'C'};
175 u_int8_t version{synchdrVersion};
177 u_int32_t eventSrcId{0};
178 EventNum_t eventNumber{0LL};
179 EventRate_t avgEventRateHz{0};
180 UnixTimeNano_t unixTimeNano{0LL};
185 inline void set(u_int32_t esid, EventNum_t event_num, EventRate_t avg_rate, UnixTimeNano_t ut)
187 eventSrcId = htobe32(esid);
188 eventNumber = htobe64(event_num);
189 avgEventRateHz = htobe32(avg_rate);
190 unixTimeNano = htobe64(ut);
198 return be32toh(eventSrcId);
205 return be64toh(eventNumber);
212 return be32toh(avgEventRateHz);
219 return be64toh(unixTimeNano);
232 const boost::tuple<u_int32_t, EventNum_t, u_int32_t, UnixTimeNano_t>
get_Fields()
const
236 } __attribute__((__packed__));
239 constexpr size_t IP_HDRLEN = 20;
240 constexpr size_t UDP_HDRLEN = 8;
241 constexpr size_t TOTAL_HDR_LEN{IP_HDRLEN + UDP_HDRLEN +
sizeof(LBHdr) +
sizeof(REHdr)};
Definition e2sarHeaders.hpp:94
void set(u_int16_t ent, EventNum_t event_num)
Definition e2sarHeaders.hpp:105
u_int8_t get_version() const
Definition e2sarHeaders.hpp:114
EventNum_t get_eventNum() const
Definition e2sarHeaders.hpp:138
u_int8_t get_nextProto() const
Definition e2sarHeaders.hpp:122
u_int16_t get_entropy() const
Definition e2sarHeaders.hpp:130
const boost::tuple< u_int8_t, u_int8_t, u_int16_t, EventNum_t > get_Fields() const
Definition e2sarHeaders.hpp:154
Definition e2sarHeaders.hpp:161
Definition e2sarHeaders.hpp:22
EventNum_t get_eventNum() const
Definition e2sarHeaders.hpp:43
u_int16_t get_dataId() const
Definition e2sarHeaders.hpp:67
const boost::tuple< u_int16_t, u_int32_t, u_int32_t, EventNum_t > get_Fields() const
Definition e2sarHeaders.hpp:81
u_int32_t get_bufferLength() const
Definition e2sarHeaders.hpp:51
u_int32_t get_bufferOffset() const
Definition e2sarHeaders.hpp:59
void set(u_int16_t data_id, u_int32_t buff_off, u_int32_t buff_len, EventNum_t event_num)
Definition e2sarHeaders.hpp:32
Definition e2sarHeaders.hpp:173
EventNum_t get_eventNumber() const
Definition e2sarHeaders.hpp:203
u_int32_t get_eventSrcId() const
Definition e2sarHeaders.hpp:196
u_int32_t get_avgEventRateHz() const
Definition e2sarHeaders.hpp:210
void set(u_int32_t esid, EventNum_t event_num, EventRate_t avg_rate, UnixTimeNano_t ut)
Definition e2sarHeaders.hpp:185
const boost::tuple< u_int32_t, EventNum_t, u_int32_t, UnixTimeNano_t > get_Fields() const
Definition e2sarHeaders.hpp:232
UnixTimeNano_t get_unixTimeNano() const
Definition e2sarHeaders.hpp:217