mirror of
https://github.com/systemd/systemd-stable.git
synced 2024-11-01 00:51:08 +03:00
c8ee8f983f
Thanks to Alexander E. Patrakov for pointing out that we create invalid rules. We still need a proper fix for devices we skip creating rules (locally administered MAC), but want to swap names with interface names we created rules for.
61 lines
2.2 KiB
Plaintext
61 lines
2.2 KiB
Plaintext
# do not edit this file, it will be overwritten on update
|
|
|
|
# these rules generate rules for persistent network device naming
|
|
#
|
|
# 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"
|
|
|
|
# device name whitelist
|
|
KERNEL!="eth*|ath*|wlan*[0-9]|ra*|sta*|ctc*|lcs*|hsi*", GOTO="persistent_net_generator_end"
|
|
|
|
# ignore Xen virtual interfaces
|
|
SUBSYSTEMS=="xen", GOTO="persistent_net_generator_end"
|
|
|
|
# read MAC address
|
|
ENV{MATCHADDR}="$attr{address}"
|
|
|
|
# match interface type
|
|
ENV{MATCHIFTYPE}="$attr{type}"
|
|
|
|
# do not use "locally administered" MAC address
|
|
ENV{MATCHADDR}=="?[2367abef]:*", ENV{MATCHADDR}=""
|
|
|
|
# do not use empty address
|
|
ENV{MATCHADDR}=="00:00:00:00:00:00", ENV{MATCHADDR}=""
|
|
|
|
# build comment line for generated rule:
|
|
SUBSYSTEMS=="pci", ENV{COMMENT}="PCI device $attr{vendor}:$attr{device} ($driver)"
|
|
SUBSYSTEMS=="usb", ENV{COMMENT}="USB device 0x$attr{idVendor}:0x$attr{idProduct} ($driver)"
|
|
SUBSYSTEMS=="pcmcia", ENV{COMMENT}="PCMCIA device $attr{card_id}:$attr{manf_id} ($driver)"
|
|
SUBSYSTEMS=="ieee1394", ENV{COMMENT}="Firewire device $attr{host_id})"
|
|
|
|
# S/390 uses id matches only, do not use MAC address match
|
|
SUBSYSTEMS=="ccwgroup", ENV{COMMENT}="S/390 $driver device at $id", ENV{MATCHID}="$id", ENV{MATCHDRV}="$driver", ENV{MATCHADDR}=""
|
|
|
|
# see if we got enough data to create a rule
|
|
ENV{MATCHADDR}=="", ENV{MATCHID}=="", ENV{INTERFACE_NAME}=="", GOTO="persistent_net_generator_end"
|
|
|
|
# default comment
|
|
ENV{COMMENT}=="", ENV{COMMENT}="$env{SUBSYSTEM} device"
|
|
|
|
# write rule
|
|
DRIVERS=="?*", IMPORT{program}="write_net_rules"
|
|
|
|
# rename interface if needed
|
|
ENV{INTERFACE_NEW}=="?*", NAME="$env{INTERFACE_NEW}"
|
|
|
|
LABEL="persistent_net_generator_end"
|
|
|