mgmt+face: allow MTU of datagram faces to be overridden

refs #4005

Change-Id: I01d98b88cdee41b633f6fb9a5600088efe8de749
diff --git a/daemon/face/transport.hpp b/daemon/face/transport.hpp
index a9768e5..a0a97a0 100644
--- a/daemon/face/transport.hpp
+++ b/daemon/face/transport.hpp
@@ -202,13 +202,6 @@
   void
   send(Packet&& packet);
 
-protected: // upper interface to be invoked by subclass
-  /** \brief receive a link-layer packet
-   *  \warning undefined behavior if packet size exceeds MTU limit
-   */
-  void
-  receive(Packet&& packet);
-
 public: // static properties
   /** \return a FaceUri representing local endpoint
    */
@@ -291,7 +284,17 @@
    *  \retval QUEUE_ERROR transport was unable to retrieve the queue length
    */
   virtual ssize_t
-  getSendQueueLength();
+  getSendQueueLength()
+  {
+    return QUEUE_UNSUPPORTED;
+  }
+
+protected: // upper interface to be invoked by subclass
+  /** \brief receive a link-layer packet
+   *  \warning undefined behavior if packet size exceeds MTU limit
+   */
+  void
+  receive(Packet&& packet);
 
 protected: // properties to be set by subclass
   void
@@ -363,6 +366,13 @@
   virtual void
   doSend(Packet&& packet) = 0;
 
+public:
+  /** \brief minimum MTU that may be set on a transport
+   *
+   *  This is done to ensure the NDNLPv2 fragmentation feature functions properly.
+   */
+  static constexpr ssize_t MIN_MTU = 64;
+
 private:
   Face* m_face;
   LinkService* m_service;