summaryrefslogtreecommitdiff
path: root/include/uapi/linux/ipmi.h
diff options
context:
space:
mode:
authorCorey Minyard <minyard@acm.org>2021-09-24 11:42:56 -0500
committerCorey Minyard <cminyard@mvista.com>2021-10-05 06:54:16 -0500
commit059747c245f0e9af5e109eece7d3414dbe08d513 (patch)
tree31c1c155db5e70026f39d648bdf3bac133298972 /include/uapi/linux/ipmi.h
parent1e4071f6282b3323435b02b1719bcfbfe1b57150 (diff)
downloadlinux-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.h14
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.
*