|
7 | 7 | #include <net/dscp.h> |
8 | 8 | #include <net/ieee8021q.h> |
9 | 9 |
|
| 10 | +/* verify that table covers all 8 traffic types */ |
| 11 | +#define TT_MAP_SIZE_OK(tbl) \ |
| 12 | + compiletime_assert(ARRAY_SIZE(tbl) == IEEE8021Q_TT_MAX, \ |
| 13 | + #tbl " size mismatch") |
| 14 | + |
10 | 15 | /* The following arrays map Traffic Types (TT) to traffic classes (TC) for |
11 | 16 | * different number of queues as shown in the example provided by |
12 | 17 | * IEEE 802.1Q-2022 in Annex I "I.3 Traffic type to traffic class mapping" and |
@@ -101,51 +106,28 @@ int ieee8021q_tt_to_tc(enum ieee8021q_traffic_type tt, unsigned int num_queues) |
101 | 106 |
|
102 | 107 | switch (num_queues) { |
103 | 108 | case 8: |
104 | | - compiletime_assert(ARRAY_SIZE(ieee8021q_8queue_tt_tc_map) != |
105 | | - IEEE8021Q_TT_MAX - 1, |
106 | | - "ieee8021q_8queue_tt_tc_map != max - 1"); |
| 109 | + TT_MAP_SIZE_OK(ieee8021q_8queue_tt_tc_map); |
107 | 110 | return ieee8021q_8queue_tt_tc_map[tt]; |
108 | 111 | case 7: |
109 | | - compiletime_assert(ARRAY_SIZE(ieee8021q_7queue_tt_tc_map) != |
110 | | - IEEE8021Q_TT_MAX - 1, |
111 | | - "ieee8021q_7queue_tt_tc_map != max - 1"); |
112 | | - |
| 112 | + TT_MAP_SIZE_OK(ieee8021q_7queue_tt_tc_map); |
113 | 113 | return ieee8021q_7queue_tt_tc_map[tt]; |
114 | 114 | case 6: |
115 | | - compiletime_assert(ARRAY_SIZE(ieee8021q_6queue_tt_tc_map) != |
116 | | - IEEE8021Q_TT_MAX - 1, |
117 | | - "ieee8021q_6queue_tt_tc_map != max - 1"); |
118 | | - |
| 115 | + TT_MAP_SIZE_OK(ieee8021q_6queue_tt_tc_map); |
119 | 116 | return ieee8021q_6queue_tt_tc_map[tt]; |
120 | 117 | case 5: |
121 | | - compiletime_assert(ARRAY_SIZE(ieee8021q_5queue_tt_tc_map) != |
122 | | - IEEE8021Q_TT_MAX - 1, |
123 | | - "ieee8021q_5queue_tt_tc_map != max - 1"); |
124 | | - |
| 118 | + TT_MAP_SIZE_OK(ieee8021q_5queue_tt_tc_map); |
125 | 119 | return ieee8021q_5queue_tt_tc_map[tt]; |
126 | 120 | case 4: |
127 | | - compiletime_assert(ARRAY_SIZE(ieee8021q_4queue_tt_tc_map) != |
128 | | - IEEE8021Q_TT_MAX - 1, |
129 | | - "ieee8021q_4queue_tt_tc_map != max - 1"); |
130 | | - |
| 121 | + TT_MAP_SIZE_OK(ieee8021q_4queue_tt_tc_map); |
131 | 122 | return ieee8021q_4queue_tt_tc_map[tt]; |
132 | 123 | case 3: |
133 | | - compiletime_assert(ARRAY_SIZE(ieee8021q_3queue_tt_tc_map) != |
134 | | - IEEE8021Q_TT_MAX - 1, |
135 | | - "ieee8021q_3queue_tt_tc_map != max - 1"); |
136 | | - |
| 124 | + TT_MAP_SIZE_OK(ieee8021q_3queue_tt_tc_map); |
137 | 125 | return ieee8021q_3queue_tt_tc_map[tt]; |
138 | 126 | case 2: |
139 | | - compiletime_assert(ARRAY_SIZE(ieee8021q_2queue_tt_tc_map) != |
140 | | - IEEE8021Q_TT_MAX - 1, |
141 | | - "ieee8021q_2queue_tt_tc_map != max - 1"); |
142 | | - |
| 127 | + TT_MAP_SIZE_OK(ieee8021q_2queue_tt_tc_map); |
143 | 128 | return ieee8021q_2queue_tt_tc_map[tt]; |
144 | 129 | case 1: |
145 | | - compiletime_assert(ARRAY_SIZE(ieee8021q_1queue_tt_tc_map) != |
146 | | - IEEE8021Q_TT_MAX - 1, |
147 | | - "ieee8021q_1queue_tt_tc_map != max - 1"); |
148 | | - |
| 130 | + TT_MAP_SIZE_OK(ieee8021q_1queue_tt_tc_map); |
149 | 131 | return ieee8021q_1queue_tt_tc_map[tt]; |
150 | 132 | } |
151 | 133 |
|
|
0 commit comments