1SYSTEMD.LINK(5) systemd.link SYSTEMD.LINK(5)
2
3
4
6 systemd.link - Network device configuration
7
9 link.link
10
12 A plain ini-style text file that encodes configuration for matching
13 network devices, used by systemd-udevd(8) and in particular its
14 net_setup_link builtin. See systemd.syntax(7) for a general description
15 of the syntax.
16
17 The .link files are read from the files located in the system network
18 directory /usr/lib/systemd/network and /usr/local/lib/systemd/network,
19 the volatile runtime network directory /run/systemd/network, and the
20 local administration network directory /etc/systemd/network. All
21 configuration files are collectively sorted and processed in
22 alphanumeric order, regardless of the directories in which they live.
23 However, files with identical filenames replace each other. It is
24 recommended that each filename is prefixed with a number (e.g.
25 10-eth0.link). Otherwise, the default .link files or those generated by
26 systemd-network-generator.service(8) may take precedence over user
27 configured files. Files in /etc/ have the highest priority, files in
28 /run/ take precedence over files with the same name in /usr/lib/. This
29 can be used to override a system-supplied link file with a local file
30 if needed. As a special case, an empty file (file size 0) or symlink
31 with the same name pointing to /dev/null disables the configuration
32 file entirely (it is "masked").
33
34 Along with the link file foo.link, a "drop-in" directory foo.link.d/
35 may exist. All files with the suffix ".conf" from this directory will
36 be merged in the alphanumeric order and parsed after the main file
37 itself has been parsed. This is useful to alter or add configuration
38 settings, without having to modify the main configuration file. Each
39 drop-in file must have appropriate section headers.
40
41 In addition to /etc/systemd/network, drop-in ".d" directories can be
42 placed in /usr/lib/systemd/network or /run/systemd/network directories.
43 Drop-in files in /etc/ take precedence over those in /run/ which in
44 turn take precedence over those in /usr/lib/. Drop-in files under any
45 of these directories take precedence over the main link file wherever
46 located.
47
48 The link file contains a [Match] section, which determines if a given
49 link file may be applied to a given device, as well as a [Link] section
50 specifying how the device should be configured. The first (in lexical
51 order) of the link files that matches a given device is applied. Note
52 that a default file 99-default.link is shipped by the system. Any
53 user-supplied .link should hence have a lexically earlier name to be
54 considered at all.
55
56 See udevadm(8) for diagnosing problems with .link files.
57
59 A link file is said to match an interface if all matches specified by
60 the [Match] section are satisfied. When a link file does not contain
61 valid settings in [Match] section, then the file will match all
62 interfaces and systemd-udevd warns about that. Hint: to avoid the
63 warning and to make it clear that all interfaces shall be matched, add
64 the following:
65
66 OriginalName=*
67
68 The first (in alphanumeric order) of the link files that matches a
69 given interface is applied, all later files are ignored, even if they
70 match as well. The following keys are accepted:
71
72 MACAddress=
73 A whitespace-separated list of hardware addresses. The acceptable
74 formats are:
75
76 colon-delimited hexadecimal
77 Each field must be one byte. E.g. "12:34:56:78:90:ab" or
78 "AA:BB:CC:DD:EE:FF".
79
80 hyphen-delimited hexadecimal
81 Each field must be one byte. E.g. "12-34-56-78-90-ab" or
82 "AA-BB-CC-DD-EE-FF".
83
84 dot-delimited hexadecimal
85 Each field must be two bytes. E.g. "1234.5678.90ab" or
86 "AABB.CCDD.EEFF".
87
88 IPv4 address format
89 E.g. "127.0.0.1" or "192.168.0.1".
90
91 IPv6 address format
92 E.g. "2001:0db8:85a3::8a2e:0370:7334" or "::1".
93
94 The total length of each MAC address must be 4 (for IPv4 tunnel), 6
95 (for Ethernet), 16 (for IPv6 tunnel), or 20 (for InfiniBand). This
96 option may appear more than once, in which case the lists are
97 merged. If the empty string is assigned to this option, the list of
98 hardware addresses defined prior to this is reset. Defaults to
99 unset.
100
101 PermanentMACAddress=
102 A whitespace-separated list of hardware's permanent addresses.
103 While MACAddress= matches the device's current MAC address, this
104 matches the device's permanent MAC address, which may be different
105 from the current one. Use full colon-, hyphen- or dot-delimited
106 hexadecimal, or IPv4 or IPv6 address format. This option may appear
107 more than once, in which case the lists are merged. If the empty
108 string is assigned to this option, the list of hardware addresses
109 defined prior to this is reset. Defaults to unset.
110
111 Path=
112 A whitespace-separated list of shell-style globs matching the
113 persistent path, as exposed by the udev property ID_PATH.
114
115 Driver=
116 A whitespace-separated list of shell-style globs matching the
117 driver currently bound to the device, as exposed by the udev
118 property ID_NET_DRIVER of its parent device, or if that is not set,
119 the driver as exposed by ethtool -i of the device itself. If the
120 list is prefixed with a "!", the test is inverted.
121
122 Type=
123 A whitespace-separated list of shell-style globs matching the
124 device type, as exposed by networkctl list. If the list is prefixed
125 with a "!", the test is inverted. Some valid values are "ether",
126 "loopback", "wlan", "wwan". Valid types are named either from the
127 udev "DEVTYPE" attribute, or "ARPHRD_" macros in linux/if_arp.h, so
128 this is not comprehensive.
129
130 Kind=
131 A whitespace-separated list of shell-style globs matching the
132 device kind, as exposed by networkctl status INTERFACE or ip -d
133 link show INTERFACE. If the list is prefixed with a "!", the test
134 is inverted. Some valid values are "bond", "bridge", "gre", "tun",
135 "veth". Valid kinds are given by netlink's "IFLA_INFO_KIND"
136 attribute, so this is not comprehensive.
137
138 Property=
139 A whitespace-separated list of udev property names with their
140 values after equals sign ("="). If multiple properties are
141 specified, the test results are ANDed. If the list is prefixed with
142 a "!", the test is inverted. If a value contains white spaces, then
143 please quote whole key and value pair. If a value contains
144 quotation, then please escape the quotation with "\".
145
146 Example: if a .link file has the following:
147
148 Property=ID_MODEL_ID=9999 "ID_VENDOR_FROM_DATABASE=vendor name" "KEY=with \"quotation\""
149
150 then, the .link file matches only when an interface has all the
151 above three properties.
152
153 OriginalName=
154 A whitespace-separated list of shell-style globs matching the
155 device name, as exposed by the udev property "INTERFACE". This
156 cannot be used to match on names that have already been changed
157 from userspace. Caution is advised when matching on kernel-assigned
158 names, as they are known to be unstable between reboots.
159
160 Host=
161 Matches against the hostname or machine ID of the host. See
162 ConditionHost= in systemd.unit(5) for details. When prefixed with
163 an exclamation mark ("!"), the result is negated. If an empty
164 string is assigned, the previously assigned value is cleared.
165
166 Virtualization=
167 Checks whether the system is executed in a virtualized environment
168 and optionally test whether it is a specific implementation. See
169 ConditionVirtualization= in systemd.unit(5) for details. When
170 prefixed with an exclamation mark ("!"), the result is negated. If
171 an empty string is assigned, the previously assigned value is
172 cleared.
173
174 KernelCommandLine=
175 Checks whether a specific kernel command line option is set. See
176 ConditionKernelCommandLine= in systemd.unit(5) for details. When
177 prefixed with an exclamation mark ("!"), the result is negated. If
178 an empty string is assigned, the previously assigned value is
179 cleared.
180
181 KernelVersion=
182 Checks whether the kernel version (as reported by uname -r) matches
183 a certain expression. See ConditionKernelVersion= in
184 systemd.unit(5) for details. When prefixed with an exclamation mark
185 ("!"), the result is negated. If an empty string is assigned, the
186 previously assigned value is cleared.
187
188 Credential=
189 Checks whether the specified credential was passed to the
190 systemd-udevd.service service. See System and Service
191 Credentials[1] for details. When prefixed with an exclamation mark
192 ("!"), the result is negated. If an empty string is assigned, the
193 previously assigned value is cleared.
194
195 Architecture=
196 Checks whether the system is running on a specific architecture.
197 See ConditionArchitecture= in systemd.unit(5) for details. When
198 prefixed with an exclamation mark ("!"), the result is negated. If
199 an empty string is assigned, the previously assigned value is
200 cleared.
201
202 Firmware=
203 Checks whether the system is running on a machine with the
204 specified firmware. See ConditionFirmware= in systemd.unit(5) for
205 details. When prefixed with an exclamation mark ("!"), the result
206 is negated. If an empty string is assigned, the previously assigned
207 value is cleared.
208
210 The [Link] section accepts the following keys:
211
212 Description=
213 A description of the device.
214
215 Alias=
216 The ifalias interface property is set to this value.
217
218 MACAddressPolicy=
219 The policy by which the MAC address should be set. The available
220 policies are:
221
222 persistent
223 If the hardware has a persistent MAC address, as most hardware
224 should, and if it is used by the kernel, nothing is done.
225 Otherwise, a new MAC address is generated which is guaranteed
226 to be the same on every boot for the given machine and the
227 given device, but which is otherwise random. This feature
228 depends on ID_NET_NAME_* properties to exist for the link. On
229 hardware where these properties are not set, the generation of
230 a persistent MAC address will fail.
231
232 random
233 If the kernel is using a random MAC address, nothing is done.
234 Otherwise, a new address is randomly generated each time the
235 device appears, typically at boot. Either way, the random
236 address will have the "unicast" and "locally administered" bits
237 set.
238
239 none
240 Keeps the MAC address assigned by the kernel. Or use the MAC
241 address specified in MACAddress=.
242
243 An empty string assignment is equivalent to setting "none".
244
245 MACAddress=
246 The interface MAC address to use. For this setting to take effect,
247 MACAddressPolicy= must either be unset, empty, or "none".
248
249 NamePolicy=
250 An ordered, space-separated list of policies by which the interface
251 name should be set. NamePolicy= may be disabled by specifying
252 net.ifnames=0 on the kernel command line. Each of the policies may
253 fail, and the first successful one is used. The name is not set
254 directly, but is exported to udev as the property ID_NET_NAME,
255 which is, by default, used by a udev(7), rule to set NAME. The
256 available policies are:
257
258 kernel
259 If the kernel claims that the name it has set for a device is
260 predictable, then no renaming is performed.
261
262 database
263 The name is set based on entries in the udev's Hardware
264 Database with the key ID_NET_NAME_FROM_DATABASE.
265
266 onboard
267 The name is set based on information given by the firmware for
268 on-board devices, as exported by the udev property
269 ID_NET_NAME_ONBOARD. See systemd.net-naming-scheme(7).
270
271 slot
272 The name is set based on information given by the firmware for
273 hot-plug devices, as exported by the udev property
274 ID_NET_NAME_SLOT. See systemd.net-naming-scheme(7).
275
276 path
277 The name is set based on the device's physical location, as
278 exported by the udev property ID_NET_NAME_PATH. See
279 systemd.net-naming-scheme(7).
280
281 mac
282 The name is set based on the device's persistent MAC address,
283 as exported by the udev property ID_NET_NAME_MAC. See
284 systemd.net-naming-scheme(7).
285
286 keep
287 If the device already had a name given by userspace (as part of
288 creation of the device or a rename), keep it.
289
290 Name=
291 The interface name to use. This option has lower precedence than
292 NamePolicy=, so for this setting to take effect, NamePolicy= must
293 either be unset, empty, disabled, or all policies configured there
294 must fail. Also see the example below with "Name=dmz0".
295
296 Note that specifying a name that the kernel might use for another
297 interface (for example "eth0") is dangerous because the name
298 assignment done by udev will race with the assignment done by the
299 kernel, and only one interface may use the name. Depending on the
300 order of operations, either udev or the kernel will win, making the
301 naming unpredictable. It is best to use some different prefix, for
302 example "internal0"/"external0" or "lan0"/"lan1"/"lan3".
303
304 Interface names must have a minimum length of 1 character and a
305 maximum length of 15 characters, and may contain any 7bit ASCII
306 character, with the exception of control characters, ":", "/" and
307 "%". While "." is an allowed character, it's recommended to avoid
308 it when naming interfaces as various tools (such as resolvconf(1))
309 use it as separator character. Also, fully numeric interface names
310 are not allowed (in order to avoid ambiguity with interface
311 specification by numeric indexes), as are the special strings ".",
312 "..", "all" and "default".
313
314 AlternativeNamesPolicy=
315 A space-separated list of policies by which the interface's
316 alternative names should be set. Each of the policies may fail, and
317 all successful policies are used. The available policies are
318 "database", "onboard", "slot", "path", and "mac". If the kernel
319 does not support the alternative names, then this setting will be
320 ignored.
321
322 AlternativeName=
323 The alternative interface name to use. This option can be specified
324 multiple times. If the empty string is assigned to this option, the
325 list is reset, and all prior assignments have no effect. If the
326 kernel does not support the alternative names, then this setting
327 will be ignored.
328
329 Alternative interface names may be used to identify interfaces in
330 various tools. In contrast to the primary name (as configured with
331 Name= above) there may be multiple alternative names referring to
332 the same interface. Alternative names may have a maximum length of
333 127 characters, in contrast to the 15 allowed for the primary
334 interface name, but otherwise are subject to the same naming
335 constraints.
336
337 TransmitQueues=
338 Specifies the device's number of transmit queues. An integer in the
339 range 1...4096. When unset, the kernel's default will be used.
340
341 ReceiveQueues=
342 Specifies the device's number of receive queues. An integer in the
343 range 1...4096. When unset, the kernel's default will be used.
344
345 TransmitQueueLength=
346 Specifies the transmit queue length of the device in number of
347 packets. An unsigned integer in the range 0...4294967294. When
348 unset, the kernel's default will be used.
349
350 MTUBytes=
351 The maximum transmission unit in bytes to set for the device. The
352 usual suffixes K, M, G are supported and are understood to the base
353 of 1024.
354
355 BitsPerSecond=
356 The speed to set for the device, the value is rounded down to the
357 nearest Mbps. The usual suffixes K, M, G are supported and are
358 understood to the base of 1000.
359
360 Duplex=
361 The duplex mode to set for the device. The accepted values are half
362 and full.
363
364 AutoNegotiation=
365 Takes a boolean. If set to yes, automatic negotiation of
366 transmission parameters is enabled. Autonegotiation is a procedure
367 by which two connected ethernet devices choose common transmission
368 parameters, such as speed, duplex mode, and flow control. When
369 unset, the kernel's default will be used.
370
371 Note that if autonegotiation is enabled, speed and duplex settings
372 are read-only. If autonegotiation is disabled, speed and duplex
373 settings are writable if the driver supports multiple link modes.
374
375 WakeOnLan=
376 The Wake-on-LAN policy to set for the device. Takes the special
377 value "off" which disables Wake-on-LAN, or space separated list of
378 the following words:
379
380 phy
381 Wake on PHY activity.
382
383 unicast
384 Wake on unicast messages.
385
386 multicast
387 Wake on multicast messages.
388
389 broadcast
390 Wake on broadcast messages.
391
392 arp
393 Wake on ARP.
394
395 magic
396 Wake on receipt of a magic packet.
397
398 secureon
399 Enable SecureOn password for MagicPacket. Implied when
400 WakeOnLanPassword= is specified. If specified without
401 WakeOnLanPassword= option, then the password is read from the
402 credential "LINK.link.wol.password" (e.g.,
403 "60-foo.link.wol.password"), and if the credential not found,
404 then read from "wol.password". See
405 LoadCredential=/SetCredential= in systemd.exec(1) for details.
406 The password in the credential, must be 6 bytes in hex format
407 with each byte separated by a colon (":") like an Ethernet MAC
408 address, e.g., "aa:bb:cc:dd:ee:ff".
409
410 Defaults to unset, and the device's default will be used. This
411 setting can be specified multiple times. If an empty string is
412 assigned, then the all previous assignments are cleared.
413
414 WakeOnLanPassword=
415 Specifies the SecureOn password for MagicPacket. Takes an absolute
416 path to a regular file or an AF_UNIX stream socket, or the plain
417 password. When a path to a regular file is specified, the password
418 is read from it. When an AF_UNIX stream socket is specified, a
419 connection is made to it and the password is read from it. The
420 password must be 6 bytes in hex format with each byte separated by
421 a colon (":") like an Ethernet MAC address, e.g.,
422 "aa:bb:cc:dd:ee:ff". This implies WakeOnLan=secureon. Defaults to
423 unset, and the current value will not be changed.
424
425 Port=
426 The port option is used to select the device port. The supported
427 values are:
428
429 tp
430 An Ethernet interface using Twisted-Pair cable as the medium.
431
432 aui
433 Attachment Unit Interface (AUI). Normally used with hubs.
434
435 bnc
436 An Ethernet interface using BNC connectors and co-axial cable.
437
438 mii
439 An Ethernet interface using a Media Independent Interface
440 (MII).
441
442 fibre
443 An Ethernet interface using Optical Fibre as the medium.
444
445 Advertise=
446 This sets what speeds and duplex modes of operation are advertised
447 for auto-negotiation. This implies "AutoNegotiation=yes". The
448 supported values are:
449
450 Table 1. Supported advertise values
451 ┌───────────────────┬──────────────┬─────────────┐
452 │Advertise │ Speed (Mbps) │ Duplex Mode │
453 ├───────────────────┼──────────────┼─────────────┤
454 │10baset-half │ 10 │ half │
455 ├───────────────────┼──────────────┼─────────────┤
456 │10baset-full │ 10 │ full │
457 ├───────────────────┼──────────────┼─────────────┤
458 │100baset-half │ 100 │ half │
459 ├───────────────────┼──────────────┼─────────────┤
460 │100baset-full │ 100 │ full │
461 ├───────────────────┼──────────────┼─────────────┤
462 │1000baset-half │ 1000 │ half │
463 ├───────────────────┼──────────────┼─────────────┤
464 │1000baset-full │ 1000 │ full │
465 ├───────────────────┼──────────────┼─────────────┤
466 │10000baset-full │ 10000 │ full │
467 ├───────────────────┼──────────────┼─────────────┤
468 │2500basex-full │ 2500 │ full │
469 ├───────────────────┼──────────────┼─────────────┤
470 │1000basekx-full │ 1000 │ full │
471 ├───────────────────┼──────────────┼─────────────┤
472 │10000basekx4-full │ 10000 │ full │
473 ├───────────────────┼──────────────┼─────────────┤
474 │10000basekr-full │ 10000 │ full │
475 ├───────────────────┼──────────────┼─────────────┤
476 │10000baser-fec │ 10000 │ full │
477 ├───────────────────┼──────────────┼─────────────┤
478 │20000basemld2-full │ 20000 │ full │
479 ├───────────────────┼──────────────┼─────────────┤
480 │20000basekr2-full │ 20000 │ full │
481 └───────────────────┴──────────────┴─────────────┘
482 By default this is unset, i.e. all possible modes will be
483 advertised. This option may be specified more than once, in which
484 case all specified speeds and modes are advertised. If the empty
485 string is assigned to this option, the list is reset, and all prior
486 assignments have no effect.
487
488 ReceiveChecksumOffload=
489 Takes a boolean. If set to true, hardware offload for checksumming
490 of ingress network packets is enabled. When unset, the kernel's
491 default will be used.
492
493 TransmitChecksumOffload=
494 Takes a boolean. If set to true, hardware offload for checksumming
495 of egress network packets is enabled. When unset, the kernel's
496 default will be used.
497
498 TCPSegmentationOffload=
499 Takes a boolean. If set to true, TCP Segmentation Offload (TSO) is
500 enabled. When unset, the kernel's default will be used.
501
502 TCP6SegmentationOffload=
503 Takes a boolean. If set to true, TCP6 Segmentation Offload
504 (tx-tcp6-segmentation) is enabled. When unset, the kernel's default
505 will be used.
506
507 GenericSegmentationOffload=
508 Takes a boolean. If set to true, Generic Segmentation Offload (GSO)
509 is enabled. When unset, the kernel's default will be used.
510
511 GenericReceiveOffload=
512 Takes a boolean. If set to true, Generic Receive Offload (GRO) is
513 enabled. When unset, the kernel's default will be used.
514
515 GenericReceiveOffloadHardware=
516 Takes a boolean. If set to true, hardware accelerated Generic
517 Receive Offload (GRO) is enabled. When unset, the kernel's default
518 will be used.
519
520 LargeReceiveOffload=
521 Takes a boolean. If set to true, Large Receive Offload (LRO) is
522 enabled. When unset, the kernel's default will be used.
523
524 ReceiveVLANCTAGHardwareAcceleration=
525 Takes a boolean. If set to true, receive VLAN CTAG hardware
526 acceleration is enabled. When unset, the kernel's default will be
527 used.
528
529 TransmitVLANCTAGHardwareAcceleration=
530 Takes a boolean. If set to true, transmit VLAN CTAG hardware
531 acceleration is enabled. When unset, the kernel's default will be
532 used.
533
534 ReceiveVLANCTAGFilter=
535 Takes a boolean. If set to true, receive filtering on VLAN CTAGs is
536 enabled. When unset, the kernel's default will be used.
537
538 TransmitVLANSTAGHardwareAcceleration=
539 Takes a boolean. If set to true, transmit VLAN STAG hardware
540 acceleration is enabled. When unset, the kernel's default will be
541 used.
542
543 NTupleFilter=
544 Takes a boolean. If set to true, receive N-tuple filters and
545 actions are enabled. When unset, the kernel's default will be used.
546
547 RxChannels=, TxChannels=, OtherChannels=, CombinedChannels=
548 Specifies the number of receive, transmit, other, or combined
549 channels, respectively. Takes an unsigned integer in the range
550 1...4294967295 or "max". If set to "max", the advertised maximum
551 value of the hardware will be used. When unset, the number will not
552 be changed. Defaults to unset.
553
554 RxBufferSize=, RxMiniBufferSize=, RxJumboBufferSize=, TxBufferSize=
555 Specifies the maximum number of pending packets in the NIC receive
556 buffer, mini receive buffer, jumbo receive buffer, or transmit
557 buffer, respectively. Takes an unsigned integer in the range
558 1...4294967295 or "max". If set to "max", the advertised maximum
559 value of the hardware will be used. When unset, the number will not
560 be changed. Defaults to unset.
561
562 RxFlowControl=
563 Takes a boolean. When set, enables receive flow control, also known
564 as the ethernet receive PAUSE message (generate and send ethernet
565 PAUSE frames). When unset, the kernel's default will be used.
566
567 TxFlowControl=
568 Takes a boolean. When set, enables transmit flow control, also
569 known as the ethernet transmit PAUSE message (respond to received
570 ethernet PAUSE frames). When unset, the kernel's default will be
571 used.
572
573 AutoNegotiationFlowControl=
574 Takes a boolean. When set, auto negotiation enables the interface
575 to exchange state advertisements with the connected peer so that
576 the two devices can agree on the ethernet PAUSE configuration. When
577 unset, the kernel's default will be used.
578
579 GenericSegmentOffloadMaxBytes=
580 Specifies the maximum size of a Generic Segment Offload (GSO)
581 packet the device should accept. The usual suffixes K, M, G are
582 supported and are understood to the base of 1024. An unsigned
583 integer in the range 1...65536. Defaults to unset.
584
585 GenericSegmentOffloadMaxSegments=
586 Specifies the maximum number of Generic Segment Offload (GSO)
587 segments the device should accept. An unsigned integer in the range
588 1...65535. Defaults to unset.
589
590 UseAdaptiveRxCoalesce=, UseAdaptiveTxCoalesce=
591 Boolean properties that, when set, enable/disable adaptive Rx/Tx
592 coalescing if the hardware supports it. When unset, the kernel's
593 default will be used.
594
595 RxCoalesceSec=, RxCoalesceIrqSec=, RxCoalesceLowSec=,
596 RxCoalesceHighSec=, TxCoalesceSec=, TxCoalesceIrqSec=,
597 TxCoalesceLowSec=, TxCoalesceHighSec=
598 These properties configure the delay before Rx/Tx interrupts are
599 generated after a packet is sent/received. The "Irq" properties
600 come into effect when the host is servicing an IRQ. The "Low" and
601 "High" properties come into effect when the packet rate drops below
602 the low packet rate threshold or exceeds the high packet rate
603 threshold respectively if adaptive Rx/Tx coalescing is enabled.
604 When unset, the kernel's defaults will be used.
605
606 RxMaxCoalescedFrames=, RxMaxCoalescedIrqFrames=,
607 RxMaxCoalescedLowFrames=, RxMaxCoalescedHighFrames=,
608 TxMaxCoalescedFrames=, TxMaxCoalescedIrqFrames=,
609 TxMaxCoalescedLowFrames=, TxMaxCoalescedHighFrames=
610 These properties configure the maximum number of frames that are
611 sent/received before a Rx/Tx interrupt is generated. The "Irq"
612 properties come into effect when the host is servicing an IRQ. The
613 "Low" and "High" properties come into effect when the packet rate
614 drops below the low packet rate threshold or exceeds the high
615 packet rate threshold respectively if adaptive Rx/Tx coalescing is
616 enabled. When unset, the kernel's defaults will be used.
617
618 CoalescePacketRateLow=, CoalescePacketRateHigh=
619 These properties configure the low and high packet rate (expressed
620 in packets per second) threshold respectively and are used to
621 determine when the corresponding coalescing settings for low and
622 high packet rates come into effect if adaptive Rx/Tx coalescing is
623 enabled. If unset, the kernel's defaults will be used.
624
625 CoalescePacketRateSampleIntervalSec=
626 Configures how often to sample the packet rate used for adaptive
627 Rx/Tx coalescing. This property cannot be zero. This lowest time
628 granularity supported by this property is seconds. Partial seconds
629 will be rounded up before being passed to the kernel. If unset, the
630 kernel's default will be used.
631
632 StatisticsBlockCoalesceSec=
633 How long to delay driver in-memory statistics block updates. If the
634 driver does not have an in-memory statistic block, this property is
635 ignored. This property cannot be zero. If unset, the kernel's
636 default will be used.
637
638 MDI=
639 Specifies the medium dependent interface (MDI) mode for the
640 interface. A MDI describes the interface from a physical layer
641 implementation to the physical medium used to carry the
642 transmission. Takes one of the following words: "straight" (or
643 equivalently: "mdi"), "crossover" (or equivalently: "mdi-x",
644 "mdix"), and "auto". When "straight", the MDI straight through mode
645 will be used. When "crossover", the MDI crossover (MDI-X) mode will
646 be used. When "auto", the MDI status is automatically detected.
647 Defaults to unset, and the kernel's default will be used.
648
649 SR-IOVVirtualFunctions=
650 Specifies the number of SR-IOV virtual functions. Takes an integer
651 in the range 0...2147483647. Defaults to unset, and automatically
652 determined from the values specified in the VirtualFunction=
653 settings in the [SR-IOV] sections.
654
656 The [SR-IOV] section accepts the following keys. Specify several
657 [SR-IOV] sections to configure several SR-IOVs. SR-IOV provides the
658 ability to partition a single physical PCI resource into virtual PCI
659 functions which can then be injected into a VM. In the case of network
660 VFs, SR-IOV improves north-south network performance (that is, traffic
661 with endpoints outside the host machine) by allowing traffic to bypass
662 the host machine’s network stack.
663
664 VirtualFunction=
665 Specifies a Virtual Function (VF), lightweight PCIe function
666 designed solely to move data in and out. Takes an integer in the
667 range 0...2147483646. This option is compulsory.
668
669 VLANId=
670 Specifies VLAN ID of the virtual function. Takes an integer in the
671 range 1...4095.
672
673 QualityOfService=
674 Specifies quality of service of the virtual function. Takes an
675 integer in the range 1...4294967294.
676
677 VLANProtocol=
678 Specifies VLAN protocol of the virtual function. Takes "802.1Q" or
679 "802.1ad".
680
681 MACSpoofCheck=
682 Takes a boolean. Controls the MAC spoof checking. When unset, the
683 kernel's default will be used.
684
685 QueryReceiveSideScaling=
686 Takes a boolean. Toggle the ability of querying the receive side
687 scaling (RSS) configuration of the virtual function (VF). The VF
688 RSS information like RSS hash key may be considered sensitive on
689 some devices where this information is shared between VF and the
690 physical function (PF). When unset, the kernel's default will be
691 used.
692
693 Trust=
694 Takes a boolean. Allows one to set trust mode of the virtual
695 function (VF). When set, VF users can set a specific feature which
696 may impact security and/or performance. When unset, the kernel's
697 default will be used.
698
699 LinkState=
700 Allows one to set the link state of the virtual function (VF).
701 Takes a boolean or a special value "auto". Setting to "auto" means
702 a reflection of the physical function (PF) link state, "yes" lets
703 the VF to communicate with other VFs on this host even if the PF
704 link state is down, "no" causes the hardware to drop any packets
705 sent by the VF. When unset, the kernel's default will be used.
706
707 MACAddress=
708 Specifies the MAC address for the virtual function.
709
711 Example 1. /usr/lib/systemd/network/99-default.link
712
713 The link file 99-default.link that is shipped with systemd defines the
714 default naming policy for links.
715
716 [Link]
717 NamePolicy=kernel database on-board slot path
718 MACAddressPolicy=persistent
719
720 Example 2. /etc/systemd/network/10-dmz.link
721
722 This example assigns the fixed name "dmz0" to the interface with the
723 MAC address 00:a0:de:63:7a:e6:
724
725 [Match]
726 MACAddress=00:a0:de:63:7a:e6
727
728 [Link]
729 Name=dmz0
730
731 NamePolicy= is not set, so Name= takes effect. We use the "10-" prefix
732 to order this file early in the list. Note that it needs to be before
733 "99-link", i.e. it needs a numerical prefix, to have any effect at all.
734
735 Example 3. Debugging NamePolicy= assignments
736
737 $ sudo SYSTEMD_LOG_LEVEL=debug udevadm test-builtin net_setup_link /sys/class/net/hub0
738 ...
739 Parsed configuration file /usr/lib/systemd/network/99-default.link
740 Parsed configuration file /etc/systemd/network/10-eth0.link
741 ID_NET_DRIVER=cdc_ether
742 Config file /etc/systemd/network/10-eth0.link applies to device hub0
743 link_config: autonegotiation is unset or enabled, the speed and duplex are not writable.
744 hub0: Device has name_assign_type=4
745 Using default interface naming scheme 'v240'.
746 hub0: Policies didn't yield a name, using specified Name=hub0.
747 ID_NET_LINK_FILE=/etc/systemd/network/10-eth0.link
748 ID_NET_NAME=hub0
749 ...
750
751 Explicit Name= configuration wins in this case.
752
753 sudo SYSTEMD_LOG_LEVEL=debug udevadm test-builtin net_setup_link /sys/class/net/enp0s31f6
754 ...
755 Parsed configuration file /usr/lib/systemd/network/99-default.link
756 Parsed configuration file /etc/systemd/network/10-eth0.link
757 Created link configuration context.
758 ID_NET_DRIVER=e1000e
759 Config file /usr/lib/systemd/network/99-default.link applies to device enp0s31f6
760 link_config: autonegotiation is unset or enabled, the speed and duplex are not writable.
761 enp0s31f6: Device has name_assign_type=4
762 Using default interface naming scheme 'v240'.
763 enp0s31f6: Policy *keep*: keeping existing userspace name
764 enp0s31f6: Device has addr_assign_type=0
765 enp0s31f6: MAC on the device already matches policy *persistent*
766 ID_NET_LINK_FILE=/usr/lib/systemd/network/99-default.link
767 ...
768
769 In this case, the interface was already renamed, so the keep policy
770 specified as the first option in 99-default.link means that the
771 existing name is preserved. If keep was removed, or if were in boot
772 before the renaming has happened, we might get the following instead:
773
774 enp0s31f6: Policy *path* yields "enp0s31f6".
775 enp0s31f6: Device has addr_assign_type=0
776 enp0s31f6: MAC on the device already matches policy *persistent*
777 ID_NET_LINK_FILE=/usr/lib/systemd/network/99-default.link
778 ID_NET_NAME=enp0s31f6
779 ...
780
781 Please note that the details of output are subject to change.
782
783 Example 4. /etc/systemd/network/10-internet.link
784
785 This example assigns the fixed name "internet0" to the interface with
786 the device path "pci-0000:00:1a.0-*":
787
788 [Match]
789 Path=pci-0000:00:1a.0-*
790
791 [Link]
792 Name=internet0
793
794 Example 5. /etc/systemd/network/25-wireless.link
795
796 Here's an overly complex example that shows the use of a large number
797 of [Match] and [Link] settings.
798
799 [Match]
800 MACAddress=12:34:56:78:9a:bc
801 Driver=brcmsmac
802 Path=pci-0000:02:00.0-*
803 Type=wlan
804 Virtualization=no
805 Host=my-laptop
806 Architecture=x86-64
807
808 [Link]
809 Name=wireless0
810 MTUBytes=1450
811 BitsPerSecond=10M
812 WakeOnLan=magic
813 MACAddress=cb:a9:87:65:43:21
814
816 systemd-udevd.service(8), udevadm(8), systemd.netdev(5),
817 systemd.network(5), systemd-network-generator.service(8)
818
820 1. System and Service Credentials
821 https://systemd.io/CREDENTIALS
822
823
824
825systemd 253 SYSTEMD.LINK(5)