~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/net/mac80211/tests/tpe.c

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.9 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /net/mac80211/tests/tpe.c (Version linux-6.12-rc7) and /net/mac80211/tests/tpe.c (Version linux-2.6.32.71)


  1 // SPDX-License-Identifier: GPL-2.0-only            1 
  2 /*                                                
  3  * KUnit tests for TPE element handling           
  4  *                                                
  5  * Copyright (C) 2024 Intel Corporation           
  6  */                                               
  7 #include <kunit/test.h>                           
  8 #include "../ieee80211_i.h"                       
  9                                                   
 10 MODULE_IMPORT_NS(EXPORTED_FOR_KUNIT_TESTING);     
 11                                                   
 12 static struct ieee80211_channel chan6g_1 = {      
 13         .band = NL80211_BAND_6GHZ,                
 14         .center_freq = 5955,                      
 15 };                                                
 16                                                   
 17 static struct ieee80211_channel chan6g_33 = {     
 18         .band = NL80211_BAND_6GHZ,                
 19         .center_freq = 6115,                      
 20 };                                                
 21                                                   
 22 static struct ieee80211_channel chan6g_61 = {     
 23         .band = NL80211_BAND_6GHZ,                
 24         .center_freq = 6255,                      
 25 };                                                
 26                                                   
 27 static const struct subchan_test_case {           
 28         const char *desc;                         
 29         struct cfg80211_chan_def c;               
 30         u8 n;                                     
 31         int expect;                               
 32 } subchan_offset_cases[] = {                      
 33         {                                         
 34                 .desc = "identical 20 MHz",       
 35                 .c.width = NL80211_CHAN_WIDTH_    
 36                 .c.chan = &chan6g_1,              
 37                 .c.center_freq1 = 5955,           
 38                 .n = 1,                           
 39                 .expect = 0,                      
 40         },                                        
 41         {                                         
 42                 .desc = "identical 40 MHz",       
 43                 .c.width = NL80211_CHAN_WIDTH_    
 44                 .c.chan = &chan6g_1,              
 45                 .c.center_freq1 = 5965,           
 46                 .n = 2,                           
 47                 .expect = 0,                      
 48         },                                        
 49         {                                         
 50                 .desc = "identical 80+80 MHz",    
 51                 /* not really is valid? doesn'    
 52                 .c.width = NL80211_CHAN_WIDTH_    
 53                 .c.chan = &chan6g_1,              
 54                 .c.center_freq1 = 5985,           
 55                 .c.center_freq2 = 6225,           
 56                 .n = 16,                          
 57                 .expect = 0,                      
 58         },                                        
 59         {                                         
 60                 .desc = "identical 320 MHz",      
 61                 .c.width = NL80211_CHAN_WIDTH_    
 62                 .c.chan = &chan6g_1,              
 63                 .c.center_freq1 = 6105,           
 64                 .n = 16,                          
 65                 .expect = 0,                      
 66         },                                        
 67         {                                         
 68                 .desc = "lower 160 MHz of 320     
 69                 .c.width = NL80211_CHAN_WIDTH_    
 70                 .c.chan = &chan6g_1,              
 71                 .c.center_freq1 = 6105,           
 72                 .n = 8,                           
 73                 .expect = 0,                      
 74         },                                        
 75         {                                         
 76                 .desc = "upper 160 MHz of 320     
 77                 .c.width = NL80211_CHAN_WIDTH_    
 78                 .c.chan = &chan6g_61,             
 79                 .c.center_freq1 = 6105,           
 80                 .n = 8,                           
 81                 .expect = 8,                      
 82         },                                        
 83         {                                         
 84                 .desc = "upper 160 MHz of 320     
 85                 .c.width = NL80211_CHAN_WIDTH_    
 86                 .c.chan = &chan6g_61,             
 87                 .c.center_freq1 = 6105,           
 88                 .n = 2,                           
 89                 .expect = 8 + 4 + 2,              
 90         },                                        
 91         {                                         
 92                 .desc = "secondary 80 above pr    
 93                 /* not really is valid? doesn'    
 94                 .c.width = NL80211_CHAN_WIDTH_    
 95                 .c.chan = &chan6g_1,              
 96                 .c.center_freq1 = 5985,           
 97                 .c.center_freq2 = 6225,           
 98                 .n = 4,                           
 99                 .expect = 0,                      
100         },                                        
101         {                                         
102                 .desc = "secondary 80 below pr    
103                 /* not really is valid? doesn'    
104                 .c.width = NL80211_CHAN_WIDTH_    
105                 .c.chan = &chan6g_61,             
106                 .c.center_freq1 = 6225,           
107                 .c.center_freq2 = 5985,           
108                 .n = 4,                           
109                 .expect = 4,                      
110         },                                        
111         {                                         
112                 .desc = "secondary 80 below pr    
113                 /* not really is valid? doesn'    
114                 .c.width = NL80211_CHAN_WIDTH_    
115                 .c.chan = &chan6g_61,             
116                 .c.center_freq1 = 6225,           
117                 .c.center_freq2 = 5985,           
118                 .n = 1,                           
119                 .expect = 7,                      
120         },                                        
121 };                                                
122                                                   
123 KUNIT_ARRAY_PARAM_DESC(subchan_offset, subchan    
124                                                   
125 static void subchan_offset(struct kunit *test)    
126 {                                                 
127         const struct subchan_test_case *params    
128         int offset;                               
129                                                   
130         KUNIT_ASSERT_EQ(test, cfg80211_chandef    
131                                                   
132         offset = ieee80211_calc_chandef_subcha    
133                                                   
134         KUNIT_EXPECT_EQ(test, params->expect,     
135 }                                                 
136                                                   
137 static const struct psd_reorder_test_case {       
138         const char *desc;                         
139         struct cfg80211_chan_def ap, used;        
140         struct ieee80211_parsed_tpe_psd psd, o    
141 } psd_reorder_cases[] = {                         
142         {                                         
143                 .desc = "no changes, 320 MHz",    
144                                                   
145                 .ap.width = NL80211_CHAN_WIDTH    
146                 .ap.chan = &chan6g_1,             
147                 .ap.center_freq1 = 6105,          
148                                                   
149                 .used.width = NL80211_CHAN_WID    
150                 .used.chan = &chan6g_1,           
151                 .used.center_freq1 = 6105,        
152                                                   
153                 .psd.valid = true,                
154                 .psd.count = 16,                  
155                 .psd.n = 8,                       
156                 .psd.power = { 0, 1, 2, 3, 4,     
157                                                   
158                 .out.valid = true,                
159                 .out.count = 16,                  
160                 .out.n = 8,                       
161                 .out.power = { 0, 1, 2, 3, 4,     
162         },                                        
163         {                                         
164                 .desc = "no changes, 320 MHz,     
165                                                   
166                 .ap.width = NL80211_CHAN_WIDTH    
167                 .ap.chan = &chan6g_1,             
168                 .ap.center_freq1 = 6105,          
169                                                   
170                 .used.width = NL80211_CHAN_WID    
171                 .used.chan = &chan6g_1,           
172                 .used.center_freq1 = 6025,        
173                                                   
174                 .psd.valid = true,                
175                 .psd.count = 16,                  
176                 .psd.n = 0,                       
177                 .psd.power = { 1, 1, 1, 1, 1,     
178                                                   
179                 .out.valid = true,                
180                 .out.count = 8,                   
181                 .out.n = 0,                       
182                 .out.power = { 1, 1, 1, 1, 1,     
183         },                                        
184         {                                         
185                 .desc = "320 MHz, HE is 80, us    
186                                                   
187                 .ap.width = NL80211_CHAN_WIDTH    
188                 .ap.chan = &chan6g_1,             
189                 .ap.center_freq1 = 6105,          
190                                                   
191                 .used.width = NL80211_CHAN_WID    
192                 .used.chan = &chan6g_1,           
193                 .used.center_freq1 = 6025,        
194                                                   
195                 .psd.valid = true,                
196                 .psd.count = 16,                  
197                 .psd.n = 4,                       
198                 .psd.power = { 0, 1, 2, 3, 4,     
199                                                   
200                 .out.valid = true,                
201                 .out.count = 8,                   
202                 .out.n = 4,                       
203                 .out.power = { 0, 1, 2, 3, 4,     
204         },                                        
205         {                                         
206                 .desc = "320 MHz, HE is 80, us    
207                 /*                                
208                  * EHT: | | | | | | | | | | |     
209                  * HE:                            
210                  * used:                | | |     
211                  */                               
212                                                   
213                 .ap.width = NL80211_CHAN_WIDTH    
214                 .ap.chan = &chan6g_61,            
215                 .ap.center_freq1 = 6105,          
216                                                   
217                 .used.width = NL80211_CHAN_WID    
218                 .used.chan = &chan6g_61,          
219                 .used.center_freq1 = 6185,        
220                                                   
221                 .psd.valid = true,                
222                 .psd.count = 16,                  
223                 .psd.n = 4,                       
224                 .psd.power = { 0, 1, 2, 3, 4,     
225                                                   
226                 .out.valid = true,                
227                 .out.count = 8,                   
228                 .out.n = 4,                       
229                 .out.power = { 12, 13, 14, 15,    
230         },                                        
231         {                                         
232                 .desc = "320 MHz, HE is 80, us    
233                 /*                                
234                  * EHT: | | | | | | | | | | |     
235                  * HE:                  | | |     
236                  * used:                | | |     
237                  */                               
238                                                   
239                 .ap.width = NL80211_CHAN_WIDTH    
240                 .ap.chan = &chan6g_33,            
241                 .ap.center_freq1 = 6105,          
242                                                   
243                 .used.width = NL80211_CHAN_WID    
244                 .used.chan = &chan6g_33,          
245                 .used.center_freq1 = 6185,        
246                                                   
247                 .psd.valid = true,                
248                 .psd.count = 16,                  
249                 .psd.n = 4,                       
250                 .psd.power = { 0, 1, 2, 3, 4,     
251                                                   
252                 .out.valid = true,                
253                 .out.count = 8,                   
254                 .out.n = 4,                       
255                 .out.power = { 0, 1, 2, 3, 12,    
256         },                                        
257 };                                                
258                                                   
259 KUNIT_ARRAY_PARAM_DESC(psd_reorder, psd_reorde    
260                                                   
261 static void psd_reorder(struct kunit *test)       
262 {                                                 
263         const struct psd_reorder_test_case *pa    
264         struct ieee80211_parsed_tpe_psd tmp =     
265                                                   
266         KUNIT_ASSERT_EQ(test, cfg80211_chandef    
267         KUNIT_ASSERT_EQ(test, cfg80211_chandef    
268                                                   
269         ieee80211_rearrange_tpe_psd(&tmp, &par    
270         KUNIT_EXPECT_MEMEQ(test, &tmp, &params    
271 }                                                 
272                                                   
273 static struct kunit_case tpe_test_cases[] = {     
274         KUNIT_CASE_PARAM(subchan_offset, subch    
275         KUNIT_CASE_PARAM(psd_reorder, psd_reor    
276         {}                                        
277 };                                                
278                                                   
279 static struct kunit_suite tpe = {                 
280         .name = "mac80211-tpe",                   
281         .test_cases = tpe_test_cases,             
282 };                                                
283                                                   
284 kunit_test_suite(tpe);                            
285                                                   

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php