1IWD.CONFIG(5)                 Linux Connectivity                 IWD.CONFIG(5)
2
3
4

NAME

6       iwd.config - Configuration file for wireless daemon
7

SYNOPSIS

9       Configuration file main.conf
10

DESCRIPTION

12       The  main.conf  configuration  file configures the system-wide settings
13       for iwd.  This file lives in the configuration directory  specified  by
14       the  environment  variable  $CONFIGURATION_DIRECTORY, which is normally
15       provided by systemd.  In the absence of such an environment variable it
16       defaults  to /etc/iwd.  If no main.conf is present, then default values
17       are chosen.  The presence of main.conf is not required.
18

FILE FORMAT

20       See iwd.network for details on the file format.
21

SETTINGS

23       The settings are split into several categories.  Each  category  has  a
24       group associated with it and described in separate tables below.
25
26   General Settings
27       The group [General] contains general settings.
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67              ┌───────────────────────────┬────────────────────────────┐
68              │EnableNetworkConfiguration │ Values: true, false        
69              │                           │                            │
70              │                           │ Enable  network configura‐ │
71              │                           │ tion.                      │
72              │                           │                            │
73              │                           │ Setting  this  option   to │
74              │                           │ true  enables  iwd to con‐ │
75              │                           │ figure the network  inter‐ │
76              │                           │ faces   with  the  IP  ad‐ │
77              │                           │ dresses.   There  are  two │
78              │                           │ types  IP  addressing sup‐ │
79              │                           │ ported by iwd: static  and │
80              │                           │ dynamic.   The  static  IP │
81              │                           │ addresses  are  configured │
82              │                           │ through  the  network con‐ │
83              │                           │ figuration files.   If  no │
84              │                           │ static   IP  configuration │
85              │                           │ has been  provided  for  a │
86              │                           │ network,  iwd will attempt │
87              │                           │ to obtain the dynamic  ad‐ │
88              │                           │ dresses  from  the network │
89              │                           │ through the built-in  DHCP │
90              │                           │ client.                    │
91              │                           │                            │
92              │                           │ This  also enables network │
93              │                           │ configuration and the DHCP │
94              │                           │ server when in AP mode and │
95              │                           │ the AP profile being acti‐ │
96              │                           │ vated  does  not  override │
97              │                           │ it.                        │
98              │                           │                            │
99              │                           │ The network  configuration │
100              │                           │ feature is disabled by de‐ │
101              │                           │ fault.  See [Network] set‐ │
102              │                           │ tings  for additional set‐ │
103              │                           │ tings related  to  network │
104              │                           │ configuration.             │
105              ├───────────────────────────┼────────────────────────────┤
106              │APRanges                   │ Values:  <IP in prefix no‐ │
107              │                           │ tation>                    │
108              │                           │                            │
109              │                           │ Sets  the  range  of  IP's │
110              │                           │ used  for  DHCP server (AP │
111              │                           │ mode). The IP should be in │
112              │                           │ prefix    notation    e.g. │
113              │                           │ 192.168.1.0/24. AP's which │
114              │                           │ are   started  in  a  pro‐ │
115              │                           │ file-less    configuration │
116              │                           │ will use this pool of IP's │
117              │                           │ to set the AP's  interface │
118              │                           │ address as well as default │
119              │                           │ DHCP server options.  Each │
120              │                           │ AP  will  get a new subnet │
121              │                           │ from the range and clients │
122              │                           │ will  be addressed in that │
123              │                           │ subnet to  avoid  IP  con‐ │
124              │                           │ flicts  if  multiple  AP's │
125              │                           │ are started.               │
126              └───────────────────────────┴────────────────────────────┘
127
128
129
130
131
132
133              │UseDefaultInterface        │ Values: true, false        
134              │                           │                            │
135              │                           │ Do not allow  iwd  to  de‐ │
136              │                           │ stroy  / recreate wireless │
137              │                           │ interfaces at startup, in‐ │
138              │                           │ cluding   default   inter‐ │
139              │                           │ faces.  Enable this behav‐ │
140              │                           │ ior  if your wireless card │
141              │                           │ driver is  buggy  or  does │
142              │                           │ not  allow  such an opera‐ │
143              │                           │ tion, or  if  you  do  not │
144              │                           │ want iwd to manage netdevs │
145              │                           │ for another  reason.   For │
146              │                           │ most  users  with  an  up‐ │
147              │                           │ stream driver it should be │
148              │                           │ safe  to omit/disable this │
149              │                           │ setting.                   │
150              ├───────────────────────────┼────────────────────────────┤
151              │AddressRandomization       │ Values:  disabled,   once, │
152              │                           │ network                    │
153              │                           │                            │
154              │                           │ If AddressRandomization is │
155              │                           │ set to disabled,  the  de‐ │
156              │                           │ fault  kernel  behavior is │
157              │                           │ used.  This means the ker‐ │
158              │                           │ nel  will assign a mac ad‐ │
159              │                           │ dress from  the  permanent │
160              │                           │ mac address range provided │
161              │                           │ by the hardware /  driver. │
162              │                           │ Thus  it  is  possible for │
163              │                           │ networks to track the user │
164              │                           │ by  the  mac address which │
165              │                           │ is permanent.              │
166              │                           │                            │
167              │                           │ If AddressRandomization is │
168              │                           │ set  to  once, MAC address │
169              │                           │ is  randomized  a   single │
170              │                           │ time  when  iwd  starts or │
171              │                           │ when the hardware  is  de‐ │
172              │                           │ tected  for the first time │
173              │                           │ (due to hotplug, etc.)     │
174              │                           │                            │
175              │                           │ If AddressRandomization is │
176              │                           │ set  to  network,  the MAC │
177              │                           │ address is  randomized  on │
178              │                           │ each  connection to a net‐ │
179              │                           │ work. The MAC is generated │
180              │                           │ based on the SSID and per‐ │
181              │                           │ manent  address   of   the │
182              │                           │ adapter.  This  allows the │
183              │                           │ same MAC to  be  generated │
184              │                           │ each  time connecting to a │
185              │                           │ given  SSID  while   still │
186              │                           │ hiding  the  permanent ad‐ │
187              │                           │ dress.                     │
188              └───────────────────────────┴────────────────────────────┘
189
190
191
192
193
194
195
196
197
198
199              │AddressRandomizationRange  │ Values: full, nic          │
200              │                           │                            │
201              │                           │ One can control which part │
202              │                           │ of  the address is random‐ │
203              │                           │ ized using this setting.   │
204              │                           │                            │
205              │                           │ When using  AddressRandom‐ 
206              │                           │ izationRange  set  to nic, │
207              │                           │ only  the   NIC   specific │
208              │                           │ octets (last 3 octets) are │
209              │                           │ randomized.  Note that the │
210              │                           │ randomization   range   is │
211              │                           │ limited  to  00:00:01   to │
212              │                           │ 00:00:FE.   The  permanent │
213              │                           │ mac address of the card is │
214              │                           │ used  for  the  initial  3 │
215              │                           │ octets.                    │
216              │                           │                            │
217              │                           │ When using  AddressRandom‐ 
218              │                           │ izationRange  set to full, │
219              │                           │ all 6 octets  of  the  ad‐ │
220              │                           │ dress are randomized.  The │
221              │                           │ locally-administered   bit │
222              │                           │ will be set.               │
223              ├───────────────────────────┼────────────────────────────┤
224              │RoamThreshold              │ Value:   rssi  dBm  value, │
225              │                           │ from -100 to  1,  default: │
226              │                           │ -70                        
227              │                           │                            │
228              │                           │ This  value can be used to │
229              │                           │ control  how  aggressively │
230              │                           │ iwd  roams  when connected │
231              │                           │ to a 2.4Ghz access point.  │
232              ├───────────────────────────┼────────────────────────────┤
233              │RoamThreshold5G            │ Value:  rssi  dBm   value, │
234              │                           │ from  -100  to 1, default: │
235              │                           │ -76                        
236              │                           │                            │
237              │                           │ This value can be used  to │
238              │                           │ control  how  aggressively │
239              │                           │ iwd roams  when  connected │
240              │                           │ to a 5GHz access point.    │
241              ├───────────────────────────┼────────────────────────────┤
242              │RoamRetryInterval          │ Value:  unsigned int value │
243              │                           │ in seconds (default: 60)   │
244              │                           │                            │
245              │                           │ Specifies  how  long   iwd 
246              │                           │ will  wait before attempt‐ │
247              │                           │ ing to roam again  if  the │
248              │                           │ last  roam attempt failed, │
249              │                           │ or if the  signal  of  the │
250              │                           │ newly   connected  BSS  is │
251              │                           │ still considered weak.     │
252              └───────────────────────────┴────────────────────────────┘
253
254
255
256
257
258
259
260
261
262
263
264
265              │ManagementFrameProtection  │ Values: 0, 1 or 2          │
266              │                           │                            │
267              │                           │ When   ManagementFramePro‐ 
268              │                           │ tection  is 0, MFP is com‐ │
269              │                           │ pletely turned  off,  even │
270              │                           │ if  the  hardware is capa‐ │
271              │                           │ ble.  This setting is  not │
272              │                           │ recommended.               │
273              │                           │                            │
274              │                           │ When   ManagementFramePro‐ 
275              │                           │ tection is 1, MFP  is  en‐ │
276              │                           │ abled  if  the local hard‐ │
277              │                           │ ware and  remote  AP  both │
278              │                           │ support it.                │
279              │                           │                            │
280              │                           │ When   ManagementFramePro‐ 
281              │                           │ tection is 2, MFP  is  al‐ │
282              │                           │ ways  required.   This can │
283              │                           │ prevent successful connec‐ │
284              │                           │ tion establishment on some │
285              │                           │ hardware or to  some  net‐ │
286              │                           │ works.                     │
287              ├───────────────────────────┼────────────────────────────┤
288              │ControlPortOverNL80211     │ Values: false, true        
289              │                           │                            │
290              │                           │ Enable/Disable     sending │
291              │                           │ EAPoL     packets     over │
292              │                           │ NL80211.   Enabled  by de‐ │
293              │                           │ fault if kernel support is │
294              │                           │ available.  Doing so sends │
295              │                           │ all EAPoL traffic over di‐ │
296              │                           │ rectly  to  the supplicant │
297              │                           │ process (iwd)  instead  of │
298              │                           │ putting  these on the Eth‐ │
299              │                           │ ernet device.  Since  only │
300              │                           │ the supplicant can usually │
301              │                           │ make sense / decrypt these │
302              │                           │ packets, enabling this op‐ │
303              │                           │ tion can save some CPU cy‐ │
304              │                           │ cles  on  your  system and │
305              │                           │ avoids certain long-stand‐ │
306              │                           │ ing race conditions.       │
307              ├───────────────────────────┼────────────────────────────┤
308              │DisableANQP                │ Values: false, true        
309              │                           │                            │
310              │                           │ Enable/disable        ANQP │
311              │                           │ queries. The way IWD  does │
312              │                           │ ANQP  queries is dependent │
313              │                           │ on a recent  kernel  patch │
314              │                           │ (available in Kernel 5.3). │
315              │                           │ If your  kernel  does  not │
316              │                           │ have   this  functionality │
317              │                           │ this  should  be  disabled │
318              │                           │ (default).   Some  drivers │
319              │                           │ also do a terrible job  of │
320              │                           │ sending    public   action │
321              │                           │ frames    (freezing     or │
322              │                           │ crashes)  which is another │
323              │                           │ reason why this  has  been │
324              │                           │ turned off by default.  If │
325              │                           │ you want to easily utilize │
326              │                           │ Hotspot 2.0 networks, then │
327              │                           │ setting   DisableANQP   to │
328              │                           │ false is recommended.      │
329              └───────────────────────────┴────────────────────────────┘
330
331              │DisableOCV                 │ Value: false, true         │
332              │                           │                            │
333              │                           │ Disable  Operating Channel │
334              │                           │ Validation.  Support   for │
335              │                           │ this  is not advertised by │
336              │                           │ the  kernel  so  if   ker‐ │
337              │                           │ nels/drivers  exist  which │
338              │                           │ don't support OCV  it  can │
339              │                           │ be disabled here.          │
340              ├───────────────────────────┼────────────────────────────┤
341              │SystemdEncrypt             │ Value: Systemd key ID      │
342              │                           │                            │
343Warning:  This is a highly │ Enables  network   profile │
344experimental feature       │ encryption using a systemd │
345              │                           │ provided secret key.  Once │
346              │                           │ enabled all PSK/8021x net‐ │
347              │                           │ work profiles will be  en‐ │
348              │                           │ crypted     automatically. │
349              │                           │ Once the  profile  is  en‐ │
350              │                           │ crypted there is no way of │
351              │                           │ going   back   using   IWD │
352              │                           │ alone.   A  tool,  iwd-de‐ 
353              │                           │ crypt-profile, is provided │
354              │                           │ assuming   the  secret  is │
355              │                           │ known which will decrypt a │
356              │                           │ profile.   This  decrypted │
357              │                           │ profile could manually  be │
358              │                           │ set   to  /var/lib/iwd  to │
359              │                           │ 'undo' any profile encryp‐ │
360              │                           │ tion,  but its going to be │
361              │                           │ a manual process.          │
362              │                           │                            │
363              │                           │ Setting up systemd to pro‐ │
364              │                           │ vide the secret is left up │
365              │                           │ to the user as IWD has  no │
366              │                           │ way of performing this au‐ │
367              │                           │ tomatically.  The  systemd │
368              │                           │ options required are Load‐ │
369              │                           │ CredentialEncrypted     or │
370              │                           │ SetCredentialEncrypted,    │
371              │                           │ and the secret  identifier │
372              │                           │ should  be  named whatever │
373              │                           │ SystemdEncrypt is set to.  │
374              └───────────────────────────┴────────────────────────────┘
375
376   Network
377       The group [Network] contains network configuration related settings.
378
379                 ┌─────────────────────┬────────────────────────────┐
380                 │EnableIPv6           │ Values: true, false        
381                 │                     │                            │
382                 │                     │ Sets  the  global  default │
383                 │                     │ that  tells iwd whether it │
384                 │                     │ should configure IPv6  ad‐ │
385                 │                     │ dresses and routes (either │
386                 │                     │ provided via  static  set‐ │
387                 │                     │ tings,  Router  Advertise‐ │
388                 │                     │ ments or DHCPv6 protocol). │
389                 │                     │ This  setting  is disabled │
390                 │                     │ by default.  This  setting │
391                 │                     │ can  also be overridden on │
392                 │                     │ a per-network basis.       │
393                 └─────────────────────┴────────────────────────────┘
394
395
396
397                 │NameResolvingService │ Values:  resolvconf,  sys‐ 
398                 │                     │ temd                       
399                 │                     │                            │
400                 │                     │ Configures  a  DNS resolu‐ │
401                 │                     │ tion method  used  by  the │
402                 │                     │ system.                    │
403                 │                     │                            │
404                 │                     │ This  configuration option │
405                 │                     │ must be used  in  conjunc‐ │
406                 │                     │ tion  with  EnableNetwork‐ 
407                 │                     │ Configuration and provides │
408                 │                     │ the  choice  of system re‐ │
409                 │                     │ solver integration.        │
410                 │                     │                            │
411                 │                     │ If not specified,  systemd 
412                 │                     │ is used as default.        │
413                 ├─────────────────────┼────────────────────────────┤
414                 │RoutePriorityOffset  │ Values:  uint32 value (de‐ │
415                 │                     │ fault: 300)                │
416                 │                     │                            │
417                 │                     │ Configures a route  prior‐ │
418                 │                     │ ity  offset  used  by  the │
419                 │                     │ system to  prioritize  the │
420                 │                     │ default  routes. The route │
421                 │                     │ with lower priority offset │
422                 │                     │ is preferred.              │
423                 │                     │                            │
424                 │                     │ If  not  specified, 300 is │
425                 │                     │ used as default.           │
426                 ├─────────────────────┼────────────────────────────┤
427                 │MulticastDNS         │ Values: true,  false,  re‐ │
428                 │                     │ solve                      │
429                 │                     │                            │
430                 │                     │ Configures  multicast  DNS │
431                 │                     │ on each interface. If  not │
432                 │                     │ specified,     systemd-re‐ │
433                 │                     │ solved's   default   value │
434                 │                     │ will   remain   untouched. │
435                 │                     │ See man 5  systemd.network 
436                 │                     │ for details.               │
437                 │                     │                            │
438                 │                     │ Only  applies when NameRe‐ 
439                 │                     │ solvingService=systemd.    │
440                 └─────────────────────┴────────────────────────────┘
441
442   Blacklist
443       The group [Blacklist] contains  settings  related  to  blacklisting  of
444       BSSes.  If iwd determines that a connection to a BSS fails for a reason
445       that indicates the BSS is currently misbehaving or misconfigured  (e.g.
446       timeouts, unexpected status/reason codes, etc), then iwd will blacklist
447       this BSS and avoid connecting to it for a period of  time.   These  op‐
448       tions  let  the  user  control  how long a misbehaved BSS spends on the
449       blacklist.
450
451                    ┌───────────────┬────────────────────────────┐
452                    │InitialTimeout │ Values:  uint64  value  in │
453                    │               │ seconds (default: 60)      │
454                    │               │                            │
455                    │               │ The  initial  time  that a │
456                    │               │ BSS spends on  the  black‐ │
457                    │               │ list.                      │
458                    └───────────────┴────────────────────────────┘
459
460
461
462
463                    │Multiplier     │ Values: unsigned int value │
464                    │               │ in seconds (default: 30)   │
465                    │               │                            │
466                    │               │ If the BSS was blacklisted │
467                    │               │ previously   and   another │
468                    │               │ connection   attempt   has │
469                    │               │ failed  after  the initial │
470                    │               │ timeout has expired,  then │
471                    │               │ the   BSS  blacklist  time │
472                    │               │ will be extended by a mul‐ │
473                    │               │ tiple  of  Multiplier  for │
474                    │               │ each unsuccessful  attempt │
475                    │               │ up  to  MaxiumTimeout time │
476                    │               │ in seconds.                │
477                    ├───────────────┼────────────────────────────┤
478                    │MaximumTimeout │ Values:  uint64  value  in │
479                    │               │ seconds (default: 86400)   │
480                    │               │                            │
481                    │               │ Maximum time that a BSS is │
482                    │               │ blacklisted.               │
483                    └───────────────┴────────────────────────────┘
484
485   Rank
486       The group [Rank] contains settings related to ranking of  networks  for
487       autoconnect purposes.
488
489                   ┌─────────────────┬────────────────────────────┐
490                   │BandModifier5Ghz │ Values:   floating   point │
491                   │                 │ value (default: 1.0)       │
492                   │                 │                            │
493                   │                 │ Increase or  decrease  the │
494                   │                 │ preference for 5GHz access │
495                   │                 │ points  by  increasing  or │
496                   │                 │ decreasing  the  value  of │
497                   │                 │ this modifier.  5GHz  net‐ │
498                   │                 │ works   are  already  pre‐ │
499                   │                 │ ferred due  to  their  in‐ │
500                   │                 │ crease  throughput  / data │
501                   │                 │ rate.  However, 5GHz  net‐ │
502                   │                 │ works are highly RSSI sen‐ │
503                   │                 │ sitive,  so  it  is  still │
504                   │                 │ possible for IWD to prefer │
505                   │                 │ 2.4Ghz APs in certain cir‐ │
506                   │                 │ cumstances.                │
507                   └─────────────────┴────────────────────────────┘
508
509   Scan
510       The  group  [Scan] contains settings related to scanning functionality.
511       No modification from defaults is normally required.
512
513              ┌──────────────────────────┬────────────────────────────┐
514              │DisablePeriodicScan       │ Values: true, false        
515              │                          │                            │
516              │                          │ Disable   periodic   scan. │
517              │                          │ Setting   this  option  to │
518              │                          │ 'true'  will  prevent  iwd 
519              │                          │ from  issuing the periodic │
520              │                          │ scans  for  the  available │
521              │                          │ networks   while   discon‐ │
522              │                          │ nected.  The  behavior  of │
523              │                          │ the  user-initiated  scans │
524              │                          │ isn't affected.  The peri‐ │
525              │                          │ odic  scan  is  enabled by │
526              │                          │ default.                   │
527              └──────────────────────────┴────────────────────────────┘
528
529              │InitialPeriodicScanInter‐ │ Values: unsigned int value │
530              │val                       │ in seconds (default: 10)   │
531              │                          │                            │
532              │                          │ The initial periodic  scan │
533              │                          │ interval upon disconnect.  │
534              ├──────────────────────────┼────────────────────────────┤
535              │MaximumPeriodicScanInter‐ │ Values: unsigned int value │
536              │val                       │ in seconds (default: 300)  │
537              │                          │                            │
538              │                          │ The  maximum periodic scan │
539              │                          │ interval.                  │
540              ├──────────────────────────┼────────────────────────────┤
541              │DisableRoamingScan        │ Values: true, false        
542              │                          │                            │
543              │                          │ Disable roaming scan. Set‐ │
544              │                          │ ting this option to 'true' │
545              │                          │ will prevent iwd from try‐ │
546              │                          │ ing  to  scan when roaming │
547              │                          │ decisions  are  activated. │
548              │                          │ This  can prevent iwd from │
549              │                          │ roaming properly, but  can │
550              │                          │ be useful for networks op‐ │
551              │                          │ erating  under   extremely │
552              │                          │ low   rssi   levels  where │
553              │                          │ roaming isn't possible.    │
554              └──────────────────────────┴────────────────────────────┘
555
556   IPv4
557       The group [IPv4] contains settings related to IPv4  network  configura‐
558       tion.
559
560                    ┌──────────────┬────────────────────────────┐
561                    │APAddressPool │ Values:    comma-separated │
562                    │              │ list of prefix-notation IP │
563                    │              │ strings                    │
564                    │              │                            │
565                    │              │ Defines  the  space of IPs │
566                    │              │ used   for   the    Access │
567                    │              │ Point-mode    subnet   ad‐ │
568                    │              │ dresses   and   the   DHCP │
569                    │              │ server.     Defaults    to │
570                    │              │ 192.168.0.0/16.  The  pre‐ │
571                    │              │ fix   length  decides  the │
572                    │              │ size  of  the  pool   from │
573                    │              │ which  an  address  is se‐ │
574                    │              │ lected but the actual sub‐ │
575                    │              │ net   size   (netmask)  is │
576                    │              │ based on  the  AP  profile │
577                    │              │ being  activated  and  de‐ │
578                    │              │ faults to 28 bits.  The AP │
579                    │              │ profile's   [IPv4].Address 
580                    │              │ setting   overrides    the │
581                    │              │ global   value  set  here. │
582                    │              │ Setting a  too  small  ad‐ │
583                    │              │ dress space will limit the │
584                    │              │ number  of  access  points │
585                    │              │ that can be running simul‐ │
586                    │              │ taneously on different in‐ │
587                    │              │ terfaces.                  │
588                    └──────────────┴────────────────────────────┘
589

SEE ALSO

591       iwd(8), iwd.network(5)
592

AUTHOR

594       Marcel      Holtmann      <marcel@holtmann.org>,      Denis     Kenzior
595       <denkenz@gmail.com>, Andrew  Zaborowski  <andrew.zaborowski@intel.com>,
596       Tim   Kourt   <tim.a.kourt@linux.intel.com>,  James  Prestwood  <prest‐
597       woj@gmail.com>
598
600       2013-2019 Intel Corporation
601
602
603
604
605iwd                            22 September 2019                 IWD.CONFIG(5)
Impressum