face: Add ability to specify RIB flags for setInterestFilter and registerPrefix

Change-Id: I0976c74856970e0d68cbf46956cfa8d494f064d5
Refs: #1842
diff --git a/src/face.hpp b/src/face.hpp
index 9427b03..974aa69 100644
--- a/src/face.hpp
+++ b/src/face.hpp
@@ -238,6 +238,7 @@
    * @param onInterest     A callback to be called when a matching interest is received
    * @param onSuccess      A callback to be called when prefixRegister command succeeds
    * @param onFailure      A callback to be called when prefixRegister command fails
+   * @param flags          (optional) RIB flags (not used when direct FIB management is requested)
    * @param certificate    (optional) A certificate under which the prefix registration
    *                       command interest is signed.  When omitted, a default certificate
    *                       of the default identity is used to sign the registration command
@@ -250,7 +251,8 @@
                     const OnInterest& onInterest,
                     const RegisterPrefixSuccessCallback& onSuccess,
                     const RegisterPrefixFailureCallback& onFailure,
-                    const IdentityCertificate& certificate = IdentityCertificate());
+                    const IdentityCertificate& certificate = IdentityCertificate(),
+                    uint64_t flags = nfd::ROUTE_FLAG_CHILD_INHERIT);
 
   /**
    * @brief Set InterestFilter to dispatch incoming matching interest to onInterest
@@ -265,6 +267,7 @@
    * @param interestFilter Interest filter (prefix part will be registered with the forwarder)
    * @param onInterest     A callback to be called when a matching interest is received
    * @param onFailure      A callback to be called when prefixRegister command fails
+   * @param flags          (optional) RIB flags (not used when direct FIB management is requested)
    * @param certificate    (optional) A certificate under which the prefix registration
    *                       command interest is signed.  When omitted, a default certificate
    *                       of the default identity is used to sign the registration command
@@ -276,7 +279,8 @@
   setInterestFilter(const InterestFilter& interestFilter,
                     const OnInterest& onInterest,
                     const RegisterPrefixFailureCallback& onFailure,
-                    const IdentityCertificate& certificate = IdentityCertificate());
+                    const IdentityCertificate& certificate = IdentityCertificate(),
+                    uint64_t flags = nfd::ROUTE_FLAG_CHILD_INHERIT);
 
   /**
    * @brief Set InterestFilter to dispatch incoming matching interest to onInterest
@@ -294,6 +298,7 @@
    * @param onFailure      A callback to be called when prefixRegister command fails
    * @param identity       A signing identity. A command interest is signed under the default
    *                       certificate of this identity
+   * @param flags          (optional) RIB flags (not used when direct FIB management is requested)
    *
    * @return Opaque registered prefix ID which can be used with removeRegisteredPrefix
    */
@@ -302,7 +307,8 @@
                     const OnInterest& onInterest,
                     const RegisterPrefixSuccessCallback& onSuccess,
                     const RegisterPrefixFailureCallback& onFailure,
-                    const Name& identity);
+                    const Name& identity,
+                    uint64_t flags = nfd::ROUTE_FLAG_CHILD_INHERIT);
 
   /**
    * @brief Set InterestFilter to dispatch incoming matching interest to onInterest
@@ -319,6 +325,7 @@
    * @param onFailure      A callback to be called when prefixRegister command fails
    * @param identity       A signing identity. A command interest is signed under the default
    *                       certificate of this identity
+   * @param flags          (optional) RIB flags (not used when direct FIB management is requested)
    *
    * @return Opaque registered prefix ID which can be used with removeRegisteredPrefix
    */
@@ -326,7 +333,8 @@
   setInterestFilter(const InterestFilter& interestFilter,
                     const OnInterest& onInterest,
                     const RegisterPrefixFailureCallback& onFailure,
-                    const Name& identity);
+                    const Name& identity,
+                    uint64_t flags = nfd::ROUTE_FLAG_CHILD_INHERIT);
 
   /**
    * @brief Set InterestFilter to dispatch incoming matching interest to onInterest callback
@@ -358,6 +366,7 @@
    * @param certificate (optional) A certificate under which the prefix registration
    *                    command interest is signed.  When omitted, a default certificate
    *                    of the default identity is used to sign the registration command
+   * @param flags       (optional) RIB flags (not used when direct FIB management is requested)
    *
    * @return The registered prefix ID which can be used with unregisterPrefix
    */
@@ -365,7 +374,8 @@
   registerPrefix(const Name& prefix,
                  const RegisterPrefixSuccessCallback& onSuccess,
                  const RegisterPrefixFailureCallback& onFailure,
-                 const IdentityCertificate& certificate = IdentityCertificate());
+                 const IdentityCertificate& certificate = IdentityCertificate(),
+                 uint64_t flags = nfd::ROUTE_FLAG_CHILD_INHERIT);
 
   /**
    * @brief Register prefix with the connected NDN forwarder and call onInterest when a matching
@@ -380,6 +390,7 @@
    * @param onFailure A callback to be called when prefixRegister command fails
    * @param identity  A signing identity. A command interest is signed under the default
    *                  certificate of this identity
+   * @param flags     (optional) RIB flags (not used when direct FIB management is requested)
    *
    * @return The registered prefix ID which can be used with unregisterPrefix
    */
@@ -387,8 +398,8 @@
   registerPrefix(const Name& prefix,
                  const RegisterPrefixSuccessCallback& onSuccess,
                  const RegisterPrefixFailureCallback& onFailure,
-                 const Name& identity);
-
+                 const Name& identity,
+                 uint64_t flags = nfd::ROUTE_FLAG_CHILD_INHERIT);
 
   /**
    * @brief Remove the registered prefix entry with the registeredPrefixId