diff --git a/oem/nvidia/bootstrap-credentials-oem-cmds.cpp b/oem/nvidia/bootstrap-credentials-oem-cmds.cpp
index 408cf6c..0a40c65 100644
--- a/oem/nvidia/bootstrap-credentials-oem-cmds.cpp
+++ b/oem/nvidia/bootstrap-credentials-oem-cmds.cpp
@@ -80,6 +80,37 @@
         std::vector<uint8_t>(hostName.begin(), hostName.end()));
     return ipmi::responseSuccess(hostNamePayload);
 }
+
+ipmi::RspType<uint8_t> ipmiGetIpmiChannelRfHi()
+{
+    constexpr auto redfishHostInterfaceChannel = "usb0";
+    uint8_t chNum = ipmi::getChannelByName(redfishHostInterfaceChannel);
+    ChannelInfo chInfo{};
+    Cc compCode = ipmi::getChannelInfo(chNum, chInfo);
+    if (compCode != ipmi::ccSuccess)
+    {
+        lg2::error(
+            "ipmiGetIpmiChannelRfHi failed for channel {CHANNEL} with error {ERROR}",
+            "CHANNEL", chNum, "ERROR", compCode);
+        return ipmi::responseUnspecifiedError();
+    }
+
+    if (chInfo.mediumType !=
+            static_cast<uint8_t>(EChannelMediumType::lan8032) ||
+        chInfo.protocolType !=
+            static_cast<uint8_t>(EChannelProtocolType::ipmbV10) ||
+        chInfo.sessionSupported !=
+            static_cast<uint8_t>(EChannelSessSupported::multi) ||
+        chInfo.isIpmi != true)
+    {
+        lg2::error(
+            "ipmiGetIpmiChannelRfHi: channel {CHANNEL} lacks required config",
+            "CHANNEL", chNum);
+        return responseSensorInvalid();
+    }
+    return ipmi::responseSuccess(static_cast<uint8_t>(chNum));
+}
+
 } // namespace ipmi
 
 void registerBootstrapCredentialsOemCommands()
@@ -98,4 +129,9 @@
         ipmi::prioOemBase, ipmi::groupNvidia,
         ipmi::bootstrap_credentials_oem::cmdGetRedfishHostName,
         ipmi::Privilege::Admin, ipmi::ipmiGetRedfishHostName);
+
+    ipmi::registerHandler(
+        ipmi::prioOemBase, ipmi::groupNvidia,
+        ipmi::bootstrap_credentials_oem::cmdGetIpmiChannelRfHi,
+        ipmi::Privilege::Admin, ipmi::ipmiGetIpmiChannelRfHi);
 }
