IPMI does everything except events through commands and responses. A user sends a command to an MC, and the MC returns a response. All commands have responses. Commands may optionally have some data; the data depends on the command. The same goes for responses, except that all responses contain at least one data byte holding the completion code. Every response has a completion code in the first byte.
Every command and response has a NetFN and command number. A NetFN is a number that describes a function group. All sensor-related commands, for instance, have the same NetFN. The command number is the number for the specific command within the NetFN. Responses contain the same NetFN and command number as the command, except the NetFN has one added to it. So responses to sensor command (NetFN 04h) will use NetFN 05h. Table 5.1 shows the NetFN values. All commands have even NetFNs, and all responses have odd NetFNs.
Table 5.1: NetFN codes
Description Common chassis control and status functions. Messaging for bridging to another bus, generally ICMB. Handling of sensors and events. General control and status of a connection and basic operations. This is the “catch all” where things that don’t really fit elsewhere fall, too. Used for formware checking and upgrade, generally. The mes- saging for this is completely proprietary and not defined by the spec. Non-volatile storage handling, the SDRs and SEL. Configuration of the LAN and serial interfaces.