face: fix overhead estimation in NDNLP slicer
refs #2317
Change-Id: I1b2ec985a075083386c7117494478666eb28802e
diff --git a/daemon/face/ndnlp-slicer.hpp b/daemon/face/ndnlp-slicer.hpp
index 9442a07..f5d9056 100644
--- a/daemon/face/ndnlp-slicer.hpp
+++ b/daemon/face/ndnlp-slicer.hpp
@@ -1,11 +1,12 @@
/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
/**
- * Copyright (c) 2014 Regents of the University of California,
- * Arizona Board of Regents,
- * Colorado State University,
- * University Pierre & Marie Curie, Sorbonne University,
- * Washington University in St. Louis,
- * Beijing Institute of Technology
+ * Copyright (c) 2014, Regents of the University of California,
+ * Arizona Board of Regents,
+ * Colorado State University,
+ * University Pierre & Marie Curie, Sorbonne University,
+ * Washington University in St. Louis,
+ * Beijing Institute of Technology,
+ * The University of Memphis
*
* This file is part of NFD (Named Data Networking Forwarding Daemon).
* See AUTHORS.md for complete list of NFD authors and contributors.
@@ -20,7 +21,7 @@
*
* You should have received a copy of the GNU General Public License along with
* NFD, e.g., in COPYING.md file. If not, see <http://www.gnu.org/licenses/>.
- **/
+ */
#ifndef NFD_DAEMON_FACE_NDNLP_SLICER_HPP
#define NFD_DAEMON_FACE_NDNLP_SLICER_HPP
@@ -31,13 +32,17 @@
namespace nfd {
namespace ndnlp {
-typedef shared_ptr<std::vector<Block> > PacketArray;
+typedef shared_ptr<std::vector<Block>> PacketArray;
/** \brief provides fragmentation feature at sender
*/
class Slicer : noncopyable
{
public:
+ /** \param mtu maximum size of NDNLP header and payload
+ * \note If NDNLP packets are to be encapsulated in an additional header
+ * (eg. in UDP packets), the caller must deduct such overhead.
+ */
explicit
Slicer(size_t mtu);
@@ -48,6 +53,12 @@
slice(const Block& block);
private:
+ template<bool T>
+ size_t
+ encodeFragment(ndn::EncodingImpl<T>& blk,
+ uint64_t seq, uint16_t fragIndex, uint16_t fragCount,
+ const uint8_t* payload, size_t payloadSize);
+
/// estimate the size of NDNLP header and maximum payload size per packet
void
estimateOverhead();