Skip to content

Latest commit

 

History

History
65 lines (46 loc) · 2.44 KB

File metadata and controls

65 lines (46 loc) · 2.44 KB

Message Priority (UPriority)

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in IETF BCP14 (RFC2119 & RFC8174)

SPDX-FileCopyrightText: 2023 Contributors to the Eclipse Foundation

See the NOTICE file(s) distributed with this work for additional
information regarding copyright ownership.

This program and the accompanying materials are made available under
the terms of the Apache License Version 2.0 which is available at
https://www.apache.org/licenses/LICENSE-2.0

SPDX-FileType: DOCUMENTATION
SPDX-License-Identifier: Apache-2.0

1. Overview

uProtocol allows messages to be exchanged between uEntities on the same and/or different devices. The network bandwidth and/or CPU cycles available for performing this task may be limited, though. uProtocol therefore supports priority based message processing at the Transport and Communication Layer based on RFC4594 - Configuration Guidelines for DiffServ Service Classes.

For this purpose, each UMessage is assigned to exactly one of the following classes:

Table 1. Message Priority Classes
Class Description Typical Use Case

CS0

Low Priority. No bandwidth assurance

Bulk data transfer

CS1

Default priority

Generic, non-specific application level events

CS2

Operations, Administration, and Management

uSubscription messages (subscribe, etc.)

CS3

Multimedia streaming

Audio/Video frames

CS4

Real-time interactive

High priority (RPC messages)

CS5

Important

Signaling

CS6

Safety Critical

Network control

A UMessage MAY be assigned explicitly to a service class by setting the message’s priority property to the desired value. If the property is not set, the UMessage belongs to class CS1 by default.

Note
The actual handling of message priority is implementation specific and may depend on the capabilities of the underlying transport protocol. Some transports may not support priority handling at all.
Note
The example use cases provided above are intended as guidelines only. uEntities may choose to deviate from these guidelines based on specific application requirements.