]> Git Repo - J-linux.git/blob - include/net/ieee8021q.h
Merge tag 'vfs-6.13-rc7.fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs
[J-linux.git] / include / net / ieee8021q.h
1 /* SPDX-License-Identifier: GPL-2.0 */
2 /* Copyright (c) 2024 Pengutronix, Oleksij Rempel <[email protected]> */
3
4 #ifndef _NET_IEEE8021Q_H
5 #define _NET_IEEE8021Q_H
6
7 #include <linux/errno.h>
8
9 /**
10  * enum ieee8021q_traffic_type - 802.1Q traffic type priority values (802.1Q-2022)
11  *
12  * @IEEE8021Q_TT_BK: Background
13  * @IEEE8021Q_TT_BE: Best Effort (default). According to 802.1Q-2022, BE is 0
14  * but has higher priority than BK which is 1.
15  * @IEEE8021Q_TT_EE: Excellent Effort
16  * @IEEE8021Q_TT_CA: Critical Applications
17  * @IEEE8021Q_TT_VI: Video, < 100 ms latency and jitter
18  * @IEEE8021Q_TT_VO: Voice, < 10 ms latency and jitter
19  * @IEEE8021Q_TT_IC: Internetwork Control
20  * @IEEE8021Q_TT_NC: Network Control
21  */
22 enum ieee8021q_traffic_type {
23         IEEE8021Q_TT_BK = 0,
24         IEEE8021Q_TT_BE = 1,
25         IEEE8021Q_TT_EE = 2,
26         IEEE8021Q_TT_CA = 3,
27         IEEE8021Q_TT_VI = 4,
28         IEEE8021Q_TT_VO = 5,
29         IEEE8021Q_TT_IC = 6,
30         IEEE8021Q_TT_NC = 7,
31
32         /* private: */
33         IEEE8021Q_TT_MAX,
34 };
35
36 #define SIMPLE_IETF_DSCP_TO_IEEE8021Q_TT(dscp)          ((dscp >> 3) & 0x7)
37
38 #if IS_ENABLED(CONFIG_NET_IEEE8021Q_HELPERS)
39
40 int ietf_dscp_to_ieee8021q_tt(u8 dscp);
41 int ieee8021q_tt_to_tc(enum ieee8021q_traffic_type tt, unsigned int num_queues);
42
43 #else
44
45 static inline int ietf_dscp_to_ieee8021q_tt(u8 dscp)
46 {
47         return -EOPNOTSUPP;
48 }
49
50 static inline int ieee8021q_tt_to_tc(enum ieee8021q_traffic_type tt,
51                                      unsigned int num_queues)
52 {
53         return -EOPNOTSUPP;
54 }
55
56 #endif
57 #endif /* _NET_IEEE8021Q_H */
This page took 0.02946 seconds and 4 git commands to generate.