| # 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: 0, | 
 |     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''', | 
 | ) | 
 |  | 
 | option( | 
 |     'update-timeout-seconds', | 
 |     type: 'integer', | 
 |     min: 60, | 
 |     max: 90, | 
 |     value: 60, | 
 |     description: '''Timeout in seconds for the UA to cancel the component update | 
 |                     if no command is received from the FD during component image | 
 |                     transfer stage''', | 
 | ) | 
 |  | 
 | # 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', | 
 | ) | 
 |  | 
 |  | 
 | ## OEM AMPERE Options | 
 | option( | 
 |     'oem-ampere', | 
 |     type: 'feature', | 
 |     description: 'Enable AMPERE OEM PLDM', | 
 |     value: 'enabled', | 
 | ) | 
 |  | 
 | ## 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, | 
 | ) |