# 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,
)

option(
    'generate-terminus-locator-pdr',
    type: 'feature',
    value: 'enabled',
    description: 'Enable generating terminus locator pdr',
)
