Browse Source
ifname=<interface>:<MAC> Assign network device name <interface> (ie eth0) to the NIC with MAC <MAC>. Note that if you use this option you *must* specify an ifname= argument for all interfaces used in ip= or fcoe= argumentsmaster


2 changed files with 58 additions and 0 deletions
@ -0,0 +1,21 @@
@@ -0,0 +1,21 @@
|
||||
#!/bin/sh |
||||
|
||||
# if there are no ifname parameters, just use NAME=KERNEL |
||||
if ! getarg ifname= >/dev/null ; then |
||||
echo 'SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="?*", ATTR{type}=="1", NAME="%k"' \ |
||||
> /etc/udev/rules.d/50-ifname.rules |
||||
return |
||||
fi |
||||
|
||||
{ |
||||
for p in $(getargs ifname=); do |
||||
parse_ifname_opts $p |
||||
printf 'SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="%s", ATTR{type}=="1", NAME="%s"\n' "$ifname_mac" "$ifname_if" |
||||
done |
||||
|
||||
# Rename non named interfaces out of the way for named ones. |
||||
for p in $(getargs ifname=); do |
||||
parse_ifname_opts $p |
||||
printf 'SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="?*", ATTR{type}=="1", NAME!="?*", KERNEL=="%s", NAME="%%k-renamed"\n' "$ifname_if" |
||||
done |
||||
} > /etc/udev/rules.d/50-ifname.rules |
@ -0,0 +1,37 @@
@@ -0,0 +1,37 @@
|
||||
#!/bin/sh |
||||
# |
||||
# Format: |
||||
# ifname=<interface>:<mac> |
||||
# |
||||
# Note letters in the macaddress must be lowercase! |
||||
# |
||||
# Examples: |
||||
# ifname=eth0:4a:3f:4c:04:f8:d7 |
||||
# |
||||
# Note when using ifname= to get persistent interface names, you must specify |
||||
# an ifname= argument for each interface used in an ip= or fcoe= argument |
||||
|
||||
# check if there are any ifname parameters |
||||
if ! getarg ifname= >/dev/null ; then |
||||
return |
||||
fi |
||||
|
||||
parse_ifname_opts() { |
||||
local IFS=: |
||||
set $1 |
||||
|
||||
case $# in |
||||
7) |
||||
ifname_if=$1 |
||||
ifname_mac=$2:$3:$4:$5:$6:$7 |
||||
;; |
||||
*) |
||||
die "Invalid arguments for ifname=" |
||||
;; |
||||
esac |
||||
} |
||||
|
||||
# Check ifname= lines |
||||
for p in $(getargs ifname=); do |
||||
parse_ifname_opts $p |
||||
done |
Loading…
Reference in new issue