Skip to content

Latest commit

 

History

History
47 lines (35 loc) · 2.55 KB

qos.adoc

File metadata and controls

47 lines (35 loc) · 2.55 KB

QoS

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:

Table 1. QoS Classifications
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.