User Manual
Rev 2.3-1.0.1
Mellanox Technologies
39
• Example for IPoIB interfaces:
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{dev_id}=="0x0", ATTR{type}=="32",
NAME="ib0"
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{dev_id}=="0x1", ATTR{type}=="32",
NAME="ib1"
3.1.2 Quality of Service (QoS)
Quality of Service (QoS) is a mechanism of assigning a priority to a network flow (socket,
rdma_cm connection) and manage its guarantees, limitations and its priority over other flows.
This is accomplished by mapping the user's priority to a hardware TC (traffic class) through a 2/
3 stages process. The TC is assigned with the QoS attributes and the different flows behave
accordingly
3.1.2.1 Mapping Traffic to Traffic Classes
Mapping traffic to TCs consists of several actions which are user controllable, some controlled
by the application itself and others by the system/network administrators.
The following is the general mapping traffic to Traffic Classes flow:
1. The application sets the required Type of Service (ToS).
2. The ToS is translated into a Socket Priority (
sk_prio).
3. The
sk_prio is mapped to a User Priority (UP) by the system administrator (some applica-
tions set
sk_prio directly).
4. The UP is mapped to TC by the network/system administrator.
5. TCs hold the actual QoS parameters
QoS can be applied on the following types of traffic. However, the general QoS flow may vary
among them:
• Plain Ethernet -
Applications use regular inet sockets and the traffic passes via the ker-
nel Ethernet driver
• RoCE -
Applications use the RDMA API to transmit using QPs
• Raw Ethernet QP -
Application use VERBs API to transmit using a Raw Ethernet QP
3.1.2.2 Plain Ethernet Quality of Service Mapping
Applications use regular inet sockets and the traffic passes via the kernel Ethernet driver.
The following is the Plain Ethernet QoS mapping flow:
1. The application sets the ToS of the socket using
setsockopt (IP_TOS, value).
2. ToS is translated into the
sk_prio using a fixed translation:
TOS 0 <=> sk_prio 0
TOS 8 <=> sk_prio 2
TOS 24 <=> sk_prio 4
TOS 16 <=> sk_prio 6
3. The Socket Priority is mapped to the UP:
• If the underlying device is a VLAN device,
egress_map is used controlled by the vconfig
command. This is per VLAN mapping.