Hi,

            I found the problem in the ipmitool source.  Here is what occur step by step.

 

  1. Receiving a sol packet ID 4, length 24 bytes –> 24 bytes are displayed on the console
  2. Sending a sol acknowledge ID 4, length 0 (only ack)
  3. Sending the keepalive GetDevice Id
  4. Waiting for an answer (to the IPMI Get Device Id) but…
  5. Receiving a sol packet ID 5, length 24 bytes
  6. Check that CC is OK for IPMI Get Device ID (it occurs that yes, the completion code is 0)

 

SOL received packet is used as the answer for the GetDeviceID instead of the real GetDeviceId answer.  Then, the answer to the GetDeviceId is interpreted by the SOL red pill function and some garbage is thrown on the screen (I had already solve a month ago the garbage on the screen bug by ignoring the answer).

 

 

This brings me to a bigger problem.  It looks like IPMITOOL is not done in a way that question and answer can be dissociated.  There is no guarantee that packet of a different payload type could be received in between of question/answer of another type… or of the same type.   For example, a SOL packet can be sent in between a getDeviceId question/answer.  This is for 99% of the time not a problem.

 

Here is what I propose.   Instead of using a getDeviceId for the keepalive mechanism, we could use a simple empty SOL transmit.  (Valid sequence number, no acknowledge, length of 0).  This will trig no work on the BMC side and will no generate also an answer.  The impact on the traffic is lower and we bypass the problem describe above.  Also, I can reset the keepalive timestamp when some other sol packet is transmit.. This way, no extra traffic if there is already running traffic/

 

Any problem with that?

 

When the IPMITOOL release is schedule (1.8.9??) ?

 

I have tried the fix and for our implementation, it works correctly.

 

Jean-Michel Audet

 

 

 

 


De : Audet, Jean-Michel
Envo
yé : Monday, November 13, 2006 1:59 PM
À : ipmitool-devel@lists.sourceforge.net
Objet : Loosing SOL packet when KeepAlive feature is ON

 

Hi,

            I am currently developing a SOL implementation on our products.  I periodically loose some data and I just found something.  During a short moment, when the keep alive mechanism send a GetDeviceID packet to the bmc, the transmit packet to the console are not displayed (not received).

I have some way to verify the traffic on our BMC and the problem occur always during a keep alive GetDeviceID.  When I am disabling the keep alive feature, my problem disappears.  I checked a little bit on the code and so far, I am not sure where the problem is.

 

Anyone see this problem?  Any ideas where the problem might be?  It looks like when the GetDeviceId is sent, that no SOL packet can be sent before the answer is received..

 

Thanks!

 

Jean-Michel Audet

 

 

 

 

-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Ipmitool-devel mailing list
Ipmitool-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ipmitool-devel

Reply via email to