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              │Country                    │ Value: Country  Code  (ISO │
376              │                           │ Alpha-2)                   │
377              │                           │                            │
378              │                           │ Requests  the  country  be │
379              │                           │ set for the  system.  Note │
380              │                           │ that  setting this is sim‐ │
381              │                           │ ply a request to  set  the │
382              │                           │ country,   and   does  not │
383              │                           │ guarantee the country will │
384              │                           │ be set. For a self-managed │
385              │                           │ wiphy it is never possible │
386              │                           │ to  set  the  country from │
387              │                           │ userspace. For  other  de‐ │
388              │                           │ vices  any  regulatory do‐ │
389              │                           │ main  request  is  just  a │
390              │                           │ 'hint' and ultimately left │
391              │                           │ up to the  kernel  to  set │
392              │                           │ the country.               │
393              └───────────────────────────┴────────────────────────────┘
394
395   Network
396       The group [Network] contains network configuration related settings.
397
398                 ┌─────────────────────┬────────────────────────────┐
399                 │EnableIPv6           │ Values: true, false        │
400                 │                     │                            │
401                 │                     │ Sets  the  global  default │
402                 │                     │ that tells iwd whether  it │
403                 │                     │ should  configure IPv6 ad‐ │
404                 │                     │ dresses and routes (either │
405                 │                     │ provided  via  static set‐ │
406                 │                     │ tings,  Router  Advertise‐ │
407                 │                     │ ments or DHCPv6 protocol). │
408                 │                     │ This setting is enabled by │
409                 │                     │ default.  This setting can │
410                 │                     │ also be  overridden  on  a │
411                 │                     │ per-network basis.         │
412                 ├─────────────────────┼────────────────────────────┤
413                 │NameResolvingService │ Values:  resolvconf,  sys‐ 
414                 │                     │ temd, none                 │
415                 │                     │                            │
416                 │                     │ Configures a  DNS  resolu‐ │
417                 │                     │ tion  method  used  by the │
418                 │                     │ system.                    │
419                 │                     │                            │
420                 │                     │ This configuration  option │
421                 │                     │ must  be  used in conjunc‐ │
422                 │                     │ tion  with  EnableNetwork‐ 
423                 │                     │ Configuration and provides │
424                 │                     │ the choice of  system  re‐ │
425                 │                     │ solver integration.        │
426                 │                     │                            │
427                 │                     │ If  not specified, systemd 
428                 │                     │ is used as default.        │
429                 │                     │                            │
430                 │                     │ If none is specified, then │
431                 │                     │ DNS and domain name infor‐ │
432                 │                     │ mation is ignored.         │
433                 ├─────────────────────┼────────────────────────────┤
434                 │RoutePriorityOffset  │ Values: uint32 value  (de‐ │
435                 │                     │ fault: 300)                │
436                 │                     │                            │
437                 │                     │ Configures  a route prior‐ │
438                 │                     │ ity  offset  used  by  the │
439                 │                     │ system  to  prioritize the │
440                 │                     │ default routes. The  route │
441                 │                     │ with lower priority offset │
442                 │                     │ is preferred.              │
443                 │                     │                            │
444                 │                     │ If not specified,  300  is │
445                 │                     │ used as default.           │
446                 └─────────────────────┴────────────────────────────┘
447
448   Blacklist
449       The  group  [Blacklist]  contains  settings  related to blacklisting of
450       BSSes.  If iwd determines that a connection to a BSS fails for a reason
451       that  indicates the BSS is currently misbehaving or misconfigured (e.g.
452       timeouts, unexpected status/reason codes, etc), then iwd will blacklist
453       this  BSS  and  avoid connecting to it for a period of time.  These op‐
454       tions let the user control how long a  misbehaved  BSS  spends  on  the
455       blacklist.
456
457
458
459
460
461
462
463
464
465                    ┌───────────────┬────────────────────────────┐
466                    │InitialTimeout │ Values:  uint64  value  in │
467                    │               │ seconds (default: 60)      │
468                    │               │                            │
469                    │               │ The initial  time  that  a │
470                    │               │ BSS  spends  on the black‐ │
471                    │               │ list.                      │
472                    ├───────────────┼────────────────────────────┤
473                    │Multiplier     │ Values: unsigned int value │
474                    │               │ in seconds (default: 30)   │
475                    │               │                            │
476                    │               │ If the BSS was blacklisted │
477                    │               │ previously   and   another │
478                    │               │ connection   attempt   has │
479                    │               │ failed after  the  initial │
480                    │               │ timeout  has expired, then │
481                    │               │ the  BSS  blacklist   time │
482                    │               │ will be extended by a mul‐ │
483                    │               │ tiple  of  Multiplier  for │
484                    │               │ each  unsuccessful attempt │
485                    │               │ up to  MaxiumTimeout  time │
486                    │               │ in seconds.                │
487                    ├───────────────┼────────────────────────────┤
488                    │MaximumTimeout │ Values:  uint64  value  in │
489                    │               │ seconds (default: 86400)   │
490                    │               │                            │
491                    │               │ Maximum time that a BSS is │
492                    │               │ blacklisted.               │
493                    └───────────────┴────────────────────────────┘
494
495   Rank
496       The  group  [Rank] contains settings related to ranking of networks for
497       autoconnect purposes.
498
499                   ┌─────────────────┬────────────────────────────┐
500                   │BandModifier5Ghz │ Values:   floating   point │
501                   │                 │ value (default: 1.0)       │
502                   │                 │                            │
503                   │                 │ Increase  or  decrease the │
504                   │                 │ preference for 5GHz access │
505                   │                 │ points  by  increasing  or │
506                   │                 │ decreasing  the  value  of │
507                   │                 │ this  modifier.  5GHz net‐ │
508                   │                 │ works  are  already   pre‐ │
509                   │                 │ ferred  due  to  their in‐ │
510                   │                 │ crease throughput  /  data │
511                   │                 │ rate.   However, 5GHz net‐ │
512                   │                 │ works are highly RSSI sen‐ │
513                   │                 │ sitive,  so  it  is  still │
514                   │                 │ possible for IWD to prefer │
515                   │                 │ 2.4Ghz APs in certain cir‐ │
516                   │                 │ cumstances.                │
517                   ├─────────────────┼────────────────────────────┤
518                   │BandModifier6Ghz │ Values:   floating   point │
519                   │                 │ value (default: 1.0)       │
520                   │                 │                            │
521                   │                 │ Increase  or  decrease the │
522                   │                 │ preference for 6GHz access │
523                   │                 │ points  by  increasing  or │
524                   │                 │ decreasing  the  value  of │
525                   │                 │ this modifier.  Since 6GHz │
526                   │                 │ networks are  highly  RSSI │
527                   │                 │ sensitive,  this  gives an │
528                   │                 │ option to prefer 6GHz  APs │
529                   │                 │ over 5GHz APs.             │
530                   └─────────────────┴────────────────────────────┘
531
532   Scan
533       The  group  [Scan] contains settings related to scanning functionality.
534       No modification from defaults is normally required.
535
536              ┌──────────────────────────┬────────────────────────────┐
537              │DisablePeriodicScan       │ Values: true, false        
538              │                          │                            │
539              │                          │ Disable   periodic   scan. │
540              │                          │ Setting   this  option  to │
541              │                          │ 'true'  will  prevent  iwd 
542              │                          │ from  issuing the periodic │
543              │                          │ scans  for  the  available │
544              │                          │ networks   while   discon‐ │
545              │                          │ nected.  The  behavior  of │
546              │                          │ the  user-initiated  scans │
547              │                          │ isn't affected.  The peri‐ │
548              │                          │ odic  scan  is  enabled by │
549              │                          │ default.                   │
550              ├──────────────────────────┼────────────────────────────┤
551              │InitialPeriodicScanInter‐ │ Values: unsigned int value │
552              │val                       │ in seconds (default: 10)   │
553              │                          │                            │
554              │                          │ The initial periodic  scan │
555              │                          │ interval upon disconnect.  │
556              ├──────────────────────────┼────────────────────────────┤
557              │MaximumPeriodicScanInter‐ │ Values: unsigned int value │
558              │val                       │ in seconds (default: 300)  │
559              │                          │                            │
560              │                          │ The  maximum periodic scan │
561              │                          │ interval.                  │
562              ├──────────────────────────┼────────────────────────────┤
563              │DisableRoamingScan        │ Values: true, false        
564              │                          │                            │
565              │                          │ Disable roaming scan. Set‐ │
566              │                          │ ting this option to 'true' │
567              │                          │ will prevent iwd from try‐ │
568              │                          │ ing  to  scan when roaming │
569              │                          │ decisions  are  activated. │
570              │                          │ This  can prevent iwd from │
571              │                          │ roaming properly, but  can │
572              │                          │ be useful for networks op‐ │
573              │                          │ erating  under   extremely │
574              │                          │ low   rssi   levels  where │
575              │                          │ roaming isn't possible.    │
576              └──────────────────────────┴────────────────────────────┘
577
578   IPv4
579       The group [IPv4] contains settings related to IPv4  network  configura‐
580       tion.
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599                    ┌──────────────┬────────────────────────────┐
600                    │APAddressPool │ Values:    comma-separated │
601                    │              │ list of prefix-notation IP │
602                    │              │ strings                    │
603                    │              │                            │
604                    │              │ Defines  the  space of IPs │
605                    │              │ used   for   the    Access │
606                    │              │ Point-mode    subnet   ad‐ │
607                    │              │ dresses   and   the   DHCP │
608                    │              │ server.     Defaults    to │
609                    │              │ 192.168.0.0/16.  The  pre‐ │
610                    │              │ fix   length  decides  the │
611                    │              │ size  of  the  pool   from │
612                    │              │ which  an  address  is se‐ │
613                    │              │ lected but the actual sub‐ │
614                    │              │ net   size   (netmask)  is │
615                    │              │ based on  the  AP  profile │
616                    │              │ being  activated  and  de‐ │
617                    │              │ faults to 28 bits.  The AP │
618                    │              │ profile's   [IPv4].Address 
619                    │              │ setting   overrides    the │
620                    │              │ global   value  set  here. │
621                    │              │ Setting a  too  small  ad‐ │
622                    │              │ dress space will limit the │
623                    │              │ number  of  access  points │
624                    │              │ that can be running simul‐ │
625                    │              │ taneously on different in‐ │
626                    │              │ terfaces.                  │
627                    └──────────────┴────────────────────────────┘
628

SEE ALSO

630       iwd(8), iwd.network(5)
631

AUTHOR

633       Marcel      Holtmann      <marcel@holtmann.org>,      Denis     Kenzior
634       <denkenz@gmail.com>, Andrew  Zaborowski  <andrew.zaborowski@intel.com>,
635       Tim   Kourt   <tim.a.kourt@linux.intel.com>,  James  Prestwood  <prest‐
636       woj@gmail.com>
637
639       2013-2019 Intel Corporation
640
641
642
643
644iwd                            22 September 2019                 IWD.CONFIG(5)
Impressum