Dear IPMItool developers,
I'm a software engineer working at Intel company and
I've been working on the improvement of the IMB plug-in for Intel IPMI
driver.
The current implementation of IPMItool allows us to send IPMI messages
over KCS interface with the use of Intel IPMI driver to the BMC controller
only.
I've extended this module so that it is possible to send IPMI messages
to the controllers other than the BMC too.
This functionality is used by our customers to do functional tests of Node
Manager,
i.e. send IPMI messages by BMC to the Manageability Engine (ME),
which we are involved in writing firmware for.
As Intel IPMI driver supports non-BMC requests for IPMB channel 0 only,
I have put the whole necessary logic for sending bridged messages to the
application layer.
When a non-BMC address is specified in input parameters for the tool
1) a Send Message command to the BMC is constructed
with a specified command encapsulated in the frame
2) the Send Message command is sent to the BMC controller
3) wait loop is executed for a specified timeout
until an asynchronous response from the non-BMC is received
- forcing a driver to do the polling for asynchronous responses during that
time
(to check if response is available in the BMC and put it into the queue
then)
- trying to get the response to the command from the queue each time
4) a response to a bridged request is constructed
Here is the pseudo code that reflects my changes:
Send command (IN request, OUT response)
{
If ((target_addr == BMC) OR (channel == 0))
{
IOCTL Send Message Sync (IN request, OUT response);
}
Else
{
Encapsulate (IN request);
IOCTL Send Message Async (IN request);
while (NOT timeout)
{
#ifndef WIN32
IOCTL Pool Async ();
#endif
IOCTL Get Async (OUT response);
Sleep(100);
}
Construct (OUT response)
}
}
The implementation has been tested by us successfully
by using the tool for the functional tests of ME unit
(the set of IPMI commands sent to control ME unit).
So far we have done integration tests for the following Linux
editions:
1. Linux RHEL5.4 x32:
2. Linux RHEL5.4 x64:
3. Linux SLES 11 Beta3 x32:
4. Linux SLES 11 Beta3 x64
Since the IMB plug-in supports 32-bits IOCTL commands,
I had to force gcc compiler to produce 32-bit application.
I would like to ask you if you are interested in adding my changes
to the official version of the application?
If yes, I could send my code to all of you for a review.
BTW:
I have also put an effort to port IPMItool to Windows platform
(for the newest version of ipmitool 1.8.11).
Let me know whether you are willing to make your tool
compile on Windows platform again in the next step.
Best Regards,
Slawomir Milczarek
Software Engineer
Intel Technology
------------------------------------------------------------------------------
Download Intel® Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
_______________________________________________
Ipmitool-devel mailing list
Ipmitool-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ipmitool-devel