Default/OS Management Group

OS management group defines following commands:

Command ID

Command description

0

Echo

1

Console/Terminal echo control; unimplemented by Zephyr

2

Statistics

3

Memory pool statistics

4

Date-time string; unimplemented by Zephyr

5

System reset

6

MCUMGR parameters

Echo command

Echo command responses by sending back string that it has received.

Echo request

Echo request header fields:

OP

Group ID

Command ID

0 or 2

0

0

CBOR data of request:

{
    (str)"d" : (str)
}

where:

“d”

string to be replied by echo service

Echo response

Echo response header fields:

OP

Group ID

Command ID

Note

1

0

0

When request OP was 0

3

0

0

When request OP was 2

CBOR data of successful response:

{
    (str)"r"        : (str)
}

In case of error the CBOR data takes form:

{
    (str)"rc"       : (int)
}

where:

“r”

Replying echo string

“rc”

Status/error codes in responses

Task statistics command

The command responds with some system statistics.

Task statistics request

Task statistics request header fields:

OP

Group ID

Command ID

0

0

2

The command sends empty CBOR map as data.

Task statistics response

Task statistics response header fields:

OP

Group ID

Command ID

1

0

2

CBOR data of response:

{
    (str)"tasks" : {
        (str)<task_name> : {
            (str)"prio"         : (uint)
            (str)"tid"          : (uint)
            (str)"state"        : (uint)
            (str)"stkuse"       : (uint)
            (str)"stksiz"       : (uint)
            (str)"cswcnt"       : (uint)
            (str)"runtime"      : (uint)
            (str)"last_checkin" : (uint)
            (str)"next_checkin" : (uint)
        }
        ...
    }
    (str)"rc" : (int)
}

where:

<task_name>

string identifying task

“prio”

task priority

“tid”

numeric task ID

“state”

numeric task state

“stkuse”

task’s/thread’s stack usage

“stksiz”

task’s/thread’s stack size

“cswcnt”

task’s/thread’s context switches

“runtime”

task’s/thread’s runtime in “ticks”

“last_checkin”

set to 0 by Zephyr

“next_checkin”

set to 0 by Zephyr

“rc”

Status/error codes in responses

Note

The unit for “stkuse” and “stksiz” is system dependent and in case of Zephyr this is number of 4 byte words.

Memory pool statistics

The command is used to obtain information on memory pools active in running system.

Memory pool statistic request

Memory pool statistics request header fields:

OP

Group ID

Command ID

0

0

3

The command sends empty CBOR map as data.

Memory pool statistics response

Memory pool statistics response header fields:

OP

Group ID

Command ID

1

0

3

CBOR data of response:

{
    (str)<pool_name> {
        (str)"blksiz"   : (int)
        (str)"nblks"    : (int)
        (str)"nfree"    : (int)
        (str)"min'      : (int)
    }
    ...
    (str)"rc" : (int)
}

where:

<pool_name>

string representing the pool name, used as a key for dictionary with pool statistics data

“blksiz”

size of the memory block in the pool

“nblks”

number of blocks in the pool

“nrfree”

number of free blocks

“min”

lowest number of free blocks the pool reached during run-time

“rc”

Status/error codes in responses

Date-time command

The command allows to obtain string representing current time-date on a device or set a new time to a device. The time format used, by both set and get operations, is:

“yyyy-MM-dd’T’HH:mm:ss.SSSSSSZZZZZ”

Date-time get

The command allows to obtain date-time from a device.

Date-time get request

Date-time request header fields:

OP

Group ID

Command ID

0

0

4

The command sends empty CBOR map as data.

Data-time get response

Date-time get response header fields:

OP

Group ID

Command ID

1

0

4

CBOR data of response:

{
    (str)"datetime" : (str)
    (opt,str)"rc"   : (int)
}

where:

“datetime”

String in format yyyy-MM-dd’T’HH:mm:ss.SSSSSSZZZZZ

“rc”

Status/error codes in responses; may not appear if 0

Date-time set

The command allows to set date-time to a device.

Date-time set request

Date-time set request header fields:

OP

Group ID

Command ID

2

0

4

CBOR data of response:

{
    (str)"datetime" : (str)
}

where:

“datetime”

String in format yyyy-MM-dd’T’HH:mm:ss.SSSSSSZZZZZ

Data-time set response

Date-time set response header fields:

OP

Group ID

Command ID

1

0

4

CBOR data of response:

{
    (str)"rc"       : (int)
}

where:

“rc”

Status/error codes in responses

System reset

Performs reset of system. The device should issue response before resetting so that the SMP client could receive information that the command has been accepted. By default, this command is accepted in all conditions, however if the CONFIG_OS_MGMT_RESET_HOOK is enabled and an application registers a callback, the callback will be called when this command is issued and can be used to perform any necessary tidy operations prior to the module rebooting, or to reject the reset request outright altogether with an error response.

System reset request

System reset request header fields:

OP

Group ID

Command ID

2

0

5

Normally the command sends empty CBOR map as data, but if previous reset attempt has been responded with “rc” code equal 10 (busy), then following map may be send to force the reset:

{
    (opt)"force"       : (int)
}

where:

“force”

Force reset if value > 0, optional if 0.

System reset response

System reset response header fields

OP

Group ID

Command ID

3

0

5

CBOR data of response:

{
    (opt,str)"rc"       : (int)
}

where:

“rc”

Status/error codes in responses; may not appear if 0

MCUMGR Parameters

Used to obtain parameters of mcumgr library.

MCUMGR Parameters Request

MCUMGR parameters request header fields:

OP

Group ID

Command ID

0

0

6

The command sends empty CBOR map as data.

MCUMGR Parameters Response

MCUMGR parameters response header fields

OP

Group ID

Command ID

2

0

6

CBOR data of response:

{
    (str)"buf_size"     : (uint)
    (str)"buf_count"    : (uint)
    (opt,str)"rc"       : (int)
}

where:

“buf_size”

Single SMP buffer size, this includes SMP header and CBOR payload

“buf_count”

Number of SMP buffers supported

“rc”

Status/error codes in responses; may not appear if 0