[PATCH linux dev-4.7 7/8] ipmi: maintain a request expiry list
Cédric Le Goater
clg at kaod.org
Tue Nov 8 20:58:56 AEDT 2016
Hello Brendan,
On 11/07/2016 08:29 PM, Brendan Higgins wrote:
> Patrick, you are correct.
>
> The { Seq, Command, NetFn } set does not necessarily uniquely identify a message.
> The the OEM/Group extension messages as defined in the IPMI v2.0 Specification
> Document Revision 1.1, Section 5.1 Network Function Codes, Table 5, under the
> name OEM/Group defines unique message endpoints by the following set:
>
> { NetFn, Payload{0, 1, 2}, Command };
>
> where Payload{0, 1, 2} are the first three bytes of a message payload.
OK. I missed that part. I was referring to :
11.1 BT Interface-BMC Request Message Format
...
The Seq field is used in combination with the NetFn and Command fields to
form a unique value. I.e. the same Seq value could be used in multiple
outstanding requests, as long as the combinations of Seq value, NetFn,
and Command were unique among the requests.
...
and
11.3 Using the Seq Field
11.4 Response Expiration Handling
...
The BMC can define its own internal Seq value or tracking number for
this purpose, or it could use the Seq, NetFn, and Command values in the
same manner as SMS.
...
> In addition, I am working on an OEM/Group extension that would allow a single
> transaction to take place across multiple messages, and in particular would
> allow multiple IPMI requests to be sent, potentially only sending (a)
> response(s) at the end of the transaction; in particular, this would allow
> the following:
>
> Master | Slave
> Request -> |
> Request -> |
> Request -> |
> | <- Response
> | <- Response
>
> Where Request and Response have the same sequence number. Note: the change
> I am making would also make the above example valid if there were only one
> request and two responses.
I am wondering how that fits with the BT Interface Capabilities which can
recommend retries.
> @Cédric I see two remedies for your patch to allow this:
>
> 1) Allow users to opt out of the expiry list.
yes that's should not be too hard.
> 2) Update the keep alive list when *either* a new request or a new response
> is sent with a given sequence number (change the list to be a hashmap of
> sequence numbers to timeouts).
The BMC driver could also define its own 'Seq' identifier (using the tuple
above) to do the request/response matching instead of using the 'Seq' byte.
> I will try to get a design doc for discussion describing this extension out
> hopefully sometime this week; I think that might clear some things up.
OK but we should be having this discussion on :
openipmi-developer at lists.sourceforge.net
where the patches are being discussed. Corey would have some very valuable
input. Could you join that thread ?
http://lists.infradead.org/pipermail/linux-arm-kernel/2016-November/465131.html
Or I can copy you, it might be easier and then you can start another thread
with your design.
Thanks!
C.
More information about the openbmc
mailing list