diff options
author | Corey Minyard <minyard@acm.org> | 2021-09-24 11:42:56 -0500 |
---|---|---|
committer | Corey Minyard <cminyard@mvista.com> | 2021-10-05 06:54:16 -0500 |
commit | 059747c245f0e9af5e109eece7d3414dbe08d513 (patch) | |
tree | 31c1c155db5e70026f39d648bdf3bac133298972 /include/uapi/linux/ipmi.h | |
parent | 1e4071f6282b3323435b02b1719bcfbfe1b57150 (diff) | |
download | linux-059747c245f0e9af5e109eece7d3414dbe08d513.tar.gz |
ipmi: Add support for IPMB direct messages
An application has come up that has a device sitting right on the IPMB
that would like to communicate with the BMC on the IPMB using normal
IPMI commands.
Sending these commands and handling the responses is easy enough, no
modifications are needed to the IPMI infrastructure. But if this is an
application that also needs to receive IPMB commands and respond, some
way is needed to handle these incoming commands and send the responses.
Currently, the IPMI message handler only sends commands to the interface
and only receives responses from interface. This change extends the
interface to receive commands/responses and send commands/responses.
These are formatted differently in support of receiving/sending IPMB
messages directly.
Signed-off-by: Corey Minyard <minyard@acm.org>
Tested-by: Andrew Manley <andrew.manley@sealingtech.com>
Reviewed-by: Andrew Manley <andrew.manley@sealingtech.com>
Diffstat (limited to 'include/uapi/linux/ipmi.h')
-rw-r--r-- | include/uapi/linux/ipmi.h | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/include/uapi/linux/ipmi.h b/include/uapi/linux/ipmi.h index 007e65f9243b..966c3070959b 100644 --- a/include/uapi/linux/ipmi.h +++ b/include/uapi/linux/ipmi.h @@ -81,6 +81,20 @@ struct ipmi_ipmb_addr { }; /* + * Used for messages received directly from an IPMB that have not gone + * through a MC. This is for systems that sit right on an IPMB so + * they can receive commands and respond to them. + */ +#define IPMI_IPMB_DIRECT_ADDR_TYPE 0x81 +struct ipmi_ipmb_direct_addr { + int addr_type; + short channel; + unsigned char slave_addr; + unsigned char rs_lun; + unsigned char rq_lun; +}; + +/* * A LAN Address. This is an address to/from a LAN interface bridged * by the BMC, not an address actually out on the LAN. * |