diff --git a/daemon/face/face.hpp b/daemon/face/face.hpp
index d783dd0..2b56fec 100644
--- a/daemon/face/face.hpp
+++ b/daemon/face/face.hpp
@@ -159,6 +159,12 @@
    */
   signal::Signal<Transport, FaceState/*old*/, FaceState/*new*/>& afterStateChange;
 
+  /** \return expiration time of the face
+   *  \retval time::steady_clock::TimePoint::max() the face has an indefinite lifetime
+   */
+  time::steady_clock::TimePoint
+  getExpirationTime() const;
+
   /** \brief request the face to be closed
    *
    *  This operation is effective only if face is in UP or DOWN state,
@@ -266,6 +272,12 @@
   return m_transport->getState();
 }
 
+inline time::steady_clock::TimePoint
+Face::getExpirationTime() const
+{
+  return m_transport->getExpirationTime();
+}
+
 inline void
 Face::close()
 {
diff --git a/daemon/face/transport.cpp b/daemon/face/transport.cpp
index 2d2c3dd..26cc0d7 100644
--- a/daemon/face/transport.cpp
+++ b/daemon/face/transport.cpp
@@ -64,6 +64,7 @@
   , m_linkType(ndn::nfd::LINK_TYPE_NONE)
   , m_mtu(MTU_INVALID)
   , m_state(TransportState::UP)
+  , m_expirationTime(time::steady_clock::TimePoint::max())
 {
 }
 
diff --git a/daemon/face/transport.hpp b/daemon/face/transport.hpp
index 56ff730..a12ce7c 100644
--- a/daemon/face/transport.hpp
+++ b/daemon/face/transport.hpp
@@ -253,6 +253,12 @@
    */
   signal::Signal<Transport, TransportState/*old*/, TransportState/*new*/> afterStateChange;
 
+  /** \return expiration time of the transport
+   *  \retval time::steady_clock::TimePoint::max() the transport has indefinite lifetime
+   */
+  time::steady_clock::TimePoint
+  getExpirationTime() const;
+
 protected: // properties to be set by subclass
   void
   setLocalUri(const FaceUri& uri);
@@ -279,6 +285,9 @@
   void
   setState(TransportState newState);
 
+  void
+  setExpirationTime(const time::steady_clock::TimePoint& expirationTime);
+
 protected: // to be overridden by subclass
   /** \brief invoked before persistency is changed
    *  \throw std::invalid_argument new persistency is not supported
@@ -316,6 +325,7 @@
   ndn::nfd::LinkType m_linkType;
   ssize_t m_mtu;
   TransportState m_state;
+  time::steady_clock::TimePoint m_expirationTime;
 };
 
 inline const Face*
@@ -415,6 +425,18 @@
   return m_state;
 }
 
+inline time::steady_clock::TimePoint
+Transport::getExpirationTime() const
+{
+  return m_expirationTime;
+}
+
+inline void
+Transport::setExpirationTime(const time::steady_clock::TimePoint& expirationTime)
+{
+  m_expirationTime = expirationTime;
+}
+
 std::ostream&
 operator<<(std::ostream& os, const FaceLogHelper<Transport>& flh);
 
diff --git a/daemon/face/unicast-udp-transport.cpp b/daemon/face/unicast-udp-transport.cpp
index 3bd4759..b6ad19a 100644
--- a/daemon/face/unicast-udp-transport.cpp
+++ b/daemon/face/unicast-udp-transport.cpp
@@ -89,6 +89,7 @@
   }
   else {
     m_closeIfIdleEvent.cancel();
+    setExpirationTime(time::steady_clock::TimePoint::max());
   }
 }
 
@@ -105,6 +106,7 @@
       scheduleClosureWhenIdle();
     }
   });
+  setExpirationTime(time::steady_clock::now() + m_idleTimeout);
 }
 
 } // namespace face
