|  | # PLDM daemon options | 
|  | option( | 
|  | 'tests', | 
|  | type: 'feature', | 
|  | value: 'enabled', | 
|  | description: 'Build tests' | 
|  | ) | 
|  |  | 
|  | option( | 
|  | 'utilities', | 
|  | type: 'feature', | 
|  | value: 'enabled', | 
|  | description: 'Enable debug utilities' | 
|  | ) | 
|  |  | 
|  | option( | 
|  | 'libpldmresponder', | 
|  | type: 'feature', | 
|  | value: 'enabled', | 
|  | description: 'Enable libpldmresponder' | 
|  | ) | 
|  |  | 
|  | option( | 
|  | 'systemd', | 
|  | type: 'feature', | 
|  | value: 'enabled', | 
|  | description: 'Include systemd support' | 
|  | ) | 
|  |  | 
|  | option( | 
|  | 'transport-implementation', | 
|  | type: 'combo', | 
|  | choices: ['mctp-demux', 'af-mctp'], | 
|  | description: 'transport via af-mctp or mctp-demux' | 
|  | ) | 
|  |  | 
|  | # As per PLDM spec DSP0240 version 1.1.0, in Timing Specification for PLDM messages (Table 6), | 
|  | # the instance ID for a given response will expire and become reusable if a response has not been | 
|  | # received within a maximum of 6 seconds after a request is sent. By setting the dbus timeout | 
|  | # value to 5 seconds we ensure that PLDM does not wait for a response from a dbus call even after | 
|  | # the instance ID has expired. If the option is set to 5 seconds, any dbus call originated from | 
|  | # PLDM daemon will timeout after 5 seconds. | 
|  | option( | 
|  | 'dbus-timeout-value', | 
|  | type: 'integer', | 
|  | min: 3, | 
|  | max: 10, | 
|  | value: 5, | 
|  | description: '''The amount of time pldm waits to get a response for a dbus | 
|  | message before timing out''' | 
|  | ) | 
|  |  | 
|  | option( | 
|  | 'heartbeat-timeout-seconds', | 
|  | type: 'integer', | 
|  | value: 120, | 
|  | description: '''The amount of time host waits for BMC to respond to pings | 
|  | from host, as part of host-bmc surveillance''' | 
|  | ) | 
|  |  | 
|  | # Flight Recorder for PLDM Daemon | 
|  | option( | 
|  | 'flightrecorder-max-entries', | 
|  | type:'integer', | 
|  | min:0, | 
|  | max:30, | 
|  | value: 10, | 
|  | description: '''The max number of pldm messages that can be stored in the | 
|  | recorder, this feature will be disabled if it is set to 0''' | 
|  | ) | 
|  |  | 
|  | # PLDM Daemon Terminus options | 
|  | option( | 
|  | 'terminus-id', | 
|  | type:'integer', | 
|  | min:0, | 
|  | max: 255, | 
|  | value:1, | 
|  | description: '''The terminus id value of the device that is running this | 
|  | pldm stack''' | 
|  | ) | 
|  |  | 
|  | option( | 
|  | 'terminus-handle', | 
|  | type:'integer', | 
|  | min:0, | 
|  | max:65535, | 
|  | value:1, | 
|  | description: '''The terminus handle value of the device that is running this | 
|  | pldm stack''' | 
|  | ) | 
|  |  | 
|  | # Timing specification options for PLDM messages | 
|  | option( | 
|  | 'number-of-request-retries', | 
|  | type: 'integer', | 
|  | min: 2, | 
|  | max: 30, | 
|  | value: 2, | 
|  | description: '''The number of times a requester is obligated to retry a | 
|  | request''' | 
|  | ) | 
|  |  | 
|  | option( | 
|  | 'instance-id-expiration-interval', | 
|  | type: 'integer', | 
|  | min: 5, | 
|  | max: 6, | 
|  | value: 5, | 
|  | description: 'Instance ID expiration interval in seconds' | 
|  | ) | 
|  |  | 
|  | # Default response-time-out set to 2 seconds to facilitate a minimum retry of | 
|  | # the request of 2. | 
|  | option( | 
|  | 'response-time-out', | 
|  | type: 'integer', | 
|  | min: 300, | 
|  | max: 4800, | 
|  | value: 2000, | 
|  | description: '''The amount of time a requester has to wait for a response | 
|  | message in milliseconds''' | 
|  | ) | 
|  |  | 
|  | # Firmware update configuration parameters | 
|  | option( | 
|  | 'maximum-transfer-size', | 
|  | type: 'integer', | 
|  | min: 16, | 
|  | max: 4294967295, | 
|  | value: 4096, | 
|  | description: '''Maximum size in bytes of the variable payload allowed to be | 
|  | requested by the FD, via RequestFirmwareData command''' | 
|  | ) | 
|  |  | 
|  | # Bios Attributes option | 
|  | option( | 
|  | 'system-specific-bios-json', | 
|  | type : 'feature', | 
|  | value: 'disabled', | 
|  | description : 'Support for different set of bios attributes for different types of systems' | 
|  | ) | 
|  |  | 
|  | # PLDM Soft Power off options | 
|  | option( | 
|  | 'softoff', | 
|  | type: 'feature', | 
|  | value: 'enabled', | 
|  | description: 'Build soft power off application' | 
|  | ) | 
|  |  | 
|  | option( | 
|  | 'softoff-timeout-seconds', | 
|  | type: 'integer', | 
|  | value: 7200, | 
|  | description: 'softoff: Time to wait for host to gracefully shutdown' | 
|  | ) | 
|  |  | 
|  | # Vendor Specific Options | 
|  |  | 
|  | ## OEM IBM Options | 
|  | option( | 
|  | 'oem-ibm', | 
|  | type: 'feature', | 
|  | value: 'enabled', | 
|  | description: 'Enable IBM OEM PLDM' | 
|  | ) | 
|  |  | 
|  | option( | 
|  | 'oem-ibm-dma-maxsize', | 
|  | type: 'integer', | 
|  | min:4096, | 
|  | max: 16773120, | 
|  | value: 8384512, | 
|  | description: 'OEM-IBM: max DMA size' | 
|  | ) | 
|  |  | 
|  | ## Default Sensor Update Interval Options | 
|  | option( | 
|  | 'default-sensor-update-interval', | 
|  | type: 'integer', | 
|  | min: 1, | 
|  | max: 4294967295, | 
|  | description: '''The default sensor polling interval in milliseconds. | 
|  | The value will be used when the internal is not configured | 
|  | in the PLDM sensor PDRs use `updateInterval` field. `pldmd` | 
|  | will send `GetSensorReading` to get the PLDM sensor values | 
|  | of the monitoring terminus after each configured | 
|  | interval.''', | 
|  | value: 999 | 
|  | ) | 
|  |  | 
|  | # Platform-mc configuration parameters | 
|  |  | 
|  | ## Sensor Polling Options | 
|  | option( | 
|  | 'sensor-polling-time', | 
|  | type: 'integer', | 
|  | min: 1, | 
|  | max: 10000, | 
|  | description: '''The configured timeout in milliseconds of the common sensor | 
|  | polling timer of each terminus which will trigger the | 
|  | terminus sensor reading task. The task will check | 
|  | whether the sensor in the terminus sensors list need to | 
|  | be updated by comparing the sensor `updateInterval` with the | 
|  | interval between current timestamp and latest updated | 
|  | timestamp of the sensor. The task will send | 
|  | `GetSensorReading` if the sensor need to be updated.''', | 
|  | value: 249 | 
|  | ) |