Package org.metricshub.ipmi.core.coding
Class PayloadCoder
java.lang.Object
org.metricshub.ipmi.core.coding.PayloadCoder
- Direct Known Subclasses:
IpmiCommandCoder,SolCoder
Base class for
IpmiPayload coders, used for encoding pyloads inside IpmiMessages.-
Constructor Summary
ConstructorsConstructorDescriptionPayloadCoder(IpmiVersion version, CipherSuite cipherSuite, AuthenticationType authenticationType) -
Method Summary
Modifier and TypeMethodDescriptionencodePayload(int messageSequenceNumber, int sessionSequenceNumber, int sessionId) Prepares an IPMI request message containing class-specific payload.abstract ResponseDatagetResponseData(IpmiMessage message) Retrieves payload-specific response data from IPMI messageabstract PayloadTypevoidsetAuthenticationType(AuthenticationType authenticationType) voidsetCipherSuite(CipherSuite cipherSuite) voidsetIpmiVersion(IpmiVersion ipmiVersion) voidsetSessionParameters(IpmiVersion version, CipherSuite cipherSuite, AuthenticationType authenticationType) Sets session parameters.
-
Constructor Details
-
PayloadCoder
public PayloadCoder() -
PayloadCoder
public PayloadCoder(IpmiVersion version, CipherSuite cipherSuite, AuthenticationType authenticationType)
-
-
Method Details
-
setIpmiVersion
-
getIpmiVersion
-
setAuthenticationType
-
getAuthenticationType
-
setCipherSuite
-
getCipherSuite
-
setSessionParameters
public void setSessionParameters(IpmiVersion version, CipherSuite cipherSuite, AuthenticationType authenticationType) Sets session parameters.- Parameters:
version- - IPMI version of the command.cipherSuite- -CipherSuitecontaining authentication, confidentiality and integrity algorithms for this session.authenticationType- - Type of authentication used. Must be RMCPPlus for IPMI v2.0.
-
encodePayload
public IpmiMessage encodePayload(int messageSequenceNumber, int sessionSequenceNumber, int sessionId) throws NoSuchAlgorithmException, InvalidKeyException Prepares an IPMI request message containing class-specific payload.- Parameters:
messageSequenceNumber- - A generated sequence number used for matching request and response. For all IPMI messages, messageSequenceNumber is used as a IPMI LAN Message sequence number and as an IPMI payload message tag.sessionSequenceNumber- - If IPMI message is sent in a session, it is used as a Session Sequence NumbersessionId- - ID of the managed system's session message is being sent in. For sessionless commands should b set to 0.- Returns:
- IPMI message
- Throws:
NoSuchAlgorithmException- - when authentication, confidentiality or integrity algorithm fails.InvalidKeyException- - when creating of the algorithm key fails
-
getSupportedPayloadType
-
getResponseData
public abstract ResponseData getResponseData(IpmiMessage message) throws IPMIException, NoSuchAlgorithmException, InvalidKeyException Retrieves payload-specific response data from IPMI message- Parameters:
message- - IPMI message- Returns:
- response data
- Throws:
IllegalArgumentException- when message is not a response for class-specific command or response has invalid length.IPMIException- when response completion code isn't OK.NoSuchAlgorithmException- when authentication, confidentiality or integrity algorithm fails.InvalidKeyException- when creating of the authentication algorithm key fails
-