Mailbox Common#

Types defined for mailbox.

Mailbox protocol is designed for devices that can't be online on the network all the time. The most common example for this is a sleepy end device.

Mailbox clients and the server can submit messages into the mailbox, which is stored in RAM on the mailbox server. Clients can then query the mailbox server for available messages.

The mailbox server will notify clients who submit messages when a message was delivered or when it couldn't be delivered due to an error.

Mailbox uses a plugin-configurable protocol endpoint, which is 15 by default.

The server can also configure the size of the mailbox (in number of packets, 25 by default) and the packet timeout, after which the server drops the message and notifies the source of the error.

The mailbox protocol uses standard data messages, so in case of sleepy end devices, it will use the indirect queue. This means that if a sleepy end device sends a request to a mailbox server, the end device should poll for the response.

Note

  • Mailbox is not available in MAC mode due to the lack of endpoints.

Enumerations#

enum
EMBER_MAILBOX_STATUS_SUCCESS = 0x00
EMBER_MAILBOX_STATUS_INVALID_CALL = 0x01
EMBER_MAILBOX_STATUS_BUSY = 0x02
EMBER_MAILBOX_STATUS_STACK_ERROR = 0x03
EMBER_MAILBOX_STATUS_INVALID_ADDRESS = 0x04
EMBER_MAILBOX_STATUS_MESSAGE_TOO_LONG = 0x05
EMBER_MAILBOX_STATUS_MESSAGE_TABLE_FULL = 0x06
EMBER_MAILBOX_STATUS_MESSAGE_NO_BUFFERS = 0x07
EMBER_MAILBOX_STATUS_MESSAGE_NO_RESPONSE = 0x08
EMBER_MAILBOX_STATUS_MESSAGE_TIMED_OUT = 0x09
EMBER_MAILBOX_STATUS_MESSAGE_NO_DATA = 0x0A
}

Mailbox return status codes.

Enumeration Documentation#

EmberAfMailboxStatus#

EmberAfMailboxStatus

Mailbox return status codes.

Enumerator
EMBER_MAILBOX_STATUS_SUCCESS

The generic "no error" message.

EMBER_MAILBOX_STATUS_INVALID_CALL

Indicates invalid message pointer or length.

EMBER_MAILBOX_STATUS_BUSY

Indicates that the local mailbox implementation is busy performing a previously requested task.

EMBER_MAILBOX_STATUS_STACK_ERROR

Indicates that the Connect stack returned an error to the mailbox plugin.

EMBER_MAILBOX_STATUS_INVALID_ADDRESS

Indicates that an address passed to the API was invalid.

EMBER_MAILBOX_STATUS_MESSAGE_TOO_LONG

Indicates that the message passed to the plugin was too long.

EMBER_MAILBOX_STATUS_MESSAGE_TABLE_FULL

Indicates that the message table on the server is full.

EMBER_MAILBOX_STATUS_MESSAGE_NO_BUFFERS

Indicates that the server was unable to allocate memory from the heap (See Memory Buffer for details).

EMBER_MAILBOX_STATUS_MESSAGE_NO_RESPONSE

Indicates that the mailbox server did not respond to the client's request.

EMBER_MAILBOX_STATUS_MESSAGE_TIMED_OUT

Indicates that the message timed out on the mailbox server.

EMBER_MAILBOX_STATUS_MESSAGE_NO_DATA

Indicates that there are no pending messages on the server to this device


Definition at line 68 of file /mnt/raid/workspaces/ws.Q8qnkBLX2/overlay/gsdk/protocol/flex/mailbox/mailbox-types.h