management: make FaceId optional in fib/add|remove-nexthop commands

refs #1630

Change-Id: I1548d3aca7bf32b7184e1b72c00c45cdc4320d9b
diff --git a/src/management/nfd-control-command.hpp b/src/management/nfd-control-command.hpp
index 1bf0c0c..6a16a1f 100644
--- a/src/management/nfd-control-command.hpp
+++ b/src/management/nfd-control-command.hpp
@@ -321,7 +321,7 @@
   {
     m_requestValidator
       .required(CONTROL_PARAMETER_NAME)
-      .required(CONTROL_PARAMETER_FACE_ID)
+      .optional(CONTROL_PARAMETER_FACE_ID)
       .optional(CONTROL_PARAMETER_COST);
     m_responseValidator
       .required(CONTROL_PARAMETER_NAME)
@@ -332,6 +332,9 @@
   virtual void
   applyDefaultsToRequest(ControlParameters& parameters) const
   {
+    if (!parameters.hasFaceId()) {
+      parameters.setFaceId(0);
+    }
     if (!parameters.hasCost()) {
       parameters.setCost(0);
     }
@@ -362,13 +365,21 @@
   {
     m_requestValidator
       .required(CONTROL_PARAMETER_NAME)
-      .required(CONTROL_PARAMETER_FACE_ID);
+      .optional(CONTROL_PARAMETER_FACE_ID);
     m_responseValidator
       .required(CONTROL_PARAMETER_NAME)
       .required(CONTROL_PARAMETER_FACE_ID);
   }
 
   virtual void
+  applyDefaultsToRequest(ControlParameters& parameters) const
+  {
+    if (!parameters.hasFaceId()) {
+      parameters.setFaceId(0);
+    }
+  }
+
+  virtual void
   validateResponse(const ControlParameters& parameters) const
   {
     this->ControlCommand::validateResponse(parameters);