|
Hybrid ICN (hICN) plugin
v21.06-rc0-4-g18fa668
|
18 #include <hicn/transport/utils/chrono_typedefs.h>
19 #include <hicn/transport/utils/membuf.h>
20 #include <protocols/fec/fec_info.h>
21 #include <protocols/fec_base.h>
23 #include <rely/decoder.hpp>
24 #include <rely/encoder.hpp>
35 #define foreach_rely_fec_type \
69 static const constexpr
size_t kmax_stream_size = 125U;
70 static const constexpr
size_t kmtu = 1500U;
71 static const constexpr
size_t ktimeout = 100U;
80 void setSeqNumberBase(uint32_t suffix) { seq_number = htonl(suffix); }
81 uint32_t getSeqNumberBase() {
return ntohl(seq_number); }
93 RelyBase(uint32_t k, uint32_t n, uint32_t seq_offset = 0)
96 seq_offset_(seq_offset % n_),
115 auto _time = utils::SteadyClock::now().time_since_epoch();
116 auto time = std::chrono::duration_cast<utils::Milliseconds>(_time).count();
124 std::uint32_t seq_offset_;
146 private rely::encoder,
149 RelyEncoder(uint32_t k, uint32_t n, uint32_t seq_offset = 0);
154 uint32_t offset)
override;
160 return header_bytes() +
sizeof(
fec_header) + 4;
163 void reset()
override {}
167 private rely::decoder,
170 RelyDecoder(uint32_t k, uint32_t n, uint32_t seq_offset = 0);
176 uint32_t offset)
override;
185 void reset()
override {}
void onPacketProduced(core::ContentObject &content_object, uint32_t offset) override
RelyBase(uint32_t k, uint32_t n, uint32_t seq_offset=0)
Construct a new Rely Base object.
Definition: rely.h:93
uint32_t current_index_
Current index to be used for local packet count.
Definition: rely.h:135
Definition: fec_base.h:77
Definition: content_object.h:29
std::vector< std::pair< uint32_t, buffer > > packets_
Vector of packets to be passed to caller callbacks. For encoder it will contain the repair packets,...
Definition: rely.h:129
std::size_t getFecHeaderSize() override
Get the fec header size, if added to source packets.
Definition: rely.h:159
Definition: fec_base.h:90
Definition: fec_base.h:31
Definition: forwarder_config.h:32
std::size_t getFecHeaderSize() override
Get the fec header size, if added to source packets.
Definition: rely.h:181
Base class to store common fields.
Definition: rely.h:67
void onDataPacket(core::ContentObject &content_object, uint32_t offset) override
The Rely Encoder implementation.
Definition: rely.h:145
int64_t getCurrentTime()
Get the current time in milliseconds.
Definition: rely.h:110