PLDM Implementation

Board Management

Platform
Napatech SmartNIC
Content Type
Application Note
Capture Software Version
Link™ Capture Software 12.11

PLDM control and discovery

The single-threaded responder model is supported (see DSP-240). This is implemented to respond to one request at a time. This means that any new requests are discarded before responding to the current request.

Use the following fields to track a PLDM request.
  • Transport address, MCTP endpoint ID (EID) of the requester
  • PLDM Type
  • PLDM command code
  • Instance ID of the PLDM request

The request-to-response time (the amount of time from the end of the request reception to the beginning of the response transmission) is set to a maximum of 100 milliseconds.

The PLDM type code for the PLDM messaging control and discovery commands are defined as 000000b (see DSP-245 Chapter 6). The following PLDM base control and discovery commands are supported (see DSP-240).
Code Command
0x01 Set terminus ID (TID)
0x02 Get TID
0x03 Get PLDM version
0x04 Get PLDM types
0x05 Get PLDM commands

PLDM platform monitoring and control commands

The PLDM type code for PLDM platform monitoring and control commands is 000010b (see DSP-245 Chapter 6).

This table shows the supported PLDM commands for the PLDM monitoring (see DSP-248 Chapter 30).
Code Command
0x11 Get sensor reading
0x12 Get sensor thresholds
0x50 Get platform descriptor record (PDR) repository info
0x51 Get PDR

Generic PLDM completion codes

The following generic completion codes are used as defined in DSP-240 Section 7.2.
Code Message
0x00 SUCCESS
0x01 ERROR
0x02 ERROR_INVALID_DATA
0x03 ERROR_INVALID_LENGTH
0x04 ERROR_NOT_READY
0x05 ERROR_UNSUPPORTED_PLDM_CMD
0x20 ERROR_INVALID_PLDM_TYPE

PLDM numeric sensors

All numeric sensors are individually described using the numeric sensor PDR (see DSP-248 Section 28.4). Auxiliary names are assigned to all numeric sensors (see DSP-248 Section 28.18).

This table shows a list of the numeric board sensors. Some sensors require that the driver (ntservice) is loaded on the host, after power-on. See the availability columns in the following tables.

Note: Table legend:
  • X: Available.
  • –: Not available.
Sensor ID Sensor Name Unit Availability Descriptions
After power-on After driver load
1 FPGA temperature °C X Temperature of the FPGA chip
2 Fan speed RPM X X Fan speed (rotations per minute)
3 BMC temperature °C X X Temperature of the board management controller
4 Core supply temperature °C X X Temperature of the regulated-core-power supply for the FPGA.
5 Board temperature °C X X PCB temperature1

This table shows the supported pluggable-module sensors.

Note: Table legend:
  • X: Available.
  • –: Not available.
Sensor ID Sensor Name Unit Availability Descriptions
After power-on After FPGA image / driver loaded
6 Port 0 Temperature °C X Digital temperature sensor readout of pluggable module in port 0
7 Port 1 Temperature °C X Digital temperature sensor readout of pluggable module in port 1
Note: Temperature of the FPGA and Pluggable modules is accessible after the driver (ntservice) is loaded after power-on. For information on how to install the Napatech Link-Capture™ Software package and how to load the driver, see Napatech Link-Capture™ Software Getting Started Guide or DN-1340.

PLDM PDR common header

All PDRs contain the common header format as follows (see DSP-248 Section 28.1).
Type PDR field Size in bytes
uint32 recordHandle 4
uint8 PDRHeaderVersion 1
uint8 PDRType 1
uint16 recordChangeNumber 2
uint16 dataLength 2
Total 10

PLDM FRU data commands

The PLDM type code for the PLDM FRU data transfer is 000100b (see DSP-245, Table 1 in Chapter 6).

The following table shows the supported PLDM FRU data transfer commands.
Code Command Notes
0x01 GetFRURecordTableMetadata Get the size of the FRU record.
0x02 GetFRURecordTable Get the FRU record.

PLDM FRU record table

The vital product data (VPD) is stored in non-volatile memory. The FRU record can be retrieved from memory via BMC and viewed as a table. The FRU record table is structured as follows. The encoding for the FRU record table is little endian.
FRU field Value Examples
FRU Record Set Identifier #1 0xF1  
FRU Record Type #1 1 = General FRU Record  
Number of FRU fields 3  
Encoding Type for FRU fields 1 1 = ASCII  
FRU Field #1 Type 2 = Model  
FRU Field #1 Length    
FRU Field #1 Value   NT400D11
FRU Field #2 Type 3 = Part Number  
FRU Field #2 Length    
FRU Field #2 Value   810-0103-01-09-01
FRU Field #3 Type 4 = Serial Number  
FRU Field #3 Length    
FRU Field #3 Value   0000-243730
See DSP-257 (table 2 in Section 7.5) for information on the PLDM record data format.
1 It is recommended to use the board temperature for regulating airflow of the server.