1WICKED-CONFIG(5) File Formats Manual WICKED-CONFIG(5)
2
3
4
6 wicked-config.xml - wicked configuration file
7
9 /etc/wicked/common.xml
10 /etc/wicked/server.xml
11 /etc/wicked/client.xml
12 /etc/wicked/nanny.xml
13
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 ├──────────────┼────────────┤
33 │wicked │ client.xml │
34 │wickedd │ server.xml │
35 │wickedd-nanny │ nanny.xml │
36 │wickedd-auto4 │ auto4.xml │
37 │wickedd-dhcp4 │ dhcp4.xml │
38 │wickedd-dhcp6 │ dhcp6.xml │
39 └──────────────┴────────────┘
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
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 ├─────────┼─────────────────────────────────────────────────────┤
168 │firmware │ Get configuration from firmware, usually iBFT │
169 │compat │ Load interface description using legacy ifcfg files │
170 │wicked │ 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
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 ├──────────────┼───────────────────────────────────────────────────────┤
232 │default-route │ system default route (IPv4 or IPv6) │
233 │hostname │ system hostname │
234 │dns │ update resolv.conf or dns server (via netconfig) │
235 │nis │ NIS client (via netconfig) │
236 │ntp │ NTP servers (via netconfig) │
237 │smb │ SMB settings (no netconfig module implemented) │
238 │nds │ NDS servers (no netconfig module implemented) │
239 │slp │ SLP client (no netconfig module implemented) │
240 │sip │ SIP client (no netconfig module implemented) │
241 │log │ syslog servers (no netconfig module implemented) │
242 │lpr │ print servers (no netconfig module implemented) │
243 │tz │ posix time zone (no netconfig module implemented) │
244 │mtu │ adjust interface mtu (dhcp4) │
245 │boot │ 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
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 ├────────┼────────┼───────────────────────────────────────────────────────┤
289 │rfc4361 │ dhcp6 │ use 0xff as type, followed by DHCPv6 IAID and DUID │
290 │rfc2132 │ hwaddr │ use hardware/link layer type, followed by the address │
291 │disable │ 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 ├──────────────┼───────┼──────────────────────────────────────────────────────────┤
388 │classless │ csr │ RFC 3442 classless static route option 121 │
389 │ms-classless │ mscsr │ MS classless static route option code 249 (pre RFC 3442) │
390 │static-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
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 ├─────────┼─────────────────────────────────────────────────────────────────────┤
577 │hostname │ system hostname (fqdn) │
578 │dns │ update resolv.conf or dns server (via netconfig) │
579 │ntp │ NTP servers (via netconfig) │
580 │sip │ SIP client (optional, no netconfig module implemented) │
581 │nis │ NIS client (optional, no netconfig module, not supported by ypbind) │
582 │tz │ posix time zone (no netconfig module implemented) │
583 │boot │ 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
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
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 ├────────────┼─────────────────────────────────────────────────────┤
736 │detect-once │ detect the control interface to use, once (default) │
737 │detect │ detect the control interface to use in each call │
738 │dbus │ communicate directly with teamd via dbus │
739 │unix │ 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 ├────────┼───────────────────────────────────────────┤
749 │netlink │ configure bonding via netlink (default) │
750 │sysfs │ configure bonding via sysfs (the old way) │
751 └────────┴───────────────────────────────────────────┘
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
819 wickedd(8), netconfig(8), RFC3942
820
822 Copyright (C) 2014-2016 SUSE LINUX GmbH, Nuernberg, Germany.
823
825 Please report bugs at <https://bugzilla.suse.com/>
826
828 Olaf Kirch
829
830
831
832 16 July 2012 WICKED-CONFIG(5)