I am not an expert but won't the sender in ipmi_si_intf.c
make sure only one message is active at one time?
if (smi_info->si_state == SI_NORMAL && smi_info->curr_msg == NULL)
start_next_msg(smi_info);
Sudhakar
On 04/05/2012 07:15 PM, dbashaw wrote:
> I have two IPMI users created using ipmi_create_user(..).
> Each user can send messages async with respect to each other.
> I have also seen IPMI message handler: BMC returned incorrect response
> errors some times.
>
> When I allow only one user to use the KCS interface this does not seem
> to happen.
> After reviewing ipmi_msghandler.c I am not able to figure out how a
> response to a message
> from a given user can be identified with that user and not some other.
>
> ipmi_msghandler() sends the message to the interface handler (KCS
> state machine in this case) and is done,
> free to handle the next user request since responses arrive
> asynchronously at a later time.
>
> From the IPMI spec I see KCS message request format described as:
> BYTE 1 BYTE 2 BYTE 3:N
> NetFn/Lun Cmd Data
>
> KCS message response format:
> BYTE 1 BYTE 2 BYTE 3 BYTE 4:N
> NetFn/Lun Cmd Ccode Data
>
> Data is that which is required by the specific command being sent only.
>
> Request and response messages both have no user identifiable information
> that I can find in the V1.5 or V2.0 spec.
>
> I'm beginning to think that this is the reason for the "incorrect
> response" error above when two users are
> sending requests.
>
> handle_new_recv_msg((ipmi_smi_t intf,
> struct ipmi_smi_msg *msg)
> } else if (((msg->rsp[0] >> 2) != ((msg->data[0] >> 2) | 1))
> || (msg->rsp[1] != msg->data[1])) {
> /*
> * The NetFN and Command in the response is not even
> * marginally correct.
> */
> printk(KERN_WARNING PFX "BMC returned incorrect response,"
> " expected netfn %x cmd %x, got netfn %x cmd %x\n",
> (msg->data[0] >> 2) | 1, msg->data[1],
> msg->rsp[0] >> 2, msg->rsp[1]);
>
> No information in msg->rsp or msg->data can be used to make sure this
> response is associated with
> the correct user. Higher level things like sequence numbers are
> contained in the msg struct at some level
> but don't address the issue of associating the response to a unique user.
>
> How to fix this?
>
> Dave
>
>
>
>
>
> ------------------------------------------------------------------------------
> For Developers, A Lot Can Happen In A Second.
> Boundary is the first to Know...and Tell You.
> Monitor Your Applications in Ultra-Fine Resolution. Try it FREE!
> http://p.sf.net/sfu/Boundary-d2dvs2
> _______________________________________________
> Openipmi-developer mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/openipmi-developer
------------------------------------------------------------------------------
For Developers, A Lot Can Happen In A Second.
Boundary is the first to Know...and Tell You.
Monitor Your Applications in Ultra-Fine Resolution. Try it FREE!
http://p.sf.net/sfu/Boundary-d2dvs2
_______________________________________________
Openipmi-developer mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openipmi-developer