blob: 5add0ce727e7ccbe5321319e62aaaf1098b84bf7 [file] [log] [blame]
.. zephyr:code-sample:: quality-of-service
:name: Quality of Service
:relevant-api: ethernet
Implements a demo of quality of service on the ethernet layer.
Overview
********
The purpose of this sample is to show quality-of-service (QoS) on the ethernet layer.
Building and Running
********************
Build like this:
.. zephyr-app-commands::
:zephyr-app: samples/net/qos/ethernet
:board: <board_to_use>
:goals: build
:compact:
This sample only works with the native simulator. After the sample starts, it
fakes incoming network packets on a fake network interface and prints
statistics about it.
Run with:
.. zephyr-app-commands::
:zephyr-app: samples/net/qos/ethernet
:host-os: unix
:board: native_sim
:goals: run
:compact:
Statistics (With Quality of Service Filtering)
**********************************************
c (x) := command service for priority x (high means higher priority)
e (x) := echo service for priority x (high means higher priority)
+---------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+
| work us | c(7) | e(7) | c(6) | e(6) | c(5) | e(5) | c(4) | e(4) | c(3) | e(3) | c(2) | e(2) | c(1) | e(1) | c(0) | e(0) |
+=========+======+======+======+======+======+======+======+======+======+======+======+======+======+======+======+======+
| 800 | 100 | 100 | 100 | 100 | 100 | 100 | 100 | 100 | 100 | 100 | 100 | 100 | 100 | 100 | 100 | 100 |
+---------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+
| 850 | 100 | 100 | 100 | 100 | 100 | 100 | 100 | 100 | 100 | 100 | 100 | 100 | 100 | 100 | 99 | 53 |
+---------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+
| 900 | 100 | 100 | 100 | 100 | 100 | 100 | 100 | 100 | 100 | 100 | 100 | 100 | 100 | 100 | 35 | 0 |
+---------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+
| 950 | 100 | 100 | 100 | 100 | 100 | 100 | 100 | 100 | 100 | 100 | 100 | 100 | 100 | 100 | 2 | 0 |
+---------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+
| 1000 | 100 | 100 | 100 | 100 | 100 | 100 | 100 | 100 | 100 | 100 | 100 | 100 | 99 | 0 | 0 | 0 |
+---------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+
| 1100 | 100 | 100 | 100 | 100 | 100 | 100 | 100 | 100 | 100 | 100 | 100 | 100 | 9 | 0 | 0 | 0 |
+---------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+
| 1200 | 100 | 100 | 100 | 100 | 100 | 100 | 100 | 100 | 100 | 100 | 75 | 0 | 0 | 0 | 0 | 0 |
+---------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+
| 1300 | 100 | 100 | 100 | 100 | 100 | 100 | 100 | 100 | 100 | 100 | 10 | 0 | 0 | 0 | 0 | 0 |
+---------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+
| 1400 | 100 | 100 | 100 | 100 | 100 | 100 | 100 | 100 | 99 | 29 | 0 | 0 | 0 | 0 | 0 | 0 |
+---------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+
| 1600 | 100 | 100 | 100 | 100 | 100 | 100 | 100 | 100 | 10 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
+---------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+
| 1800 | 100 | 100 | 100 | 100 | 100 | 100 | 100 | 11 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
+---------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+
| 2000 | 100 | 100 | 100 | 100 | 100 | 100 | 15 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
+---------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+
| 3000 | 100 | 100 | 100 | 100 | 12 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
+---------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+
| 4000 | 100 | 100 | 99 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
+---------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+
| 5000 | 100 | 100 | 15 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
+---------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+
| 6000 | 100 | 100 | 9 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
+---------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+
| 7000 | 100 | 85 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
+---------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+
| 8000 | 100 | 49 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
+---------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+
| 9000 | 100 | 22 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
+---------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+
| 10000 | 99 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
+---------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+
| 15000 | 44 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
+---------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+
Statistics (No Quality of Service Filtering)
**********************************************
c (x) := command service for priority x (high means higher priority)
e (x) := echo service for priority x (high means higher priority)
+---------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+
| work us | c(7) | e(7) | c(6) | e(6) | c(5) | e(5) | c(4) | e(4) | c(3) | e(3) | c(2) | e(2) | c(1) | e(1) | c(0) | e(0) |
+=========+======+======+======+======+======+======+======+======+======+======+======+======+======+======+======+======+
| 800 | 100 | 100 | 100 | 100 | 100 | 100 | 100 | 100 | 100 | 100 | 100 | 100 | 100 | 100 | 100 | 100 |
+---------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+
| 850 | 100 | 53 | 100 | 99 | 100 | 100 | 100 | 100 | 100 | 100 | 100 | 100 | 100 | 100 | 100 | 100 |
+---------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+
| 900 | 100 | 1 | 100 | 23 | 100 | 99 | 100 | 99 | 100 | 100 | 100 | 100 | 100 | 100 | 100 | 100 |
+---------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+
| 950 | 100 | 1 | 100 | 1 | 100 | 7 | 100 | 99 | 100 | 99 | 100 | 99 | 100 | 99 | 100 | 100 |
+---------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+
| 1000 | 100 | 1 | 100 | 1 | 100 | 1 | 100 | 1 | 100 | 98 | 100 | 99 | 100 | 99 | 100 | 99 |
+---------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+
| 1100 | 100 | 1 | 100 | 1 | 100 | 1 | 100 | 1 | 100 | 1 | 100 | 19 | 100 | 97 | 100 | 97 |
+---------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+
| 1200 | 100 | 1 | 100 | 1 | 100 | 1 | 100 | 1 | 100 | 1 | 100 | 1 | 100 | 1 | 100 | 59 |
+---------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+
| 1300 | 39 | 0 | 100 | 0 | 100 | 0 | 100 | 0 | 100 | 0 | 100 | 0 | 100 | 0 | 100 | 0 |
+---------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+
| 1400 | 1 | 0 | 99 | 0 | 100 | 0 | 100 | 0 | 100 | 0 | 100 | 0 | 100 | 0 | 100 | 0 |
+---------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+
| 1600 | 1 | 0 | 1 | 0 | 99 | 0 | 99 | 0 | 100 | 0 | 100 | 0 | 100 | 0 | 100 | 0 |
+---------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+
| 1800 | 1 | 0 | 1 | 0 | 12 | 0 | 99 | 0 | 99 | 0 | 100 | 0 | 100 | 0 | 100 | 0 |
+---------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+
| 2000 | 1 | 0 | 1 | 0 | 1 | 0 | 99 | 0 | 99 | 0 | 99 | 0 | 99 | 0 | 100 | 0 |
+---------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+
| 3000 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 98 | 0 | 98 | 0 | 99 | 0 |
+---------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+
| 4000 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 97 | 0 | 98 | 0 |
+---------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+
| 5000 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 96 | 0 | 97 | 0 |
+---------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+
| 6000 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 33 | 0 | 96 | 0 |
+---------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+
| 7000 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 95 | 0 |
+---------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+
| 8000 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 94 | 0 |
+---------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+
| 9000 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 93 | 0 |
+---------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+
| 10000 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 92 | 0 |
+---------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+
| 15000 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 30 | 0 |
+---------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+