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 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 ├──────────────┼────────────┤
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 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
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 ├─────────┼─────────────────────────────────────────────────────┤
141 │firmware │ Get configuration from firmware, usually iBFT │
142 │compat │ Load interface description using legacy ifcfg files │
143 │wicked │ 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
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 ├──────────────┼───────────────────────────────────────────────────────┤
205 │default-route │ system default route (IPv4 or IPv6) │
206 │hostname │ system hostname │
207 │dns │ update resolv.conf or dns server (via netconfig) │
208 │nis │ NIS client (via netconfig) │
209 │ntp │ NTP servers (via netconfig) │
210 │smb │ SMB settings (no netconfig module implemented) │
211 │nds │ NDS servers (no netconfig module implemented) │
212 │slp │ SLP client (no netconfig module implemented) │
213 │sip │ SIP client (no netconfig module implemented) │
214 │log │ syslog servers (no netconfig module implemented) │
215 │lpr │ print servers (no netconfig module implemented) │
216 │tz │ posix time zone (no netconfig module implemented) │
217 │mtu │ adjust interface mtu (dhcp4) │
218 │boot │ 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
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 ├────────┼────────┼───────────────────────────────────────────────────────┤
262 │rfc4361 │ dhcp6 │ use 0xff as type, followed by DHCPv6 IAID and DUID │
263 │rfc2132 │ hwaddr │ use hardware/link layer type, followed by the address │
264 │disable │ 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 ├──────────────┼───────┼──────────────────────────────────────────────────────────┤
361 │classless │ csr │ RFC 3442 classless static route option 121 │
362 │ms-classless │ mscsr │ MS classless static route option code 249 (pre RFC 3442) │
363 │static-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
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 ├─────────┼─────────────────────────────────────────────────────────────────────┤
550 │hostname │ system hostname (fqdn) │
551 │dns │ update resolv.conf or dns server (via netconfig) │
552 │ntp │ NTP servers (via netconfig) │
553 │sip │ SIP client (optional, no netconfig module implemented) │
554 │nis │ NIS client (optional, no netconfig module, not supported by ypbind) │
555 │tz │ posix time zone (no netconfig module implemented) │
556 │boot │ 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
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
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 ├────────────┼─────────────────────────────────────────────────────┤
709 │detect-once │ detect the control interface to use, once (default) │
710 │detect │ detect the control interface to use in each call │
711 │dbus │ communicate directly with teamd via dbus │
712 │unix │ 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 ├────────┼───────────────────────────────────────────┤
722 │netlink │ configure bonding via netlink (default) │
723 │sysfs │ configure bonding via sysfs (the old way) │
724 └────────┴───────────────────────────────────────────┘
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
792 wickedd(8), netconfig(8), RFC3942
793
795 Copyright (C) 2014-2016 SUSE LINUX GmbH, Nuernberg, Germany.
796
798 Please report bugs at <https://bugzilla.suse.com/>
799
801 Olaf Kirch
802
803
804
805 16 July 2012 WICKED-CONFIG(5)