description: >
    Implement to provide features needed to build a PLDM Request message. This
    API would be used by PLDM requester apps on the BMC.

    Any OpenBMC implementation must provide exactly one implementation of
    xyz.openbmc_project.PLDM.Requester on /xyz/openbmc_project/pldm.

    PLDM stands for Platform Level Data Model. More information about PLDM (and
    MCTP) can be found at https://www.dmtf.org/standards/pmci.

methods:
    - name: GetInstanceId
      description: >
          Obtain a new PLDM instance id, for the input MCTP EID, to be used in a
          PLDM request message. Instance ids help distinguish PLDM response
          messages when a PLDM requester sends out multiple request messages,
          without waiting for a response message. Refer the PLDM specification
          DSP0240 version 1.0.0. Also refer
          https://github.com/openbmc/docs/blob/master/designs/pldm-stack.md#Requester.

          The instance id starts at 0 and can go upto 31 (5 bits), for each MCTP
          EID that a PLDM requester is communicating with. An implementation of
          this API should track instance ids in terms of whether they're in use
          (request message with that instance id has been sent out, and the
          corresponding response message hasn't been received yet) or not, and
          grant unused ids via this method. An implementation may also
          optionally implement the instance id expiry, as per the spec DSP0240
          v1.0.0. The spec recommends implementing the same.

          If there's a call to this method when all 32 ids have already been
          granted to the input eid, then the
          xyz.openbmc_project.Common.Error.TooManyResources exception will be
          thrown. The recommendation for the caller upon receiving this
          exception is to retry calling this method, at least once, after a time
          period equal to the maximum instance id expiration interval, which is
          6 seconds as per DSP0240 v1.0.0. If the exception persists post this
          interval, the way of handling the same (further retries, report an
          error, etc) is left to the user.
      parameters:
          - name: eid
            type: byte
            description: >
                The MCTP endpoint, specified by 'eid' (endpoint id), for which
                the new PLDM instance id needs to be generated.
      returns:
          - name: instanceid
            type: byte
            description: >
                PLDM instance id.
      errors:
          - xyz.openbmc_project.Common.Error.TooManyResources
