neli_wifi/
attr.rs

1use neli::attr::AttrHandle;
2use neli::consts::genl::NlAttrType;
3use neli::genl::Nlattr;
4use neli::types::{Buffer, GenlBuffer};
5use neli_proc_macros::neli_enum;
6
7pub type Attrs<'a, T> = AttrHandle<'a, GenlBuffer<T, Buffer>, Nlattr<T, Buffer>>;
8
9#[neli_enum(serialized_type = "u16")]
10pub enum NlaNested {
11    Unspec = 0,
12}
13
14impl NlAttrType for NlaNested {}
15
16/// nl80211Attrs
17///
18/// Enumeration from nl80211/nl80211.h:1929
19#[neli_enum(serialized_type = "u16")]
20pub enum Nl80211Attr {
21    AttrUnspec = 0,
22    AttrWiphy = 1,
23    AttrWiphyName = 2,
24    AttrIfindex = 3,
25    AttrIfname = 4,
26    AttrIftype = 5,
27    AttrMac = 6,
28    AttrKeyData = 7,
29    AttrKeyIdx = 8,
30    AttrKeyCipher = 9,
31    AttrKeySeq = 10,
32    AttrKeyDefault = 11,
33    AttrBeaconInterval = 12,
34    AttrDtimPeriod = 13,
35    AttrBeaconHead = 14,
36    AttrBeaconTail = 15,
37    AttrStaAid = 16,
38    AttrStaFlags = 17,
39    AttrStaListenInterval = 18,
40    AttrStaSupportedRates = 19,
41    AttrStaVlan = 20,
42    AttrStaInfo = 21,
43    AttrWiphyBands = 22,
44    AttrMntrFlags = 23,
45    AttrMeshId = 24,
46    AttrStaPlinkAction = 25,
47    AttrMpathNextHop = 26,
48    AttrMpathInfo = 27,
49    AttrBssCtsProt = 28,
50    AttrBssShortPreamble = 29,
51    AttrBssShortSlotTime = 30,
52    AttrHtCapability = 31,
53    AttrSupportedIftypes = 32,
54    AttrRegAlpha2 = 33,
55    AttrRegRules = 34,
56    AttrMeshConfig = 35,
57    AttrBssBasicRates = 36,
58    AttrWiphyTxqParams = 37,
59    AttrWiphyFreq = 38,
60    AttrWiphyChannelType = 39,
61    AttrKeyDefaultMgmt = 40,
62    AttrMgmtSubtype = 41,
63    AttrIe = 42,
64    AttrMaxNumScanSsids = 43,
65    AttrScanFrequencies = 44,
66    AttrScanSsids = 45,
67    AttrGeneration = 46,
68    AttrBss = 47,
69    AttrRegInitiator = 48,
70    AttrRegType = 49,
71    AttrSupportedCommands = 50,
72    AttrFrame = 51,
73    AttrSsid = 52,
74    AttrAuthType = 53,
75    AttrReasonCode = 54,
76    AttrKeyType = 55,
77    AttrMaxScanIeLen = 56,
78    AttrCipherSuites = 57,
79    AttrFreqBefore = 58,
80    AttrFreqAfter = 59,
81    AttrFreqFixed = 60,
82    AttrWiphyRetryShort = 61,
83    AttrWiphyRetryLong = 62,
84    AttrWiphyFragThreshold = 63,
85    AttrWiphyRtsThreshold = 64,
86    AttrTimedOut = 65,
87    AttrUseMfp = 66,
88    AttrStaFlags2 = 67,
89    AttrControlPort = 68,
90    AttrTestdata = 69,
91    AttrPrivacy = 70,
92    AttrDisconnectedByAp = 71,
93    AttrStatusCode = 72,
94    AttrCipherSuitesPairwise = 73,
95    AttrCipherSuiteGroup = 74,
96    AttrWpaVersions = 75,
97    AttrAkmSuites = 76,
98    AttrReqIe = 77,
99    AttrRespIe = 78,
100    AttrPrevBssid = 79,
101    AttrKey = 80,
102    AttrKeys = 81,
103    AttrPid = 82,
104    Attr4addr = 83,
105    AttrSurveyInfo = 84,
106    AttrPmkid = 85,
107    AttrMaxNumPmkids = 86,
108    AttrDuration = 87,
109    AttrCookie = 88,
110    AttrWiphyCoverageClass = 89,
111    AttrTxRates = 90,
112    AttrFrameMatch = 91,
113    AttrAck = 92,
114    AttrPsState = 93,
115    AttrCqm = 94,
116    AttrLocalStateChange = 95,
117    AttrApIsolate = 96,
118    AttrWiphyTxPowerSetting = 97,
119    AttrWiphyTxPowerLevel = 98,
120    AttrTxFrameTypes = 99,
121    AttrRxFrameTypes = 100,
122    AttrFrameType = 101,
123    AttrControlPortEthertype = 102,
124    AttrControlPortNoEncrypt = 103,
125    AttrSupportIbssRsn = 104,
126    AttrWiphyAntennaTx = 105,
127    AttrWiphyAntennaRx = 106,
128    AttrMcastRate = 107,
129    AttrOffchannelTxOk = 108,
130    AttrBssHtOpmode = 109,
131    AttrKeyDefaultTypes = 110,
132    AttrMaxRemainOnChannelDuration = 111,
133    AttrMeshSetup = 112,
134    AttrWiphyAntennaAvailTx = 113,
135    AttrWiphyAntennaAvailRx = 114,
136    AttrSupportMeshAuth = 115,
137    AttrStaPlinkState = 116,
138    AttrWowlanTriggers = 117,
139    AttrWowlanTriggersSupported = 118,
140    AttrSchedScanInterval = 119,
141    AttrInterfaceCombinations = 120,
142    AttrSoftwareIftypes = 121,
143    AttrRekeyData = 122,
144    AttrMaxNumSchedScanSsids = 123,
145    AttrMaxSchedScanIeLen = 124,
146    AttrScanSuppRates = 125,
147    AttrHiddenSsid = 126,
148    AttrIeProbeResp = 127,
149    AttrIeAssocResp = 128,
150    AttrStaWme = 129,
151    AttrSupportApUapsd = 130,
152    AttrRoamSupport = 131,
153    AttrSchedScanMatch = 132,
154    AttrMaxMatchSets = 133,
155    AttrPmksaCandidate = 134,
156    AttrTxNoCckRate = 135,
157    AttrTdlsAction = 136,
158    AttrTdlsDialogToken = 137,
159    AttrTdlsOperation = 138,
160    AttrTdlsSupport = 139,
161    AttrTdlsExternalSetup = 140,
162    AttrDeviceApSme = 141,
163    AttrDontWaitForAck = 142,
164    AttrFeatureFlags = 143,
165    AttrProbeRespOffload = 144,
166    AttrProbeResp = 145,
167    AttrDfsRegion = 146,
168    AttrDisableHt = 147,
169    AttrHtCapabilityMask = 148,
170    AttrNoackMap = 149,
171    AttrInactivityTimeout = 150,
172    AttrRxSignalDbm = 151,
173    AttrBgScanPeriod = 152,
174    AttrWdev = 153,
175    AttrUserRegHintType = 154,
176    AttrConnFailedReason = 155,
177    AttrSaeData = 156,
178    AttrVhtCapability = 157,
179    AttrScanFlags = 158,
180    AttrChannelWidth = 159,
181    AttrCenterFreq1 = 160,
182    AttrCenterFreq2 = 161,
183    AttrP2pCtwindow = 162,
184    AttrP2pOppps = 163,
185    AttrLocalMeshPowerMode = 164,
186    AttrAclPolicy = 165,
187    AttrMacAddrs = 166,
188    AttrMacAclMax = 167,
189    AttrRadarEvent = 168,
190    AttrExtCapa = 169,
191    AttrExtCapaMask = 170,
192    AttrStaCapability = 171,
193    AttrStaExtCapability = 172,
194    AttrProtocolFeatures = 173,
195    AttrSplitWiphyDump = 174,
196    AttrDisableVht = 175,
197    AttrVhtCapabilityMask = 176,
198    AttrMdid = 177,
199    AttrIeRic = 178,
200    AttrCritProtId = 179,
201    AttrMaxCritProtDuration = 180,
202    AttrPeerAid = 181,
203    AttrCoalesceRule = 182,
204    AttrChSwitchCount = 183,
205    AttrChSwitchBlockTx = 184,
206    AttrCsaIes = 185,
207    AttrCsaCOffBeacon = 186,
208    AttrCsaCOffPresp = 187,
209    AttrRxmgmtFlags = 188,
210    AttrStaSupportedChannels = 189,
211    AttrStaSupportedOperClasses = 190,
212    AttrHandleDfs = 191,
213    AttrSupport5Mhz = 192,
214    AttrSupport10Mhz = 193,
215    AttrOpmodeNotif = 194,
216    AttrVendorId = 195,
217    AttrVendorSubcmd = 196,
218    AttrVendorData = 197,
219    AttrVendorEvents = 198,
220    AttrQosMap = 199,
221    AttrMacHint = 200,
222    AttrWiphyFreqHint = 201,
223    AttrMaxApAssocSta = 202,
224    AttrTdlsPeerCapability = 203,
225    AttrSocketOwner = 204,
226    AttrCsaCOffsetsTx = 205,
227    AttrMaxCsaCounters = 206,
228    AttrTdlsInitiator = 207,
229    AttrUseRrm = 208,
230    AttrWiphyDynAck = 209,
231    AttrTsid = 210,
232    AttrUserPrio = 211,
233    AttrAdmittedTime = 212,
234    AttrSmpsMode = 213,
235    AttrOperClass = 214,
236    AttrMacMask = 215,
237    AttrWiphySelfManagedReg = 216,
238    AttrExtFeatures = 217,
239    AttrSurveyRadioStats = 218,
240    AttrNetnsFd = 219,
241    AttrSchedScanDelay = 220,
242    AttrRegIndoor = 221,
243    AttrMaxNumSchedScanPlans = 222,
244    AttrMaxScanPlanInterval = 223,
245    AttrMaxScanPlanIterations = 224,
246    AttrSchedScanPlans = 225,
247    AttrPbss = 226,
248    AttrBssSelect = 227,
249    AttrStaSupportP2pPs = 228,
250    AttrPad = 229,
251    AttrIftypeExtCapa = 230,
252    AttrMuMimoGroupData = 231,
253    AttrMuMimoFollowMacAddr = 232,
254    AttrScanStartTimeTsf = 233,
255    AttrScanStartTimeTsfBssid = 234,
256    AttrMeasurementDuration = 235,
257    AttrMeasurementDurationMandatory = 236,
258    AttrMeshPeerAid = 237,
259    AttrNanMasterPref = 238,
260    AttrNanDual = 239,
261    AttrNanFunc = 240,
262    AttrNanMatch = 241,
263}
264
265impl NlAttrType for Nl80211Attr {}
266
267/// nl80211Iftype
268///
269/// Enumeration from nl80211/nl80211.h:2384
270#[neli_enum(serialized_type = "u16")]
271pub enum Nl80211Iftype {
272    IftypeUnspecified = 0,
273    IftypeAdhoc = 1,
274    IftypeStation = 2,
275    IftypeAp = 3,
276    IftypeApVlan = 4,
277    IftypeWds = 5,
278    IftypeMonitor = 6,
279    IftypeMeshPoint = 7,
280    IftypeP2pClient = 8,
281    IftypeP2pGo = 9,
282    IftypeP2pDevice = 10,
283    IftypeOcb = 11,
284    IftypeNan = 12,
285}
286
287impl NlAttrType for Nl80211Iftype {}
288
289/// nl80211StaFlags as declared in nl80211/nl80211.h:2428
290#[neli_enum(serialized_type = "u16")]
291pub enum Nl80211StaFlags {
292    StaFlagInvalid = 0,
293    StaFlagAuthorized = 1,
294    StaFlagShortPreamble = 2,
295    StaFlagWme = 3,
296    StaFlagMfp = 4,
297    StaFlagAuthenticated = 5,
298    StaFlagTdlsPeer = 6,
299    StaFlagAssociated = 7,
300}
301
302impl NlAttrType for Nl80211StaFlags {}
303
304/// nl80211StaP2pPsStatus
305///
306/// Enumeration from nl80211/nl80211.h:2450
307#[neli_enum(serialized_type = "u16")]
308pub enum Nl80211StaP2pPsStatus {
309    P2pPsUnsupported = 0,
310    P2pPsSupported = 1,
311}
312
313impl NlAttrType for Nl80211StaP2pPsStatus {}
314
315/// nl80211RateInfo
316///
317/// Enumeration from nl80211/nl80211.h:2505
318#[neli_enum(serialized_type = "u16")]
319pub enum Nl80211RateInfo {
320    RateInfoInvalid = 0,
321    RateInfoBitrate = 1,
322    RateInfoMcs = 2,
323    RateInfo40MhzWidth = 3,
324    RateInfoShortGi = 4,
325    RateInfoBitrate32 = 5,
326    RateInfoVhtMcs = 6,
327    RateInfoVhtNss = 7,
328    RateInfo80MhzWidth = 8,
329    RateInfo80p80MhzWidth = 9,
330    RateInfo160MhzWidth = 10,
331    RateInfo10MhzWidth = 11,
332    RateInfo5MhzWidth = 12,
333    RateInfoHeMcs = 13,
334    RateInfoHeNss = 14,
335    RateInfoHeGi = 15,
336    RateInfoHeDcm = 16,
337    RateInfoHeRuAlloc = 17,
338    RateInfo320MhzWidth = 18,
339    RateInfoEhtMcs = 19,
340    RateInfoEhtNss = 20,
341    RateInfoEhtGi = 21,
342    RateInfoEhtRuAlloc = 22,
343    RateInfoS1gMcs = 23,
344    RateInfoS1gNss = 24,
345    RateInfo1MhzWidth = 25,
346    RateInfo2MhzWidth = 26,
347    RateInfo4MhzWidth = 27,
348    RateInfo8MhzWidth = 28,
349    RateInfo16MhzWidth = 29,
350}
351
352impl NlAttrType for Nl80211RateInfo {}
353
354/// nl80211StaBssParam
355///
356/// Enumeration from nl80211/nl80211.h:2542
357#[neli_enum(serialized_type = "u16")]
358pub enum Nl80211StaBssParam {
359    StaBssParamInvalid = 0,
360    StaBssParamCtsProt = 1,
361    StaBssParamShortPreamble = 2,
362    StaBssParamShortSlotTime = 3,
363    StaBssParamDtimPeriod = 4,
364    StaBssParamBeaconInterval = 5,
365}
366
367impl NlAttrType for Nl80211StaBssParam {}
368
369/// nl80211StaInfo
370///
371/// Enumeration from nl80211/nl80211.h:2620
372#[neli_enum(serialized_type = "u16")]
373pub enum Nl80211StaInfo {
374    StaInfoInvalid = 0,
375    StaInfoInactiveTime = 1,
376    StaInfoRxBytes = 2,
377    StaInfoTxBytes = 3,
378    StaInfoLlid = 4,
379    StaInfoPlid = 5,
380    StaInfoPlinkState = 6,
381    StaInfoSignal = 7,
382    StaInfoTxBitrate = 8,
383    StaInfoRxPackets = 9,
384    StaInfoTxPackets = 10,
385    StaInfoTxRetries = 11,
386    StaInfoTxFailed = 12,
387    StaInfoSignalAvg = 13,
388    StaInfoRxBitrate = 14,
389    StaInfoBssParam = 15,
390    StaInfoConnectedTime = 16,
391    StaInfoStaFlags = 17,
392    StaInfoBeaconLoss = 18,
393    StaInfoTOffset = 19,
394    StaInfoLocalPm = 20,
395    StaInfoPeerPm = 21,
396    StaInfoNonpeerPm = 22,
397    StaInfoRxBytes64 = 23,
398    StaInfoTxBytes64 = 24,
399    StaInfoChainSignal = 25,
400    StaInfoChainSignalAvg = 26,
401    StaInfoExpectedThroughput = 27,
402    StaInfoRxDropMisc = 28,
403    StaInfoBeaconRx = 29,
404    StaInfoBeaconSignalAvg = 30,
405    StaInfoTidStats = 31,
406    StaInfoRxDuration = 32,
407    StaInfoPad = 33,
408}
409
410impl NlAttrType for Nl80211StaInfo {}
411
412/// nl80211TidStats
413///
414/// Enumeration from nl80211/nl80211.h:2675
415#[neli_enum(serialized_type = "u16")]
416pub enum Nl80211TidStats {
417    TidStatsInvalid = 0,
418    TidStatsRxMsdu = 1,
419    TidStatsTxMsdu = 2,
420    TidStatsTxMsduRetries = 3,
421    TidStatsTxMsduFailed = 4,
422    TidStatsPad = 5,
423}
424
425impl NlAttrType for Nl80211TidStats {}
426
427/// nl80211MpathFlags
428///
429/// Enumeration from nl80211/nl80211.h:2697
430#[neli_enum(serialized_type = "u16")]
431pub enum Nl80211MpathFlags {
432    MpathFlagActive = 1 << 0,
433    MpathFlagResolving = 1 << 1,
434    MpathFlagSnValid = 1 << 2,
435    MpathFlagFixed = 1 << 3,
436    MpathFlagResolved = 1 << 4,
437}
438
439impl NlAttrType for Nl80211MpathFlags {}
440
441/// nl80211MpathFlags
442///
443/// Enumeration from nl80211/nl80211.h:2697
444#[neli_enum(serialized_type = "u16")]
445pub enum Nl80211MpathInfo {
446    MpathInfoInvalid = 0,
447    MpathInfoFrameQlen = 1,
448    MpathInfoSn = 2,
449    MpathInfoMetric = 3,
450    MpathInfoExptime = 4,
451    MpathInfoFlags = 5,
452    MpathInfoDiscoveryTimeout = 6,
453    MpathInfoDiscoveryRetries = 7,
454}
455
456impl NlAttrType for Nl80211MpathInfo {}
457
458/// nl80211BandAttr
459///
460/// Enumeration from nl80211/nl80211.h:2757
461#[neli_enum(serialized_type = "u16")]
462pub enum Nl80211BandAttr {
463    BandAttrInvalid = 0,
464    BandAttrFreqs = 1,
465    BandAttrRates = 2,
466    BandAttrHtMcsSet = 3,
467    BandAttrHtCapa = 4,
468    BandAttrHtAmpduFactor = 5,
469    BandAttrHtAmpduDensity = 6,
470    BandAttrVhtMcsSet = 7,
471    BandAttrVhtCapa = 8,
472}
473
474impl NlAttrType for Nl80211BandAttr {}
475
476/// nl80211FrequencyAttr
477///
478/// Enumeration from nl80211/nl80211.h:2833
479#[neli_enum(serialized_type = "u16")]
480pub enum Nl80211FrequencyAttr {
481    FrequencyAttrInvalid = 0,
482    FrequencyAttrFreq = 1,
483    FrequencyAttrDisabled = 2,
484    FrequencyAttrNoIr = 3,
485    FrequencyAttrNoIbss = 4,
486    FrequencyAttrRadar = 5,
487    FrequencyAttrMaxTxPower = 6,
488    FrequencyAttrDfsState = 7,
489    FrequencyAttrDfsTime = 8,
490    FrequencyAttrNoHt40Minus = 9,
491    FrequencyAttrNoHt40Plus = 10,
492    FrequencyAttrNo80mhz = 11,
493    FrequencyAttrNo160mhz = 12,
494    FrequencyAttrDfsCacTime = 13,
495    FrequencyAttrIndoorOnly = 14,
496    FrequencyAttrIrConcurrent = 15,
497    FrequencyAttrNo20mhz = 16,
498    FrequencyAttrNo10mhz = 17,
499}
500
501impl NlAttrType for Nl80211FrequencyAttr {}
502
503/// nl80211BitrateAttr
504///
505/// Enumeration from nl80211/nl80211.h:2873
506#[neli_enum(serialized_type = "u16")]
507pub enum Nl80211BitrateAttr {
508    BitrateAttrInvalid = 0,
509    BitrateAttrRate = 1,
510    BitrateAttr2ghzShortpreamble = 2,
511}
512
513impl NlAttrType for Nl80211BitrateAttr {}
514
515/// nl80211RegInitiator
516///
517/// Enumeration from nl80211/nl80211.h:2899
518#[neli_enum(serialized_type = "u16")]
519pub enum Nl80211RegInitiator {
520    RegdomSetByCore = 0,
521    RegdomSetByUser = 1,
522    RegdomSetByDriver = 2,
523    RegdomSetByCountryIe = 3,
524}
525
526impl NlAttrType for Nl80211RegInitiator {}
527
528/// nl80211RegType
529///
530/// Enumeration from nl80211/nl80211.h:2922
531#[neli_enum(serialized_type = "u16")]
532pub enum Nl80211RegType {
533    RegdomTypeCountry = 0,
534    RegdomTypeWorld = 1,
535    RegdomTypeCustomWorld = 2,
536    RegdomTypeIntersection = 3,
537}
538
539impl NlAttrType for Nl80211RegType {}
540
541/// nl80211RegRuleAttr
542///
543/// Enumeration from nl80211/nl80211.h:2954
544#[neli_enum(serialized_type = "u16")]
545pub enum Nl80211RegRuleAttr {
546    RegRuleAttrInvalid = 0,
547    AttrRegRuleFlags = 1,
548    AttrFreqRangeStart = 2,
549    AttrFreqRangeEnd = 3,
550    AttrFreqRangeMaxBw = 4,
551    AttrPowerRuleMaxAntGain = 5,
552    AttrPowerRuleMaxEirp = 6,
553    AttrDfsCacTime = 7,
554}
555
556impl NlAttrType for Nl80211RegRuleAttr {}
557
558/// nl80211SchedScanMatchAttr
559///
560/// Enumeration from nl80211/nl80211.h:2989
561#[neli_enum(serialized_type = "u16")]
562pub enum Nl80211SchedScanMatchAttr {
563    SchedScanMatchAttrInvalid = 0,
564    SchedScanMatchAttrSsid = 1,
565    SchedScanMatchAttrRssi = 2,
566}
567
568impl NlAttrType for Nl80211SchedScanMatchAttr {}
569
570/// nl80211RegRuleFlags
571///
572/// Enumeration from nl80211/nl80211.h:3026
573#[neli_enum(serialized_type = "u16")]
574pub enum Nl80211RegRuleFlags {
575    RrfNoOfdm = 1 << 0,
576    RrfNoCck = 1 << 1,
577    RrfNoIndoor = 1 << 2,
578    RrfNoOutdoor = 1 << 3,
579    RrfDfs = 1 << 4,
580    RrfPtpOnly = 1 << 5,
581    RrfPtmpOnly = 1 << 6,
582    RrfNoIr = 1 << 7,
583    RrfNoIbss = 1 << 8,
584    RrfAutoBw = 1 << 11,
585    RrfIrConcurrent = 1 << 12,
586    RrfNoHt40minus = 1 << 13,
587    RrfNoHt40plus = 1 << 14,
588    RrfNo80mhz = 1 << 15, // RrfNo160mhz  =1 << 16
589}
590
591impl NlAttrType for Nl80211RegRuleFlags {}
592
593/// nl80211DfsRegions
594///
595/// Enumeration from nl80211/nl80211.h:3061
596#[neli_enum(serialized_type = "u16")]
597pub enum Nl80211DfsRegions {
598    DfsUnset = 0,
599    DfsFcc = 1,
600    DfsEtsi = 2,
601    DfsJp = 3,
602}
603
604impl NlAttrType for Nl80211DfsRegions {}
605
606/// nl80211UserRegHintType
607///
608/// Enumeration from nl80211/nl80211.h:3085
609#[neli_enum(serialized_type = "u16")]
610pub enum Nl80211UserRegHintType {
611    UserRegHintUser = 0,
612    UserRegHintCellBase = 1,
613    UserRegHintIndoor = 2,
614}
615
616impl NlAttrType for Nl80211UserRegHintType {}
617
618/// nl80211SurveyInfo
619///
620/// Enumeration from nl80211/nl80211.h:3118
621#[neli_enum(serialized_type = "u16")]
622pub enum Nl80211SurveyInfo {
623    SurveyInfoInvalid = 0,
624    SurveyInfoFrequency = 1,
625    SurveyInfoNoise = 2,
626    SurveyInfoInUse = 3,
627    SurveyInfoTime = 4,
628    SurveyInfoTimeBusy = 5,
629    SurveyInfoTimeExtBusy = 6,
630    SurveyInfoTimeRx = 7,
631    SurveyInfoTimeTx = 8,
632    SurveyInfoTimeScan = 9,
633    SurveyInfoPad = 10,
634}
635
636impl NlAttrType for Nl80211SurveyInfo {}
637
638/// nl80211MntrFlags
639///
640/// Enumeration from nl80211/nl80211.h:3162
641#[neli_enum(serialized_type = "u16")]
642pub enum Nl80211MntrFlags {
643    MntrFlagInvalid = 0,
644    MntrFlagFcsfail = 1,
645    MntrFlagPlcpfail = 2,
646    MntrFlagControl = 3,
647    MntrFlagOtherBss = 4,
648    MntrFlagCookFrames = 5,
649    MntrFlagActive = 6,
650}
651
652impl NlAttrType for Nl80211MntrFlags {}
653
654/// nl80211MeshPowerMode
655///
656/// Enumeration from nl80211/nl80211.h:3194
657#[neli_enum(serialized_type = "u16")]
658pub enum Nl80211MeshPowerMode {
659    MeshPowerUnknown = 0,
660    MeshPowerActive = 1,
661    MeshPowerLightSleep = 2,
662    MeshPowerDeepSleep = 3,
663}
664
665impl NlAttrType for Nl80211MeshPowerMode {}
666
667/// nl80211MeshconfParams
668///
669/// Enumeration from nl80211/nl80211.h:3312
670#[neli_enum(serialized_type = "u16")]
671pub enum Nl80211MeshconfParams {
672    MeshconfInvalid = 0,
673    MeshconfRetryTimeout = 1,
674    MeshconfConfirmTimeout = 2,
675    MeshconfHoldingTimeout = 3,
676    MeshconfMaxPeerLinks = 4,
677    MeshconfMaxRetries = 5,
678    MeshconfTtl = 6,
679    MeshconfAutoOpenPlinks = 7,
680    MeshconfHwmpMaxPreqRetries = 8,
681    MeshconfPathRefreshTime = 9,
682    MeshconfMinDiscoveryTimeout = 10,
683    MeshconfHwmpActivePathTimeout = 11,
684    MeshconfHwmpPreqMinInterval = 12,
685    MeshconfHwmpNetDiamTrvsTime = 13,
686    MeshconfHwmpRootmode = 14,
687    MeshconfElementTtl = 15,
688    MeshconfHwmpRannInterval = 16,
689    MeshconfGateAnnouncements = 17,
690    MeshconfHwmpPerrMinInterval = 18,
691    MeshconfForwarding = 19,
692    MeshconfRssiThreshold = 20,
693    MeshconfSyncOffsetMaxNeighbor = 21,
694    MeshconfHtOpmode = 22,
695    MeshconfHwmpPathToRootTimeout = 23,
696    MeshconfHwmpRootInterval = 24,
697    MeshconfHwmpConfirmationInterval = 25,
698    MeshconfPowerMode = 26,
699    MeshconfAwakeWindow = 27,
700    MeshconfPlinkTimeout = 28,
701}
702
703impl NlAttrType for Nl80211MeshconfParams {}
704
705/// nl80211MeshSetupParams
706///
707/// Enumeration from nl80211/nl80211.h:3397
708#[neli_enum(serialized_type = "u16")]
709pub enum Nl80211MeshSetupParams {
710    MeshSetupInvalid = 0,
711    MeshSetupEnableVendorPathSel = 1,
712    MeshSetupEnableVendorMetric = 2,
713    MeshSetupIe = 3,
714    MeshSetupUserspaceAuth = 4,
715    MeshSetupUserspaceAmpe = 5,
716    MeshSetupEnableVendorSync = 6,
717    MeshSetupUserspaceMpm = 7,
718    MeshSetupAuthProtocol = 8,
719}
720
721impl NlAttrType for Nl80211MeshSetupParams {}
722
723/// nl80211TxqAttr
724///
725/// Enumeration from nl80211/nl80211.h:3427
726#[neli_enum(serialized_type = "u16")]
727pub enum Nl80211TxqAttr {
728    TxqAttrInvalid = 0,
729    TxqAttrAc = 1,
730    TxqAttrTxop = 2,
731    TxqAttrCwmin = 3,
732    TxqAttrCwmax = 4,
733    TxqAttrAifs = 5,
734}
735
736impl NlAttrType for Nl80211TxqAttr {}
737
738/// nl80211Ac
739///
740/// Enumeration from nl80211/nl80211.h:3440
741#[neli_enum(serialized_type = "u16")]
742pub enum Nl80211Ac {
743    AcVo = 0,
744    AcVi = 1,
745    AcBe = 2,
746    AcBk = 3,
747}
748
749impl NlAttrType for Nl80211Ac {}
750
751/// nl80211ChannelType
752///
753/// Enumeration from nl80211/nl80211.h:3464
754#[neli_enum(serialized_type = "u16")]
755pub enum Nl80211ChannelType {
756    ChanNoHt = 0,
757    ChanHt20 = 1,
758    ChanHt40minus = 2,
759    ChanHt40plus = 3,
760}
761
762impl NlAttrType for Nl80211ChannelType {}
763
764/// nl80211ChanWidth
765///
766/// Enumeration from nl80211/nl80211.h:3490
767#[neli_enum(serialized_type = "u16")]
768pub enum Nl80211ChanWidth {
769    ChanWidth20Noht = 0,
770    ChanWidth20 = 1,
771    ChanWidth40 = 2,
772    ChanWidth80 = 3,
773    ChanWidth80p80 = 4,
774    ChanWidth160 = 5,
775    ChanWidth5 = 6,
776    ChanWidth10 = 7,
777}
778
779impl NlAttrType for Nl80211ChanWidth {}
780
781/// nl80211BssScanWidth
782///
783/// Enumeration from nl80211/nl80211.h:3510
784#[neli_enum(serialized_type = "u16")]
785pub enum Nl80211BssScanWidth {
786    BssChanWidth20 = 0,
787    BssChanWidth10 = 1,
788    BssChanWidth5 = 2,
789}
790
791impl NlAttrType for Nl80211BssScanWidth {}
792
793/// nl80211Bss
794///
795/// Enumeration from nl80211/nl80211.h:3565
796#[neli_enum(serialized_type = "u16")]
797pub enum Nl80211Bss {
798    BssInvalid = 0,
799    BssBssid = 1,
800    BssFrequency = 2,
801    BssTsf = 3,
802    BssBeaconInterval = 4,
803    BssCapability = 5,
804    BssInformationElements = 6,
805    BssSignalMbm = 7,
806    BssSignalUnspec = 8,
807    BssStatus = 9,
808    BssSeenMsAgo = 10,
809    BssBeaconIes = 11,
810    BssChanWidth = 12,
811    BssBeaconTsf = 13,
812    BssPrespData = 14,
813    BssLastSeenBoottime = 15,
814    BssPad = 16,
815    BssParentTsf = 17,
816    BssParentBssid = 18,
817}
818
819impl NlAttrType for Nl80211Bss {}
820
821/// nl80211BssStatus
822///
823/// Enumeration from nl80211/nl80211.h:3603
824#[neli_enum(serialized_type = "u16")]
825pub enum Nl80211BssStatus {
826    BssStatusAuthenticated = 0,
827    BssStatusAssociated = 1,
828    BssStatusIbssJoined = 2,
829}
830
831impl NlAttrType for Nl80211BssStatus {}
832
833/// nl80211AuthType
834///
835/// Enumeration from nl80211/nl80211.h:3623
836#[neli_enum(serialized_type = "u16")]
837pub enum Nl80211AuthType {
838    AuthtypeOpenSystem = 0,
839    AuthtypeSharedKey = 1,
840    AuthtypeFt = 2,
841    AuthtypeNetworkEap = 3,
842    AuthtypeSae = 4,
843    AuthtypeNum = 5,
844    AuthtypeMax = 4,
845    AuthtypeAutomatic = 5,
846}
847
848impl NlAttrType for Nl80211AuthType {}
849
850/// nl80211KeyType
851///
852/// Enumeration from nl80211/nl80211.h:3643
853#[neli_enum(serialized_type = "u16")]
854pub enum Nl80211KeyType {
855    KeytypeGroup = 0,
856    KeytypePairwise = 1,
857    KeytypePeerkey = 2,
858}
859
860impl NlAttrType for Nl80211KeyType {}
861
862/// nl80211Mfp
863///
864/// Enumeration from nl80211/nl80211.h:3656
865#[neli_enum(serialized_type = "u16")]
866pub enum Nl80211Mfp {
867    MfpNo = 0,
868    MfpRequired = 1,
869}
870
871impl NlAttrType for Nl80211Mfp {}
872
873/// nl80211WpaVersions
874///
875/// Enumeration from nl80211/nl80211.h:3661
876#[neli_enum(serialized_type = "u16")]
877pub enum Nl80211WpaVersions {
878    WpaVersion1 = 1 << 0,
879    WpaVersion2 = 1 << 1,
880}
881
882impl NlAttrType for Nl80211WpaVersions {}
883
884/// nl80211KeyDefaultTypes
885///
886/// Enumeration from nl80211/nl80211.h:3675
887#[neli_enum(serialized_type = "u16")]
888pub enum Nl80211KeyDefaultTypes {
889    KeyDefaultTypeInvalid = 0,
890    KeyDefaultTypeUnicast = 1,
891    KeyDefaultTypeMulticast = 2,
892}
893
894impl NlAttrType for Nl80211KeyDefaultTypes {}
895
896/// nl80211KeyAttributes
897///
898/// Enumeration from nl80211/nl80211.h:3705
899#[neli_enum(serialized_type = "u16")]
900pub enum Nl80211KeyAttributes {
901    KeyInvalid = 0,
902    KeyData = 1,
903    KeyIdx = 2,
904    KeyCipher = 3,
905    KeySeq = 4,
906    KeyDefault = 5,
907    KeyDefaultMgmt = 6,
908    KeyType = 7,
909    KeyDefaultTypes = 8,
910}
911
912impl NlAttrType for Nl80211KeyAttributes {}
913
914/// nl80211TxRateAttributes
915///
916/// Enumeration from nl80211/nl80211.h:3736
917#[neli_enum(serialized_type = "u16")]
918pub enum Nl80211TxRateAttributes {
919    TxrateInvalid = 0,
920    TxrateLegacy = 1,
921    TxrateHt = 2,
922    TxrateVht = 3,
923    TxrateGi = 4,
924}
925
926impl NlAttrType for Nl80211TxRateAttributes {}
927
928/// nl80211TxrateGi
929///
930/// Enumeration from nl80211/nl80211.h:3759
931#[neli_enum(serialized_type = "u16")]
932pub enum Nl80211TxrateGi {
933    TxrateDefaultGi = 0,
934    TxrateForceSgi = 1,
935    TxrateForceLgi = 2,
936}
937
938impl NlAttrType for Nl80211TxrateGi {}
939
940/// nl80211Band
941///
942/// Enumeration from nl80211/nl80211.h:3773
943#[neli_enum(serialized_type = "u16")]
944pub enum Nl80211Bandc {
945    Band2ghz = 0,
946    Band5ghz = 1,
947    Band60ghz = 2,
948}
949
950impl NlAttrType for Nl80211Bandc {}
951
952/// nl80211PsState
953///
954/// Enumeration from nl80211/nl80211.h:3786
955#[neli_enum(serialized_type = "u16")]
956pub enum Nl80211PsState {
957    PsDisabled = 0,
958    PsEnabled = 1,
959}
960
961impl NlAttrType for Nl80211PsState {}
962
963/// nl80211AttrCqm
964///
965/// Enumeration from nl80211/nl80211.h:3819
966#[neli_enum(serialized_type = "u16")]
967pub enum Nl80211AttrCqm {
968    AttrCqmInvalid = 0,
969    AttrCqmRssiThold = 1,
970    AttrCqmRssiHyst = 2,
971    AttrCqmRssiThresholdEvent = 3,
972    AttrCqmPktLossEvent = 4,
973    AttrCqmTxeRate = 5,
974    AttrCqmTxePkts = 6,
975    AttrCqmTxeIntvl = 7,
976    AttrCqmBeaconLossEvent = 8,
977}
978
979impl NlAttrType for Nl80211AttrCqm {}
980
981/// nl80211CqmRssiThresholdEvent
982///
983/// Enumeration from nl80211/nl80211.h:3843
984#[neli_enum(serialized_type = "u16")]
985pub enum Nl80211CqmRssiThresholdEvent {
986    CqmRssiThresholdEventLow = 0,
987    CqmRssiThresholdEventHigh = 1,
988    CqmRssiBeaconLossEvent = 2,
989}
990
991impl NlAttrType for Nl80211CqmRssiThresholdEvent {}
992
993/// nl80211TxPowerSetting
994///
995/// Enumeration from nl80211/nl80211.h:3856
996#[neli_enum(serialized_type = "u16")]
997pub enum Nl80211TxPowerSetting {
998    TxPowerAutomatic = 0,
999    TxPowerLimited = 1,
1000    TxPowerFixed = 2,
1001}
1002
1003impl NlAttrType for Nl80211TxPowerSetting {}
1004
1005/// nl80211PacketPatternAttr
1006///
1007/// Enumeration from nl80211/nl80211.h:3883
1008#[neli_enum(serialized_type = "u16")]
1009pub enum Nl80211PacketPatternAttr {
1010    PktpatInvalid = 0,
1011    PktpatMask = 1,
1012    PktpatPattern = 2,
1013    PktpatOffset = 3,
1014}
1015
1016impl NlAttrType for Nl80211PacketPatternAttr {}
1017
1018/// nl80211WowlanTriggers
1019///
1020/// Enumeration from nl80211/nl80211.h:4011
1021#[neli_enum(serialized_type = "u16")]
1022pub enum Nl80211WowlanTriggers {
1023    WowlanTrigInvalid = 0,
1024    WowlanTrigAny = 1,
1025    WowlanTrigDisconnect = 2,
1026    WowlanTrigMagicPkt = 3,
1027    WowlanTrigPktPattern = 4,
1028    WowlanTrigGtkRekeySupported = 5,
1029    WowlanTrigGtkRekeyFailure = 6,
1030    WowlanTrigEapIdentRequest = 7,
1031    WowlanTrig4wayHandshake = 8,
1032    WowlanTrigRfkillRelease = 9,
1033    WowlanTrigWakeupPkt80211 = 10,
1034    WowlanTrigWakeupPkt80211Len = 11,
1035    WowlanTrigWakeupPkt8023 = 12,
1036    WowlanTrigWakeupPkt8023Len = 13,
1037    WowlanTrigTcpConnection = 14,
1038    WowlanTrigWakeupTcpMatch = 15,
1039    WowlanTrigWakeupTcpConnlost = 16,
1040    WowlanTrigWakeupTcpNomoretokens = 17,
1041    WowlanTrigNetDetect = 18,
1042    WowlanTrigNetDetectResults = 19,
1043}
1044
1045impl NlAttrType for Nl80211WowlanTriggers {}
1046
1047/// nl80211WowlanTcpAttrs
1048///
1049/// Enumeration from nl80211/nl80211.h:4129
1050#[neli_enum(serialized_type = "u16")]
1051pub enum Nl80211WowlanTcpAttrs {
1052    WowlanTcpInvalid = 0,
1053    WowlanTcpSrcIpv4 = 1,
1054    WowlanTcpDstIpv4 = 2,
1055    WowlanTcpDstMac = 3,
1056    WowlanTcpSrcPort = 4,
1057    WowlanTcpDstPort = 5,
1058    WowlanTcpDataPayload = 6,
1059    WowlanTcpDataPayloadSeq = 7,
1060    WowlanTcpDataPayloadToken = 8,
1061    WowlanTcpDataInterval = 9,
1062    WowlanTcpWakePayload = 10,
1063    WowlanTcpWakeMask = 11,
1064}
1065
1066impl NlAttrType for Nl80211WowlanTcpAttrs {}
1067
1068/// nl80211AttrCoalesceRule
1069///
1070/// Enumeration from nl80211/nl80211.h:4174
1071#[neli_enum(serialized_type = "u16")]
1072pub enum Nl80211AttrCoalesceRule {
1073    CoalesceRuleInvalid = 0,
1074    AttrCoalesceRuleDelay = 1,
1075    AttrCoalesceRuleCondition = 2,
1076    AttrCoalesceRulePktPattern = 3,
1077}
1078
1079impl NlAttrType for Nl80211AttrCoalesceRule {}
1080
1081/// nl80211CoalesceCondition
1082///
1083/// Enumeration from nl80211/nl80211.h:4192
1084#[neli_enum(serialized_type = "u16")]
1085pub enum Nl80211CoalesceCondition {
1086    CoalesceConditionMatch = 0,
1087    CoalesceConditionNoMatch = 1,
1088}
1089
1090impl NlAttrType for Nl80211CoalesceCondition {}
1091
1092/// nl80211IfaceLimitAttrs
1093///
1094/// Enumeration from nl80211/nl80211.h:4207
1095#[neli_enum(serialized_type = "u16")]
1096pub enum Nl80211IfaceLimitAttrs {
1097    IfaceLimitUnspec = 0,
1098    IfaceLimitMax = 1,
1099    IfaceLimitTypes = 2,
1100}
1101
1102impl NlAttrType for Nl80211IfaceLimitAttrs {}
1103
1104/// nl80211IfCombinationAttrs
1105///
1106/// Enumeration from nl80211/nl80211.h:4263
1107#[neli_enum(serialized_type = "u16")]
1108pub enum Nl80211IfCombinationAttrs {
1109    IfaceCombUnspec = 0,
1110    IfaceCombLimits = 1,
1111    IfaceCombMaxnum = 2,
1112    IfaceCombStaApBiMatch = 3,
1113    IfaceCombNumChannels = 4,
1114    IfaceCombRadarDetectWidths = 5,
1115    IfaceCombRadarDetectRegions = 6,
1116}
1117
1118impl NlAttrType for Nl80211IfCombinationAttrs {}
1119
1120/// nl80211PlinkState
1121///
1122/// Enumeration from nl80211/nl80211.h:4296
1123#[neli_enum(serialized_type = "u16")]
1124pub enum Nl80211PlinkState {
1125    PlinkListen = 0,
1126    PlinkOpnSnt = 1,
1127    PlinkOpnRcvd = 2,
1128    PlinkCnfRcvd = 3,
1129    PlinkEstab = 4,
1130    PlinkHolding = 5,
1131    PlinkBlocked = 6,
1132}
1133
1134impl NlAttrType for Nl80211PlinkState {}
1135
1136/// plinkActions
1137///
1138/// Enumeration from nl80211/nl80211.h:4318
1139#[neli_enum(serialized_type = "u16")]
1140pub enum PlinkActions {
1141    PlinkActionNoAction = 0,
1142    PlinkActionOpen = 1,
1143    PlinkActionBlock = 2,
1144}
1145
1146impl NlAttrType for PlinkActions {}
1147
1148/// nl80211RekeyData
1149///
1150/// Enumeration from nl80211/nl80211.h:4340
1151#[neli_enum(serialized_type = "u16")]
1152pub enum Nl80211RekeyData {
1153    RekeyDataInvalid = 0,
1154    RekeyDataKek = 1,
1155    RekeyDataKck = 2,
1156    RekeyDataReplayCtr = 3,
1157}
1158
1159impl NlAttrType for Nl80211RekeyData {}
1160
1161/// nl80211HiddenSsid
1162///
1163/// Enumeration from nl80211/nl80211.h:4360
1164#[neli_enum(serialized_type = "u16")]
1165pub enum Nl80211HiddenSsid {
1166    HiddenSsidNotInUse = 0,
1167    HiddenSsidZeroLen = 1,
1168    HiddenSsidZeroContents = 2,
1169}
1170
1171impl NlAttrType for Nl80211HiddenSsid {}
1172
1173/// nl80211StaWmeAttr
1174///
1175/// Enumeration from nl80211/nl80211.h:4376
1176#[neli_enum(serialized_type = "u16")]
1177pub enum Nl80211StaWmeAttr {
1178    StaWmeInvalid = 0,
1179    StaWmeUapsdQueues = 1,
1180    StaWmeMaxSp = 2,
1181}
1182
1183impl NlAttrType for Nl80211StaWmeAttr {}
1184
1185/// nl80211PmksaCandidateAttr
1186///
1187/// Enumeration from nl80211/nl80211.h:4398
1188#[neli_enum(serialized_type = "u16")]
1189pub enum Nl80211PmksaCandidateAttr {
1190    PmksaCandidateInvalid = 0,
1191    PmksaCandidateIndex = 1,
1192    PmksaCandidateBssid = 2,
1193    PmksaCandidatePreauth = 3,
1194}
1195
1196impl NlAttrType for Nl80211PmksaCandidateAttr {}
1197
1198/// nl80211TdlsOperation
1199///
1200/// Enumeration from nl80211/nl80211.h:4417
1201#[neli_enum(serialized_type = "u16")]
1202pub enum Nl80211TdlsOperation {
1203    TdlsDiscoveryReq = 0,
1204    TdlsSetup = 1,
1205    TdlsTeardown = 2,
1206    TdlsEnableLink = 3,
1207    TdlsDisableLink = 4,
1208}
1209
1210impl NlAttrType for Nl80211TdlsOperation {}
1211
1212/// nl80211FeatureFlags
1213///
1214/// Enumeration from nl80211/nl80211.h:4526
1215#[neli_enum(serialized_type = "u16")]
1216pub enum Nl80211FeatureFlags {
1217    FeatureSkTxStatus = 1 << 0,
1218    FeatureHtIbss = 1 << 1,
1219    FeatureInactivityTimer = 1 << 2,
1220    FeatureCellBaseRegHints = 1 << 3,
1221    FeatureP2pDeviceNeedsChannel = 1 << 4,
1222    FeatureSae = 1 << 5,
1223    FeatureLowPriorityScan = 1 << 6,
1224    FeatureScanFlush = 1 << 7,
1225    FeatureApScan = 1 << 8,
1226    FeatureVifTxpower = 1 << 9,
1227    FeatureNeedObssScan = 1 << 10,
1228    FeatureP2pGoCtwin = 1 << 11,
1229    FeatureP2pGoOppps = 1 << 12,
1230    FeatureAdvertiseChanLimits = 1 << 14,
1231    FeatureFullApClientState = 1 << 15,
1232    // FeatureUserspaceMpm          =1 << 16,
1233    // FeatureActiveMonitor         =1 << 17,
1234    // FeatureApModeChanWidthChange =1 << 18,
1235    // FeatureDsParamSetIeInProbes  =1 << 19,
1236    // FeatureWfaTpcIeInProbes      =1 << 20,
1237    // FeatureQuiet                 =1 << 21,
1238    // FeatureTxPowerInsertion      =1 << 22,
1239    // FeatureAcktoEstimation       =1 << 23,
1240    // FeatureStaticSmps            =1 << 24,
1241    // FeatureDynamicSmps           =1 << 25,
1242    // FeatureSupportsWmmAdmission  =1 << 26,
1243    // FeatureMacOnCreate           =1 << 27,
1244    // FeatureTdlsChannelSwitch     =1 << 28,
1245    // FeatureScanRandomMacAddr     =1 << 29,
1246    // FeatureSchedScanRandomMacAddr=1 << 30,
1247    // FeatureNdRandomMacAddr       =1 << 31
1248}
1249
1250impl NlAttrType for Nl80211FeatureFlags {}
1251
1252/// nl80211ExtFeatureIndex
1253///
1254/// Enumeration from nl80211/nl80211.h:4595
1255#[neli_enum(serialized_type = "u16")]
1256pub enum Nl80211ExtFeatureIndex {
1257    ExtFeatureVhtIbss = 0,
1258    ExtFeatureRrm = 1,
1259    ExtFeatureMuMimoAirSniffer = 2,
1260    ExtFeatureScanStartTime = 3,
1261    ExtFeatureBssParentTsf = 4,
1262    ExtFeatureSetScanDwell = 5,
1263    ExtFeatureBeaconRateLegacy = 6,
1264    ExtFeatureBeaconRateHt = 7,
1265    ExtFeatureBeaconRateVht = 8,
1266}
1267
1268impl NlAttrType for Nl80211ExtFeatureIndex {}
1269
1270/// nl80211ProbeRespOffloadSupportAttr
1271///
1272/// Enumeration from nl80211/nl80211.h:4625
1273#[neli_enum(serialized_type = "u16")]
1274pub enum Nl80211ProbeRespOffloadSupportAttr {
1275    ProbeRespOffloadSupportWps = 1 << 0,
1276    ProbeRespOffloadSupportWps2 = 1 << 1,
1277    ProbeRespOffloadSupportP2p = 1 << 2,
1278    ProbeRespOffloadSupport80211u = 1 << 3,
1279}
1280
1281impl NlAttrType for Nl80211ProbeRespOffloadSupportAttr {}
1282
1283/// nl80211ConnectFailedReason
1284///
1285/// Enumeration from nl80211/nl80211.h:4638
1286#[neli_enum(serialized_type = "u16")]
1287pub enum Nl80211ConnectFailedReason {
1288    ConnFailMaxClients = 0,
1289    ConnFailBlockedClient = 1,
1290}
1291
1292impl NlAttrType for Nl80211ConnectFailedReason {}
1293
1294/// nl80211ScanFlags
1295///
1296/// Enumeration from nl80211/nl80211.h:4667
1297#[neli_enum(serialized_type = "u16")]
1298pub enum Nl80211ScanFlags {
1299    ScanFlagLowPriority = 1 << 0,
1300    ScanFlagFlush = 1 << 1,
1301    ScanFlagAp = 1 << 2,
1302    ScanFlagRandomAddr = 1 << 3,
1303}
1304
1305impl NlAttrType for Nl80211ScanFlags {}
1306
1307/// nl80211AclPolicy
1308///
1309/// Enumeration from nl80211/nl80211.h:4687
1310#[neli_enum(serialized_type = "u16")]
1311pub enum Nl80211AclPolicy {
1312    AclPolicyAcceptUnlessListed = 0,
1313    AclPolicyDenyUnlessListed = 1,
1314}
1315
1316impl NlAttrType for Nl80211AclPolicy {}
1317
1318/// nl80211SmpsMode
1319///
1320/// Enumeration from nl80211/nl80211.h:4702
1321#[neli_enum(serialized_type = "u16")]
1322pub enum Nl80211SmpsMode {
1323    SmpsOff = 0,
1324    SmpsStatic = 1,
1325    SmpsDynamic = 2,
1326}
1327
1328impl NlAttrType for Nl80211SmpsMode {}
1329
1330/// nl80211RadarEvent
1331///
1332/// Enumeration from nl80211/nl80211.h:4726
1333#[neli_enum(serialized_type = "u16")]
1334pub enum Nl80211RadarEvent {
1335    RadarDetected = 0,
1336    RadarCacFinished = 1,
1337    RadarCacAborted = 2,
1338    RadarNopFinished = 3,
1339}
1340
1341impl NlAttrType for Nl80211RadarEvent {}
1342
1343/// nl80211DfsState
1344///
1345/// Enumeration from nl80211/nl80211.h:4744
1346#[neli_enum(serialized_type = "u16")]
1347pub enum Nl80211DfsState {
1348    DfsUsable = 0,
1349    DfsUnavailable = 1,
1350    DfsAvailable = 2,
1351}
1352
1353impl NlAttrType for Nl80211DfsState {}
1354
1355/// nl80211ProtocolFeatures
1356///
1357/// Enumeration from nl80211/nl80211.h:4758
1358#[neli_enum(serialized_type = "u16")]
1359pub enum Nl80211ProtocolFeatures {
1360    ProtocolFeatureSplitWiphyDump = 1 << 0,
1361}
1362
1363impl NlAttrType for Nl80211ProtocolFeatures {}
1364
1365/// nl80211CritProtoId
1366///
1367/// Enumeration from nl80211/nl80211.h:4771
1368#[neli_enum(serialized_type = "u16")]
1369pub enum Nl80211CritProtoId {
1370    CritProtoUnspec = 0,
1371    CritProtoDhcp = 1,
1372    CritProtoEapol = 2,
1373    CritProtoApipa = 3,
1374}
1375
1376impl NlAttrType for Nl80211CritProtoId {}
1377
1378/// nl80211RxmgmtFlags
1379///
1380/// Enumeration from nl80211/nl80211.h:4790
1381#[neli_enum(serialized_type = "u16")]
1382pub enum Nl80211RxmgmtFlags {
1383    RxmgmtFlagAnswered = 1 << 0,
1384}
1385
1386impl NlAttrType for Nl80211RxmgmtFlags {}
1387
1388/// nl80211TdlsPeerCapability
1389///
1390/// Enumeration from nl80211/nl80211.h:4824
1391#[neli_enum(serialized_type = "u16")]
1392pub enum Nl80211TdlsPeerCapability {
1393    TdlsPeerHt = 1 << 0,
1394    TdlsPeerVht = 1 << 1,
1395    TdlsPeerWmm = 1 << 2,
1396}
1397
1398impl NlAttrType for Nl80211TdlsPeerCapability {}
1399
1400/// nl80211SchedScanPlan
1401///
1402/// Enumeration from nl80211/nl80211.h:4843
1403#[neli_enum(serialized_type = "u16")]
1404pub enum Nl80211SchedScanPlan {
1405    SchedScanPlanInvalid = 0,
1406    SchedScanPlanInterval = 1,
1407    SchedScanPlanIterations = 2,
1408}
1409
1410impl NlAttrType for Nl80211SchedScanPlan {}
1411
1412/// nl80211BssSelectAttr
1413///
1414/// Enumeration from nl80211/nl80211.h:4887
1415#[neli_enum(serialized_type = "u16")]
1416pub enum Nl80211BssSelectAttr {
1417    BssSelectAttrInvalid = 0,
1418    BssSelectAttrRssi = 1,
1419    BssSelectAttrBandPref = 2,
1420    BssSelectAttrRssiAdjust = 3,
1421}
1422
1423impl NlAttrType for Nl80211BssSelectAttr {}
1424
1425/// nl80211NanDualBandConf
1426///
1427/// Enumeration from nl80211/nl80211.h:4907
1428#[neli_enum(serialized_type = "u16")]
1429pub enum Nl80211NanDualBandConf {
1430    NanBandDefault = 1 << 0,
1431    NanBand2ghz = 1 << 1,
1432    NanBand5ghz = 1 << 2,
1433}
1434
1435impl NlAttrType for Nl80211NanDualBandConf {}
1436
1437/// nl80211NanFunctionType
1438///
1439/// Enumeration from nl80211/nl80211.h:4922
1440#[neli_enum(serialized_type = "u16")]
1441pub enum Nl80211NanFunctionType {
1442    NanFuncPublish = 0,
1443    NanFuncSubscribe = 1,
1444    NanFuncFollowUp = 2,
1445    NanFuncTypeAfterLast = 3,
1446    NanFuncMaxType = 2,
1447}
1448
1449impl NlAttrType for Nl80211NanFunctionType {}
1450
1451/// nl80211NanPublishType
1452///
1453/// Enumeration from nl80211/nl80211.h:4940
1454#[neli_enum(serialized_type = "u16")]
1455pub enum Nl80211NanPublishType {
1456    NanSolicitedPublish = 1 << 0,
1457    NanUnsolicitedPublish = 1 << 1,
1458}
1459
1460impl NlAttrType for Nl80211NanPublishType {}
1461
1462/// nl80211NanFuncTermReason
1463///
1464/// Enumeration from nl80211/nl80211.h:4954
1465#[neli_enum(serialized_type = "u16")]
1466pub enum Nl80211NanFuncTermReason {
1467    NanFuncTermReasonUserRequest = 0,
1468    NanFuncTermReasonTtlExpired = 1,
1469    NanFuncTermReasonError = 2,
1470}
1471
1472impl NlAttrType for Nl80211NanFuncTermReason {}
1473
1474/// nl80211NanFuncAttributes
1475///
1476/// Enumeration from nl80211/nl80211.h:5006
1477#[neli_enum(serialized_type = "u16")]
1478pub enum Nl80211NanFuncAttributes {
1479    NanFuncInvalid = 0,
1480    NanFuncType = 1,
1481    NanFuncServiceId = 2,
1482    NanFuncPublishType = 3,
1483    NanFuncPublishBcast = 4,
1484    NanFuncSubscribeActive = 5,
1485    NanFuncFollowUpId = 6,
1486    NanFuncFollowUpReqId = 7,
1487    NanFuncFollowUpDest = 8,
1488    NanFuncCloseRange = 9,
1489    NanFuncTtl = 10,
1490    NanFuncServiceInfo = 11,
1491    NanFuncSrf = 12,
1492    NanFuncRxMatchFilter = 13,
1493    NanFuncTxMatchFilter = 14,
1494    NanFuncInstanceId = 15,
1495    NanFuncTermReason = 16,
1496}
1497
1498impl NlAttrType for Nl80211NanFuncAttributes {}
1499
1500/// nl80211NanSrfAttributes
1501///
1502/// Enumeration from nl80211/nl80211.h:5045
1503#[neli_enum(serialized_type = "u16")]
1504pub enum Nl80211NanSrfAttributes {
1505    NanSrfInvalid = 0,
1506    NanSrfInclude = 1,
1507    NanSrfBf = 2,
1508    NanSrfBfIdx = 3,
1509    NanSrfMacAddrs = 4,
1510}
1511
1512impl NlAttrType for Nl80211NanSrfAttributes {}
1513
1514/// nl80211NanMatchAttributes
1515///
1516/// Enumeration from nl80211/nl80211.h:5070
1517#[neli_enum(serialized_type = "u16")]
1518pub enum Nl80211NanMatchAttributes {
1519    NanMatchInvalid = 0,
1520    NanMatchFuncLocal = 1,
1521    NanMatchFuncPeer = 2,
1522}
1523
1524impl NlAttrType for Nl80211NanMatchAttributes {}