Feature: Host Buffer Offload

The memory on an NCP may be much more limited than the memory on the host processor. In such situations, it is sometimes useful for the NCP to offload buffers to the host processor temporarily so that it can perform other operations.

Host buffer offload is an optional NCP capability that, when present, allows the NCP to store data buffers on the host processor that can be recalled at a later time.

The presence of this feature can be detected by the host by checking for the presence of the CAP_HBO capability in PROP_CAPS.

Commands

CMD 12: (NCP->Host) CMD_HBO_OFFLOAD

  • Argument-Encoding: LscD
    • OffloadId: 32-bit unique block identifier
    • Expiration: In seconds-from-now
    • Priority: Critical, High, Medium, Low
    • Data: Data to offload

CMD 13: (NCP->Host) CMD_HBO_RECLAIM

  • Argument-Encoding: Lb
    • OffloadId: 32-bit unique block identifier
    • KeepAfterReclaim: If not set to true, the block will be dropped by the host after it is sent to the NCP.

CMD 14: (NCP->Host) CMD_HBO_DROP

  • Argument-Encoding: L
    • OffloadId: 32-bit unique block identifier

CMD 15: (Host->NCP) CMD_HBO_OFFLOADED

  • Argument-Encoding: Li
    • OffloadId: 32-bit unique block identifier
    • Status: Status code for the result of the operation.

CMD 16: (Host->NCP) CMD_HBO_RECLAIMED

  • Argument-Encoding: LiD
    • OffloadId: 32-bit unique block identifier
    • Status: Status code for the result of the operation.
    • Data: Data that was previously offloaded (if any)

CMD 17: (Host->NCP) CMD_HBO_DROPPED

  • Argument-Encoding: Li
    • OffloadId: 32-bit unique block identifier
    • Status: Status code for the result of the operation.

Properties

PROP 10: PROP_HBO_MEM_MAX

  • Type: Read-Write
  • Packed-Encoding: L
Octets:4
Fields:PROP_HBO_MEM_MAX

Describes the number of bytes that may be offloaded from the NCP to the host. Default value is zero, so this property must be set by the host to a non-zero value before the NCP will begin offloading blocks.

This value is encoded as an unsigned 32-bit integer.

This property is only available if the CAP_HBO capability is present in PROP_CAPS.

PROP 11: PROP_HBO_BLOCK_MAX

  • Type: Read-Write
  • Packed-Encoding: S
Octets:2
Fields:PROP_HBO_BLOCK_MAX

Describes the number of blocks that may be offloaded from the NCP to the host. Default value is 32. Setting this value to zero will cause host block offload to be effectively disabled.

This value is encoded as an unsigned 16-bit integer.

This property is only available if the CAP_HBO capability is present in PROP_CAPS.