Pages

Wednesday, May 8, 2013

[IPMI] Firmware Firewall & Command Discovery Commands

[IPMI] Firmware Firewall & Command Discovery Commands Get NetFn Support - NetFn = App (0x06h), CMD = 0x09h, Privilege Level = User, M/O = O
| Linux |
[IPMItool]
ipmitool raw 0x06 0x09 D[1] Byte 1
Channel Number
[7:4] - reserved
[3:0] - Channel number
        0h-Bh, Fh = channel numbers
        Eh = retrieve information for channel this request was issued on

[ipmiutil]
ipmiutil cmd 00 20 18 09 D[1] Byte 1
Channel Number
[7:4] - reserved
[3:0] - Channel number
        0h-Bh, Fh = channel numbers
        Eh = retrieve information for channel this request was issued on

icmd 00 20 18 09 D[1] Byte 1
Channel Number
[7:4] - reserved
[3:0] - Channel number
        0h-Bh, Fh = channel numbers
        Eh = retrieve information for channel this request was issued on

[FreeIPMI]
ipmi-raw 0x00 0x06 0x09 D[1] Byte 1
Channel Number
[7:4] - reserved
[3:0] - Channel number
        0h-Bh, Fh = channel numbers
        Eh = retrieve information for channel this request was issued on

| MS-DOS |
[ipmitool]
ipmitool 20 18 09 Data[1]

For example   Hint: hover over Place your mouse over the highlighted area in below
for Response Data description
[IPMItool in Linux]
$ ipmitool raw 0x06 0x09 0x00
 02 Byte 2
LUN Support
[7:6] - LUN 3 (11b) support
        00b = no commands supported on LUN 3 (11b)
        01b = commands follow base IPMI specification
        10b = commands exist on LUN, but some commands/operations may be restricted by firewall configuration
        11b = reserved
[5:4] - LUN 2 (10b) support
        Note that a BMC uses LUN 10b for message bridging
        00b = no commands supported on LUN 2 (10b)
        01b = commands follow base IPMI specification
        10b = commands exist on LUN, but some commands/operations may be restricted by firewall configuration
        11b = reserved
[3:2] - LUN 1 (01b) support
[1:0] - LUN 0 (00b) support
6f 00 00 13 00 00 00 00 00 00 00 00 00 00 00
 00 Byte [3:18]
There are 32 possible Network Function (NetFn) Pairs
Since there are four possible LUNs for a management controller, a total of 16 bytes will return the settings for all four possible LUNs
0b = NetFn pair is not used
1b = NetFn pair is used
byte 1, bit 0 corresponds to NetFn pair 0h, 1h for LUN 00b
byte 1, bit 7 corresponds to NetFn pair Eh, Fh for LUN 00b
byte 2, bit 0 corresponds to NetFn pair 10h, 11h for LUN 00b
byte 2, bit 7 corresponds to NetFn pair 1Eh, 1Fh for LUN 00b

byte 16, bit 0 corresponds to NetFn pair 30h, 31h for LUN 11b
byte 16, bit 7 corresponds to NetFn pair 3Eh, 3Fh for LUN 11b

[ipmiutil in Linux]
$ icmd 00 20 18 09 01
ipmiutil ver 3.08
icmd ver 3.08
This is a test tool to compose IPMI commands.
Do not use without knowledge of the IPMI specification.
-- BMC version 1.7, IPMI version 2.0
respData[len=17]: 02 Byte 2
LUN Support
[7:6] - LUN 3 (11b) support
        00b = no commands supported on LUN 3 (11b)
        01b = commands follow base IPMI specification
        10b = commands exist on LUN, but some commands/operations may be restricted by firewall configuration
        11b = reserved
[5:4] - LUN 2 (10b) support
        Note that a BMC uses LUN 10b for message bridging
        00b = no commands supported on LUN 2 (10b)
        01b = commands follow base IPMI specification
        10b = commands exist on LUN, but some commands/operations may be restricted by firewall configuration
        11b = reserved
[3:2] - LUN 1 (01b) support
[1:0] - LUN 0 (00b) support
6f 00 00 13 00 00 00 00 00 00 00 00 00 00 00 00 Byte [3:18]
There are 32 possible Network Function (NetFn) Pairs
Since there are four possible LUNs for a management controller, a total of 16 bytes will return the settings for all four possible LUNs
0b = NetFn pair is not used
1b = NetFn pair is used
byte 1, bit 0 corresponds to NetFn pair 0h, 1h for LUN 00b
byte 1, bit 7 corresponds to NetFn pair Eh, Fh for LUN 00b
byte 2, bit 0 corresponds to NetFn pair 10h, 11h for LUN 00b
byte 2, bit 7 corresponds to NetFn pair 1Eh, 1Fh for LUN 00b

byte 16, bit 0 corresponds to NetFn pair 30h, 31h for LUN 11b
byte 16, bit 7 corresponds to NetFn pair 3Eh, 3Fh for LUN 11b

send_icmd ret = 0
ipmiutil cmd, completed successfully
[FreeIPMI in Linux]
$ ipmi-raw 0x00 0x06 0x09 0x00
rcvd: 09 00 Byte 1
Completion Code
00h = Command Completed Normally
02 Byte 2
LUN Support
[7:6] - LUN 3 (11b) support
        00b = no commands supported on LUN 3 (11b)
        01b = commands follow base IPMI specification
        10b = commands exist on LUN, but some commands/operations may be restricted by firewall configuration
        11b = reserved
[5:4] - LUN 2 (10b) support
        Note that a BMC uses LUN 10b for message bridging
        00b = no commands supported on LUN 2 (10b)
        01b = commands follow base IPMI specification
        10b = commands exist on LUN, but some commands/operations may be restricted by firewall configuration
        11b = reserved
[3:2] - LUN 1 (01b) support
[1:0] - LUN 0 (00b) support
6f 00 00 13 00 00 00 00 00 00 00 00 00 00 00 00 Byte [3:18]
There are 32 possible Network Function (NetFn) Pairs
Since there are four possible LUNs for a management controller, a total of 16 bytes will return the settings for all four possible LUNs
0b = NetFn pair is not used
1b = NetFn pair is used
byte 1, bit 0 corresponds to NetFn pair 0h, 1h for LUN 00b
byte 1, bit 7 corresponds to NetFn pair Eh, Fh for LUN 00b
byte 2, bit 0 corresponds to NetFn pair 10h, 11h for LUN 00b
byte 2, bit 7 corresponds to NetFn pair 1Eh, 1Fh for LUN 00b

byte 16, bit 0 corresponds to NetFn pair 30h, 31h for LUN 11b
byte 16, bit 7 corresponds to NetFn pair 3Eh, 3Fh for LUN 11b



Get Command Support - NetFn = App (0x06h), CMD = 0x0ah, Privilege Level = User, M/O = O
| Linux |
[IPMItool]
ipmitool raw 0x06 0x0a D[1] Byte 1
Channel Number
[7:4] - reserved
[3:0] - channel number
        0h-Bh, Fh = channel numbers
        Eh = retrieve information for channel this request was issued on
D[2] Byte 2
Request Data Byte 2
[7:6] - Operation
        00b = return support mask for commands 00h through 7Fh
        01b = return support mask for commands 80h through FFh
        10b, 11b = reserved
[5:0] - NetFn
        Network function code to look up command support for
        The management controller will return the same values for odd or even NetFn values
        I.e. the value for bit [0] is ignored
D[3] Byte 3
Request Data Byte 3
[7:2] - reserved
[1:0] - LUN

[ipmiutil]
ipmiutil cmd 00 20 18 0a D[1] Byte 1
Channel Number
[7:4] - reserved
[3:0] - channel number
        0h-Bh, Fh = channel numbers
        Eh = retrieve information for channel this request was issued on
D[2] Byte 2
Request Data Byte 2
[7:6] - Operation
        00b = return support mask for commands 00h through 7Fh
        01b = return support mask for commands 80h through FFh
        10b, 11b = reserved
[5:0] - NetFn
        Network function code to look up command support for
        The management controller will return the same values for odd or even NetFn values
        I.e. the value for bit [0] is ignored
D[3] Byte 3
Request Data Byte 3
[7:2] - reserved
[1:0] - LUN

icmd 00 20 18 0a D[1] Byte 1
Channel Number
[7:4] - reserved
[3:0] - channel number
        0h-Bh, Fh = channel numbers
        Eh = retrieve information for channel this request was issued on
D[2] Byte 2
Request Data Byte 2
[7:6] - Operation
        00b = return support mask for commands 00h through 7Fh
        01b = return support mask for commands 80h through FFh
        10b, 11b = reserved
[5:0] - NetFn
        Network function code to look up command support for
        The management controller will return the same values for odd or even NetFn values
        I.e. the value for bit [0] is ignored
D[3] Byte 3
Request Data Byte 3
[7:2] - reserved
[1:0] - LUN

[FreeIPMI]
ipmi-raw 0x00 0x06 0x0a D[1] Byte 1
Channel Number
[7:4] - reserved
[3:0] - channel number
        0h-Bh, Fh = channel numbers
        Eh = retrieve information for channel this request was issued on
D[2] Byte 2
Request Data Byte 2
[7:6] - Operation
        00b = return support mask for commands 00h through 7Fh
        01b = return support mask for commands 80h through FFh
        10b, 11b = reserved
[5:0] - NetFn
        Network function code to look up command support for
        The management controller will return the same values for odd or even NetFn values
        I.e. the value for bit [0] is ignored
D[3] Byte 3
Request Data Byte 3
[7:2] - reserved
[1:0] - LUN

| MS-DOS |
[ipmitool]
ipmitool 20 18 0a Data[1:3]

For example   Hint: hover over Place your mouse over the highlighted area in below
for Response Data description
[IPMItool in Linux]
$ ipmitool raw 0x06 0x0a 0x00 0x06 0x00
 01 c0 ff ff cb 3f 00 40 00 00 0a fc ec ff ff ff Byte [2:17]
Support Mask
These sixteen bytes form a 128-bit bitfield where each bit indicates support for a particular command value under the given NetFn
  For each bit in the bitfield:
    0b = indicates the command is available
    1b = indicates the command not available
  Depending on the value of the "Operation" parameter passed in the request:
    byte 1, bit 0 corresponds to command 00h or command 80h
    byte 1, bit 7 corresponds to command 07h or command 87h
    …
    byte 16, bit 0 correspond to command 78h or command F8h
    byte 16, bit 7 corresponds to command 7Fh or command FFh

[ipmiutil in Linux]
$ icmd 00 20 18 0a 01 0a 00
ipmiutil ver 3.08
icmd ver 3.08
This is a test tool to compose IPMI commands.
Do not use without knowledge of the IPMI specification.
-- BMC version 1.7, IPMI version 2.0
respData[len=16]: ff ff f8 ff 40 ee ff ff 00 fc ff cf ff ff ff ff Byte [2:17]
Support Mask
These sixteen bytes form a 128-bit bitfield where each bit indicates support for a particular command value under the given NetFn
  For each bit in the bitfield:
    0b = indicates the command is available
    1b = indicates the command not available
  Depending on the value of the "Operation" parameter passed in the request:
    byte 1, bit 0 corresponds to command 00h or command 80h
    byte 1, bit 7 corresponds to command 07h or command 87h
    …
    byte 16, bit 0 correspond to command 78h or command F8h
    byte 16, bit 7 corresponds to command 7Fh or command FFh

send_icmd ret = 0
ipmiutil cmd, completed successfully
[FreeIPMI in Linux]
$ ipmi-raw 0x00 0x06 0x0a 0x00 0x04 0x00
rcvd: 0A 00 Byte 1
Completion Code
00h = Command Completed Normally
F8 FF 00 FF 00 D0 FE FF FF FF FF FF FF FF FF FF Byte [2:17]
Support Mask
These sixteen bytes form a 128-bit bitfield where each bit indicates support for a particular command value under the given NetFn
  For each bit in the bitfield:
    0b = indicates the command is available
    1b = indicates the command not available
  Depending on the value of the "Operation" parameter passed in the request:
    byte 1, bit 0 corresponds to command 00h or command 80h
    byte 1, bit 7 corresponds to command 07h or command 87h
    …
    byte 16, bit 0 correspond to command 78h or command F8h
    byte 16, bit 7 corresponds to command 7Fh or command FFh



Get Command Sub-function Support - NetFn = App (0x06h), CMD = 0xbh, Privilege Level = User, M/O = O
| Linux |
[IPMItool]
ipmitool raw 0x06 0x0b D[1] Byte 1
Channel Number
[7:4] - reserved
[3:0] - channel number
        0h-Bh, Fh = channel numbers
        Eh = retrieve information for channel this request was issued on
D[2] Byte 2
Request Data Byte 2
[7:6] - reserved
[5:0] - NetFn
        Network function code to look up command support for
        The management controller will return the same values for odd or even NetFn values
        I.e. the value for bit [0] is ignored
D[3] Byte 3
Request Data Byte 3
[7:2] - reserved
[1:0] - LUN
D[4] Byte 4
Request Data Byte 4
[7:0] - CMD
Command number to return command sub-function information for

[ipmiutil]
ipmiutil cmd 00 20 18 0b D[1] Byte 1
Channel Number
[7:4] - reserved
[3:0] - channel number
        0h-Bh, Fh = channel numbers
        Eh = retrieve information for channel this request was issued on
D[2] Byte 2
Request Data Byte 2
[7:6] - reserved
[5:0] - NetFn
        Network function code to look up command support for
        The management controller will return the same values for odd or even NetFn values
        I.e. the value for bit [0] is ignored
D[3] Byte 3
Request Data Byte 3
[7:2] - reserved
[1:0] - LUN
D[4] Byte 4
Request Data Byte 4
[7:0] - CMD
Command number to return command sub-function information for

icmd 00 20 18 0b D[1] Byte 1
Channel Number
[7:4] - reserved
[3:0] - channel number
        0h-Bh, Fh = channel numbers
        Eh = retrieve information for channel this request was issued on
D[2] Byte 2
Request Data Byte 2
[7:6] - reserved
[5:0] - NetFn
        Network function code to look up command support for
        The management controller will return the same values for odd or even NetFn values
        I.e. the value for bit [0] is ignored
D[3] Byte 3
Request Data Byte 3
[7:2] - reserved
[1:0] - LUN
D[4] Byte 4
Request Data Byte 4
[7:0] - CMD
Command number to return command sub-function information for

[FreeIPMI]
ipmi-raw 0x00 0x06 0x0b D[1] Byte 1
Channel Number
[7:4] - reserved
[3:0] - channel number
        0h-Bh, Fh = channel numbers
        Eh = retrieve information for channel this request was issued on
D[2] Byte 2
Request Data Byte 2
[7:6] - reserved
[5:0] - NetFn
        Network function code to look up command support for
        The management controller will return the same values for odd or even NetFn values
        I.e. the value for bit [0] is ignored
D[3] Byte 3
Request Data Byte 3
[7:2] - reserved
[1:0] - LUN
D[4] Byte 4
Request Data Byte 4
[7:0] - CMD
Command number to return command sub-function information for

| MS-DOS |
[ipmitool]
ipmitool 20 18 0b Data[1:4]

For example   Hint: hover over Place your mouse over the highlighted area in below
for Response Data description
[IPMItool in Linux]
$ ipmitool raw 0x06 0x0b 0x01 0x06 0x00 0x1
 04 Byte 2
Specification Type / Errata
For IPMI Network Function not equal to 2Ch or 2Eh:
[7:4] - Specification Type
        0h = IPMI
        1h = IPMB
        2h = ICMB
        all other = reserved
[3:0] - Errata Version
        This field returns the errata document version that was used in defining the command's operation
        For IPMI specifications, this is the revision number of the IPMI errata that goes with the specification version and revision, below
        The latest errata of the specification to which the command is conformant should be used
        Use 0h if there is no errata document available at the time the command was defined
20 Byte 3
Specification Version
This field returns the specification Version, in BCD format for which the command was specified
Bits 7:4 hold the most significant digit of the version, while bits 3:0 hold the least significant bits,
e.g. a value of 20h indicates version 2.0
The latest version number for the specification that the command is conformant to should be used
10 Byte 4
Specification Revision
This field returns the specification Revision, in BCD format for which the command was specified
Bits 7:4 hold the most significant digit of the version, while bits 3:0 hold the least significant bits,
e.g. a value of 10h indicates version 1.0
The latest revision number for the specification that the command is conformant to should be used
ff ff ff ff Byte (5:8)
Support Mask 1 (ls-byte first)
These thirty-two bits form a bitfield where each bit indicates support for a particular sub-function for the given command
The bit offset corresponds to the number of the sub-function
1b indicates that a mandatory sub-function or option is unavailable
0b indicates that a mandatory sub-function or option is available
0b is also used when a given offset is undefined
Thus, a command that implements all functions (mandatory and optional) will return all 0's for the bitfield
See Table H-1, Sub-function Number Assignments
[31] - bit for sub-function 31
[30] - bit for sub-function 30

[1] - bit for sub-function 1
[0] - bit for sub-function 0

[ipmiutil in Linux]
$ icmd 00 20 18 0b 01 06 00 32
ipmiutil ver 3.08
icmd ver 3.08
This is a test tool to compose IPMI commands.
Do not use without knowledge of the IPMI specification.
-- BMC version 1.7, IPMI version 2.0
respData[len=7]: 04 Byte 2
Specification Type / Errata
For IPMI Network Function not equal to 2Ch or 2Eh:
[7:4] - Specification Type
        0h = IPMI
        1h = IPMB
        2h = ICMB
        all other = reserved
[3:0] - Errata Version
        This field returns the errata document version that was used in defining the command's operation
        For IPMI specifications, this is the revision number of the IPMI errata that goes with the specification version and revision, below
        The latest errata of the specification to which the command is conformant should be used
        Use 0h if there is no errata document available at the time the command was defined
20 Byte 3
Specification Version
This field returns the specification Version, in BCD format for which the command was specified
Bits 7:4 hold the most significant digit of the version, while bits 3:0 hold the least significant bits,
e.g. a value of 20h indicates version 2.0
The latest version number for the specification that the command is conformant to should be used
10 Byte 4
Specification Revision
This field returns the specification Revision, in BCD format for which the command was specified
Bits 7:4 hold the most significant digit of the version, while bits 3:0 hold the least significant bits,
e.g. a value of 10h indicates version 1.0
The latest revision number for the specification that the command is conformant to should be used
00 f0 ff ff Byte (5:8)
Support Mask 1 (ls-byte first)
These thirty-two bits form a bitfield where each bit indicates support for a particular sub-function for the given command
The bit offset corresponds to the number of the sub-function
1b indicates that a mandatory sub-function or option is unavailable
0b indicates that a mandatory sub-function or option is available
0b is also used when a given offset is undefined
Thus, a command that implements all functions (mandatory and optional) will return all 0's for the bitfield
See Table H-1, Sub-function Number Assignments
[31] - bit for sub-function 31
[30] - bit for sub-function 30

[1] - bit for sub-function 1
[0] - bit for sub-function 0

send_icmd ret = 0
ipmiutil cmd, completed successfully
[FreeIPMI in Linux]
$ ipmi-raw 0x00 0x06 0x0b 0x01 0x00 0x00 0x02
rcvd: 0B 00 Byte 1
Completion Code
00h = Command Completed Normally
04 Byte 2
Specification Type / Errata
For IPMI Network Function not equal to 2Ch or 2Eh:
[7:4] - Specification Type
        0h = IPMI
        1h = IPMB
        2h = ICMB
        all other = reserved
[3:0] - Errata Version
        This field returns the errata document version that was used in defining the command's operation
        For IPMI specifications, this is the revision number of the IPMI errata that goes with the specification version and revision, below
        The latest errata of the specification to which the command is conformant should be used
        Use 0h if there is no errata document available at the time the command was defined
20 Byte 3
Specification Version
This field returns the specification Version, in BCD format for which the command was specified
Bits 7:4 hold the most significant digit of the version, while bits 3:0 hold the least significant bits,
e.g. a value of 20h indicates version 2.0
The latest version number for the specification that the command is conformant to should be used
10 Byte 4
Specification Revision
This field returns the specification Revision, in BCD format for which the command was specified
Bits 7:4 hold the most significant digit of the version, while bits 3:0 hold the least significant bits,
e.g. a value of 10h indicates version 1.0
The latest revision number for the specification that the command is conformant to should be used
C0 FF FF FF Byte (5:8)
Support Mask 1 (ls-byte first)
These thirty-two bits form a bitfield where each bit indicates support for a particular sub-function for the given command
The bit offset corresponds to the number of the sub-function
1b indicates that a mandatory sub-function or option is unavailable
0b indicates that a mandatory sub-function or option is available
0b is also used when a given offset is undefined
Thus, a command that implements all functions (mandatory and optional) will return all 0's for the bitfield
See Table H-1, Sub-function Number Assignments
[31] - bit for sub-function 31
[30] - bit for sub-function 30

[1] - bit for sub-function 1
[0] - bit for sub-function 0



Get Configurable Commands - NetFn = App (0x06h), CMD = 0x0ch, Privilege Level = User, M/O = O
| Linux |
[IPMItool]
ipmitool raw 0x06 0x0c D[1] Byte 1
Channel Number
[7:4] - reserved
[3:0] - channel number
        0h-Bh, Fh = channel numbers
        Eh = retrieve information for channel this request was issued on
D[2] Byte 2
Request Data Byte 2
[7:6] - Operation
        00b = return support mask for commands 00h through 7Fh
        01b = return support mask for commands 80h through FFh
        10b, 11b = reserved
[5:0] - NetFn
        Network function code to look up command support for
        The management controller will return the same values for odd or even NetFn values
        I.e. the value for bit [0] is ignored
D[3] Byte 3
Request Data Byte 3
[7:2] - reserved
[1:0] - LUN

[ipmiutil]
ipmiutil cmd 00 20 18 0c D[1] Byte 1
Channel Number
[7:4] - reserved
[3:0] - channel number
        0h-Bh, Fh = channel numbers
        Eh = retrieve information for channel this request was issued on
D[2] Byte 2
Request Data Byte 2
[7:6] - Operation
        00b = return support mask for commands 00h through 7Fh
        01b = return support mask for commands 80h through FFh
        10b, 11b = reserved
[5:0] - NetFn
        Network function code to look up command support for
        The management controller will return the same values for odd or even NetFn values
        I.e. the value for bit [0] is ignored
D[3] Byte 3
Request Data Byte 3
[7:2] - reserved
[1:0] - LUN

icmd 00 20 18 0c D[1] Byte 1
Channel Number
[7:4] - reserved
[3:0] - channel number
        0h-Bh, Fh = channel numbers
        Eh = retrieve information for channel this request was issued on
D[2] Byte 2
Request Data Byte 2
[7:6] - Operation
        00b = return support mask for commands 00h through 7Fh
        01b = return support mask for commands 80h through FFh
        10b, 11b = reserved
[5:0] - NetFn
        Network function code to look up command support for
        The management controller will return the same values for odd or even NetFn values
        I.e. the value for bit [0] is ignored
D[3] Byte 3
Request Data Byte 3
[7:2] - reserved
[1:0] - LUN

[FreeIPMI]
ipmi-raw 0x00 0x06 0x0c D[1] Byte 1
Channel Number
[7:4] - reserved
[3:0] - channel number
        0h-Bh, Fh = channel numbers
        Eh = retrieve information for channel this request was issued on
D[2] Byte 2
Request Data Byte 2
[7:6] - Operation
        00b = return support mask for commands 00h through 7Fh
        01b = return support mask for commands 80h through FFh
        10b, 11b = reserved
[5:0] - NetFn
        Network function code to look up command support for
        The management controller will return the same values for odd or even NetFn values
        I.e. the value for bit [0] is ignored
D[3] Byte 3
Request Data Byte 3
[7:2] - reserved
[1:0] - LUN

| MS-DOS |
[ipmitool]
ipmitool 20 18 0c Data[1:3]

For example   Hint: hover over Place your mouse over the highlighted area in below
for Response Data description
[IPMItool in Linux]
$ ipmitool raw 0x06 0x0c 0x01 0x06 0x00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 Byte [2:17]
Support Mask
These sixteen bytes form a 128-bit bitfield where each bit indicates enable/disable support for a particular command value under the given NetFn
  For each bit in the bitfield:
    0b = indicates the command value is not configurable
    1b = indicates the command can be enabled/disabled
  Depending on the value of the "Operation" parameter passed in the request:
    byte 1, bit 0 corresponds to command 00h or command 80h
    byte 1, bit 7 corresponds to command 07h or command 87h
    …
    byte 16, bit 0 correspond to command 78h or command F8h
    byte 16, bit 7 corresponds to command 7Fh or command FFh

[ipmiutil in Linux]
$ icmd 00 20 18 0c 00 04 00
ipmiutil ver 3.08
icmd ver 3.08
This is a test tool to compose IPMI commands.
Do not use without knowledge of the IPMI specification.
-- BMC version 1.7, IPMI version 2.0
respData[len=16]: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 Byte [2:17]
Support Mask
These sixteen bytes form a 128-bit bitfield where each bit indicates enable/disable support for a particular command value under the given NetFn
  For each bit in the bitfield:
    0b = indicates the command value is not configurable
    1b = indicates the command can be enabled/disabled
  Depending on the value of the "Operation" parameter passed in the request:
    byte 1, bit 0 corresponds to command 00h or command 80h
    byte 1, bit 7 corresponds to command 07h or command 87h
    …
    byte 16, bit 0 correspond to command 78h or command F8h
    byte 16, bit 7 corresponds to command 7Fh or command FFh

send_icmd ret = 0
ipmiutil cmd, completed successfully
[FreeIPMI in Linux]
$ ipmi-raw 0x00 0x06 0x0c 0x01 0x00 0x00
rcvd: 0C 00 Byte 1
Completion Code
00h = Command Completed Normally
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 Byte [2:17]
Support Mask
These sixteen bytes form a 128-bit bitfield where each bit indicates enable/disable support for a particular command value under the given NetFn
  For each bit in the bitfield:
    0b = indicates the command value is not configurable
    1b = indicates the command can be enabled/disabled
  Depending on the value of the "Operation" parameter passed in the request:
    byte 1, bit 0 corresponds to command 00h or command 80h
    byte 1, bit 7 corresponds to command 07h or command 87h
    …
    byte 16, bit 0 correspond to command 78h or command F8h
    byte 16, bit 7 corresponds to command 7Fh or command FFh



Get Configurable Command Sub-functions - NetFn = App (0x06h), CMD = 0x0dh, Privilege Level = User, M/O = O
| Linux |
[IPMItool]
ipmitool raw 0x06 0x0d D[1] Byte 1
Channel Number
[7:4] - reserved
[3:0] - channel number
        0h-Bh, Fh = channel numbers
        Eh = retrieve information for channel this request was issued on
D[2] Byte 2
Request Data Byte 2
[7:6] - reserved
[5:0] - NetFn
        Network function code to look up command support for
        The management controller will return the same values for odd or even NetFn values
        I.e. the value for bit [0] is ignored
D[3] Byte 3
Request Data Byte 3
[7:2] - reserved
[1:0] - LUN
D[4] Byte 4
Request Data Byte 4
[7:0] - CMD
Command number to return command sub-function information for

[ipmiutil]
ipmiutil cmd 00 20 18 0d D[1] Byte 1
Channel Number
[7:4] - reserved
[3:0] - channel number
        0h-Bh, Fh = channel numbers
        Eh = retrieve information for channel this request was issued on
D[2] Byte 2
Request Data Byte 2
[7:6] - reserved
[5:0] - NetFn
        Network function code to look up command support for
        The management controller will return the same values for odd or even NetFn values
        I.e. the value for bit [0] is ignored
D[3] Byte 3
Request Data Byte 3
[7:2] - reserved
[1:0] - LUN
D[4] Byte 4
Request Data Byte 4
[7:0] - CMD
Command number to return command sub-function information for

icmd 00 20 18 0d D[1] Byte 1
Channel Number
[7:4] - reserved
[3:0] - channel number
        0h-Bh, Fh = channel numbers
        Eh = retrieve information for channel this request was issued on
D[2] Byte 2
Request Data Byte 2
[7:6] - reserved
[5:0] - NetFn
        Network function code to look up command support for
        The management controller will return the same values for odd or even NetFn values
        I.e. the value for bit [0] is ignored
D[3] Byte 3
Request Data Byte 3
[7:2] - reserved
[1:0] - LUN
D[4] Byte 4
Request Data Byte 4
[7:0] - CMD
Command number to return command sub-function information for

[FreeIPMI]
ipmi-raw 0x00 0x06 0x0d D[1] Byte 1
Channel Number
[7:4] - reserved
[3:0] - channel number
        0h-Bh, Fh = channel numbers
        Eh = retrieve information for channel this request was issued on
D[2] Byte 2
Request Data Byte 2
[7:6] - reserved
[5:0] - NetFn
        Network function code to look up command support for
        The management controller will return the same values for odd or even NetFn values
        I.e. the value for bit [0] is ignored
D[3] Byte 3
Request Data Byte 3
[7:2] - reserved
[1:0] - LUN
D[4] Byte 4
Request Data Byte 4
[7:0] - CMD
Command number to return command sub-function information for

| MS-DOS |
[ipmitool]
ipmitool 20 18 0d Data[1:4]

For example   Hint: hover over Place your mouse over the highlighted area in below
for Response Data description
[IPMItool in Linux]
$ ipmitool raw 0x06 0x0d 0x01 0x06 0x00 0x01
 00 00 00 00 Byte [2:5]
Support Mask (ls-byte first)
These thirty-two bits form a bitfield where each bit indicates support for a particular sub-function for the given command
The bit offset corresponds to the number of the sub-function
See Table H-1, Subfunction Number Assignments
1b indicates that the sub-function can be enabled/disabled
0b indicates that the sub-function is not configurable, or is unavailable
0b is also used for unspecified/reserved sub-function numbers
[31] - bit for sub-function 31
[30] - bit for sub-function 30

[1] - bit for sub-function 1
[0] - bit for sub-function 0

[ipmiutil in Linux]
$ icmd 00 20 18 0d 00 04 00 00
ipmiutil ver 3.08
icmd ver 3.08
This is a test tool to compose IPMI commands.
Do not use without knowledge of the IPMI specification.
-- BMC version 1.7, IPMI version 2.0
respData[len=4]: 00 00 00 00 Byte [2:5]
Support Mask (ls-byte first)
These thirty-two bits form a bitfield where each bit indicates support for a particular sub-function for the given command
The bit offset corresponds to the number of the sub-function
See Table H-1, Subfunction Number Assignments
1b indicates that the sub-function can be enabled/disabled
0b indicates that the sub-function is not configurable, or is unavailable
0b is also used for unspecified/reserved sub-function numbers
[31] - bit for sub-function 31
[30] - bit for sub-function 30

[1] - bit for sub-function 1
[0] - bit for sub-function 0

send_icmd ret = 0
ipmiutil cmd, completed successfully
[FreeIPMI in Linux]
$ ipmi-raw 0x00 0x06 0x0d 0x00 0x00 0x00 0x00
rcvd: 0D 00 Byte 1
Completion Code
00h = Command Completed Normally
00 00 00 00 Byte [2:5]
Support Mask (ls-byte first)
These thirty-two bits form a bitfield where each bit indicates support for a particular sub-function for the given command
The bit offset corresponds to the number of the sub-function
See Table H-1, Subfunction Number Assignments
1b indicates that the sub-function can be enabled/disabled
0b indicates that the sub-function is not configurable, or is unavailable
0b is also used for unspecified/reserved sub-function numbers
[31] - bit for sub-function 31
[30] - bit for sub-function 30

[1] - bit for sub-function 1
[0] - bit for sub-function 0



Set Command Enables - NetFn = App (0x06h), CMD = 0x60h, Privilege Level = Admin, M/O = O
| Linux |
[IPMItool]
ipmitool raw 0x06 0x60 D[1] Byte 1
Channel Number
[7:4] - reserved
[3:0] - channel number
        0h-Bh, Fh = channel numbers
        Eh = retrieve information for channel this request was issued on
D[2] Byte 2
Request Data Byte 2
[7:6] - Operation
        The enable/disable settings are non-volatile
        The management controller must reject all new settings (must not change present settings)
        if there is any error in the command (non-zero completion code returned)
        00b = Set enable/disables for commands 00h through 7Fh
        01b = Set enables/disables for commands 80h through FFh
        10b, 11b = reserved
[5:0] - NetFn
        Network function code to set command support for
        The management controller will set the same values for odd or even NetFn values
        I.e. the value for bit [0] is ignored
D[3] Byte 3
Request Data Byte 3
[7:2] - reserved
[1:0] - LUN
D[4:19] Byte [4:19]
Enable/Disable Mask
These sixteen bytes form a 128-bit bitfield where each bit controls the enable/disable of a particular command value under the given NetFn
For each bit in the bitfield:
  0b = disables the command
  1b = enables the command
Depending on the value of the "Operation" parameter passed in the request:
  byte 1, bit 0 corresponds to command 00h or command 80h
  byte 1, bit 7 corresponds to command 07h or command 87h
  …
  byte 16, bit 0 correspond to command 78h or command F8h
  byte 16, bit 7 corresponds to command 7Fh or command FFh

[ipmiutil]
ipmiutil 00 20 18 60 D[1] Byte 1
Channel Number
[7:4] - reserved
[3:0] - channel number
        0h-Bh, Fh = channel numbers
        Eh = retrieve information for channel this request was issued on
D[2] Byte 2
Request Data Byte 2
[7:6] - Operation
        The enable/disable settings are non-volatile
        The management controller must reject all new settings (must not change present settings)
        if there is any error in the command (non-zero completion code returned)
        00b = Set enable/disables for commands 00h through 7Fh
        01b = Set enables/disables for commands 80h through FFh
        10b, 11b = reserved
[5:0] - NetFn
        Network function code to set command support for
        The management controller will set the same values for odd or even NetFn values
        I.e. the value for bit [0] is ignored
D[3] Byte 3
Request Data Byte 3
[7:2] - reserved
[1:0] - LUN
D[4:19] Byte [4:19]
Enable/Disable Mask
These sixteen bytes form a 128-bit bitfield where each bit controls the enable/disable of a particular command value under the given NetFn
For each bit in the bitfield:
  0b = disables the command
  1b = enables the command
Depending on the value of the "Operation" parameter passed in the request:
  byte 1, bit 0 corresponds to command 00h or command 80h
  byte 1, bit 7 corresponds to command 07h or command 87h
  …
  byte 16, bit 0 correspond to command 78h or command F8h
  byte 16, bit 7 corresponds to command 7Fh or command FFh

icmd 00 20 18 60 D[1] Byte 1
Channel Number
[7:4] - reserved
[3:0] - channel number
        0h-Bh, Fh = channel numbers
        Eh = retrieve information for channel this request was issued on
D[2] Byte 2
Request Data Byte 2
[7:6] - Operation
        The enable/disable settings are non-volatile
        The management controller must reject all new settings (must not change present settings)
        if there is any error in the command (non-zero completion code returned)
        00b = Set enable/disables for commands 00h through 7Fh
        01b = Set enables/disables for commands 80h through FFh
        10b, 11b = reserved
[5:0] - NetFn
        Network function code to set command support for
        The management controller will set the same values for odd or even NetFn values
        I.e. the value for bit [0] is ignored
D[3] Byte 3
Request Data Byte 3
[7:2] - reserved
[1:0] - LUN
D[4:19] Byte [4:19]
Enable/Disable Mask
These sixteen bytes form a 128-bit bitfield where each bit controls the enable/disable of a particular command value under the given NetFn
For each bit in the bitfield:
  0b = disables the command
  1b = enables the command
Depending on the value of the "Operation" parameter passed in the request:
  byte 1, bit 0 corresponds to command 00h or command 80h
  byte 1, bit 7 corresponds to command 07h or command 87h
  …
  byte 16, bit 0 correspond to command 78h or command F8h
  byte 16, bit 7 corresponds to command 7Fh or command FFh

[FreeIPMI]
ipmi-raw 0x00 0x06 0x60 D[1] Byte 1
Channel Number
[7:4] - reserved
[3:0] - channel number
        0h-Bh, Fh = channel numbers
        Eh = retrieve information for channel this request was issued on
D[2] Byte 2
Request Data Byte 2
[7:6] - Operation
        The enable/disable settings are non-volatile
        The management controller must reject all new settings (must not change present settings)
        if there is any error in the command (non-zero completion code returned)
        00b = Set enable/disables for commands 00h through 7Fh
        01b = Set enables/disables for commands 80h through FFh
        10b, 11b = reserved
[5:0] - NetFn
        Network function code to set command support for
        The management controller will set the same values for odd or even NetFn values
        I.e. the value for bit [0] is ignored
D[3] Byte 3
Request Data Byte 3
[7:2] - reserved
[1:0] - LUN
D[4:19] Byte [4:19]
Enable/Disable Mask
These sixteen bytes form a 128-bit bitfield where each bit controls the enable/disable of a particular command value under the given NetFn
For each bit in the bitfield:
  0b = disables the command
  1b = enables the command
Depending on the value of the "Operation" parameter passed in the request:
  byte 1, bit 0 corresponds to command 00h or command 80h
  byte 1, bit 7 corresponds to command 07h or command 87h
  …
  byte 16, bit 0 correspond to command 78h or command F8h
  byte 16, bit 7 corresponds to command 7Fh or command FFh

| MS-DOS |
[ipmitool]
ipmitool 20 18 60 Data[1:19]

--Completion Code--
80h = attempt to enable an unsupported or un-configurable command

For example   Hint: hover over Place your mouse over the highlighted area in below
for Response Data description
[IPMItool in Linux]
$ ipmitool raw 0x06 0x60 0x00 0x06 0x00 0x01 0xff 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0
Unable to send RAW command (channel=0x0 netfn=0x6 lun=0x0 cmd=0x60 rsp=0x80 Byte 1
Response Data Byte 1
80h = attempt to enable an unsupported or un-configurable command
): Unknown (0x80 Byte 1
Response Data Byte 1
80h = attempt to enable an unsupported or un-configurable command
)
$ ipmitool raw 0x06 0x60 0x00 0x06 0x00 0xfe 0x3f 0x00 0x00 0x34 0xc0 0xff 0xbf 0xff 0xff 0xf5 0x03 0x13 0x00 0x00 0x00

[ipmiutil in Linux]
$ icmd 00 20 18 60 01 04 00 07 00 ff 00 ff ef 01 00 00 00 00 00 00 00 00 00
ipmiutil ver 3.08
icmd ver 3.08
This is a test tool to compose IPMI commands.
Do not use without knowledge of the IPMI specification.
-- BMC version 1.7, IPMI version 2.0
send_icmd ret = 0
ipmiutil cmd, completed successfully
[FreeIPMI in Linux]
$ ipmi-raw 0x00 0x06 0x60 0x00 0x0c 0x00 0x0e 0x00 0x07 0x00 0x06 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
rcvd: 60 00 Byte 1
Completion Code
00h = Command Completed Normally
80h = attempt to enable an unsupported or un-configurable command



Get Command Enables - NetFn = App (0x06h), CMD = 0x61h, Privilege Level = User, M/O = O
| Linux |
[IPMItool]
ipmitool raw 0x06 0x61 D[1] Byte 1
Channel Number
[7:4] - reserved
[3:0] - channel number
        0h-Bh, Fh = channel numbers
        Eh = retrieve information for channel this request was issued on
D[2] Byte 2
Request Data Byte 2
[7:6] - Operation
        00b = Get enable/disables for commands 00h through 7Fh
        01b = Get enables/disables for commands 80h through FFh
        10b, 11b = reserved
[5:0] - NetFn
        Network function code to look up command support for
        The management controller will return the same values for odd or even NetFn values
        I.e. the value for bit [0] is ignored
D[3] Byte 3
Request Data Byte 3
[7:2] - reserved
[1:0] - LUN

[ipmiutil]
ipmiutil cmd 00 20 18 61 D[1] Byte 1
Channel Number
[7:4] - reserved
[3:0] - channel number
        0h-Bh, Fh = channel numbers
        Eh = retrieve information for channel this request was issued on
D[2] Byte 2
Request Data Byte 2
[7:6] - Operation
        00b = Get enable/disables for commands 00h through 7Fh
        01b = Get enables/disables for commands 80h through FFh
        10b, 11b = reserved
[5:0] - NetFn
        Network function code to look up command support for
        The management controller will return the same values for odd or even NetFn values
        I.e. the value for bit [0] is ignored
D[3] Byte 3
Request Data Byte 3
[7:2] - reserved
[1:0] - LUN

icmd 00 20 18 61 D[1] Byte 1
Channel Number
[7:4] - reserved
[3:0] - channel number
        0h-Bh, Fh = channel numbers
        Eh = retrieve information for channel this request was issued on
D[2] Byte 2
Request Data Byte 2
[7:6] - Operation
        00b = Get enable/disables for commands 00h through 7Fh
        01b = Get enables/disables for commands 80h through FFh
        10b, 11b = reserved
[5:0] - NetFn
        Network function code to look up command support for
        The management controller will return the same values for odd or even NetFn values
        I.e. the value for bit [0] is ignored
D[3] Byte 3
Request Data Byte 3
[7:2] - reserved
[1:0] - LUN

[FreeIPMI]
ipmi-raw 0x00 0x06 0x61 D[1] Byte 1
Channel Number
[7:4] - reserved
[3:0] - channel number
        0h-Bh, Fh = channel numbers
        Eh = retrieve information for channel this request was issued on
D[2] Byte 2
Request Data Byte 2
[7:6] - Operation
        00b = Get enable/disables for commands 00h through 7Fh
        01b = Get enables/disables for commands 80h through FFh
        10b, 11b = reserved
[5:0] - NetFn
        Network function code to look up command support for
        The management controller will return the same values for odd or even NetFn values
        I.e. the value for bit [0] is ignored
D[3] Byte 3
Request Data Byte 3
[7:2] - reserved
[1:0] - LUN

| MS-DOS |
[ipmitool]
ipmitool 20 18 61 Data[1:3]

For example   Hint: hover over Place your mouse over the highlighted area in below
for Response Data description
[IPMItool in Linux]
$ ipmitool raw 0x06 0x61 0x00 0x06 0x00
 fe 3f 00 00 34 c0 ff bf ff ff f5 03 13 00 00 00 Byte [2:17]
Enable/Disable Mask
These sixteen bytes form a 128-bit bitfield where each bit returns the enable/disable of a particular command value under the given NetFn
If a command is not supported at all, a 0b will be returned
For each bit in the bitfield:
  0b = command is disabled or not supported
  1b = command is enabled
Depending on the value of the "Operation" parameter passed in the request:
  byte 1, bit 0 corresponds to command 00h or command 80h
  byte 1, bit 7 corresponds to command 07h or command 87h
  …
  byte 16, bit 0 correspond to command 78h or command F8h
  byte 16, bit 7 corresponds to command 7Fh or command FFh

[ipmiutil in Linux]
$ icmd 00 20 18 61 01 04 00
ipmiutil ver 3.08
icmd ver 3.08
This is a test tool to compose IPMI commands.
Do not use without knowledge of the IPMI specification.
-- BMC version 1.7, IPMI version 2.0
respData[len=16]: 07 00 ff 00 ff ef 01 00 00 00 00 00 00 00 00 00 Byte [2:17]
Enable/Disable Mask
These sixteen bytes form a 128-bit bitfield where each bit returns the enable/disable of a particular command value under the given NetFn
If a command is not supported at all, a 0b will be returned
For each bit in the bitfield:
  0b = command is disabled or not supported
  1b = command is enabled
Depending on the value of the "Operation" parameter passed in the request:
  byte 1, bit 0 corresponds to command 00h or command 80h
  byte 1, bit 7 corresponds to command 07h or command 87h
  …
  byte 16, bit 0 correspond to command 78h or command F8h
  byte 16, bit 7 corresponds to command 7Fh or command FFh

send_icmd ret = 0
ipmiutil cmd, completed successfully
[FreeIPMI in Linux]
$ ipmi-raw 0x00 0x06 0x61 0x00 0xc 0x00
rcvd: 61 00 Byte 1
Completion Code
00h = Command Completed Normally
0E 00 07 00 06 00 00 00 00 00 00 00 00 00 00 00 Byte [2:17]
Enable/Disable Mask
These sixteen bytes form a 128-bit bitfield where each bit returns the enable/disable of a particular command value under the given NetFn
If a command is not supported at all, a 0b will be returned
For each bit in the bitfield:
  0b = command is disabled or not supported
  1b = command is enabled
Depending on the value of the "Operation" parameter passed in the request:
  byte 1, bit 0 corresponds to command 00h or command 80h
  byte 1, bit 7 corresponds to command 07h or command 87h
  …
  byte 16, bit 0 correspond to command 78h or command F8h
  byte 16, bit 7 corresponds to command 7Fh or command FFh



Set Configurable Command Sub-function Enables - NetFn = App (0x06h), CMD = 0x62h, Privilege Level = Admin, M/O = O


Get Configurable Command Sub-function Enables Command - NetFn = App (0x06h), CMD = 0x63h, Privilege Level = User, M/O = O


Get OEM NetFn IANA Support - NetFn = App (0x06h), CMD = 0x64h, Privilege Level = User, M/O = O
| Linux |
[IPMItool]
ipmitool raw 0x06 0x64 D[1] Byte 1
Channel Number
[7:4] - reserved
[3:0] - channel number
        0h-Bh, Fh = channel numbers
        Eh = retrieve information for channel this request was issued on
D[2] Byte 2
Network Function (NetFn) Code
[7:6] - reserved
[5:0] - Network Function to get OEM IANA info for
        Legal values are:
        2Ch = “Group Extension” Network Function (codes 2Ch,2Dh)
        2Eh = “OEM/Group” Network Function (codes 2Eh, 2Dh)
all other = reserved
D[3] Byte 3
List Index
[7:6] - reserved
[5:0] - List Index
        0 gets first IANA
        Increment until last IANA is returned

[ipmiutil]
ipmiutil cmd 00 20 18 64 D[1] Byte 1
Channel Number
[7:4] - reserved
[3:0] - channel number
        0h-Bh, Fh = channel numbers
        Eh = retrieve information for channel this request was issued on
D[2] Byte 2
Network Function (NetFn) Code
[7:6] - reserved
[5:0] - Network Function to get OEM IANA info for
        Legal values are:
        2Ch = “Group Extension” Network Function (codes 2Ch,2Dh)
        2Eh = “OEM/Group” Network Function (codes 2Eh, 2Dh)
all other = reserved
D[3] Byte 3
List Index
[7:6] - reserved
[5:0] - List Index
        0 gets first IANA
        Increment until last IANA is returned

icmd 00 20 18 64 D[1] Byte 1
Channel Number
[7:4] - reserved
[3:0] - channel number
        0h-Bh, Fh = channel numbers
        Eh = retrieve information for channel this request was issued on
D[2] Byte 2
Network Function (NetFn) Code
[7:6] - reserved
[5:0] - Network Function to get OEM IANA info for
        Legal values are:
        2Ch = “Group Extension” Network Function (codes 2Ch,2Dh)
        2Eh = “OEM/Group” Network Function (codes 2Eh, 2Dh)
all other = reserved
D[3] Byte 3
List Index
[7:6] - reserved
[5:0] - List Index
        0 gets first IANA
        Increment until last IANA is returned

[FreeIPMI]
ipmi-raw 0x00 0x06 0x64 D[1] Byte 1
Channel Number
[7:4] - reserved
[3:0] - channel number
        0h-Bh, Fh = channel numbers
        Eh = retrieve information for channel this request was issued on
D[2] Byte 2
Network Function (NetFn) Code
[7:6] - reserved
[5:0] - Network Function to get OEM IANA info for
        Legal values are:
        2Ch = “Group Extension” Network Function (codes 2Ch,2Dh)
        2Eh = “OEM/Group” Network Function (codes 2Eh, 2Dh)
all other = reserved
D[3] Byte 3
List Index
[7:6] - reserved
[5:0] - List Index
        0 gets first IANA
        Increment until last IANA is returned

| MS-DOS |
[ipmitool]
ipmitool 20 18 64 Data[1:3]

For example   Hint: hover over Place your mouse over the highlighted area in below
for Response Data description
[IPMItool in Linux]
$ ipmitool raw 0x06 0x64 0x01 0x2e 0x00
 80 Byte 2
Response Data Byte 2
  [7] - 1b = last IANA
[6:0] - reserved
02 Byte 3
LUN Support
[7:6] - LUN 3 (11b) support
        00b = no commands supported on LUN 3 (11b)
        01b = commands follow base IPMI specification
        10b = commands exist on LUN, but some commands/operations may be restricted by firewall configuration
        11b = reserved
[5:4] - LUN 2 (10b) support
        Note that a BMC uses LUN 10b for message bridging
        00b = no commands supported on LUN 2 (10b)
        01b = commands follow base IPMI specification
        10b = commands exist on LUN, but some commands/operations may be restricted by firewall configuration
        11b = reserved
[3:2] - LUN 1 (01b) support
[1:0] - LUN 0 (00b) support
ff ff ff Byte (4:6)
For Network Function = 2Eh:
OEM or group IANA supported for given Network Function code on returned LUNs
LS byte first

[ipmiutil in Linux]
$ icmd 00 20 18 64 00 2e 00
ipmiutil ver 3.08
icmd ver 3.08
This is a test tool to compose IPMI commands.
Do not use without knowledge of the IPMI specification.
-- BMC version 1.7, IPMI version 2.0
respData[len=5]: 80 Byte 2
Response Data Byte 2
  [7] - 1b = last IANA
[6:0] - reserved
02 Byte 3
LUN Support
[7:6] - LUN 3 (11b) support
        00b = no commands supported on LUN 3 (11b)
        01b = commands follow base IPMI specification
        10b = commands exist on LUN, but some commands/operations may be restricted by firewall configuration
        11b = reserved
[5:4] - LUN 2 (10b) support
        Note that a BMC uses LUN 10b for message bridging
        00b = no commands supported on LUN 2 (10b)
        01b = commands follow base IPMI specification
        10b = commands exist on LUN, but some commands/operations may be restricted by firewall configuration
        11b = reserved
[3:2] - LUN 1 (01b) support
[1:0] - LUN 0 (00b) support
ff ff ff Byte (4:6)
For Network Function = 2Eh:
OEM or group IANA supported for given Network Function code on returned LUNs
LS byte first

send_icmd ret = 0
ipmiutil cmd, completed successfully
[FreeIPMI in Linux]
$ ipmi-raw 0x00 0x06 0x64 0x0b 0x2e 0x00
rcvd: 64 00 Byte 1
Completion Code
00h = Command Completed Normally
80 Byte 2
Response Data Byte 2
  [7] - 1b = last IANA
[6:0] - reserved
02 Byte 3
LUN Support
[7:6] - LUN 3 (11b) support
        00b = no commands supported on LUN 3 (11b)
        01b = commands follow base IPMI specification
        10b = commands exist on LUN, but some commands/operations may be restricted by firewall configuration
        11b = reserved
[5:4] - LUN 2 (10b) support
        Note that a BMC uses LUN 10b for message bridging
        00b = no commands supported on LUN 2 (10b)
        01b = commands follow base IPMI specification
        10b = commands exist on LUN, but some commands/operations may be restricted by firewall configuration
        11b = reserved
[3:2] - LUN 1 (01b) support
[1:0] - LUN 0 (00b) support
FF FF FF Byte (4:6)
For Network Function = 2Eh:
OEM or group IANA supported for given Network Function code on returned LUNs
LS byte first



Reference
[1] "Intelligent Platform Management Interface Specification Second Generation v2.0 Document Revision 1.1"
https://www.intel.com/content/dam/www/public/us/en/documents/product-briefs/ipmi-second-gen-interface-spec-v2-rev1-1.pdf
[2] "IPMItool" http://sourceforge.net/projects/ipmitool/
[3] "IPMI Command Test Tool" http://www.intel.com/design/servers/ipmi/ipmi_tool.htm
[4] "IPMIUTIL USER GUIDE" http://ipmiutil.sourceforge.net/
[5] "FreeIPMI Documentation" http://www.gnu.org/software/freeipmi/index.html

Last Updated: May 15, 2018

No comments:

Post a Comment