package
0.0.0-20250301161613-f814782ff2cc
Repository: https://github.com/gebn/bmc.git
Documentation: pkg.go.dev

# Functions

No description provided by the author
RegisterOEMPayloadDescriptor adds or overrides how an IPMI v2.0 OEM payload is handled within a session.

# Constants

AnalogDataFormatNotAnalog indicates the sensor does not have numeric readings, only thresholds.
No description provided by the author
No description provided by the author
AnalogDataFormatUnsigned indicates an unsigned analog sensor.
AuthenticationAlgorithmHMACMD5 specifies that HMAC-MD5 (RFC2104) is used to create 16-byte key exchange authentication codes in RAKP2 and RAKP3, and ICV in RAKP4.
AuthenticationAlgorithmHMACSHA1 specifies that HMAC-SHA1 (RFC2104) is used to create 20-byte key exchange authentication code fields in RAKP2 and RAKP3.
AuthenticationAlgorithmHMACSHA256 specifies that HMAC-SHA256 (FIPS 180-2, RFC4634) is used to create 32-byte key exchange authentication code fields in RAKP2 and RAKP3.
AuthenticationAlgorithmNone is equivalent to AuthenticationAlgorithmHMACSHA1, however the key exchange authentication code fields in RAKP2 and 3, and the ICV field in RAKP4 are absent.
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
IPMI v2 only.
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
ChannelPresentInterface means the current channel this value is sent over, or "this" channel.
No description provided by the author
No description provided by the author
ChassisControlDiagnosticInterrupt pulses a diagnostic interrupt to the CPU(s), usually causing a diagnostic dump.
ChassisControlHardReset performs a hardware reset of the chassis, excluding the chassis device itself.
ChassisControlPowerCycle reboots the machine.
ChassisControlPowerOff forces the system into a soft off (S4/S5) state.
ChassisControlPowerOn powers up the chassis.
ChassisControlSoftPowerOff emulates a fatal over-temperature, causing a soft-shutdown of the OS via ACPI.
ChassisIdentifyStateIndefinite means the chassis identification mechanism will remain active until manually disabled.
ChassisIdentifyStateOff means the chassis identification mechanism is not currently active.
ChassisIdentifyStateTemporary means the chassis identification mechanism is active, but will disable automatically at an unknown point in the future.
ChassisIdentifyStateUnknown means the BMC indicated it does not support revealing the identify state in the Get Chassis Status command, however it may still be supported via other means - issue a Get Command Support command to find out.
CompletionCodeInsufficientPrivileges indicates the channel or effective user privilege level is insufficient to execute the command, or the request was blocked by the firmware firewall.
CompletionCodeInvalidSessionID is returned by Close Session if the specified session ID does not match one the BMC knows about.
No description provided by the author
No description provided by the author
CompletionCodeRequestTruncated means the request ended prematurely.
CompletionCodeReservationCanceledOrInvalid means that either the requester's reservation has been canceled or the request's reservation ID is invalid.
No description provided by the author
No description provided by the author
No description provided by the author
ConfidentialityAlgorithmAESCBC128 specifies the use of AES-128-CBC (the naming is to be consistent with the spec) for encrypted packets.
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
EntityIDDCMIAirInlet allows associating temperature sensors to the airflow at an air inlet.
EntityIDDCMIProcessor is effectively deprecated, used by DCMI v1.0 and v1.1.
EntityIDDCMISystemBoard is effectively deprecated, used by DCMI v1.0 and v1.1.
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
16 bytes ''.
12 byte authcode.
16 bytes ''.
16 bytes ''.
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
both requests and responses.
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
OutputTypeThreshold indicates an analogue sensor whose values are bucketed into states (e.g.
No description provided by the author
PayloadTypeOEM means "check the OEM IANA and OEM payload ID to find out what this actually is".
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
PowerRestorePolicyPowerOn means the system will always attempt to turn on when power returns, regardless of state before the outage.
PowerRestorePolicyPriorState means the system will return to the state it was in when the power was lost.
PowerRestorePolicyRemainOff means the system will not attempt to turn on when power returns, regardless of state before the outage.
PowerRestorePolicyUnknown means the BMC does not know what the chassis will do.
No description provided by the author
No description provided by the author
PrivilegeLevelHighest is used in the RMCP+ Open Session Request message to ask the BMC to set the session maximum privilege level to the highest it is willing to, given the cipher suites the remote console indicated support for.
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
RecordIDFirst always points to the "first" SDR in the repository.
RecordIDLast always points to the "last" SDR in this repository.
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
SessionIndexCurrent is a sentinel value for the Index field in a Get Session Info request, requesting information about the session the command was received over.
SessionIndexHandle is a sentinel value for the Index field in a Get Session Info request, requesting information about the specified session handle rather than index.
SessionIndexID is a sentinel value for the Index field in a Get Session Info request, requesting information about the specified session ID rather than index.
SlaveAddressBMC is the address of the BMC.
SoftwareIDRemoteConsole1 is the software ID of the first remote console.
StatusCodeInsufficientResources indicates there were insufficient resources to create a session.
StatusCodeInvalidRequestLength is sent when the request is too short, or too long.
StatusCodeInvalidSessionID indicates the managed system or remote console does not recognise the session ID sent by the other end.
StatusCodeOK indicates successful completion, absent of error.
StatusCodeUnauthorisedName is sent in RAKP Message 2 to indicate the username was not found in the BMC's users table.
StatusCodeUnsupportedCipherSuite is sent in RMCP+ Open Session Response to indicate the BMC cannot satisfy an acceptable combination of the requested authentication/integrity/encryption parameters.
No description provided by the author
No description provided by the author
No description provided by the author
StringEncodingUnicode, contrary to the name, typically suggests an unspecified encoding.

# Variables

CipherSuite17 represents Cipher Suite 17 (RAKP-HMAC-SHA256/HMAC-SHA256-128/AES-CBC-128), which is supported by newer BMCs.
CipherSuite3 represents Cipher Suite 3 (RAKP-HMAC-SHA1/HMAC-SHA1-96/AES-CBC-128), which must be supported by all IPMI v2.0 BMCs as the underlying algorithms are each marked as mandatory in the spec.
ErrNotLinearised is returned if Lineariser() is called on a linear or non-linear linearisation.
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author

# Structs

AES128CBC implements the AES-128-CBC confidentiality algorithm specified in section 13.29 of IPMI v2.0.
AuthenticationPayload indicates a single authentication algorithm preference embedded in an RMCP+ Open Session Request message.
No description provided by the author
ChassisControlReq represents a Chassis Control command, specified in section 22.3 and 28.3 of IPMI v1.5 and 2.0 respectively.
CipherSuite represents the authentication, integrity and confidentiality triple of algorithms used to establish a session.
CipherSuiteRecord represents an identified trio of algorithms, plus IANA enterprise number if OEM-specific.
No description provided by the author
CloseSessionReq implements the Close Session command, specified in section 18.17 of v1.5 and 22.19 of v2.0.
ConfidentialityPayload indicates a single confidentiality algorithm preference embedded in an RMCP+ Open Session Request message.
ConversionFactors contains inputs to the linear formula in 30.3 and 36.3 of v1.5 and v2.0 respectively.
FullSensorRecord is specified in 37.1 and 43.1 of v1.5 and v2.0 respectively.
No description provided by the author
GetChannelAuthenticationCapabilitiesReq defines a Get Channel Authentication Capabilities request.
GetChannelAuthenticationCapabilitiesRsp represents the response to a Get Channel Authentication Capabilities request.
No description provided by the author
GetChannelCipherSuitesReq is defined in section 22.15 of IPMI v2.0.
GetChannelCipherSuitesRsp represents the response to a Get Channel Cipher Suites request.
No description provided by the author
GetChassisStatusRsp represents the managed system's response to a Get Chassis Status command, specified in 22.2 and 28.2 of IPMI v1.5 and v2.0 respectively.
No description provided by the author
GetDeviceIDRsp represents the response to a Get Device ID command, specified in 17.1 of IPMI v1.5 and 20.1 of IPMI v2.0.
No description provided by the author
No description provided by the author
GetSDRRepositoryInfoRsp represents the response to a Get SDR Repository Info command, specified in section 27.9 and 33.9 of IPMI v1.5 and v2.0 respectively.
GetSDRReq represents a request to retrieve a single Sensor Data Record from the BMC's SDR Repository Device.
GetSDRRsp contains the next Record ID in the SDR Repo, and wraps the SDR data requested.
No description provided by the author
GetSensorReadingReq represents a Get Sensor Reading command, specified in 29.14 and 35.14 of v1.5 and v2.0 respectively.
No description provided by the author
No description provided by the author
GetSessionInfoReq represents a Get Session Info request, specified in section 18.18 and 22.20 of IPMI v1.5 and v2.0 respectively.
No description provided by the author
No description provided by the author
GetSystemGUIDRsp is the response to a Get System GUID command, specified in 18.13 and 22.14 of IPMI v1.5 and 2.0 respectively.
IntegrityPayload indicates a single integrity algorithm preference embedded in an RMCP+ Open Session Request message.
Message represents an IPMI message, specified in 12.4 of the v1.5 spec and 13.8 of the v2.0 spec.
No description provided by the author
OpenSessionReq represents an RMCP+ Open Session Request message, specified in section 13.17.
OpenSessionRsp represents an RMCP+ Open Session Response message, specified in section 13.18.
Operation uniquely identifies a command that the BMC can perform.
PayloadDescriptor contains RMCP+ session fields which, taken together, describe the format of a IPMI v2.0 session payload.
RAKPMessage1 represents a RAKP Message 1, defined in 13.20 of the spec.
No description provided by the author
RAKPMessage2 is sent by the managed system in response to a RAKP Message 1, and is defined in section 13.21.
RAKPMessage3 is sent by the remote console in response to a RAKP Message 2, and is defined in section 13.22.
No description provided by the author
RAKPMessage4 is sent by the managed system in response to a RAKP Message 3, and is defined in section 13.23.
No description provided by the author
ReserveSDRRepositoryRsp represents the response to a Reserve SDR Repository command, specified in 33.11 of IPMI v2.0.
SDR represents a Sensor Data Record header, outlined at the beginning of 37 and 43 of IPMI v1.5 and 2.0 respectively.
SensorRecordKey contains the Record Key fields for the Full Sensor Record and Compact Sensor Record SDR types.
SessionSelector is a dummy layer that lives between the RMCP layer and the IPMI session wrapper.
No description provided by the author
SetSessionPrivilegeLevelReq implements the Set Session Privilege Level command, specified in section 18.16 of v1.5 and 22.18 of v2.0.
No description provided by the author
V1Session represents the IPMI v1.5 session header.
V2Session represents an IPMI v2.0/RMCP+ session header.

# Interfaces

AnalogDataFormatParser is implemented by types that can convert a raw sensor reading into a native int16.
Command represents the request and response parts (if any) of executing a function against a managed system.
Lineariser is implemented by formulae that can linearise a value returned by the Get Sensor Reading command that has gone through the linear formula containing M, B, K1 and K2, used for all sensors.
Payload is implemented by outgoing IPMI v2.0 RMCP+ session setup interactions.
StringDecoder is implemented by things that know how to parse the final ID String field of full and compact SDRs.

# Type aliases

Address represents either a slave address or software ID.
AnalogDataFormat represents the binary format of analog sensor readings and thresholds.
AnalogDataFormatParserFunc is a convenience type allowing functions to statelessly implement AnalogDataFormatParser.
AuthenticationAlgorithm is the 6-bit identifier of an authentication algorithm used in the RMCP+ session establishment process.
AuthenticationType is used in the IPMI session header to indicate which authentication algorithm was used to sign the message.
BodyCode is the type of defining body codes, used to indicate the structure of request and response data when the network function is Group Extension (0x2c,0x2d).
Channel specifies a channel number, which corresponds to an interface on the BMC.
ChassisControl represents a command for the chassis, e.g.
ChassisIdentifyState indicates the current state of the chassis identification mechanism, usually a flashing light.
CipherSuiteID represents the 8-bit numeric identity of a cipher suite.
CommandNumber represents a particular function that can be requested.
CompletionCode indicates whether a command executed successfully.
ConfidentialityAlgorithm is the 6-bit identifier of an encryption algorithm used in the RMCP+ session establishment process.
EntityID identifies the kind of hardware that a sensor or device is associated with, e.g.
EntityInstance distinguishes between multiple occurrences of a particular entity type in the system, e.g.
IntegrityAlgorithm is the 6-bit identifier of an integrity algorithm negotiated during the RMCP+ session establishment process.
Linearisation indicates whether a sensor is linear, linearised, or non-linear.
LineariserFunc is the type of the function in the Lineariser interface.
LUN represents a Logical Unit Number.
NetworkFunction is a network function code, or "NetFn".
OutputType represents an Event/Reading Type Code, specified in Table 36-2 and 42-2 of IPMI v1.5 and v2.0 respectively.
PayloadType identifies the layer immediately within the RMCP+ session wrapper.
PowerRestorePolicy indicates what the chassis is configured to do when mains power returns.
PrivilegeLevel dictates which IPMI commands a given user can execute over a given channel.
RateUnit represents the duration over which a basic unit is given.
RecordID uniquely identifies an SDR in the SDR Repository, and is used for access.
RecordType indicates the format of a Sensor Data Record, e.g.
ReservationID is a token returned by the BMC in response to the Reserve SDR Repository command, that is invalidated when SDR Record IDs may have changed.
SensorDirection indicates whether a sensor is monitoring an input or output relative to the entity, e.g.
SensorType indicates what a sensor measures, e.g.
SensorUnit defines the unit of a sensor.
SessionHandle uniquely identifies an active session within the context of a given channel, as opposed to globally for the BMC which is the case for SessionID.
SessionIndex represents the first field of the Get Session Info request, defined in table 18-20 and 22-25 of IPMI v1.5 and v2.0 respectively.
SlaveAddress is a 7-bit I2C slave address.
SoftwareID represents a piece of system software or IPMI event message generator.
StatusCode represents an RMCP+ status code.
StringDecoderFunc eases implementation of stateless StringDecoders.
StringEncoding describes the most significant two bits of the SDR Type/Length Byte, specified in 37.15 and 43.15 of v1.5 and v2.0 respectively.