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
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 one of the following service classes:
Class | Description | Typical Use Case |
---|---|---|
CS0 |
Low Priority. No bandwidth assurance |
File Transfer |
CS1 |
Standard, undifferentiated application |
General (unclassified) |
CS2 |
Operations, Administration, and Management |
Streamer messages (sub, connect, etc…) |
CS3 |
Multimedia streaming |
Video Streaming |
CS4 |
Real-time interactive |
High priority (RPC events) |
CS5 |
Important |
Signaling |
CS6 |
Safety Critical |
Network control |
These classes are represented by the values of the UPriority protobuf enum.
-
A UMessage MAY be assigned explicitly to a service class by setting its
attributes.priority
property to the desired value. -
A UMessage MUST be considered to belong to class
CS1
, if its priority is not set explicitly. -
Every topic MUST have a priority code associated with it.
-
uProtocol Client Libraries SHOULD map the message’s service class to a corresponding mechanism of the underlying transport protocol, if available.
-
uProtocol Dispatchers SHOULD consider the message’s service class as part of their message scheduling strategy.