diff --git a/include/ipmid/message.hpp b/include/ipmid/message.hpp
index 0da1779..808d96b 100644
--- a/include/ipmid/message.hpp
+++ b/include/ipmid/message.hpp
@@ -43,10 +43,12 @@
 
     Context(std::shared_ptr<sdbusplus::asio::connection> bus, NetFn netFn,
             uint8_t lun, Cmd cmd, int channel, int userId, uint32_t sessionId,
-            Privilege priv, int rqSA, boost::asio::yield_context& yield) :
+            Privilege priv, int rqSA, int hostIdx,
+            boost::asio::yield_context& yield) :
         bus(bus),
         netFn(netFn), lun(lun), cmd(cmd), channel(channel), userId(userId),
-        sessionId(sessionId), priv(priv), rqSA(rqSA), yield(yield)
+        sessionId(sessionId), priv(priv), rqSA(rqSA), hostIdx(hostIdx),
+        yield(yield)
     {
     }
 
@@ -62,6 +64,7 @@
     // srcAddr is only set on IPMB requests because
     // Platform Event Message needs it to determine the incoming format
     int rqSA;
+    int hostIdx;
     boost::asio::yield_context yield;
 };
 
diff --git a/ipmid-new.cpp b/ipmid-new.cpp
index 73945f4..5ef6f4b 100644
--- a/ipmid-new.cpp
+++ b/ipmid-new.cpp
@@ -483,6 +483,7 @@
     std::string sender = m.get_sender();
     Privilege privilege = Privilege::None;
     int rqSA = 0;
+    int hostIdx = 0;
     uint8_t userId = 0; // undefined user
     uint32_t sessionId = 0;
 
@@ -539,6 +540,14 @@
                     rqSA = std::get<int>(iter->second);
                 }
             }
+            const auto iteration = options.find("hostId");
+            if (iteration != options.end())
+            {
+                if (std::holds_alternative<int>(iteration->second))
+                {
+                    hostIdx = std::get<int>(iteration->second);
+                }
+            }
         }
     }
     // check to see if the requested priv/username is valid
@@ -552,7 +561,7 @@
 
     auto ctx = std::make_shared<ipmi::Context>(getSdBus(), netFn, lun, cmd,
                                                channel, userId, sessionId,
-                                               privilege, rqSA, yield);
+                                               privilege, rqSA, hostIdx, yield);
     auto request = std::make_shared<ipmi::message::Request>(
         ctx, std::forward<std::vector<uint8_t>>(data));
     message::Response::ptr response = executeIpmiCommand(request);
@@ -765,7 +774,7 @@
         m.read(seq, netFn, lun, cmd, data);
         std::shared_ptr<sdbusplus::asio::connection> bus = getSdBus();
         auto ctx = std::make_shared<ipmi::Context>(
-            bus, netFn, lun, cmd, 0, 0, 0, ipmi::Privilege::Admin, 0, yield);
+            bus, netFn, lun, cmd, 0, 0, 0, ipmi::Privilege::Admin, 0, 0, yield);
         auto request = std::make_shared<ipmi::message::Request>(
             ctx, std::forward<std::vector<uint8_t>>(data));
         ipmi::message::Response::ptr response =
