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  ap‐
19       plications.   It is sourced by the other configuration files. It can be
20       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 oc‐
48              cur in the file.  The file referenced by an <include> element is
49              loaded  and  parsed at the time the <include> element is encoun‐
50              tered.
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. In‐
54              stead, 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 di‐
61              rectory. The optional mode attribute can be used to specify  the
62              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 di‐
75              rectory.  The optional mode attribute can be used to specify the
76              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 di‐
88              rectory.  The optional mode attribute can be used to specify the
89              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   Miscellaneous
96       debug  This element specifies the default debug facilities  to  be  en‐
97              abled.   Allowed is a comma separated list of supported facility
98              names, including set names such as all and most and names with a
99              "-" prepended for negated facilities, e.g. "all,-xpath".
100
101              The  'wicked  --debug  help' command shows valid facility names.
102              If a debug level is specified on the command  line  or  via  the
103              WICKED_DEBUG environment variable, the setting from the XML con‐
104              figuration file will be ignored.
105
106   DBus service parameters
107       All configuration options related to the DBus service are grouped below
108       the  <dbus> element. Currently, the following child elements are recog‐
109       nized:
110
111       service
112              This element specifies the DBus service name used, and must be a
113              valid DBus API name.  The default is "org.opensuse.Network".
114
115       schema This  element  specifies  the location of the schema files.  The
116              schema defines the various DBus APIs offered by the server,  and
117              how  portions of an interface XML description map to their argu‐
118              ments. The schema files do not contain  user-serviceable  parts,
119              so it's best to leave this option untouched.
120
121       Here's what the default configuration looks like:
122
123         <dbus>
124           <service name="org.opensuse.Network" />
125           <schema name="/usr/share/wicked/schema/wicked.xml" />
126         </dbus>
127

CLIENT ONLY OPTIONS

129       sources
130              This  specifies  a  list  of sources that the wicked client will
131              pick up interface configurations from,  and  their  load  order.
132              Child elements of <sources> must be called ifconfig, and are ex‐
133              pected to specify a location attribute.
134
135              The location attribute takes the form type:string, where  string
136              may be empty.
137
138              ┌─────────┬─────────────────────────────────────────────────────┐
139              │Type     │ Description                                         │
140              ├─────────┼─────────────────────────────────────────────────────┤
141firmware Get configuration from firmware, usually iBFT       
142compat   Load interface description using legacy ifcfg files 
143wicked   Load interface description using native wicked XML  
144              └─────────┴─────────────────────────────────────────────────────┘
145              The  firmware  type  takes no additional string parameter.  When
146              specifying either wicked, you can optionally specify a directory
147              where  to look for XML interface configurations. If no directory
148              is given, the path defaults to /etc/wicked/ifconfig.  When spec‐
149              ifying  either compat, you can optionally specify the ifcfg fla‐
150              vor, which can be either suse or redhat. If no flavor is  speci‐
151              fied,  the  result is implementation dependent - but usually, it
152              will pick the platform default it was compiled on.
153
154              The default configuration is this:
155
156                <sources>
157                  <ifconfig location="firmware:" />
158                  <ifconfig location="compat:" />
159                  <ifconfig location="wicked:" />
160                </sources>
161

ADDRESS CONFIGURATION OPTIONS

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

DHCP4 SUPPLICANT OPTIONS

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

DHCP6 SUPPLICANT OPTIONS

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

CUSTOM DHCP OPTIONS

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

SERVER ONLY OPTIONS

697       teamd
698
699              The <teamd> element permits to enable or disable  teamd  support
700              (inclusive  discovery  of  team  device details) in its <enable>
701              sub-element. Disabled by default, server.xml config enables  it.
702              Further, it permits to specify the control interface to communi‐
703              cate with teamd in the <ctl> sub-element,  using  the  following
704              options:
705
706              ┌────────────┬─────────────────────────────────────────────────────┐
707              │Option      │ Description                                         │
708              ├────────────┼─────────────────────────────────────────────────────┤
709detect-once │ detect the control interface to use, once (default) │
710detect      │ detect the control interface to use in each call    │
711dbus        │ communicate directly with teamd via dbus            │
712unix        │ use unix socket control interface via teamdctl tool │
713              └────────────┴─────────────────────────────────────────────────────┘
714       bonding
715
716              The  <bonding> element permits to specify whether to use netlink
717              or sysfs to configure the bonding in its <ctl> sub-element:
718
719              ┌────────┬───────────────────────────────────────────┐
720              │Option  │ Description                               │
721              ├────────┼───────────────────────────────────────────┤
722netlink │ configure bonding via netlink (default)   │
723sysfs   │ configure bonding via sysfs (the old way) │
724              └────────┴───────────────────────────────────────────┘

EXTENSIONS

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

SEE ALSO

792       wickedd(8), netconfig(8), RFC3942
793
795       Copyright (C) 2014-2016 SUSE LINUX GmbH, Nuernberg, Germany.
796

BUGS

798       Please report bugs at <https://bugzilla.suse.com/>
799

AUTHORS

801       Olaf Kirch
802
803
804
805                                 16 July 2012                 WICKED-CONFIG(5)
Impressum