5. Inventory monitoring

This section describes how to monitor the hardware inventory using the CLI, REST, IPMI and Redfish interfaces.

5.1. BMC command line

You can use the ipum-utils command for inventory monitoring. Table 5.1 describes the parameters to the command.

Table 5.1 Inventory monitoring options

Parameter

Description

inventory_list

Display the hardware inventory present on the IPU-M2000 with the metadata fields NAME, PRETTY_NAME, PRESENT, FUNCTIONAL, MANUFACTURER, MODEL, SERIALNUMBER and PARTNUMBER.

Example output from the command is shown below:

$ ipum-utils inventory_list
NAME                     PRETTY_NAME                                            PRESENT  FUNCTIONAL MANUFACTURER MODEL                              SERIALNUMBER                  PARTNUMBER
system                   IPU_Machine_P2_1                                       true     true       Graphcore    23                                 820182-0002                   300-0024 Rev. A
chassis                  IPU_Machine_P2_1                                       true     true       Graphcore    N/A                                820182-0002                   300-0024 Rev. A
motherboard              IPU_Machine_P2_1                                       true     true       Graphcore    p2.1                               820182-0002                   300-0024 Rev. A
bmc                      BMC                                                    true     true       ASPEED       AST2520                            N/A                           N/A
cPortL1_ipu3NM0B         ClusterPortL1                                          true     N/A        LUXSHARE-ICT OSFP::CopperUnEQ::NonSep::CL=0.3,S VUSQ00107D0087                LVUSQ001-SD-R
cPortL2_ipu3NM0C         ClusterPortL2                                          false    N/A        N/A          N/A                                N/A                           N/A
cPortL3_ipu4NM0B         ClusterPortL3                                          true     N/A        LUXSHARE-ICT OSFP::CopperUnEQ::NonSep::CL=3.0,S VUSQ00398H0003                LVUSQ004-SD-R
cPortL4_ipu4NM0C         ClusterPortL4                                          true     N/A        LUXSHARE-ICT OSFP::CopperUnEQ::NonSep::CL=2.0,S VUSQ00398L0002                LVUSQ003-SD-R
cPortU1_ipu1NM0B         ClusterPortU1                                          true     N/A        Amphenol     OSFP::CopperUnEQ::NonSep::CL=1.0,S APF20240011FK7                NDVVYF-0001
cPortU2_ipu1NM0C         ClusterPortU2                                          true     N/A        Amphenol     OSFP::CopperUnEQ::NonSep::CL=2.0,S APF19250020CEN                NDVVYF-0002
cPortU3_ipu2NM0B         ClusterPortU3                                          true     N/A        LUXSHARE-ICT OSFP::CopperUnEQ::NonSep::CL=1.0,S VUSQ00298L0002                LVUSQ002-SD-R
cPortU4_ipu2NM0C         ClusterPortU4                                          true     N/A        Amphenol     OSFP::CopperUnEQ::NonSep::CL=0.3,S N/A                           NDVVJR-G405
cpu0                     ZynqUltraS+                                            true     true       Xilinx       XCZU19EG                           N/A                           N/A
core0                    Cortex-A53                                             true     true       ARM          4                                  N/A                           N/A
core1                    Cortex-A53                                             true     true       ARM          4                                  N/A                           N/A
core2                    Cortex-A53                                             true     true       ARM          4                                  N/A                           N/A
core3                    Cortex-A53                                             true     true       ARM          4                                  N/A                           N/A
dimm0                    PL_DIMM_B                                              true     true       Samsung      RDIMM-DDR4 SDRAM-65536 MB          0x03FA48CB                    M393A8G40AB2-CVF
dimm1                    PS_DIMM_A                                              true     true       Samsung      RDIMM-DDR4 SDRAM-16384 MB          0x14735D68                    M393A2K43CB2-CTD
dimm2                    PL_DIMM_C                                              true     true       Samsung      RDIMM-DDR4 SDRAM-65536 MB          0x03FA4A3C                    M393A8G40AB2-CVF
fan0                     fan0                                                   true     true       Graphcore    N/A                                N/A                           N/A
fan1                     fan1                                                   true     true       Graphcore    N/A                                N/A                           N/A
fan2                     fan2                                                   true     true       Graphcore    N/A                                N/A                           N/A
fan3                     fan3                                                   true     true       Graphcore    N/A                                N/A                           N/A
fan4                     fan4                                                   true     true       Graphcore    N/A                                N/A                           N/A
gwPort1                  GwPortU                                                true     false      Amphenol     QSFP28,SFF-8636::CopperUnEQ::NonSe APF19160077E1F                NDAAFF-0007
gwPort2                  GwPortL                                                true     false      INNOLIGHT    QSFP28,SFF-8636::1310nm-EML::LC::C INKBJU560002                  TR-ZC13H-N00
ipu0                     IPU0                                                   true     true       Graphcore    MK2                                T8N535.19.7.3.T8N53500.26194  N/A
ipu1                     IPU1                                                   true     true       Graphcore    MK2                                T8N535.21.7.7.T8N53500.33586  N/A
ipu2                     IPU2                                                   true     true       Graphcore    MK2                                T8N535.19.2.5.T8N53500.26474  N/A
ipu3                     IPU3                                                   true     true       Graphcore    MK2                                T8N535.11.2.5.T8N53500.35782  N/A
mcu0                     MCU0                                                   true     true       Graphcore    N/A                                0002.0001.0082018.A           N/A
mcu1                     MCU1                                                   true     true       Graphcore    N/A                                0002.0002.0082018.A           N/A
nvme0                    SAMSUNG MZ1LB960HAJQ-00007                             true     true       SAMSUNG      SAMSUNG MZ1LB960HAJQ-00007         S435NA0N414401                N/A
rnic0                    Mellanox Technologies MT28800 Family [ConnectX-5 Ex]   true     true       Mellanox     MT4121                             MT1912K01140                  MCX516A-CDAT
rnic1                    Mellanox Technologies MT28800 Family [ConnectX-5 Ex]   true     true       Mellanox     MT4121                             MT1912K01140                  MCX516A-CDAT
sysfpga                  System FPGA                                            true     true       Xilinx       Spartan 7 xc7s                     N/A                           xc7s50fgga484-1
powersupply0             PowerSupply0                                           true     true       Murata-PS    D1U54P-W-1500-12-HC4TC             Q92038Q1007Y                  N/A
powersupply1             PowerSupply1                                           true     true       Murata-PS    D1U54P-W-1500-12-HC4TC             Q92038Q1006N                  N/A

5.2. REST API

Table 5.2 describes the commands available for inventory monitoring through the REST interface.

Table 5.2 Inventory monitoring using REST interface

Command

Description

list

List inventory of the system. Using openbmctool.py will print following metadata fields: “Is a FRU”, “Present”, “Functional”, “Manufacturer”, “Model”, “SerialNumber”, “Has Logs”

List all inventory items:

$ curl -k https://<bmcip>/xyz/openbmc_project/inventory/list -u <bmcuser>:<bmcpass>
$ python3 openbmctool.py -H <bmcip> -U <bmcuser> -P <bmcpass> fru list

List an individual inventory item:

$ python3 openbmctool.py -H <bmcip> -U <bmcuser> -P <bmcpass> fru list <inventory_item_name>

Example output from the command is shown below:

$ python3 openbmctool.py  -H <bmcip> -U <bmcuser> -P <bmcpass> fru list <inventory_item_name>
Component         | PrettyName                                           | Is a FRU | Present | Functional | Manufacturer | Model                               | SerialNumber            | Has Logs
bmc               | BMC                                                  | No       | Yes     | Yes        | ASPEED       | AST2520                             |                         | No
cPortL1_ipu3NM0B  | ClusterPortL1                                        | Yes      | Yes     | Yes        | Amphenol     | OSFP Pluggable Tranceiver - 5 meter |                         | No
cPortL2_ipu3NM0C  | ClusterPortL2                                        | Yes      | No      | Yes        |              |                                     |                         | No
cPortL3_ipu4NM1C  | ClusterPortL3                                        | Yes      | No      | Yes        |              |                                     |                         | No
cPortL4_ipu4NM1B  | ClusterPortL4                                        | Yes      | Yes     | Yes        | Amphenol     | OSFP Pluggable Tranceiver - 2 meter | APF19240028RHJ          | No
cPortU1_ipu1NM0B  | ClusterPortU1                                        | Yes      | Yes     | Yes        | Amphenol     | OSFP Pluggable Tranceiver - 5 meter |                         | No
cPortU2_ipu1NM0C  | ClusterPortU2                                        | Yes      | No      | Yes        |              |                                     |                         | No
cPortU3_ipu2NM1C  | ClusterPortU3                                        | Yes      | No      | Yes        |              |                                     |                         | No
cPortU4_ipu2NM1B  | ClusterPortU4                                        | Yes      | Yes     | Yes        | Amphenol     | OSFP Pluggable Tranceiver - 2 meter | APF19240028RHJ          | No
cpu0              | ZynqUltraS+(XCZU19EG)                                | No       | Yes     | Yes        | ARM          | Cortex-A53                          |                         | No
cpu0-core0        |                                                      | No       | Yes     | Yes        |              |                                     |                         | No
cpu0-core1        |                                                      | No       | Yes     | Yes        |              |                                     |                         | No
cpu0-core2        |                                                      | No       | Yes     | Yes        |              |                                     |                         | No
cpu0-core3        |                                                      | No       | Yes     | Yes        |              |                                     |                         | No
dimm0             | PL_DIMM                                              | Yes      | Yes     | Yes        | Samsung      | RDIMM-DDR4 SDRAM-65536 MB           | 0x368DA4E4              | No
dimm1             | PS_DIMM                                              | Yes      | Yes     | Yes        | Samsung      | RDIMM-DDR4 SDRAM-16384 MB           | 0x314708B3              | No
fan0              | fan0                                                 | Yes      | Yes     | Yes        |              |                                     |                         | No
fan1              | fan1                                                 | Yes      | Yes     | Yes        |              |                                     |                         | No
fan2              | fan2                                                 | Yes      | Yes     | Yes        |              |                                     |                         | No
fan3              | fan3                                                 | Yes      | Yes     | Yes        |              |                                     |                         | No
fan4              | fan4                                                 | Yes      | Yes     | Yes        |              |                                     |                         | No
gwPort1           | GwPortU                                              | Yes      | Yes     | Yes        | Amphenol     | OSFP Pluggable Tranceiver - 5 meter |                         | No
gwPort2           | GwPortL                                              | Yes      | Yes     | Yes        | Amphenol     | OSFP Pluggable Tranceiver - 5 meter |                         | No
ipu0              | IPU0                                                 | No       | Yes     | Yes        | Graphcore    | B0                                  | PMPS95.2.6.8.BC08.9320  | No
ipu1              | IPU1                                                 | No       | Yes     | Yes        | Graphcore    | B0                                  | PMPS95.1.5.7.BC08.8375  | No
ipu2              | IPU2                                                 | No       | Yes     | Yes        | Graphcore    | B0                                  | PMPS95.4.5.4.CORR.20742 | No
ipu3              | IPU3                                                 | No       | Yes     | Yes        | Graphcore    | B0                                  | PMPS95.24.4.5.BC08.5043 | No
mcu0              | MCU0                                                 | No       | Yes     | Yes        | Graphcore    |                                     | 0001.0002.001003.A      | No
mcu1              | MCU1                                                 | No       | Yes     | Yes        | Graphcore    |                                     | 0003.0004.001003.A      | No
nvme0             | Samsung SSD 970 EVO Plus 1TB                         | Yes      | Yes     | Yes        | Samsung      | Samsung SSD 970 EVO Plus 1TB        | S4EWNF0M410854E         | No
powersupply0      | PowerSupply0                                         | Yes      | Yes     | Yes        | Murata-PS    | D1U54P-W-1200-12-HC3PC              | H21931RM00C6            | No
powersupply1      | PowerSupply1                                         | Yes      | Yes     | No         | Murata-PS    | D1U54P-W-1200-12-HC3PC              | H21931RM00C2            | No
rnic0             | Mellanox Technologies MT28800 Family [ConnectX-5 Ex] | Yes      | Yes     | Yes        | Mellanox     | MT4121                              | MT1901K07893            | No
rnic1             | Mellanox Technologies MT28800 Family [ConnectX-5 Ex] | Yes      | Yes     | Yes        | Mellanox     | MT4121                              | MT1901K07893            | No

5.3. IPMI

Table 5.3 describes the ipmitool inventory-related commands that are available.

Table 5.3 inventory operations using IPMI interface

Command

Description

fru print

Display information about all FRUs

$ ipmitool -I lanplus -C 3 -p 623 -U <bmcuser> -P <bmcpass> -H <bmcip> fru print

fru print <fruid>

Display information about the FRU with the specified ID

$ ipmitool -I lanplus -C 3 -p 623 -U <bmcuser> -P <bmcpass> -H <bmcip> fru print <fruid>

Example output of the fru print command for the system FRU with ID 80 is shown below:

$ ipmitool -I lanplus -C 3 -p 623 -U <bmcuser> -P <bmcpass> -H <bmcip> fru print 80
Chassis Type          : Unspecified
Chassis Part Number   : 23
Chassis Serial        : 219191-0003
Board Mfg Date        : Mon 13 May 2019 03:13:00 PM CEST CEST
Board Mfg             : Graphcore
Board Product         : IPU Machine P1
Board Serial          : 219191-0003
Board Part Number     : 400-0015 Rev. C

5.4. Redfish

You can do inventory monitoring through the Redfish interface either by sending curl queries or browsing the URI.

You can find the inventory items in the Systems collection and the Chassis collection available at https://<bmcip>/redfish/v1/Systems/system and https://<bmcip>/redfish/v1/Chassis.

The Chassis collection represents a physical view of the IPU-M2000, containing items such as fans, power supplies and sensors. The Systems collection represents the logical view of the system as seen from the operating system. All Redfish endpoints can be traversed in a top-down fashion.

Table 5.4 describes the commands available.

Table 5.4 Inventory monitoring using Redfish interface

Command

Description

Inventory list systems

List inventory of hardware that is part of the Systems collection

$ curl -k https://<bmcip>/redfish/v1/Systems/system -u <bmcuser>:<bmcpass>

Inventory list chassis

List inventory of hardware that is part of the Chassis collection

$ curl -k https://<bmcip>/redfish/v1/Chassis/ -u <bmcuser>:<bmcpass>

Below is an example of using Redfish to query information about “powersupply0” and “cpu0”.

$ curl -k https://<bmcip>/redfish/v1/Chassis/powersupply0 -u <bmcuser>:<bmcpass>
{
  "@odata.context": "/redfish/v1/$metadata#Chassis.Chassis",
  "@odata.id": "/redfish/v1/Chassis/powersupply0",
  "@odata.type": "#Chassis.v1_4_0.Chassis",
  "ChassisType": "RackMount",
  "Id": "powersupply0",
  "Links": {
    "ComputerSystems": [
      {
        "@odata.id": "/redfish/v1/Systems/system"
      }
    ],
    "ManagedBy": [
      {
        "@odata.id": "/redfish/v1/Managers/bmc"
      }
    ]
  },
  "Manufacturer": "Murata-PS",
  "Model": "D1U54P-W-1200-12-HC3PC",
  "Name": "powersupply0",
  "PartNumber": "",
  "Power": {
    "@odata.id": "/redfish/v1/Chassis/powersupply0/Power"
  },
  "PowerState": "On",
  "SerialNumber": "H21931RM00C6",
  "Status": {
    "Health": "OK",
    "HealthRollup": "OK",
    "State": "Enabled"
  },
  "Thermal": {
    "@odata.id": "/redfish/v1/Chassis/powersupply0/Thermal"
  }
}

$ curl -k https://<bmcip>/redfish/v1/Systems/system/Processors/cpu0 -u <bmcuser>:<bmcpass>
{
  "@odata.context": "/redfish/v1/$metadata#Processor.Processor",
  "@odata.id": "/redfish/v1/Systems/system/Processors/cpu0",
  "@odata.type": "#Processor.v1_3_1.Processor",
  "Id": "cpu0",
  "Name": "Processor",
  "Status": {
    "Health": "OK",
    "State": "Enabled"
  }
}