tools: display RIB flags by name in nfd-status page

refs #1870

Change-Id: I327ef9a672dc845f814930c818982fa2700f6402
diff --git a/docs/_static/nfd-status.xsd b/docs/_static/nfd-status.xsd
index 844b4f9..6f2770f 100644
--- a/docs/_static/nfd-status.xsd
+++ b/docs/_static/nfd-status.xsd
@@ -104,12 +104,19 @@
   </xs:sequence>
 </xs:complexType>
 
+<xs:complexType name="ribFlagsType">
+  <xs:sequence>
+    <xs:element type="xs:string" name="childInherit" minOccurs="0"/>
+    <xs:element type="xs:string" name="ribCapture" minOccurs="0"/>
+  </xs:sequence>
+</xs:complexType>
+
 <xs:complexType name="routeType">
   <xs:sequence>
     <xs:element type="xs:nonNegativeInteger" name="faceId"/>
     <xs:element type="xs:nonNegativeInteger" name="origin"/>
     <xs:element type="xs:nonNegativeInteger" name="cost"/>
-    <xs:element type="xs:nonNegativeInteger" name="flags"/>
+    <xs:element type="nfd:ribFlagsType" name="flags"/>
     <xs:element type="xs:duration" name="expirationPeriod" minOccurs="0"/>
   </xs:sequence>
 </xs:complexType>
diff --git a/tools/nfd-status-http-server-files/nfd-status.xsl b/tools/nfd-status-http-server-files/nfd-status.xsl
index 07b0faa..fe3077e 100644
--- a/tools/nfd-status-http-server-files/nfd-status.xsl
+++ b/tools/nfd-status-http-server-files/nfd-status.xsl
@@ -294,9 +294,23 @@
               </xsl:for-each>
             </tr>
             <tr>
-              <th>Flags</th>
+              <th>ChildInherit</th>
               <xsl:for-each select="nfd:routes/nfd:route">
-                <td><xsl:value-of select="nfd:flags"/></td>
+                <td>
+                  <xsl:if test="nfd:flags/nfd:childInherit">
+                    Y
+                  </xsl:if>
+                </td>
+              </xsl:for-each>
+            </tr>
+            <tr>
+              <th>RibCapture</th>
+              <xsl:for-each select="nfd:routes/nfd:route">
+                <td>
+                  <xsl:if test="nfd:flags/nfd:ribCapture">
+                    Y
+                  </xsl:if>
+                </td>
               </xsl:for-each>
             </tr>
             <tr>
diff --git a/tools/nfd-status.cpp b/tools/nfd-status.cpp
index 219e53d..2706be2 100644
--- a/tools/nfd-status.cpp
+++ b/tools/nfd-status.cpp
@@ -710,7 +710,14 @@
                 std::cout << "<faceId>"  << nextRoute->getFaceId() << "</faceId>";
                 std::cout << "<origin>"  << nextRoute->getOrigin() << "</origin>";
                 std::cout << "<cost>"    << nextRoute->getCost()   << "</cost>";
-                std::cout << "<flags>"   << nextRoute->getFlags()  << "</flags>";
+
+                std::cout << "<flags>";
+                if (nextRoute->isChildInherit())
+                  std::cout << "<childInherit/>";
+                if (nextRoute->isRibCapture())
+                  std::cout << "<ribCapture/>";
+                std::cout << "</flags>";
+
                 if (!nextRoute->hasInfiniteExpirationPeriod()) {
                   std::cout << "<expirationPeriod>PT"
                             << time::duration_cast<time::seconds>(nextRoute->getExpirationPeriod())
@@ -754,13 +761,18 @@
                   std::cout << ", ";
                 std::cout << "faceid="   << nextRoute->getFaceId()
                           << " (origin="  << nextRoute->getOrigin()
-                          << " cost="    << nextRoute->getCost()
-                          << " flags="   << nextRoute->getFlags();
+                          << " cost="    << nextRoute->getCost();
                 if (!nextRoute->hasInfiniteExpirationPeriod()) {
                   std::cout << " expires="
                             << time::duration_cast<time::seconds>(nextRoute->getExpirationPeriod())
                                .count() << "s";
                 }
+
+                if (nextRoute->isChildInherit())
+                  std::cout << " ChildInherit";
+                if (nextRoute->isRibCapture())
+                  std::cout << " RibCapture";
+
                 std::cout << ")";
               }
             std::cout << "}" << std::endl;