Changes to align with IPMI spec

IPMI Spec Section 19.2:
Unless otherwise noted, Reserved bits and fields in commands(request messages)
and responses shall be written as '0'.

Return "out of range" error for unsupported power policy
and also return the supported policies on success.

Change-Id: I51d63b86ef0d3076438649abc49c63267c57cbd5
Signed-off-by: Yong Li <yong.b.li@linux.intel.com>
diff --git a/chassishandler.cpp b/chassishandler.cpp
index 4b42b3c..7b94189 100644
--- a/chassishandler.cpp
+++ b/chassishandler.cpp
@@ -1658,15 +1658,15 @@
         return IPMI_CC_REQ_DATA_LEN_INVALID;
     }
 
-    reqPolicy = *reqptr & power_policy::policyBitMask;
-    if (reqPolicy > power_policy::noChange)
+    if (*reqptr > power_policy::noChange)
     {
         phosphor::logging::log<level::ERR>("Reserved request parameter",
-                                           entry("REQ=0x%x", reqPolicy));
+                                           entry("REQ=0x%x", *reqptr));
         *data_len = 0;
-        return IPMI_CC_PARM_NOT_SUPPORTED;
+        return IPMI_CC_PARM_OUT_OF_RANGE;
     }
 
+    reqPolicy = *reqptr & power_policy::policyBitMask;
     if (reqPolicy == power_policy::noChange)
     {
         // just return the supported policy
@@ -1717,6 +1717,7 @@
         return IPMI_CC_UNSPECIFIED_ERROR;
     }
 
+    *resptr = power_policy::allSupport;
     *data_len = power_policy::setPolicyReqLen;
     return IPMI_CC_OK;
 }