app

package
v0.9.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 31, 2026 License: Apache-2.0 Imports: 6 Imported by: 0

Documentation

Index

Constants

View Source
const (
	CommandRangeMask007F uint8 = 0x00
	CommandRangeMask80FF uint8 = 0x01
)
View Source
const (
	MaxCipherSuiteListIndex uint8 = 0x3f
)
View Source
const WatchdogCountdownUnitsPerSecond = 10

WatchdogCountdownUnitsPerSecond is the number of countdown units per second used by the Set/Get Watchdog Timer commands, which express countdown values in 100ms units (IPMI v2.0, 27.6 and 27.7). Note that the pre-timeout interval is expressed in seconds, not in these units.

Variables

This section is empty.

Functions

func FormatUsers

func FormatUsers(users []*User) string

func ParseCipherSuitesData

func ParseCipherSuitesData(cipherSuitesData []byte) ([]types.CipherSuiteRecord, error)

Types

type ActivateSessionRequest

type ActivateSessionRequest struct {
	// Authentication Type for session.
	// The selected type will be used for session activation and for all subsequent authenticated packets under the session, unless "Per-message Authentication" or "User Level Authentication" are disabled.
	// (See v1.5§6.11.4 / v2.0§6.12.4, Per-Message and User Level Authentication Disables, for more information.)
	//
	// This value must match with the Authentication Type used in the Get Session Challenge request for the session. In addition, for multi-session channels this value must also match the authentication type used in the Session Header.
	AuthTypeForSession types.AuthType

	// Maximum privilege level requested. Indicates the highest privilege level that
	// may be requested for this session. This privilege level must be less than
	// or equal to the privilege limit for the channel and the privilege limit for the
	// user in order for the Activate Session command to be successful
	// (completion code = 00h). Once the Activate Session command has been
	// successful, the requested privilege level becomes a 'session limit' that
	// cannot be raised beyond the requested level, even if the user and/or
	// channel privilege level limits would allow it. I.e. it takes precedence over
	// the channel and user privilege level limits.
	//
	// [7:4] - reserved
	// [3:0] - Requested Maximum Privilege Level
	// 0h = reserved
	// 1h = Callback level
	// 2h = User level
	// 3h = Operator level
	// 4h = Administrator level
	// 5h = OEM Proprietary level
	// all other = reserved
	MaxPrivilegeLevel types.PrivilegeLevel

	// For multi-session channels: (e.g. LAN channel):
	// Challenge String data from corresponding Get Session Challenge response.
	//
	// For single-session channels that lack session header (e.g. serial/modem in Basic Mode):
	// Clear text password or AuthCode. See v1.5§18.15.1 / v2.0§22.17.1, AuthCode Algorithms.
	Challenge [16]byte // uint16

	// Initial Outbound Sequence Number = Starting sequence number that remote console wants used for messages from the BMC. (LS byte first). Must be non-null in order to establish a session. 0000_0000h = reserved. Can be any random value.
	//
	// The BMC must increment the outbound session sequence number by one (1) for
	// each subsequent outbound message from the BMC (include ActivateSessionResponse)
	//
	// The BMC sets the incremented number to Sequence field of SessionHeader.
	InitialOutboundSequenceNumber uint32
}

v1.5§18.15 / v2.0§22.17 Activate Session Command

func (*ActivateSessionRequest) Command

func (req *ActivateSessionRequest) Command() types.Command

func (*ActivateSessionRequest) Pack

func (req *ActivateSessionRequest) Pack() []byte

type ActivateSessionResponse

type ActivateSessionResponse struct {
	// Authentication Type for remainder of session
	AuthType types.AuthType

	// use this for remainder of session.
	// While atypical, the BMC is allowed to change the Session ID from the one that passed in the request.
	SessionID uint32

	// Initial inbound seq# = Sequence number that BMC wants remote console to use for subsequent messages in the session. The BMC returns a non-null value for multi-session connections and returns null (all 0s) for single-session connections.
	//
	// The remote console must increment the inbound session sequence number by one (1) for each subsequent message it sends to the BMC.
	InitialInboundSequenceNumber uint32

	// Maximum privilege level allowed for this session
	//  [7:4] - reserved
	//  [3:0] - Maximum Privilege Level allowed
	//  0h = reserved
	//  1h = Callback level
	//  2h = User level
	//  3h = Operator level
	//  4h = Administrator level
	//  5h = OEM Proprietary level
	//  all other = reserved
	MaxPrivilegeLevel uint8
}

func (*ActivateSessionResponse) Format

func (res *ActivateSessionResponse) Format() string

func (*ActivateSessionResponse) Unpack

func (res *ActivateSessionResponse) Unpack(data []byte) error

type AdditionalDeviceSupport

type AdditionalDeviceSupport struct {
	SupportChassis            bool
	SupportBridge             bool
	SupportIPMBEventGenerator bool
	SupportIPMBEventReceiver  bool
	SupportFRUInventory       bool
	SupportSEL                bool
	SupportSDRRepo            bool
	SupportSensor             bool
}

Additional Device Support (formerly called IPM Device Support). Lists the IPMI 'logical device' commands and functions that the controller supports that are in addition to the mandatory IPM and Application commands. [7] Chassis Device (device functions as chassis device per ICMB spec.) [6] Bridge (device responds to Bridge NetFn commands) [5] IPMB Event Generator (device generates event messages [platform event request messages] onto the IPMB) [4] IPMB Event Receiver (device accepts event messages [platform event request messages] from the IPMB) [3] FRU Inventory Device [2] SEL Device [1] SDR Repository Device [0] Sensor Device

type CloseSessionRequest

type CloseSessionRequest struct {
	// For IPMI v2.0/RMCP+ this is the Managed System Session ID value that was generated by the BMC, not the ID from the remote console. If Session ID = 0000_0000h then an implementation can optionally enable this command to take an additional byte of parameter data that allows a session handle to be used to close a session.
	SessionID uint32

	// Session Handle. (only present if Session ID = 0000_0000h)
	SessionHandle uint8
}

func (*CloseSessionRequest) Command

func (req *CloseSessionRequest) Command() types.Command

func (*CloseSessionRequest) Pack

func (req *CloseSessionRequest) Pack() []byte

type CloseSessionResponse

type CloseSessionResponse struct {
}

func (*CloseSessionResponse) Format

func (res *CloseSessionResponse) Format() string

func (*CloseSessionResponse) Unpack

func (res *CloseSessionResponse) Unpack(msg []byte) error

type ColdResetRequest

type ColdResetRequest struct {
}

func (*ColdResetRequest) Command

func (req *ColdResetRequest) Command() types.Command

func (*ColdResetRequest) Pack

func (req *ColdResetRequest) Pack() []byte

type ColdResetResponse

type ColdResetResponse struct {
}

func (*ColdResetResponse) Format

func (res *ColdResetResponse) Format() string

func (*ColdResetResponse) Unpack

func (res *ColdResetResponse) Unpack(msg []byte) error

type CommandRangeMask

type CommandRangeMask uint8

type EnableMessageChannelReceiveRequest

type EnableMessageChannelReceiveRequest struct {
	ChannelNumber uint8

	// [7:2] - reserved
	// [1:0] - 00b = disable channel
	//         01b = enable channel
	//         10b = get channel enable/disable state
	//         11b = reserved
	ChannelState uint8
}

func (*EnableMessageChannelReceiveRequest) Command

func (*EnableMessageChannelReceiveRequest) Pack

type EnableMessageChannelReceiveResponse

type EnableMessageChannelReceiveResponse struct {
	ChannelNumber uint8

	ChannelEnabled bool
}

func (*EnableMessageChannelReceiveResponse) Format

func (*EnableMessageChannelReceiveResponse) Unpack

func (res *EnableMessageChannelReceiveResponse) Unpack(msg []byte) error

type GetAuthCodeRequest

type GetAuthCodeRequest struct {
	AuthType types.AuthType

	ChannelNumber uint8

	UserID uint8

	// data to hash (must be 16 bytes)
	Data [16]byte
}

GetAuthCodeRequest sends a block of data to the BMC, whereupon the BMC will return a hash of the data together concatenated with the internally stored password for the given channel and user. See 22.21.

type GetAuthCodeResponse

type GetAuthCodeResponse struct {
	types.CompletionCode

	// For IPMI v1.5 AuthCode Number:
	AuthCode [16]byte

	// For IPMI v2.0 Integrity Algorithm Number
	// Resultant hash, per selected Integrity algorithm. Up to 20 bytes. An
	// implementation can elect to return a variable length field based on the size of
	// the hash for the given integrity algorithm, or can return a fixed field where the
	// hash data is followed by 00h bytes as needed to pad the data to 20 bytes.
	Hash []byte
}

type GetBTInterfaceCapabilitiesRequest

type GetBTInterfaceCapabilitiesRequest struct {
}

func (*GetBTInterfaceCapabilitiesRequest) Command

func (*GetBTInterfaceCapabilitiesRequest) Pack

type GetBTInterfaceCapabilitiesResponse

type GetBTInterfaceCapabilitiesResponse struct {
	OutstandingRequestsCountSupported uint8
	InputBufferMessageSizeBytes       uint8
	OutputBufferMessageSizeBytes      uint8
	BMCRequestToResponseTimeSec       uint8
	RecommendedRetries                uint8
}

func (*GetBTInterfaceCapabilitiesResponse) Format

func (*GetBTInterfaceCapabilitiesResponse) Unpack

func (res *GetBTInterfaceCapabilitiesResponse) Unpack(msg []byte) error

type GetChannelAccessRequest

type GetChannelAccessRequest struct {
	ChannelNumber uint8

	AccessOption types.ChannelAccessOption
}

22.23 Get Channel Access Command

func (*GetChannelAccessRequest) Command

func (req *GetChannelAccessRequest) Command() types.Command

func (*GetChannelAccessRequest) Pack

func (req *GetChannelAccessRequest) Pack() []byte

type GetChannelAccessResponse

type GetChannelAccessResponse struct {
	PEFAlertingDisabled   bool
	PerMsgAuthDisabled    bool
	UserLevelAuthDisabled bool
	AccessMode            types.ChannelAccessMode

	MaxPrivilegeLevel types.PrivilegeLevel
}

func (*GetChannelAccessResponse) Format

func (res *GetChannelAccessResponse) Format() string

func (*GetChannelAccessResponse) Unpack

func (res *GetChannelAccessResponse) Unpack(msg []byte) error

type GetChannelAuthenticationCapabilitiesRequest

type GetChannelAuthenticationCapabilitiesRequest struct {
	// [7]
	// - 1b = get IPMI v2.0+ extended data.
	// If the given channel supports authentication but does not support RMCP+
	// (e.g. a serial channel), then the Response data should return with bit [5] of byte 4 = 0b, byte 5 should return 01h,
	//
	// - 0b = Backward compatible with IPMI v1.5. Response data only returns
	// bytes 1:9, bit [7] of byte 3 (Authentication Type Support) and bit [5] of byte 4 returns as 0b, bit [5] of byte 5 returns 00h.
	// [6:4] - reserved
	IPMIv20Extended bool
	// [3:0] - channel number.
	// 0h-Bh, Fh = channel numbers
	// Eh = retrieve information for channel this request was issued on
	ChannelNumber uint8

	// Requested Maximum Privilege Level
	MaximumPrivilegeLevel types.PrivilegeLevel
}

22.13 Get Channel Authentication Capabilities. Retrieves capability information about the channel the message is delivered over, or for a particular channel, including authentication algorithm support for the given privilege level. Sent in unauthenticated (clear) format. When activating a session, the privilege level here is normally the same Requested Maximum Privilege used in Activate Session.

func (*GetChannelAuthenticationCapabilitiesRequest) Command

func (*GetChannelAuthenticationCapabilitiesRequest) Pack

type GetChannelAuthenticationCapabilitiesResponse

type GetChannelAuthenticationCapabilitiesResponse struct {
	// Channel number that the Authentication Capabilities is being returned for.
	// If the channel number in the request was set to Eh, this will return
	// the channel number for the channel that the request was received on
	ChannelNumber uint8

	// Returns the setting of the Authentication Type Enable field from the
	// configuration parameters for the given channel that corresponds to
	// the Requested Maximum Privilege Level.
	// [7] -
	// 1b = IPMI v2.0+ extended capabilities available. See Extended Capabilities field, below.
	// 0b = IPMI v1.5 support only.
	IPMIv20ExtendedAvailable bool
	// [5:0] - IPMI v1.5 Authentication type(s) enabled for given Requested Maximum Privilege Level
	AuthTypeNoneSupported           bool // bit 0
	AuthTypeMD2Supported            bool // bit 1
	AuthTypeMD5Supported            bool // bit 2
	AuthTypePasswordSupported       bool // bit 4
	AuthTypeOEMProprietarySupported bool // bit 5

	// [5] - Kg status (two-key login status).
	// Applies to v2.0/RMCP+ RAKP Authentication only. Otherwise, ignore as reserved.
	// 0b = Kg is set to default (all 0s).
	// 1b = Kg is set to non-zero value.
	KgStatus bool
	// [4] - Per-message Authentication status
	// 0b = Per-message Authentication is enabled.
	// 1b = Per-message Authentication is disabled.
	// Authentication Type "none" accepted for packets to the BMC after the session has been activated.
	PerMessageAuthenticationDisabled bool
	// [3] - User Level Authentication status
	// 0b = User Level Authentication is enabled.
	// 1b = User Level Authentication is disabled.
	// Authentication Type "none" accepted for User Level commands to the BMC.
	UserLevelAuthenticationDisabled bool
	// [2:0] - Anonymous Login status
	// This parameter returns values that tells the remote console whether
	// there are users on the system that have "null" usernames.
	// This can be used to guide the way the remote console presents login options to the user.
	// (see IPMI v1.5 specification sections 6.9.1, "Anonymous Login" Convention and 6.9.2, Anonymous Login )
	// [2] - 1b = Non-null usernames enabled. (One or more users are enabled that have non-null usernames).
	// [1] - 1b = Null usernames enabled (One or more users that have a null username, but non-null password, are presently enabled)
	// [0] - 1b = Anonymous Login enabled (A user that has a null username and null password is presently enabled)
	NonNullUsernamesEnabled bool
	NullUsernamesEnabled    bool
	AnonymousLoginEnabled   bool

	// For IPMI v1.5: - reserved
	// For IPMI v2.0+: - Extended Capabilities
	// [7:2] - reserved
	// [1] - 1b = channel supports IPMI v2.0 connections.
	// [0] - 1b = channel supports IPMI v1.5 connections.
	SupportIPMIv15 bool
	SupportIPMIv20 bool

	// IANA Enterprise Number for OEM/Organization that specified the particular
	// OEM Authentication Type for RMCP. Least significant byte first.
	// ONLY 3 bytes occupied. Return 00h, 00h, 00h if no OEM authentication type available.
	OEMID uint32

	// Additional OEM-specific information for the OEM Authentication Type for RMCP.
	// Return 00h if no OEM authentication type available.
	OEMAuxiliaryData uint8
}

func (*GetChannelAuthenticationCapabilitiesResponse) ChooseAuthType

func (*GetChannelAuthenticationCapabilitiesResponse) Format

func (*GetChannelAuthenticationCapabilitiesResponse) Unpack

type GetChannelCipherSuitesRequest

type GetChannelCipherSuitesRequest struct {
	// 0h-Bh, Fh = channel numbers
	// Eh = retrieve information for channel this request was issued on
	ChannelNumber uint8
	PayloadType   types.PayloadType
	ListIndex     uint8
}

22.15 Get Channel Cipher Suites Command. This command can be executed prior to establishing a session with the BMC. It looks up authentication, integrity, and confidentiality algorithms supported as combined cipher suites. Applies only to implementations that support IPMI v2.0/RMCP+ sessions.

func (*GetChannelCipherSuitesRequest) Command

func (*GetChannelCipherSuitesRequest) Pack

func (req *GetChannelCipherSuitesRequest) Pack() []byte

type GetChannelCipherSuitesResponse

type GetChannelCipherSuitesResponse struct {
	ChannelNumber      uint8
	CipherSuiteRecords []byte
}

func (*GetChannelCipherSuitesResponse) Format

func (res *GetChannelCipherSuitesResponse) Format() string

func (*GetChannelCipherSuitesResponse) Unpack

func (res *GetChannelCipherSuitesResponse) Unpack(msg []byte) error

type GetChannelInfoRequest

type GetChannelInfoRequest struct {
	ChannelNumber uint8
}

22.24 Get Channel Info Command

func (*GetChannelInfoRequest) Command

func (req *GetChannelInfoRequest) Command() types.Command

func (*GetChannelInfoRequest) Pack

func (req *GetChannelInfoRequest) Pack() []byte

type GetChannelInfoResponse

type GetChannelInfoResponse struct {
	ActualChannelNumber uint8
	ChannelMedium       types.ChannelMedium   // Channel Medium Type Numbers
	ChannelProtocol     types.ChannelProtocol // Channel Protocol Type Numbers
	SessionSupport      uint8
	ActiveSessionCount  uint8
	VendorID            uint32 // (IANA Enterprise Number) for OEM/Organization that specified the Channel Protocol.

	// Auxiliary Channel Info
	Auxiliary []byte // Auxiliary Channel Info Raw Data, 2 bytes

	// For Channel = Fh (System Interface)
	SMSInterruptType                InterruptType
	EventMessageBufferInterruptType InterruptType
}

func (*GetChannelInfoResponse) Format

func (res *GetChannelInfoResponse) Format() string

func (*GetChannelInfoResponse) Unpack

func (res *GetChannelInfoResponse) Unpack(msg []byte) error

type GetCommandEnablesRequest

type GetCommandEnablesRequest struct {
	ChannelNumber uint8

	CommandRangeMask CommandRangeMask
	NetFn            types.NetFn
	LUN              uint8

	CodeForNetFn2C uint8
	OEMIANA        uint32 // 3 bytes only
}

func (*GetCommandEnablesRequest) Command

func (req *GetCommandEnablesRequest) Command() types.Command

func (*GetCommandEnablesRequest) Pack

func (req *GetCommandEnablesRequest) Pack() []byte

type GetCommandEnablesResponse

type GetCommandEnablesResponse struct {
	// Todo
	CommandEnableMask []byte
}

func (*GetCommandEnablesResponse) Format

func (res *GetCommandEnablesResponse) Format() string

func (*GetCommandEnablesResponse) Unpack

func (res *GetCommandEnablesResponse) Unpack(msg []byte) error

type GetCommandSubfunctionEnablesRequest

type GetCommandSubfunctionEnablesRequest struct {
	ChannelNumber uint8

	NetFn types.NetFn
	LUN   uint8
	Cmd   uint8

	CodeForNetFn2C uint8
	OEMIANA        uint32 // 3 bytes only
}

func (*GetCommandSubfunctionEnablesRequest) Command

func (*GetCommandSubfunctionEnablesRequest) Pack

type GetCommandSubfunctionEnablesResponse

type GetCommandSubfunctionEnablesResponse struct {
	SubfunctionEnables []bool
}

func (*GetCommandSubfunctionEnablesResponse) Format

func (*GetCommandSubfunctionEnablesResponse) Unpack

func (res *GetCommandSubfunctionEnablesResponse) Unpack(msg []byte) error

type GetCommandSubfunctionSupportRequest

type GetCommandSubfunctionSupportRequest struct {
	ChannelNumber uint8

	NetFn types.NetFn
	LUN   uint8
	Cmd   uint8

	CodeForNetFn2C uint8
	OEMIANA        uint32 // 3 bytes only
}

func (*GetCommandSubfunctionSupportRequest) Command

func (*GetCommandSubfunctionSupportRequest) Pack

type GetCommandSubfunctionSupportResponse

type GetCommandSubfunctionSupportResponse struct {
	SpecificationType uint8
	ErrataVersion     uint8
	OEMGroupBody      uint8

	SpecificationVersion  uint8
	SpecificationRevision uint8

	// Todo
	SupportMask []byte
}

func (*GetCommandSubfunctionSupportResponse) Format

func (*GetCommandSubfunctionSupportResponse) Unpack

func (res *GetCommandSubfunctionSupportResponse) Unpack(msg []byte) error

type GetCommandSupportRequest

type GetCommandSupportRequest struct {
	ChannelNumber uint8

	CommandRangeMask CommandRangeMask
	NetFn            types.NetFn
	LUN              uint8

	CodeForNetFn2C uint8
	OEMIANA        uint32 // 3 bytes only
}

func (*GetCommandSupportRequest) Command

func (req *GetCommandSupportRequest) Command() types.Command

func (*GetCommandSupportRequest) Pack

func (req *GetCommandSupportRequest) Pack() []byte

type GetCommandSupportResponse

type GetCommandSupportResponse struct {
	// Todo
	CommandSupportMask []byte
}

func (*GetCommandSupportResponse) Format

func (res *GetCommandSupportResponse) Format() string

func (*GetCommandSupportResponse) Unpack

func (res *GetCommandSupportResponse) Unpack(msg []byte) error

type GetConfigurableCommandSubfunctionsRequest

type GetConfigurableCommandSubfunctionsRequest struct {
	ChannelNumber uint8

	NetFn types.NetFn
	LUN   uint8

	Cmd uint8

	CodeForNetFn2C uint8  // For Network Function = 2Ch
	OEMIANA        uint32 // For Network Function = 2Eh
}

21.6 Get Configurable Command Sub-functions Command

func (*GetConfigurableCommandSubfunctionsRequest) Command

func (*GetConfigurableCommandSubfunctionsRequest) Pack

type GetConfigurableCommandSubfunctionsResponse

type GetConfigurableCommandSubfunctionsResponse struct {
	// the index corresponds to sub-function number
	// index 0 -> sub-function 0
	// index 1 -> sub-function 1
	SubfunctionsSupport []bool
}

func (*GetConfigurableCommandSubfunctionsResponse) Format

func (*GetConfigurableCommandSubfunctionsResponse) Unpack

type GetConfigurableCommandsRequest

type GetConfigurableCommandsRequest struct {
	ChannelNumber uint8

	CommandRangeMask CommandRangeMask
	NetFn            types.NetFn
	LUN              uint8

	CodeForNetFn2C uint8
	OEMIANA        uint32 // 3 bytes only
}

func (*GetConfigurableCommandsRequest) Command

func (*GetConfigurableCommandsRequest) Pack

func (req *GetConfigurableCommandsRequest) Pack() []byte

type GetConfigurableCommandsResponse

type GetConfigurableCommandsResponse struct {
	// Todo
	CommandSupportMask []byte
}

func (*GetConfigurableCommandsResponse) Format

func (*GetConfigurableCommandsResponse) Unpack

func (res *GetConfigurableCommandsResponse) Unpack(msg []byte) error

type GetDeviceGUIDRequest

type GetDeviceGUIDRequest struct {
}

20.8 Get Device GUID Command

func (*GetDeviceGUIDRequest) Command

func (req *GetDeviceGUIDRequest) Command() types.Command

func (*GetDeviceGUIDRequest) Pack

func (req *GetDeviceGUIDRequest) Pack() []byte

type GetDeviceGUIDResponse

type GetDeviceGUIDResponse struct {
	GUID [16]byte
}

func (*GetDeviceGUIDResponse) Format

func (res *GetDeviceGUIDResponse) Format() string

func (*GetDeviceGUIDResponse) Unpack

func (res *GetDeviceGUIDResponse) Unpack(msg []byte) error

type GetDeviceIDRequest

type GetDeviceIDRequest struct {
}

20.1 Get Device ID Command

func (*GetDeviceIDRequest) Command

func (req *GetDeviceIDRequest) Command() types.Command

func (*GetDeviceIDRequest) Pack

func (req *GetDeviceIDRequest) Pack() []byte

type GetDeviceIDResponse

type GetDeviceIDResponse struct {
	DeviceID uint8

	// [7] 1 = device provides Device SDRs
	// 0 = device does not provide Device SDRs
	// [6:4] reserved. Return as 0.
	ProvideDeviceSDRs bool
	// [3:0] Device Revision, binary encoded
	DeviceRevision uint8

	// [7] Device available: 0=normal operation, 1= device firmware, SDR
	// Repository update or self-initialization in progress. [Firmware / SDR
	// Repository updates can be differentiated by issuing a Get SDR
	// command and checking the completion code.]
	DeviceAvailable bool
	// [6:0] Major Firmware Revision, binary encoded
	MajorFirmwareRevision uint8

	// BCD encoded
	MinorFirmwareRevision uint8

	// Holds IPMI Command Specification Version. BCD encoded.
	// 00h = reserved.
	// Bits 7:4 hold the Least Significant digit of the revision, while
	// bits 3:0 hold the Most Significant bits.
	// E.g. a value of 51h indicates revision 1.5 functionality.
	// 02h for implementations that provide IPMI v2.0 capabilities
	// per this specification.
	MajorIPMIVersion uint8
	MinorIPMIVersion uint8

	AdditionalDeviceSupport

	// Manufacturer ID, LS Byte first. The manufacturer ID is a 20-bit value that is
	// derived from the IANA Private Enterprise ID (see below).
	// Most significant four bits = reserved (0000b).
	// 000000h = unspecified. 0FFFFFh = reserved. This value is binary encoded.
	// E.g. the ID for the IPMI forum is 7154 decimal, which is 1BF2h, which would
	// be stored in this record as F2h, 1Bh, 00h for bytes 8 through 10, respectively
	ManufacturerID uint32 // only 3 bytes used

	// Product ID, LS Byte first. This field can be used to provide a number that
	// identifies a particular system, module, add-in card, or board set. The number
	// is specified according to the manufacturer given by Manufacturer ID (see
	// below).
	// 0000h = unspecified. FFFFh = reserved.
	ProductID uint16

	// Auxiliary Firmware Revision Information. This field is optional. If present, it
	// holds additional information about the firmware revision, such as boot block or
	// internal data structure version numbers. The meanings of the numbers are
	// specific to the vendor identified by Manufacturer ID (see below). When the
	// vendor-specific definition is not known, generic utilities should display each
	// byte as 2-digit hexadecimal numbers, with byte 13 displayed first as the most-significant byte.
	AuxiliaryFirmwareRevision []byte // 4 bytes
}

func (*GetDeviceIDResponse) FirmwareVersionStr

func (res *GetDeviceIDResponse) FirmwareVersionStr() string

func (*GetDeviceIDResponse) Format

func (res *GetDeviceIDResponse) Format() string

func (*GetDeviceIDResponse) Unpack

func (res *GetDeviceIDResponse) Unpack(msg []byte) error

type GetNetFnSupportRequest

type GetNetFnSupportRequest struct {
	ChannelNumber uint8
}

func (*GetNetFnSupportRequest) Command

func (req *GetNetFnSupportRequest) Command() types.Command

func (*GetNetFnSupportRequest) Pack

func (req *GetNetFnSupportRequest) Pack() []byte

type GetNetFnSupportResponse

type GetNetFnSupportResponse struct {
	LUN3Support LUNSupport
	LUN2Support LUNSupport
	LUN1Support LUNSupport
	LUN0Support LUNSupport

	// Todo
	NetFnPairsSupport []byte
}

func (*GetNetFnSupportResponse) Format

func (res *GetNetFnSupportResponse) Format() string

func (*GetNetFnSupportResponse) Unpack

func (res *GetNetFnSupportResponse) Unpack(msg []byte) error

type GetSelfTestResultsRequest

type GetSelfTestResultsRequest struct {
}

func (*GetSelfTestResultsRequest) Command

func (req *GetSelfTestResultsRequest) Command() types.Command

func (*GetSelfTestResultsRequest) Pack

func (req *GetSelfTestResultsRequest) Pack() []byte

type GetSelfTestResultsResponse

type GetSelfTestResultsResponse struct {
	Byte1 uint8
	Byte2 uint8
}

func (*GetSelfTestResultsResponse) Format

func (res *GetSelfTestResultsResponse) Format() string

func (*GetSelfTestResultsResponse) Unpack

func (res *GetSelfTestResultsResponse) Unpack(msg []byte) error

type GetSessionChallengeRequest

type GetSessionChallengeRequest struct {
	// Authentication Type for Challenge
	// indicating what type of authentication type the console wants to use.
	AuthType types.AuthType

	// Sixteen-bytes. All 0s for null user name (User 1)
	Username [16]byte
}

v1.5§18.14 / v2.0§22.16 Get Session Challenge. Selects which BMC-supported authentication type the remote console wants to use, and a username that selects user information for the session.

func (*GetSessionChallengeRequest) Command

func (req *GetSessionChallengeRequest) Command() types.Command

func (*GetSessionChallengeRequest) Pack

func (req *GetSessionChallengeRequest) Pack() []byte

type GetSessionChallengeResponse

type GetSessionChallengeResponse struct {
	TemporarySessionID uint32 // LS byte first
	Challenge          [16]byte
}

func (*GetSessionChallengeResponse) Format

func (res *GetSessionChallengeResponse) Format() string

func (*GetSessionChallengeResponse) Unpack

func (res *GetSessionChallengeResponse) Unpack(msg []byte) error

type GetSessionInfoRequest

type GetSessionInfoRequest struct {
	// Session index
	//   00h = Return info for active session associated with session this command was received over.
	//   N = get info for Nth active session
	//   FEh = Look up session info according to Session Handle passed in this request.
	//   FFh = Look up session info according to Session ID passed in this request.
	SessionIndex uint8

	SessionHandle uint8

	SessionID uint32
}

22.20 Get Session Info Command

func (*GetSessionInfoRequest) Command

func (req *GetSessionInfoRequest) Command() types.Command

func (*GetSessionInfoRequest) Pack

func (req *GetSessionInfoRequest) Pack() []byte

type GetSessionInfoResponse

type GetSessionInfoResponse struct {
	SessionHandle          uint8 // Session Handle presently assigned to active session.
	PossibleActiveSessions uint8 // This value reflects the number of possible entries (slots) in the sessions table.
	CurrentActiveSessions  uint8 // Number of currently active sessions on all channels on this controller

	UserID                  uint8
	OperatingPrivilegeLevel types.PrivilegeLevel

	// [7:4] - Session protocol auxiliary data
	// For Channel Type = 802.3 LAN:
	// 0h = IPMI v1.5
	// 1h = IPMI v2.0/RMCP+
	AuxiliaryData uint8 // 4bits
	ChannelNumber uint8 // 4bits

	// if Channel Type = 802.3 LAN:
	RemoteConsoleIPAddr  net.IP           // IP Address of remote console (MS-byte first).
	RemoteConsoleMacAddr net.HardwareAddr // 6 bytes, MAC Address (MS-byte first)
	RemoteConsolePort    uint16           // Port Number of remote console (LS-byte first)

	// if Channel Type = asynch. serial/modem
	SessionChannelActivityType uint8
	DestinationSelector        uint8
	RemoteConsoleIPAddr_PPP    uint32 // If PPP connection: IP address of remote console. (MS-byte first) 00h, 00h, 00h, 00h otherwise.

	// if Channel Type = asynch. serial/modem and connection is PPP:
	RemoteConsolePort_PPP uint16
}

func (*GetSessionInfoResponse) Format

func (res *GetSessionInfoResponse) Format() string

func (*GetSessionInfoResponse) Unpack

func (res *GetSessionInfoResponse) Unpack(msg []byte) error

type GetSystemGUIDRequest

type GetSystemGUIDRequest struct {
}

22.14 Get System GUID Command

func (*GetSystemGUIDRequest) Command

func (req *GetSystemGUIDRequest) Command() types.Command

func (*GetSystemGUIDRequest) Pack

func (req *GetSystemGUIDRequest) Pack() []byte

type GetSystemGUIDResponse

type GetSystemGUIDResponse struct {
	// Note that the individual fields within the GUID are stored least-significant byte first
	GUID [16]byte
}

func (*GetSystemGUIDResponse) Format

func (res *GetSystemGUIDResponse) Format() string

func (*GetSystemGUIDResponse) Unpack

func (res *GetSystemGUIDResponse) Unpack(msg []byte) error

type GetSystemInfoParamRequest

type GetSystemInfoParamRequest struct {
	GetParamRevisionOnly bool
	ParamSelector        types.SystemInfoParamSelector
	SetSelector          uint8
	BlockSelector        uint8
}

22.14b Get System Info Parameters Command

func (*GetSystemInfoParamRequest) Command

func (req *GetSystemInfoParamRequest) Command() types.Command

func (*GetSystemInfoParamRequest) Pack

func (req *GetSystemInfoParamRequest) Pack() []byte

type GetSystemInfoParamResponse

type GetSystemInfoParamResponse struct {
	ParamRevision uint8
	ParamData     []byte
}

func (*GetSystemInfoParamResponse) Format

func (res *GetSystemInfoParamResponse) Format() string

func (*GetSystemInfoParamResponse) Unpack

func (res *GetSystemInfoParamResponse) Unpack(msg []byte) error

type GetSystemInterfaceCapabilitiesRequest

type GetSystemInterfaceCapabilitiesRequest struct {
	SystemInterfaceType SystemInterfaceType
}

func (*GetSystemInterfaceCapabilitiesRequest) Command

func (*GetSystemInterfaceCapabilitiesRequest) Pack

type GetSystemInterfaceCapabilitiesResponse

type GetSystemInterfaceCapabilitiesResponse struct {
	// For System Interface Type = SSIF
	TransactionSupportMask uint8
	PECSupported           bool
	SSIFVersion            uint8
	InputMessageSizeBytes  uint8
	OutputMessageSizeBytes uint8

	// For System Interface Type = KCS or SMIC
	SystemInterfaceVersion       uint8
	InputMaximumMessageSizeBytes uint8
}

func (*GetSystemInterfaceCapabilitiesResponse) Format

func (*GetSystemInterfaceCapabilitiesResponse) Unpack

type GetUserAccessRequest

type GetUserAccessRequest struct {
	ChannelNumber uint8
	UserID        uint8
}

v1.5§18.24 / v2.0§22.27 Get User Access Command

func (*GetUserAccessRequest) Command

func (req *GetUserAccessRequest) Command() types.Command

func (*GetUserAccessRequest) Pack

func (req *GetUserAccessRequest) Pack() []byte

type GetUserAccessResponse

type GetUserAccessResponse struct {
	// Maximum number of User IDs. 1-based. Count includes User 1. A value of 1
	// indicates only User 1 is supported.
	MaxUsersIDCount uint8

	// [7:6] - User ID Enable status (for IPMI v2.0 errata 3 and later implementations).
	// 00b = User ID enable status unspecified. (For backward compatibility
	// with pre-errata 3 implementations. IPMI errata 3 and later
	// implementations should return the 01b and 10b responses.)
	// 01b = User ID enabled via Set User Password command.
	// 10b = User ID disabled via Set User Password command.
	// 11b = reserved
	EnableStatus uint8

	// [5:0] - count of currently enabled user IDs on this channel (Indicates how
	// many User ID slots are presently in use.)
	EnabledUserIDsCount uint8

	// Count of User IDs with fixed names, including User 1 (1-based). Fixed names
	// in addition to User 1 are required to be associated with sequential user IDs
	// starting from User ID 2.
	FixedNameUseIDsCount uint8

	// [6] - 0b = user access available during call-in or callback direct connection
	//       1b = user access available only during callback connection
	CallbackOnly bool

	// [5] - 0b = user disabled for link authentication
	//       1b = user enabled for link authentication
	LinkAuthEnabled bool

	// [4] - 0b = user disabled for IPMI Messaging
	//       1b = user enabled for IPMI Messaging
	IPMIMessagingEnabled bool

	// [3:0] - User Privilege Limit for given Channel
	MaxPrivLevel types.PrivilegeLevel
}

func (*GetUserAccessResponse) Format

func (res *GetUserAccessResponse) Format() string

func (*GetUserAccessResponse) Unpack

func (res *GetUserAccessResponse) Unpack(msg []byte) error

type GetUserPayloadAccessRequest

type GetUserPayloadAccessRequest struct {
	ChannelNumber uint8

	UserID uint8
}

24.7 Get User Payload Access Command

func (*GetUserPayloadAccessRequest) Command

func (req *GetUserPayloadAccessRequest) Command() types.Command

func (*GetUserPayloadAccessRequest) Pack

func (req *GetUserPayloadAccessRequest) Pack() []byte

type GetUserPayloadAccessResponse

type GetUserPayloadAccessResponse struct {
	PayloadTypeSOL  bool
	PayloadTypeOEM0 bool
	PayloadTypeOEM1 bool
	PayloadTypeOEM2 bool
	PayloadTypeOEM3 bool
	PayloadTypeOEM4 bool
	PayloadTypeOEM5 bool
	PayloadTypeOEM6 bool
	PayloadTypeOEM7 bool
}

func (*GetUserPayloadAccessResponse) Format

func (res *GetUserPayloadAccessResponse) Format() string

func (*GetUserPayloadAccessResponse) Unpack

func (res *GetUserPayloadAccessResponse) Unpack(msg []byte) error

type GetUsernameRequest

type GetUsernameRequest struct {
	// [5:0] - User ID. 000000b = reserved. (User ID 1 is permanently associated with User 1, the null user name).
	UserID uint8
}

22.29 Get User Name Command

func (*GetUsernameRequest) Command

func (req *GetUsernameRequest) Command() types.Command

func (*GetUsernameRequest) Pack

func (req *GetUsernameRequest) Pack() []byte

type GetUsernameResponse

type GetUsernameResponse struct {
	Username string
}

func (*GetUsernameResponse) Format

func (res *GetUsernameResponse) Format() string

func (*GetUsernameResponse) Unpack

func (res *GetUsernameResponse) Unpack(msg []byte) error

type GetWatchdogTimerRequest

type GetWatchdogTimerRequest struct {
}

27.7 Get Watchdog Timer Command

func (*GetWatchdogTimerRequest) Command

func (req *GetWatchdogTimerRequest) Command() types.Command

func (*GetWatchdogTimerRequest) Pack

func (req *GetWatchdogTimerRequest) Pack() []byte

type GetWatchdogTimerResponse

type GetWatchdogTimerResponse struct {
	DontLog        bool
	TimerIsStarted bool
	TimerUse       TimerUse

	PreTimeoutInterrupt PreTimeoutInterrupt
	TimeoutAction       TimeoutAction
	// PreTimeoutIntervalSec is the pre-timeout interval in seconds.
	PreTimeoutIntervalSec uint8

	ExpirationFlags uint8
	// InitialCountdown is the initial countdown value in 100ms units.
	// See InitialCountdownSec for the value in seconds.
	InitialCountdown uint16
	// PresentCountdown is the present countdown value in 100ms units.
	// See PresentCountdownSec for the value in seconds.
	PresentCountdown uint16
}

func (*GetWatchdogTimerResponse) Format

func (res *GetWatchdogTimerResponse) Format() string

func (*GetWatchdogTimerResponse) InitialCountdownSec added in v0.9.1

func (res *GetWatchdogTimerResponse) InitialCountdownSec() float64

InitialCountdownSec returns the initial countdown value in seconds.

func (*GetWatchdogTimerResponse) PresentCountdownSec added in v0.9.1

func (res *GetWatchdogTimerResponse) PresentCountdownSec() float64

PresentCountdownSec returns the present countdown value in seconds.

func (*GetWatchdogTimerResponse) Unpack

func (res *GetWatchdogTimerResponse) Unpack(msg []byte) error

type InterruptType

type InterruptType uint8

func (InterruptType) String

func (typ InterruptType) String() string

type LUNSupport

type LUNSupport uint8

func (LUNSupport) String

func (l LUNSupport) String() string

type ManufacturingTestOnRequest

type ManufacturingTestOnRequest struct {
}

func (*ManufacturingTestOnRequest) Command

func (req *ManufacturingTestOnRequest) Command() types.Command

func (*ManufacturingTestOnRequest) Pack

func (req *ManufacturingTestOnRequest) Pack() []byte

type ManufacturingTestOnResponse

type ManufacturingTestOnResponse struct {
}

func (*ManufacturingTestOnResponse) Format

func (res *ManufacturingTestOnResponse) Format() string

func (*ManufacturingTestOnResponse) Unpack

func (res *ManufacturingTestOnResponse) Unpack(msg []byte) error

type MasterWriteReadRequest

type MasterWriteReadRequest struct {
	// [7:4] channel number (Ignored when bus type = 1b)
	ChannelNumber uint8
	// [3:1] bus ID, 0-based (always 000b for public bus [bus type = 0b])
	BusID uint8
	// [0] bus type:
	// - 0b = public (e.g. IPMB or PCI Management Bus.
	//   The channel number value is used to select the target bus.)
	// - 1b = private bus (The bus ID value is used to select the target bus.)
	BusTypeIsPrivate bool

	SlaveAddress uint8

	ReadCount uint8

	// Data to write. This command should support at least 35 bytes of write data
	Data []byte
}

func (*MasterWriteReadRequest) Command

func (req *MasterWriteReadRequest) Command() types.Command

func (*MasterWriteReadRequest) Pack

func (req *MasterWriteReadRequest) Pack() []byte

type MasterWriteReadResponse

type MasterWriteReadResponse struct {
	// Bytes read from specified slave address.
	// This field will be absent if the read count is 0.
	// The controller terminates the I2C transaction with a STOP condition after reading the requested number of bytes.
	Data []byte
}

func (*MasterWriteReadResponse) Format

func (res *MasterWriteReadResponse) Format() string

func (*MasterWriteReadResponse) Unpack

func (res *MasterWriteReadResponse) Unpack(msg []byte) error

type PasswordOperation

type PasswordOperation uint8
const (
	PasswordOperationDisableUser  PasswordOperation = 0x00
	PasswordOperationEnableUser   PasswordOperation = 0x01
	PasswordOperationSetPassword  PasswordOperation = 0x02
	PasswordOperationTestPassword PasswordOperation = 0x03
)

type PreTimeoutInterrupt

type PreTimeoutInterrupt uint8
const (
	PreTimeoutInterruptNone      PreTimeoutInterrupt = 0x00
	PreTimeoutInterruptSMI       PreTimeoutInterrupt = 0x01
	PreTimeoutInterruptNMI       PreTimeoutInterrupt = 0x02
	PreTimeoutInterruptMessaging PreTimeoutInterrupt = 0x03
)

func (PreTimeoutInterrupt) String

func (t PreTimeoutInterrupt) String() string

type ResetWatchdogTimerRequest

type ResetWatchdogTimerRequest struct {
}

func (*ResetWatchdogTimerRequest) Command

func (req *ResetWatchdogTimerRequest) Command() types.Command

func (*ResetWatchdogTimerRequest) Pack

func (req *ResetWatchdogTimerRequest) Pack() []byte

type ResetWatchdogTimerResponse

type ResetWatchdogTimerResponse struct {
}

func (*ResetWatchdogTimerResponse) Format

func (res *ResetWatchdogTimerResponse) Format() string

func (*ResetWatchdogTimerResponse) Unpack

func (res *ResetWatchdogTimerResponse) Unpack(msg []byte) error

type SendMessageRequest

type SendMessageRequest struct {
	// [7:6] 00b = No tracking
	// 01b = Track Request.
	// 10b = Send Raw. (optional)
	// 11b = reserved
	TrackMask uint8

	Encrypted bool

	Authenticated bool

	ChannelNumber uint8

	// Todo
	MessageData []byte
}

func (SendMessageRequest) Command

func (req SendMessageRequest) Command() types.Command

func (*SendMessageRequest) Pack

func (req *SendMessageRequest) Pack() []byte

type SendMessageResponse

type SendMessageResponse struct {
	// This data will only be present when using the Send Message command to
	// originate requests from IPMB or PCI Management Bus to other channels
	// such as LAN or serial/modem. It is not present in the response to a
	// Send Message command delivered via the System Interface.
	Data []byte
}

func (*SendMessageResponse) Format

func (res *SendMessageResponse) Format() string

func (*SendMessageResponse) Unpack

func (res *SendMessageResponse) Unpack(msg []byte) error

type SetChannelAccessRequest

type SetChannelAccessRequest struct {
	ChannelNumber uint8

	// [7:6] - 00b = don't set or change Channel Access
	//         01b = set non-volatile Channel Access according to bits [5:0]
	//         10b = set volatile (active) setting of Channel Access according to bit [5:0]
	//         11b = reserved
	AccessOption         uint8
	DisablePEFAlerting   bool
	DisablePerMsgAuth    bool
	DisableUserLevelAuth bool
	AccessMode           types.ChannelAccessMode

	PrivilegeOption   uint8
	MaxPrivilegeLevel uint8
}

func (*SetChannelAccessRequest) Command

func (req *SetChannelAccessRequest) Command() types.Command

func (*SetChannelAccessRequest) Pack

func (req *SetChannelAccessRequest) Pack() []byte

type SetChannelAccessResponse

type SetChannelAccessResponse struct {
}

func (*SetChannelAccessResponse) Format

func (res *SetChannelAccessResponse) Format() string

func (*SetChannelAccessResponse) Unpack

func (res *SetChannelAccessResponse) Unpack(msg []byte) error

type SetCommandEnablesRequest

type SetCommandEnablesRequest struct {
	ChannelNumber uint8

	CommandRangeMask CommandRangeMask
	NetFn            types.NetFn
	LUN              uint8

	// if CommandRangeMask == CommandRangeMask007F
	CommandsMaskBytes [16]byte

	CodeForNetFn2C uint8
	OEMIANA        uint32 // 3 bytes only
}

func (*SetCommandEnablesRequest) Command

func (req *SetCommandEnablesRequest) Command() types.Command

func (*SetCommandEnablesRequest) Pack

func (req *SetCommandEnablesRequest) Pack() []byte

type SetCommandEnablesResponse

type SetCommandEnablesResponse struct {
}

func (*SetCommandEnablesResponse) Format

func (res *SetCommandEnablesResponse) Format() string

func (*SetCommandEnablesResponse) Unpack

func (res *SetCommandEnablesResponse) Unpack(msg []byte) error

type SetCommandSubfunctionEnablesRequest

type SetCommandSubfunctionEnablesRequest struct {
	ChannelNumber uint8

	CommandRangeMask CommandRangeMask
	NetFn            types.NetFn
	LUN              uint8
	Cmd              uint8

	CodeForNetFn2C uint8
	OEMIANA        uint32 // 3 bytes only

	SubfunctionEnables []bool
}

func (*SetCommandSubfunctionEnablesRequest) Command

func (*SetCommandSubfunctionEnablesRequest) Pack

type SetCommandSubfunctionEnablesResponse

type SetCommandSubfunctionEnablesResponse struct {
}

func (*SetCommandSubfunctionEnablesResponse) Format

func (*SetCommandSubfunctionEnablesResponse) Unpack

func (res *SetCommandSubfunctionEnablesResponse) Unpack(msg []byte) error

type SetSessionPrivilegeLevelRequest

type SetSessionPrivilegeLevelRequest struct {
	PrivilegeLevel types.PrivilegeLevel
}

v1.5§18.16 / v2.0§22.18 Set Session Privilege Level Command

func (*SetSessionPrivilegeLevelRequest) Command

func (*SetSessionPrivilegeLevelRequest) Pack

func (req *SetSessionPrivilegeLevelRequest) Pack() []byte

type SetSessionPrivilegeLevelResponse

type SetSessionPrivilegeLevelResponse struct {
	// New Privilege Level (or present level if 'return present privilege level' was selected.)
	PrivilegeLevel uint8
}

func (*SetSessionPrivilegeLevelResponse) Format

func (*SetSessionPrivilegeLevelResponse) Unpack

func (res *SetSessionPrivilegeLevelResponse) Unpack(msg []byte) error

type SetSystemInfoParamRequest

type SetSystemInfoParamRequest struct {
	ParamSelector types.SystemInfoParamSelector
	ParamData     []byte
}

22.14a Set System Info Parameters Command

func (*SetSystemInfoParamRequest) Command

func (req *SetSystemInfoParamRequest) Command() types.Command

func (*SetSystemInfoParamRequest) Pack

func (req *SetSystemInfoParamRequest) Pack() []byte

type SetSystemInfoParamResponse

type SetSystemInfoParamResponse struct {
}

func (*SetSystemInfoParamResponse) Format

func (res *SetSystemInfoParamResponse) Format() string

func (*SetSystemInfoParamResponse) Unpack

func (res *SetSystemInfoParamResponse) Unpack(msg []byte) error

type SetUserAccessRequest

type SetUserAccessRequest struct {
	EnableChanging bool

	RestrictedToCallback bool

	EnableLinkAuth bool

	EnableIPMIMessaging bool

	ChannelNumber uint8

	UserID uint8

	MaxPrivLevel uint8

	SessionLimit uint8
}

func (*SetUserAccessRequest) Command

func (req *SetUserAccessRequest) Command() types.Command

func (*SetUserAccessRequest) Pack

func (req *SetUserAccessRequest) Pack() []byte

type SetUserAccessResponse

type SetUserAccessResponse struct {
}

func (*SetUserAccessResponse) Format

func (res *SetUserAccessResponse) Format() string

func (*SetUserAccessResponse) Unpack

func (res *SetUserAccessResponse) Unpack(msg []byte) error

type SetUserPasswordRequest

type SetUserPasswordRequest struct {
	// [5:0] - User ID. 000000b = reserved. (User ID 1 is permanently associated with User 1, the null user name).
	UserID uint8

	// The BMC shall maintain an internal tag that indicates whether
	// the password was set as a 16-byte or as a 20-byte password.
	Stored20 bool

	Operation PasswordOperation

	Password string
}

func (*SetUserPasswordRequest) Command

func (req *SetUserPasswordRequest) Command() types.Command

func (*SetUserPasswordRequest) Pack

func (req *SetUserPasswordRequest) Pack() []byte

type SetUserPasswordResponse

type SetUserPasswordResponse struct {
}

func (*SetUserPasswordResponse) Format

func (res *SetUserPasswordResponse) Format() string

func (*SetUserPasswordResponse) Unpack

func (res *SetUserPasswordResponse) Unpack(msg []byte) error

type SetUserPayloadAccessOperation

type SetUserPayloadAccessOperation uint8
const (
	SetUserPayloadAccessOperationEnable  SetUserPayloadAccessOperation = 0x00
	SetUserPayloadAccessOperationDisable SetUserPayloadAccessOperation = 0x01
)

type SetUserPayloadAccessRequest

type SetUserPayloadAccessRequest struct {
	ChannelNumber uint8

	UserID uint8

	Operation SetUserPayloadAccessOperation

	PayloadTypeSOL  bool
	PayloadTypeOEM0 bool
	PayloadTypeOEM1 bool
	PayloadTypeOEM2 bool
	PayloadTypeOEM3 bool
	PayloadTypeOEM4 bool
	PayloadTypeOEM5 bool
	PayloadTypeOEM6 bool
	PayloadTypeOEM7 bool
}

24.6 Set User Payload Access Command

func (*SetUserPayloadAccessRequest) Command

func (req *SetUserPayloadAccessRequest) Command() types.Command

func (*SetUserPayloadAccessRequest) Pack

func (req *SetUserPayloadAccessRequest) Pack() []byte

type SetUserPayloadAccessResponse

type SetUserPayloadAccessResponse struct {
}

func (*SetUserPayloadAccessResponse) Format

func (res *SetUserPayloadAccessResponse) Format() string

func (*SetUserPayloadAccessResponse) Unpack

func (res *SetUserPayloadAccessResponse) Unpack(msg []byte) error

type SetUsernameRequest

type SetUsernameRequest struct {
	// [5:0] - User ID. 000000b = reserved. (User ID 1 is permanently associated with User 1, the null user name).
	UserID uint8

	// User Name String in ASCII, 16 bytes, max. Strings with fewer than 16
	// characters are terminated with a null (00h) character and 00h padded to 16
	// bytes. When the string is read back using the Get User Name command,
	// those bytes shall be returned as 0s.
	// Here if string length is longer than 16, it would be auto truncated.
	Username string
}

func (*SetUsernameRequest) Command

func (req *SetUsernameRequest) Command() types.Command

func (*SetUsernameRequest) Pack

func (req *SetUsernameRequest) Pack() []byte

type SetUsernameResponse

type SetUsernameResponse struct {
}

func (*SetUsernameResponse) Format

func (res *SetUsernameResponse) Format() string

func (*SetUsernameResponse) Unpack

func (res *SetUsernameResponse) Unpack(msg []byte) error

type SetWatchdogTimerRequest

type SetWatchdogTimerRequest struct {
	DontLog       bool
	DontStopTimer bool
	TimerUse      TimerUse

	PreTimeoutInterrupt PreTimeoutInterrupt
	TimeoutAction       TimeoutAction
	// PreTimeoutIntervalSec is the pre-timeout interval in seconds.
	PreTimeoutIntervalSec uint8

	ExpirationFlags uint8
	// InitialCountdown is the initial countdown value in 100ms units, that is,
	// WatchdogCountdownUnitsPerSecond units per second.
	InitialCountdown uint16
}

func (*SetWatchdogTimerRequest) Command

func (req *SetWatchdogTimerRequest) Command() types.Command

func (*SetWatchdogTimerRequest) Pack

func (req *SetWatchdogTimerRequest) Pack() []byte

type SetWatchdogTimerResponse

type SetWatchdogTimerResponse struct {
}

func (*SetWatchdogTimerResponse) Format

func (res *SetWatchdogTimerResponse) Format() string

func (*SetWatchdogTimerResponse) Unpack

func (res *SetWatchdogTimerResponse) Unpack(msg []byte) error

type SystemInterfaceType

type SystemInterfaceType uint8
const (
	SystemInterfaceTypeSSIF SystemInterfaceType = 0x00
	SystemInterfaceTypeKCS  SystemInterfaceType = 0x01
	SystemInterfaceTypeSMIC SystemInterfaceType = 0x02
)

type TimeoutAction

type TimeoutAction uint8
const (
	TimeoutActionNoAction   TimeoutAction = 0x00
	TimeoutActionHardReset  TimeoutAction = 0x01
	TimeoutActionPowerDown  TimeoutAction = 0x02
	TimeoutActionPowerCycle TimeoutAction = 0x03
)

func (TimeoutAction) String

func (t TimeoutAction) String() string

type TimerUse

type TimerUse uint8
const (
	TimerUseBIOSFRB2 TimerUse = 0x01 // BIOS/FRB2
	TimerUseBIOSPOST TimerUse = 0x02 // BIOS/POST
	TimerUseOSLoad   TimerUse = 0x03
	TimerUseSMSOS    TimerUse = 0x04 // SMS/OS
	TimerUseOEM      TimerUse = 0x05
)

func (TimerUse) String

func (t TimerUse) String() string

type User

type User struct {
	ID                   uint8
	Name                 string
	Callin               bool
	LinkAuthEnabled      bool
	IPMIMessagingEnabled bool
	MaxPrivLevel         types.PrivilegeLevel
}

type WarmResetRequest

type WarmResetRequest struct {
}

func (*WarmResetRequest) Command

func (req *WarmResetRequest) Command() types.Command

func (*WarmResetRequest) Pack

func (req *WarmResetRequest) Pack() []byte

type WarmResetResponse

type WarmResetResponse struct {
}

func (*WarmResetResponse) Format

func (res *WarmResetResponse) Format() string

func (*WarmResetResponse) Unpack

func (res *WarmResetResponse) Unpack(msg []byte) error

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL