Ipmbbridge: Add support for multiple sub channel.

Added Multiple sub channels support for ipmb and me
type to communicate with more than one device of same type.

ChannelType supports only two channels ME and ipmb.
Using combination of devIndex and channelType approach,
can support multiple sub channels without affecting the
existing functionalities.

Single host or channel, "devIndex" will be set default index as 0.

For multiple channel under same type need to provide devIndex in
json configurations. This approach uses the sendRequest method's
first parameter values for MSB 6 bits as "devIndex" and
the remaining 2 bits as "channelType".

TESTED : Built Facebook YosemiteV2 & Tiogapass images and loaded on
the target hardware. We are able to see BMC to all
host communications through Ipmb.

Signed-off-by: Kumar Thangavel <thangavel.k@hcl.com>
Change-Id: I20a7231993a0dd1f9d396dde114837380302dc76
diff --git a/ipmbbridged.hpp b/ipmbbridged.hpp
index c08005d..052c193 100644
--- a/ipmbbridged.hpp
+++ b/ipmbbridged.hpp
@@ -262,7 +262,7 @@
 {
   public:
     IpmbChannel(boost::asio::io_service &io, uint8_t ipmbBmcSlaveAddress,
-                uint8_t ipmbRqSlaveAddress, ipmbChannelType type,
+                uint8_t ipmbRqSlaveAddress, uint8_t channelIdx,
                 std::shared_ptr<IpmbCommandFilter> commandFilter);
 
     IpmbChannel(const IpmbChannel &) = delete;
@@ -278,6 +278,10 @@
 
     uint8_t getBusId();
 
+    uint8_t getDevIndex();
+
+    uint8_t getChannelIdx();
+
     uint8_t getBmcSlaveAddress();
 
     uint8_t getRqSlaveAddress();
@@ -301,8 +305,7 @@
     uint8_t ipmbBmcSlaveAddress;
     uint8_t ipmbRqSlaveAddress;
     uint8_t ipmbBusId;
-
-    ipmbChannelType type;
+    uint8_t channelIdx;
 
     std::shared_ptr<IpmbCommandFilter> commandFilter;