| /* SPDX-License-Identifier: GPL-2.0 */ | |
| /* Copyright (c) 2024 Pengutronix, Oleksij Rempel <kernel@pengutronix.de> */ | |
| #ifndef _NET_IEEE8021Q_H | |
| #define _NET_IEEE8021Q_H | |
| #include <linux/errno.h> | |
| /** | |
| * enum ieee8021q_traffic_type - 802.1Q traffic type priority values (802.1Q-2022) | |
| * | |
| * @IEEE8021Q_TT_BK: Background | |
| * @IEEE8021Q_TT_BE: Best Effort (default). According to 802.1Q-2022, BE is 0 | |
| * but has higher priority than BK which is 1. | |
| * @IEEE8021Q_TT_EE: Excellent Effort | |
| * @IEEE8021Q_TT_CA: Critical Applications | |
| * @IEEE8021Q_TT_VI: Video, < 100 ms latency and jitter | |
| * @IEEE8021Q_TT_VO: Voice, < 10 ms latency and jitter | |
| * @IEEE8021Q_TT_IC: Internetwork Control | |
| * @IEEE8021Q_TT_NC: Network Control | |
| */ | |
| enum ieee8021q_traffic_type { | |
| IEEE8021Q_TT_BK = 0, | |
| IEEE8021Q_TT_BE = 1, | |
| IEEE8021Q_TT_EE = 2, | |
| IEEE8021Q_TT_CA = 3, | |
| IEEE8021Q_TT_VI = 4, | |
| IEEE8021Q_TT_VO = 5, | |
| IEEE8021Q_TT_IC = 6, | |
| IEEE8021Q_TT_NC = 7, | |
| /* private: */ | |
| IEEE8021Q_TT_MAX, | |
| }; | |
| #define SIMPLE_IETF_DSCP_TO_IEEE8021Q_TT(dscp) ((dscp >> 3) & 0x7) | |
| #if IS_ENABLED(CONFIG_NET_IEEE8021Q_HELPERS) | |
| int ietf_dscp_to_ieee8021q_tt(u8 dscp); | |
| int ieee8021q_tt_to_tc(enum ieee8021q_traffic_type tt, unsigned int num_queues); | |
| #else | |
| static inline int ietf_dscp_to_ieee8021q_tt(u8 dscp) | |
| { | |
| return -EOPNOTSUPP; | |
| } | |
| static inline int ieee8021q_tt_to_tc(enum ieee8021q_traffic_type tt, | |
| unsigned int num_queues) | |
| { | |
| return -EOPNOTSUPP; | |
| } | |
| #endif | |
| #endif /* _NET_IEEE8021Q_H */ |