Commands

CMD 0: (Host->NCP) CMD_NOOP

Octets:11
Fields:HEADERCMD_NOOP

No-Operation command. Induces the NCP to send a success status back to the host. This is primarily used for liveliness checks.

The command payload for this command SHOULD be empty. The receiver MUST ignore any non-empty command payload.

There is no error condition for this command.

CMD 1: (Host->NCP) CMD_RESET

Octets:11
Fields:HEADERCMD_RESET

Reset NCP command. Causes the NCP to perform a software reset. Due to the nature of this command, the TID is ignored. The host should instead wait for a CMD_PROP_VALUE_IS command from the NCP indicating PROP_LAST_STATUS has been set to STATUS_RESET_SOFTWARE.

The command payload for this command SHOULD be empty. The receiver MUST ignore any non-empty command payload.

If an error occurs, the value of PROP_LAST_STATUS will be emitted instead with the value set to the generated status code for the error.

CMD 2: (Host->NCP) CMD_PROP_VALUE_GET

Octets:111-3
Fields:HEADERCMD_PROP_VALUE_GETPROP_ID

Get property value command. Causes the NCP to emit a CMD_PROP_VALUE_IS command for the given property identifier.

The payload for this command is the property identifier encoded in the packed unsigned integer format described in (#packed-unsigned-integer).

If an error occurs, the value of PROP_LAST_STATUS will be emitted instead with the value set to the generated status code for the error.

CMD 3: (Host->NCP) CMD_PROP_VALUE_SET

Octets:111-3n
Fields:HEADERCMD_PROP_VALUE_SETPROP_IDVALUE

Set property value command. Instructs the NCP to set the given property to the specific given value, replacing any previous value.

The payload for this command is the property identifier encoded in the packed unsigned integer format described in (#packed-unsigned-integer), followed by the property value. The exact format of the property value is defined by the property.

If an error occurs, the value of PROP_LAST_STATUS will be emitted with the value set to the generated status code for the error.

CMD 4: (Host->NCP) CMD_PROP_VALUE_INSERT

Octets:111-3n
Fields:HEADERCMD_PROP_VALUE_INSERTPROP_IDVALUE

Insert value into property command. Instructs the NCP to insert the given value into a list-oriented property, without removing other items in the list. The resulting order of items in the list is defined by the individual property being operated on.

The payload for this command is the property identifier encoded in the packed unsigned integer format described in (#packed-unsigned-integer), followed by the value to be inserted. The exact format of the value is defined by the property.

If the type signature of the property specified by PROP_ID consists of a single structure enclosed by an array (A(t(...))), then the contents of VALUE MUST contain the contents of the structure (...) rather than the serialization of the whole item (t(...)). Specifically, the length of the structure MUST NOT be prepended to VALUE. This helps to eliminate redundant data.

If an error occurs, the value of PROP_LAST_STATUS will be emitted with the value set to the generated status code for the error.

CMD 5: (Host->NCP) CMD_PROP_VALUE_REMOVE

Octets:111-3n
Fields:HEADERCMD_PROP_VALUE_REMOVEPROP_IDVALUE

Remove value from property command. Instructs the NCP to remove the given value from a list-oriented property, without affecting other items in the list. The resulting order of items in the list is defined by the individual property being operated on.

Note that this command operates by value, not by index!

The payload for this command is the property identifier encoded in the packed unsigned integer format described in (#packed-unsigned-integer), followed by the value to be removed. The exact format of the value is defined by the property.

If the type signature of the property specified by PROP_ID consists of a single structure enclosed by an array (A(t(...))), then the contents of VALUE MUST contain the contents of the structure (...) rather than the serialization of the whole item (t(...)). Specifically, the length of the structure MUST NOT be prepended to VALUE. This helps to eliminate redundant data.

If an error occurs, the value of PROP_LAST_STATUS will be emitted with the value set to the generated status code for the error.

CMD 6: (NCP->Host) CMD_PROP_VALUE_IS

Octets:111-3n
Fields:HEADERCMD_PROP_VALUE_ISPROP_IDVALUE

Property value notification command. This command can be sent by the NCP in response to a previous command from the host, or it can be sent by the NCP in an unsolicited fashion to notify the host of various state changes asynchronously.

The payload for this command is the property identifier encoded in the packed unsigned integer format described in (#packed-unsigned-integer), followed by the current value of the given property.

CMD 7: (NCP->Host) CMD_PROP_VALUE_INSERTED

Octets:111-3n
Fields:HEADERCMD_PROP_VALUE_INSERTEDPROP_IDVALUE

Property value insertion notification command. This command can be sent by the NCP in response to the CMD_PROP_VALUE_INSERT command, or it can be sent by the NCP in an unsolicited fashion to notify the host of various state changes asynchronously.

The payload for this command is the property identifier encoded in the packed unsigned integer format described in (#packed-unsigned-integer), followed by the value that was inserted into the given property.

If the type signature of the property specified by PROP_ID consists of a single structure enclosed by an array (A(t(...))), then the contents of VALUE MUST contain the contents of the structure (...) rather than the serialization of the whole item (t(...)). Specifically, the length of the structure MUST NOT be prepended to VALUE. This helps to eliminate redundant data.

The resulting order of items in the list is defined by the given property.

CMD 8: (NCP->Host) CMD_PROP_VALUE_REMOVED

Octets:111-3n
Fields:HEADERCMD_PROP_VALUE_REMOVEDPROP_IDVALUE

Property value removal notification command. This command can be sent by the NCP in response to the CMD_PROP_VALUE_REMOVE command, or it can be sent by the NCP in an unsolicited fashion to notify the host of various state changes asynchronously.

Note that this command operates by value, not by index!

The payload for this command is the property identifier encoded in the packed unsigned integer format described in (#packed-unsigned-integer), followed by the value that was removed from the given property.

If the type signature of the property specified by PROP_ID consists of a single structure enclosed by an array (A(t(...))), then the contents of VALUE MUST contain the contents of the structure (...) rather than the serialization of the whole item (t(...)). Specifically, the length of the structure MUST NOT be prepended to VALUE. This helps to eliminate redundant data.

The resulting order of items in the list is defined by the given property.

CMD 18: (Host->NCP) CMD_PEEK

Octets:1142
Fields:HEADERCMD_PEEKADDRESSCOUNT

This command allows the NCP to fetch values from the RAM of the NCP for debugging purposes. Upon success, CMD_PEEK_RET is sent from the NCP to the host. Upon failure, PROP_LAST_STATUS is emitted with the appropriate error indication.

Due to the low-level nature of this command, certain error conditions may induce the NCP to reset.

The NCP MAY prevent certain regions of memory from being accessed.

The implementation of this command has security implications. See (#security-considerations) for more information.

This command requires the capability CAP_PEEK_POKE to be present.

CMD 19: (NCP->Host) CMD_PEEK_RET

Octets:1142n
Fields:HEADERCMD_PEEK_RETADDRESSCOUNTBYTES

This command contains the contents of memory that was requested by a previous call to CMD_PEEK.

This command requires the capability CAP_PEEK_POKE to be present.

CMD 20: (Host->NCP) CMD_POKE

Octets:1142n
Fields:HEADERCMD_POKEADDRESSCOUNTBYTES

This command writes the bytes to the specified memory address for debugging purposes.

Due to the low-level nature of this command, certain error conditions may induce the NCP to reset.

The implementation of this command has security implications. See (#security-considerations) for more information.

This command requires the capability CAP_PEEK_POKE to be present.

CMD 21: (Host->NCP) CMD_PROP_VALUE_MULTI_GET

  • Argument-Encoding: A(i)
  • Required Capability: CAP_CMD_MULTI

Fetch the value of multiple properties in one command. Arguments are an array of property IDs. If all properties are fetched successfully, a CMD_PROP_VALUES_ARE command is sent back to the host containing the propertyid and value of each fetched property. The order of the results in CMD_PROP_VALUES_ARE match the order of properties given in CMD_PROP_VALUE_GET.

Errors fetching individual properties are reflected as indicating a change to PROP_LAST_STATUS for that property's place.

Not all properties can be fetched using this method. As a general rule of thumb, any property that blocks when getting will fail for that individual property with STATUS_INVALID_COMMAND_FOR_PROP.

CMD 22: (Host->NCP) CMD_PROP_VALUE_MULTI_SET

  • Argument-Encoding: A(iD)
  • Required Capability: CAP_CMD_MULTI
Octets:11n
Fields:HEADERCMD_PROP_VALUE_MULTI_SETProperty/Value Pairs

With each property/value pair being:

Octets:21-3n
Fields:LENGTHPROP_IDPROP_VALUE

This command sets the value of several properties at once in the given order. The setting of properties stops at the first error, ignoring any later properties.

The result of this command is generally CMD_PROP_VALUES_ARE unless (for example) a parsing error has occured (in which case CMD_PROP_VALUE_IS for PROP_LAST_STATUS would be the result). The order of the results in CMD_PROP_VALUES_ARE match the order of properties given in CMD_PROP_VALUE_MULTI_SET.

Since the processing of properties to set stops at the first error, the resulting CMD_PROP_VALUES_ARE can contain fewer items than the requested number of properties to set.

Not all properties can be set using this method. As a general rule of thumb, any property that blocks when setting will fail for that individual property with STATUS_INVALID_COMMAND_FOR_PROP.

CMD 23: (NCP->Host) CMD_PROP_VALUES_ARE

  • Argument-Encoding: A(iD)
  • Required Capability: CAP_CMD_MULTI
Octets:11n
Fields:HEADERCMD_PROP_VALUES_AREProperty/Value Pairs

With each property/value pair being:

Octets:21-3n
Fields:LENGTHPROP_IDPROP_VALUE

This command is emitted by the NCP as the response to both the CMD_PROP_VALUE_MULTI_GET and CMD_PROP_VALUE_MULTI_SET commands. It is roughly analogous to CMD_PROP_VALUE_IS, except that it contains more than one property.

This command SHOULD NOT be emitted asynchronously, or in response to any command other than CMD_PROP_VALUE_MULTI_GET or CMD_PROP_VALUE_MULTI_SET.

The arguments are a list of structures containing the emitted property and the associated value. These are presented in the same order as given in the associated initiating command. In cases where getting or setting a specific property resulted in an error, the associated slot in this command will describe PROP_LAST_STATUS.