mirror of
https://github.com/systemd/systemd.git
synced 2024-11-02 19:21:53 +03:00
282988c4f8
None of these rules is supposed to be changed by users, so move them out of /etc. Custom rules, and automatically generated rules stay in /etc. All rules are still processed in lexical order, regardless which directory they live in.
87 lines
3.0 KiB
Plaintext
87 lines
3.0 KiB
Plaintext
# These rules generate rules to keep network interface names unchanged
|
|
# across reboots write them to /etc/udev/rules.d/70-persistent-net.rules.
|
|
|
|
# variables used to communicate:
|
|
# MATCHADDR MAC address used for the match
|
|
# MATCHID bus_id used for the match
|
|
# MATCHDRV driver name used for the match
|
|
# MATCHIFTYPE interface type match
|
|
# COMMENT comment to add to the generated rule
|
|
# INTERFACE_NAME requested name supplied by external tool
|
|
# INTERFACE_NEW new interface name returned by rule writer
|
|
|
|
ACTION!="add", GOTO="persistent_net_generator_end"
|
|
SUBSYSTEM!="net", GOTO="persistent_net_generator_end"
|
|
|
|
# ignore the interface if a name has already been set
|
|
NAME=="?*", GOTO="persistent_net_generator_end"
|
|
|
|
# ignore interfaces without a driver link like bridges and VLANs
|
|
DRIVERS!="?*", GOTO="persistent_net_generator_end"
|
|
|
|
# device name whitelist
|
|
KERNEL!="eth*|ath*|wlan*[0-9]|msh*|ra*|sta*|ctc*|lcs*|hsi*", \
|
|
GOTO="persistent_net_generator_end"
|
|
|
|
# ignore Xen virtual interfaces
|
|
SUBSYSTEMS=="xen", GOTO="persistent_net_generator_end"
|
|
|
|
# ignore UML virtual interfaces
|
|
DRIVERS=="uml-netdev", GOTO="persistent_net_generator_end"
|
|
|
|
# ignore "secondary" raw interfaces of the madwifi driver
|
|
KERNEL=="ath*", ATTRS{type}=="802", GOTO="persistent_net_generator_end"
|
|
|
|
# ignore "secondary" monitor interfaces of mac80211 drivers
|
|
KERNEL=="wlan*", ATTRS{type}=="803", GOTO="persistent_net_generator_end"
|
|
|
|
# by default match on the MAC address and interface type
|
|
ENV{MATCHADDR}="$attr{address}"
|
|
ENV{MATCHIFTYPE}="$attr{type}"
|
|
|
|
# ignore interfaces with locally administered or null MAC addresses
|
|
# and VMWare virtual interfaces
|
|
ENV{MATCHADDR}=="?[2367abef]:*", ENV{MATCHADDR}=""
|
|
ENV{MATCHADDR}=="00:00:00:00:00:00", ENV{MATCHADDR}=""
|
|
ENV{MATCHADDR}=="00:0c:29:*|00:50:56:*", ENV{MATCHADDR}=""
|
|
|
|
# ibmveth interfaces have stable locally administered MAC addresses
|
|
SUBSYSTEMS=="ibmveth", ENV{MATCHADDR}="$attr{address}"
|
|
|
|
# S/390 interfaces are matched only by id
|
|
SUBSYSTEMS=="ccwgroup", \
|
|
ENV{MATCHDRV}="$driver", ENV{MATCHID}="$id", ENV{MATCHADDR}=""
|
|
|
|
# terminate processing if there are not enough conditions to create a rule
|
|
ENV{MATCHADDR}=="", ENV{MATCHID}=="", ENV{INTERFACE_NAME}=="", \
|
|
GOTO="persistent_net_generator_end"
|
|
|
|
|
|
# provide nice comments for the generated rules
|
|
SUBSYSTEMS=="pci", \
|
|
ENV{COMMENT}="PCI device $attr{vendor}:$attr{device}"
|
|
SUBSYSTEMS=="pcmcia", \
|
|
ENV{COMMENT}="PCMCIA device $attr{card_id}:$attr{manf_id}"
|
|
SUBSYSTEMS=="usb", \
|
|
ENV{COMMENT}="USB device 0x$attr{idVendor}:0x$attr{idProduct}"
|
|
SUBSYSTEMS=="ccwgroup", \
|
|
ENV{COMMENT}="S/390 device at $id"
|
|
SUBSYSTEMS=="ibmveth", \
|
|
ENV{COMMENT}="LPAR virtual device at $id"
|
|
SUBSYSTEMS=="ieee1394", \
|
|
ENV{COMMENT}="Firewire device $attr{host_id}"
|
|
ENV{COMMENT}=="", \
|
|
ENV{COMMENT}="Unknown $env{SUBSYSTEM} device ($env{DEVPATH})"
|
|
ATTRS{driver}=="?*", \
|
|
ENV{COMMENT}="$env{COMMENT} ($attr{driver})"
|
|
|
|
|
|
# generate and write the rule
|
|
IMPORT{program}="write_net_rules"
|
|
|
|
# rename the interface if requested
|
|
ENV{INTERFACE_NEW}=="?*", NAME="$env{INTERFACE_NEW}"
|
|
|
|
LABEL="persistent_net_generator_end"
|
|
|