1WICKED-CONFIG(5)              File Formats Manual             WICKED-CONFIG(5)
2
3
4

NAME

6       wicked-config.xml - wicked configuration file
7

SYNOPSIS

9       /etc/wicked/common.xml
10       /etc/wicked/server.xml
11       /etc/wicked/client.xml
12       /etc/wicked/nanny.xml
13

DESCRIPTION

15       These  files  contain  the  global configuration options for the wicked
16       network management service. All files follow the same XML schema.
17
18       common.xml contains common definitions  that  should  be  used  by  all
19       applications.   It  is sourced by the other configuration files. It can
20       be used to enable debugging across all wicked components, for instance.
21
22       Different components of wicked will load different  files  on  startup;
23       for  instance,  the wickedd server process will try to load server.xml.
24       If that file does not exist, it will fall back to common.xml and try to
25       read that directly.
26
27       The following table shows which wicked commands use which configuration
28       file:
29
30       ┌──────────────┬────────────┐
31       │Application   │ Filename   │
32       ├──────────────┼────────────┤
33wicked        client.xml 
34wickedd       server.xml 
35wickedd-nanny nanny.xml  
36wickedd-auto4 auto4.xml  
37wickedd-dhcp4 dhcp4.xml  
38wickedd-dhcp6 dhcp6.xml  
39       └──────────────┴────────────┘

GENERAL OPTIONS

41       The configuration file is an XML document; its root node must be called
42       <config>.
43
44       include
45              This  element can be used to refer to an additional XML configu‐
46              ration file. When parsing a configuration file, wicked will tra‐
47              verse  the  XML  hierarchy  once, in the order in which elements
48              occur in the file.  The file referenced by an <include>  element
49              is  loaded  and  parsed  at  the  time  the <include> element is
50              encountered.
51
52              Note that the contents of the file will not be "included" in the
53              way  you  would  expect  this  from  e.g.  a macro preprocessor.
54              Instead, the referenced file must be a proper XML document,  and
55              its top node must also be a config element.
56
57   Common pathnames
58       piddir This element specifies the directory used to write pid files.
59
60              The  path  attribute  of  this element contains the path to this
61              directory. The optional mode attribute can be  used  to  specify
62              the permissions of this directory.
63
64              The default is to use /run/wicked, mode 0755.
65
66                <statedir path="/run/wicked" mode="0755" />
67
68       statedir
69              This  element specifies the location of the directory containing
70              various files relating to the state of the server. For instance,
71              temporary  files are stored here when starting external programs
72              like pppd(8).
73
74              The path attribute of this element contains  the  path  to  this
75              directory.  The  optional  mode attribute can be used to specify
76              the permissions of this directory.
77
78              The default is to use /run/wicked, mode 0755.
79
80                <statedir path="/run/wicked" mode="0755" />
81
82       storedir
83              This element specifies the location of the directory  containing
84              various  (reboot)  persistent  data. For instance, the DHCP DUID
85              and lease files are is stored in this directory.
86
87              The path attribute of this element contains  the  path  to  this
88              directory.  The  optional  mode attribute can be used to specify
89              the permissions of this directory.
90
91              The default is to use /var/lib/wicked, mode 0755.
92
93                <statedir path="/var/lib/wicked" mode="0755" />
94
95   Nanny enablement
96       use-nanny
97              This element controls whether the client will try to apply  con‐
98              figuration  changes  immediately  (one shot ifup), or whether it
99              will forward the configuration to nanny.
100
101              When applying an interface configuration immediately to wickedd,
102              it  may fail or not complete in the specified time for a variety
103              of transient reasons,  such  as  an  Ethernet  cable  not  being
104              plugged in.
105
106              When managing an interface through nanny, the configuration will
107              be applied to nanny, which will apply it to wickedd when certain
108              conditions  are  met  such as when the device appears (interface
109              hotplugging) or continue with IP setup, when the link  detection
110              was  successful  for a device.  Nanny will also reapply the con‐
111              figurations to wickedd after restart (e.g. update)  and  trigger
112              lease confirmations.
113
114              The  <use-nanny> element controls the default behavior. When set
115              to true, wicked will manage all interfaces  through  nanny.   If
116              set  to  false,  all interface changes will be applied directly.
117              The default value is false.
118
119              To enable nanny at installation time, use the nanny=1  installer
120              (linuxrc) boot parameter.
121
122   Miscellaneous
123       debug  This  element  specifies  the  default  debug  facilities  to be
124              enabled.  Allowed is a comma separated list of supported  facil‐
125              ity  names,  including  set names such as all and most and names
126              with a "-" prepended for negated facilities, e.g. "all,-xpath".
127
128              The 'wicked --debug help' command shows  valid  facility  names.
129              If  a  debug  level  is specified on the command line or via the
130              WICKED_DEBUG environment variable, the setting from the XML con‐
131              figuration file will be ignored.
132
133   DBus service parameters
134       All configuration options related to the DBus service are grouped below
135       the <dbus> element. Currently, the following child elements are  recog‐
136       nized:
137
138       service
139              This element specifies the DBus service name used, and must be a
140              valid DBus API name.  The default is "org.opensuse.Network".
141
142       schema This element specifies the location of the  schema  files.   The
143              schema  defines the various DBus APIs offered by the server, and
144              how portions of an interface XML description map to their  argu‐
145              ments.  The  schema files do not contain user-serviceable parts,
146              so it's best to leave this option untouched.
147
148       Here's what the default configuration looks like:
149
150         <dbus>
151           <service name="org.opensuse.Network" />
152           <schema name="/usr/share/wicked/schema/wicked.xml" />
153         </dbus>
154

CLIENT ONLY OPTIONS

156       sources
157              This specifies a list of sources that  the  wicked  client  will
158              pick  up  interface  configurations  from, and their load order.
159              Child elements of <sources> must be  called  ifconfig,  and  are
160              expected to specify a location attribute.
161
162              The  location attribute takes the form type:string, where string
163              may be empty.
164
165              ┌─────────┬─────────────────────────────────────────────────────┐
166              │Type     │ Description                                         │
167              ├─────────┼─────────────────────────────────────────────────────┤
168firmware Get configuration from firmware, usually iBFT       
169compat   Load interface description using legacy ifcfg files 
170wicked   Load interface description using native wicked XML  
171              └─────────┴─────────────────────────────────────────────────────┘
172              The firmware type takes no additional  string  parameter.   When
173              specifying either wicked, you can optionally specify a directory
174              where to look for XML interface configurations. If no  directory
175              is given, the path defaults to /etc/wicked/ifconfig.  When spec‐
176              ifying either compat, you can optionally specify the ifcfg  fla‐
177              vor,  which can be either suse or redhat. If no flavor is speci‐
178              fied, the result is implementation dependent - but  usually,  it
179              will pick the platform default it was compiled on.
180
181              The default configuration is this:
182
183                <sources>
184                  <ifconfig location="firmware:" />
185                  <ifconfig location="compat:" />
186                  <ifconfig location="wicked:" />
187                </sources>
188

ADDRESS CONFIGURATION OPTIONS

190       The  <addrconf>  element  is evaluated by server applications only, and
191       controls the behavior of dynamic address configuration  protocols  such
192       as DHCP. This options to blacklist e.g. certain DHCP servers, and which
193       information provided by address configuration to apply.
194
195       default-allow-update
196              Most dynamic address configuration protocols, including DHCP, do
197              not  just  provide a list of addresses and routes to install for
198              the managed network interface, but can be used to provide infor‐
199              mation such as a list of DNS servers, directory information (for
200              e.g. NIS), etc. A system receiving that information is  free  to
201              reconfigure some of its services based on this information.  For
202              instance, it makes a lot of  sense  to  configure  the  resolver
203              library  to  use  the DNS servers specified by a DHCP server. On
204              the other hand, you may  want  to  ignore  any  NIS  information
205              received via DHCP.
206
207              The  <default-allow-update>  is  applied to static and intrinsic
208              leases, which do not have an own, type and address  family  spe‐
209              cific  <allow-update>  element  as  available under the <dhcp6>,
210              <dhcp4>, <auto6> and <auto4> sub-elements, which support a  sub-
211              set of the possible facilities listed here.  The <default-allow-
212              update> and the type specific <allow-update> elements enable you
213              to  control which system services wicked will (request and) con‐
214              sider to update in the system.
215
216              It  contains  a  list  of  either  empty   XML   elements   e.g.
217              (<dns/><ntp/>)  naming system the facilities or alternatively, a
218              space separated string list (dns ntp) with the  facility  names.
219              The  special  elements  default, none and all enable and disable
220              the default, none and all updates, respectively. A no- or a - in
221              the  front of a facility name permits to remove/disable a facil‐
222              ity from the currently applied set and enable further  supported
223              facilities, e.g. default,-nis,slp is applying a modified default
224              set with disabled nis and  the  optional  slp  facility  enabled
225              additionally.
226
227              The following updater facilities are currently defined:
228
229              ┌──────────────┬───────────────────────────────────────────────────────┐
230              │Name          │ Description                                           │
231              ├──────────────┼───────────────────────────────────────────────────────┤
232default-route system default route (IPv4 or IPv6)                   
233hostname      system hostname                                       
234dns           update resolv.conf or dns server (via netconfig)      
235nis           NIS client (via netconfig)                            
236ntp           NTP servers (via netconfig)                           
237smb           SMB settings (no netconfig module implemented)        
238nds           NDS servers (no netconfig module implemented)         
239slp           SLP client (no netconfig module implemented)          
240sip           SIP client (no netconfig module implemented)          
241log           syslog servers (no netconfig module implemented)      
242lpr           print servers (no netconfig module implemented)       
243tz            posix time zone (no netconfig module implemented)     
244mtu           adjust interface mtu (dhcp4)                          
245boot          root-path (dhcp4)/boot-url (dhcp6) used in the initrd 
246              └──────────────┴───────────────────────────────────────────────────────┘
247
248              Note  that  administrators wishing to support currently unimple‐
249              mented updaters can do so by configuring external updaters using
250              the <system-updater> extensions described below.
251
252       dhcp4  This  element  can  be used to control the behavior of the DHCP4
253              supplicant. See below for a list of options.
254
255       dhcp6  This element can be used to control the behavior  of  the  DHCP6
256              supplicant. See below for a list of options.
257
258       auto6  This  element  can be used to control the behavior of AUTO6 pro‐
259              cessing.
260
261

DHCP4 SUPPLICANT OPTIONS

263       The DHCP4 client can be configured through the  options  listed  below.
264       All of them must be nested in the config node like this:
265
266         <addrconf>
267           <dhcp4>
268             ...
269           </dhcp4>
270         </addrconf>
271
272       or inside a device name context like:
273
274         <addrconf>
275           <dhcp4>
276             <device name="eth0" >
277               ...
278             </device>
279           </dhcp4>
280         </addrconf>
281
282
283       create-cid
284              Specifies the standard client-id type to use:
285
286              ┌────────┬────────┬───────────────────────────────────────────────────────┐
287              │Type    │ Alias  │ Description                                           │
288              ├────────┼────────┼───────────────────────────────────────────────────────┤
289rfc4361 dhcp6  │ use 0xff as type, followed by DHCPv6 IAID and DUID    │
290rfc2132 hwaddr │ use hardware/link layer type, followed by the address │
291disable none   │ disables creation (custom client-id is send if given) │
292              └────────┴────────┴───────────────────────────────────────────────────────┘
293       When the interface configuration does not provide an explicit client-id
294       (DHCLIENT_CLIENT_ID in ifcfg files  or  <client-id>  xml  config/policy
295       node),  wicked  will  generate  a DHCPv4 client-id as specified in this
296       option.
297
298       When set to rfc4361, wicked will create a DHCPv4  client-id  using  the
299       DHCPv6  IAID  and  DUID  (see  <dhcp6><default-duid> option).  This new
300       rfc4361 client-id is required to perform DDNS updates for ipv4 (A)  and
301       ipv6 (AAAA) address records in the same DNS zone (domain) and mandatory
302       to use on infiniband interfaces.
303
304       When set to rfc2132, wicked will create a DHCPv4  client-id  using  the
305       network  interface  hardware-type  and  address.  This may be needed to
306       maintain compatibility  to  e.g.  DHCPv4  servers  with  static  leases
307       explicitly  bound to a rfc2132 client-id or having trouble to provide a
308       lease to a dhcp4 client using the new and longer rfc4361 client-id.
309
310       When set to disable, no  client-id  is  created  and  send  by  default
311       (except when the interface config request to acquire a lease contains a
312       custom/explicit one).
313
314       When  unspecified,  the  default  behavior  depends  on  the  --enable-
315       dhcp4-rfc4361-cid  (default)  and --disable-dhcp4-rfc4361-cid configure
316       options, allowing to revert to use the old rfc2132 client-id at compile
317       time, i.e. to prereserve behavior like in older releases, but permit to
318       change to enable the new rfc4361 client-id default at runtime.
319
320       Note, that a change of the client-id usually causes to disassociate the
321       lease  and/or  DNS  records, because it is used in the DHCID DNS record
322       (see rfc4701).
323
324
325       vendor-class
326              Specifies the string to be used as the  vendor-class  option  in
327              the DHCP request. By default, no vendor-class option is sent.
328
329
330       lease-time
331              Specifies the lease time to request in the DHCP request, in sec‐
332              onds. This also caps the lease time that can be requested in  an
333              interface  configuration; any lease-time specified there will be
334              silently limited to what was specified in the global  configura‐
335              tion  file. The following will set the default lease time to one
336              hour:
337
338                <lease-time>3600</lease-time>
339
340       ignore-server
341              Using the ip attribute of this element, you can specify  the  IP
342              or HW address (currently ethernet devices only) of a faulty DHCP
343              server that should be ignored:
344
345                  <ignore-server   ip="192.168.8.1"   />        <ignore-server
346              mac="52:54:00:02:c2:67" />
347
348
349       prefer-server
350              Specify  a  preferred DHCP server, together with a numeric value
351              indicating its preference. Again, the address of the  server  is
352              specified using the ip or mac attribute.
353
354              The  numeric preference value is given by the weight, and should
355              range from -1 to 100. Higher numbers indicate a  higher  prefer‐
356              ence.   A negative value will cause the server to be ignored. If
357              a response from a server with a weight of 100  is  received,  it
358              will  be  selected  immediately.  Otherwise, the supplicant will
359              wait for about one second, and select the server with the  high‐
360              est preference afterwards.
361
362              The  special keywords never and always correspond to -1 and 100,
363              respectively. If no weight attribute is given,  it  defaults  to
364              always (100).
365
366              The  following  example  will ignore 192.168.8.1, always use the
367              information from 192.168.8.10 if available,  and  fall  back  to
368              192.168.8.7 if not:
369
370                <prefer-server ip="192.168.8.1"  weight="never" />
371                <prefer-server mac="02:03:04:05:06:07" weight="always" />
372                <prefer-server ip="192.168.8.7"  weight="50" />
373
374
375       allow-update
376              Specify  the  list of system services that wicked will configure
377              based on the DHCP lease received. For the syntax  of  this  ele‐
378              ment,  please  refer  to the description of default-allow-update
379              above. dhcp4 supports all update facilities.
380
381       route-options
382              Specify a space separated list of  routing  options  to  request
383              from dhcp4 server.
384
385              ┌──────────────┬───────┬──────────────────────────────────────────────────────────┐
386              │Name          │       │ Alias                                                    │
387              ├──────────────┼───────┼──────────────────────────────────────────────────────────┤
388classless     csr   RFC 3442 classless static route option 121               
389ms-classless  mscsr MS classless static route option code 249 (pre RFC 3442) 
390static-routes class Obsolete option 33 requesting static class routes        
391              └──────────────┴───────┴──────────────────────────────────────────────────────────┘
392
393              The  RFC  3442 classless static route option provides all routes
394              with a netmask, includes the default routers  and  has  priority
395              over  other routing options.  By default, wicked requests class‐
396              less (121) as well as class static routes (33) and  the  default
397              routers option (3) (when enabled in allow-update) to be compati‐
398              ble to old servers or servers not configured to  provide  class‐
399              less, but only a default router option.
400
401
402       define Permits  to  define  list  of custom dhcp options not covered by
403              wicked yet.  The dhcp4 option codes are 8-bit (1..254) bytes.
404
405              For non-standard options, it is recommended is to use the DHCPv4
406              private  option  code range 224 to 254, see RFC3942 (section 4),
407              RFC 2939 and  www.iana.org/assignments/bootp-dhcp-parameters  to
408              avoid  conflicts  with  options  that  are or may be defined and
409              implemented later.
410
411              To request support for a specific standard option, issue a  fea‐
412              ture request at https://fate.suse.com/ or https://features.open
413              suse.org/ (hermes).  See CUSTOM DHCP OPTIONS  section  for  more
414              details.
415
416

DHCP6 SUPPLICANT OPTIONS

418       The  DHCP6  client  can be configured through the options listed below.
419       All of them must be nested in the config node like this:
420
421         <addrconf>
422           <dhcp6>
423             ...
424           </dhcp6>
425         </addrconf>
426
427       or inside a device name context like:
428
429         <addrconf>
430           <dhcp6>
431             <device name="eth0" >
432               ...
433             </device>
434           </dhcp6>
435         </addrconf>
436
437
438       default-duid
439              DHCPv6 uses a so-called DUID to identify a DHCP  client  and  an
440              IAID, that refers to an interface.
441              DHCPv4  now  also  defaults to construct its client-id using the
442              DHCPv6 IAID and DUID as well (see <dhcp4><create-cid> option).
443              By default, wickedd-dhcp6 will try to generate a DUID  based  on
444              the link layer address (MAC) of the device and time (DUID-LLT).
445
446              The  default-duid  element permits to override this behavior and
447              either specify an explicit DUID as a string of  colon  separated
448              hex octets, e.g.:
449                    <default-duid>00:03:00:01:02:00:00:00:00:02</default-duid>
450              or an advise which duid type to construct or import expressed in
451              a child element:
452                    <default-duid><duid type element/></default-duid>
453              using one of the following duid type elements:
454
455              llt, DUID type 1, Link-layer address plus time:
456
457                     Permits to specify the link/hardware type and address  in
458                     its hardware and address elements, e.g.:
459                             <llt>
460                               <hardware>ethernet</hardware><address>02:00:00:00:00:02</address>
461                             </llt>
462                     Without  arguments, wicked will create the duid-llt using
463                     the hardware type and address of the actual  device  that
464                     requests  a  duid  first.  The time inside of the DUID is
465                     set automatically to the duid creation time.
466
467              en, DUID type 2, Vendor Based on IANA Enterprise Number:
468
469                     Permits to specify a vendor type  DUID-EN  based  on  the
470                     IANA assigned enterprise number and an machine identifier
471                     specified in the enterprise-number  and  identifier  ele‐
472                     ments, e.g. using IANA number 7057 assigned to SUSE:
473                             <en>
474                               <enterprise-number>7057</enterprise-number>
475                               <identifier>02:00:00:00:00:02</identifier>
476                             </en>
477
478
479              ll, DUID type 3, Link-layer address (without time):
480                     Usage  is  as for type 1 duid llt, the duid does not con‐
481                     tain a time.
482
483              uuid, DUID type 4, UUID-Based Unique Identifier:
484                     Permits to specify the effective UUID to use, e.g.:
485                             <uuid>80d732e7-b8dc-45ef-bdae-f9f5e6925cef</uuid>
486                     or import it from /etc/machine-id file:
487                             <uuid><machine-id/></uuid>
488                     or using an explicit path to the machine-id file:
489                             <uuid><machine-id>/etc/machine-id</machine-id></uuid>
490                     or the DMI product id (problematic, may be not  available
491                     or not unique):
492                             <uuid><dmi-product-id/></uuid>
493                     Without arguments, wicked will try to import the machine-
494                     id with a fallback to the DMI product id when no machine-
495                     id file exists.
496
497              Additionally,  the  default-duid  element  supports a per-device
498              attribute.  When enabled via <default-duid  per-device="true"/>,
499              wicked  changes to a non-standard behavior and maintains a sepa‐
500              rate duid for each device instead of the same  ("default")  DUID
501              for all interfaces and a per device/interface IAID.
502
503              This  permits  to workaround some special cases, where the hosts
504              should appear to the server using multiple identities,  that  is
505              to  behave  as  multiple  machines  instead as one with multiple
506              interfaces.
507
508
509              The   wickedd   daemons   store   the   generated    DUIDs    in
510              /run/wicked/duid.xml  file. The wicked duid utility command per‐
511              mits to review and modify the duid as needed.
512
513              Note: When you change the DUID, make sure to restart the wickedd
514              service.
515
516       lease-time
517              Specifies the lease time to request in the DHCP request, in sec‐
518              onds. This also caps the lease time that can be requested in  an
519              interface  configuration; any lease-time specified there will be
520              silently limited to what was specified in the global  configura‐
521              tion  file. The following will set the default lease time to one
522              hour:
523
524                <lease-time>3600</lease-time>
525
526       release-retransmits
527              Specifies the number of lease  release  retransmissions  in  the
528              range 1..5.  Default is to send up to 5 (REL_MAX_RC) retransmis‐
529              sions.
530
531
532       info-refresh-time
533              Specifies a different default for the RFC4242 info refresh  time
534              used when the dhcp6 server does not provide any and permits also
535              to  adjust  the  acceptable  time  range  in  the  min  and  max
536              attributes, e.g.:
537
538                <info-refresh-time min= 600" max="604800">86400</info-refresh-
539              time>
540
541       prefer-server
542              Specify a preferred DHCP server, together with a  numeric  value
543              indicating  its  preference.  The server is identified using its
544              DUID, which has to be specified via the id attribute.
545
546              The numeric preference value is given by the weight, and  should
547              range  from -1 to 255.  Higher numbers indicate a higher prefer‐
548              ence.  A negative value will cause the server to be ignored.  If
549              a  response  from  a server with a weight of 255 is received, it
550              will be selected immediately.  Otherwise,  the  supplicant  will
551              wait  for  about  one second, and select the server providing an
552              offer with the best request match  and  the  highest  preference
553              afterwards.
554
555              The  special keywords never and always correspond to -1 and 255,
556              respectively. If no weight attribute is given,  it  defaults  to
557              always (255).
558
559              The  following  example  will  ignore DHCP offers from the first
560              server, always use the information from the  second  (if  avail‐
561              able), and fall back to the third if not:
562
563                <prefer-server id="00:03:00:01:02:03:04:05:06:07" weight="never" />
564                <prefer-server ip="2001:DB8::1" weight="always" />
565                <prefer-server ip="2001:DB8::2" weight="50" />
566
567
568       allow-update
569              Specify  the  list of system services that wicked will configure
570              based on the DHCP lease received. For the syntax  of  this  ele‐
571              ment,  please  refer  to the description of default-allow-update
572              above. DHCPv6 allows the following update facilities:
573
574              ┌─────────┬─────────────────────────────────────────────────────────────────────┐
575              │Name     │ Description                                                         │
576              ├─────────┼─────────────────────────────────────────────────────────────────────┤
577hostname system hostname (fqdn)                                              
578dns      update resolv.conf or dns server (via netconfig)                    
579ntp      NTP servers (via netconfig)                                         
580sip      SIP client (optional, no netconfig module implemented)              
581nis      NIS client (optional, no netconfig module, not supported by ypbind) 
582tz       posix time zone (no netconfig module implemented)                   
583boot     boot-url used in the initrd                                         
584              └─────────┴─────────────────────────────────────────────────────────────────────┘
585
586              Note: DHCPv6 protocol does not provide any  options  to  request
587              routing  settings,  which are applied via a router advertisement
588              (IPv6 RA).
589
590
591       define Permits to define list of custom dhcp  options  not  covered  by
592              wicked  yet.  The dhcp6 option codes are 16-bit (1..65534) inte‐
593              gers.
594
595              See    http://www.iana.org/assignments/dhcpv6-parameters     and
596              RFC7227.
597
598              To  request support for a specific standard option, issue a fea‐
599              ture request at https://fate.suse.com/ or https://features.open
600              suse.org/  (hermes).   See  CUSTOM DHCP OPTIONS section for more
601              details.
602
603
604       Note:  The DHCPv6 protocol does not define any routing  options,  which
605              are  applied by IPv6 Router Advertisement (RA) or require static
606              configuration.  The current NIS / ypbind implementation on linux
607              does supported IPv6 at all.
608
609

CUSTOM DHCP OPTIONS

611       A  custom option defines a name for a dhcp option code and a format how
612       to interpret raw data of the dhcp option.  This  option  definition  is
613       used to parse and format lease-xml files, (format) leaseinfo dump files
614       and the name can be used to request options (oro alias  option-request-
615       option).
616
617       The name has to be a valid keyword and is restricted to a word of 1..63
618       alphanumeric and "-" characters (same to a hostname without any dots).
619
620       The  current  implementation  supports  the  following   simple   types
621       (scalars):
622
623       opaque [fixed-length="<length in bytes>" | embedded-
624       length="1|2|uint8|uint16"]
625              Opaque data or not printable string formatted  as  a  hex-string
626              (xx:xx:xx) with variable length. The fixed-length attribute per‐
627              mits adjust it to a \0 padded fixed-length data  field  and  the
628              embedded-length  attribute to interpret the initial 1 (uint8) or
629              2 (uint16) bytes as data length (RFC7227).
630
631       string [fixed-length="<length in bytes>" | embedded-
632       length="1|2|uint8|uint16"]
633              A  printable  variable-length string (without a \0 null-termina‐
634              tion).  The fixed-length attribute permits to adjust it to a  \0
635              padded  fixed-length string and the embedded-length attribute to
636              interpret the initial 1 (uint8)  or  2  (uint16)  bytes  as  the
637              string length (RFC7227).
638
639       bool   A single byte value interpreted as boolean (0 is "false", other‐
640              wise "true").
641
642       int8 | int16 | int32 | int64 uint8 | uint16 | uint32 | uint64 [nota‐
643       tion="hex"]
644              A signed or unsigned integer in decimal or optionally, in a 0x..
645              hex notation.
646
647       ipv4-address | ipv6-address
648              IPv4 and IPv6 address types
649
650       ipv4-prefix | ipv6-prefix
651              An RFC3442 / RFC7227 prefix (destination descriptor)  with  com‐
652              pact  encoded  prefix-length  byte  followed  by the significant
653              octets of the network address.
654
655       These simple types can be combined together in structs and arrays.
656
657       A structs consists of one or more members, which contain a name  and  a
658       member type, struct or array. The last member in a struct is allowed to
659       contain be variable length type.  An array contains an element name and
660       fixed-length type or struct.
661
662       A  simple  type can be specified in the node name (<string/>) or in the
663       data of the type node (<type>string</type>).
664
665       Examples:
666
667         <!--
668              global or device specific definitions of dhcp4/dhcp6 options
669              under <config><addrconf><dhcp4> or <config><addrconf><dhcp6>
670         -->
671         <define>
672           <option>
673             <code>224</code>
674             <name>foo-server</name>
675             <type>ipv4-address</type>
676           </option>
677           <option>
678             <code>225</code>
679             <name>foo-path</name>
680             <string/>
681           </option>
682           <option>
683             <code>250</code>
684             <name>test-cls-routes</name> <!-- RFC3442 classless route format -->
685             <array>
686               <name>route</name>
687               <struct>
688                 <member>
689                   <name>destination</name>
690                   <ipv4-prefix/>
691                 </member>
692                 <member>
693                   <name>gateway</name>
694                   <ipv4-address/>
695                 </member>
696               </struct>
697             </array>
698           </option>
699           <option>
700             <code>251</code>
701             <name>six-addresses</code>
702             <array>
703               <name>ip</name>
704               <ipv6-address/>
705             </array>
706           </option>
707         </define>
708
709       To test the option definition, the "wicked test" call can be used:
710
711        wicked test dhcp4 --request - eth1 <<EOF
712         <request type= offer">
713           <request-options>
714             <option>224</option>
715             <option>test-cls-routes</option>
716           </request-options>
717         </request>
718        EOF
719       before adding the option requests to the ifcfg or xml configuration and
720       restarting wickedd ("rcwickedd restart") to apply to the supplicant.
721
722

SERVER ONLY OPTIONS

724       teamd
725
726              The  <teamd>  element permits to enable or disable teamd support
727              (inclusive discovery of team device  details)  in  its  <enable>
728              sub-element.  Disabled by default, server.xml config enables it.
729              Further, it permits to specify the control interface to communi‐
730              cate  with  teamd  in the <ctl> sub-element, using the following
731              options:
732
733              ┌────────────┬─────────────────────────────────────────────────────┐
734              │Option      │ Description                                         │
735              ├────────────┼─────────────────────────────────────────────────────┤
736detect-once │ detect the control interface to use, once (default) │
737detect      │ detect the control interface to use in each call    │
738dbus        │ communicate directly with teamd via dbus            │
739unix        │ use unix socket control interface via teamdctl tool │
740              └────────────┴─────────────────────────────────────────────────────┘
741       bonding
742
743              The <bonding> element permits to specify whether to use  netlink
744              or sysfs to configure the bonding in its <ctl> sub-element:
745
746              ┌────────┬───────────────────────────────────────────┐
747              │Option  │ Description                               │
748              ├────────┼───────────────────────────────────────────┤
749netlink │ configure bonding via netlink (default)   │
750sysfs   │ configure bonding via sysfs (the old way) │
751              └────────┴───────────────────────────────────────────┘

EXTENSIONS

753       The  functionality of wickedd can be extended through external commands
754       and shell scripts. All of these extensions are declared in  server.xml,
755       and all of them follow the same pattern.
756
757       Script extensions
758              Scripts  are  specified via the <script> element, which needs to
759              provide a name attribute and a  command  attribute.  Again,  the
760              name  serves  as  an identifier, while the command specifies the
761              command to be invoked.  wicked comes with a (simple) parser  for
762              this,  which  splits up this command into a argument array which
763              is passed to execve(2) eventually.
764
765              An example would look like this:
766
767                <script name="install"
768                        command="/etc/wicked/extensions/hostname install"/>
769
770              When defining script extensions, it is possible to define  addi‐
771              tional environment variables that get passed to the script. This
772              mechanism is explained in more detail below.
773
774       Extensions are always grouped under a  parent  element.  The  following
775       configuration elements can contain extensions:
776
777   System updaters
778       These  specify  extensions  for managing files like resolv.conf, or the
779       system hostname, based on information contained through an address con‐
780       figuration  protocol  like  DHCP. The configuration element must have a
781       name attribute that specifies the  system  service  to  configure,  and
782       include  extensions  for  backing  up  the  current  configuration, for
783       installing new settings, and for restoring the backup.
784
785       The configuration for the hostname updater might look like this:
786
787         <system-updater name= hostname">
788           <script name="backup" command="/etc/wicked/extensions/hostname backup"/>
789           <script name="restore" command="/etc/wicked/extensions/hostname restore"/>
790           <script name="install" command="/etc/wicked/extensions/hostname install"/>
791           <script name="install" command="/etc/wicked/extensions/hostname remove"/>
792         </system-updater>
793
794       Currently, wicked supports generic and hostname system  updaters.   The
795       generic  updater operates on data which can be set via netconfig (refer
796       to netconfig(7). The hostname updater sets the system hostname.
797
798       This extension class supports shell scripts only.
799
800   Firmware discovery
801       Some platforms support iBFT or similar mechanisms to provide  the  con‐
802       figuration for a network device through the firmware (so that it's pos‐
803       sible to boot off that device).  In order to support these  mechanisms,
804       wicked  supports  extensions  to  discover  such  configuration through
805       firmware discovery extensions.
806
807         <netif-firmware-discovery>
808           <script name= ibft" command="/etc/wicked/extensions/ibft" />
809         </netif-firmware-discovery>
810
811       When looking for firmware interface configuration, wicked  will  invoke
812       all  these scripts in turn and parse their output. Scripts are expected
813       to return XML documents that contain zero or more <interface>  elements
814       describing the configuration.
815
816       This extension class supports shell scripts only.
817

SEE ALSO

819       wickedd(8), netconfig(8), RFC3942
820
822       Copyright (C) 2014-2016 SUSE LINUX GmbH, Nuernberg, Germany.
823

BUGS

825       Please report bugs at <https://bugzilla.suse.com/>
826

AUTHORS

828       Olaf Kirch
829
830
831
832                                 16 July 2012                 WICKED-CONFIG(5)
Impressum