.
OBS-URL: https://build.opensuse.org/package/show/Base:System/udev-persistent-ifnames?expand=0&rev=2
This commit is contained in:
parent
d585771c9a
commit
cfdaac1aa1
@ -75,6 +75,9 @@ ENV{LAYER2}!="0", ATTR{dev_id}=="?*", ENV{MATCHDEVID}="$attr{dev_id}"
|
|||||||
# do not use "locally administered" MAC address
|
# do not use "locally administered" MAC address
|
||||||
ENV{MATCHADDR}=="?[2367abef]:*", ENV{MATCHADDR}=""
|
ENV{MATCHADDR}=="?[2367abef]:*", ENV{MATCHADDR}=""
|
||||||
|
|
||||||
|
# if mac is "locally administered", then use $id (KERNELS) and $driver (DRIVERS)
|
||||||
|
ENV{MATCHADDR}=="", DRIVERS=="?*", SUBSYSTEMS=="pci", ENV{MATCHID}="$id", ENV{MATCHDRV}="$driver"
|
||||||
|
|
||||||
# do not use empty address
|
# do not use empty address
|
||||||
ENV{MATCHADDR}=="00:00:00:00:00:00", ENV{MATCHADDR}=""
|
ENV{MATCHADDR}=="00:00:00:00:00:00", ENV{MATCHADDR}=""
|
||||||
|
|
||||||
|
@ -1,19 +0,0 @@
|
|||||||
# do not edit this file, it will be overwritten on update
|
|
||||||
#
|
|
||||||
# rename SRIOV virtual function interfaces
|
|
||||||
|
|
||||||
ACTION=="remove", GOTO="net-sriov-names_end"
|
|
||||||
SUBSYSTEM!="net", GOTO="net-sriov-names_end"
|
|
||||||
KERNEL!="eth*", GOTO="net-sriov-names_end"
|
|
||||||
NAME=="?*", GOTO="net-sriov-names_end"
|
|
||||||
|
|
||||||
IMPORT{cmdline}="net.ifnames"
|
|
||||||
ENV{net.ifnames}=="1", GOTO="net-sriov-names_end"
|
|
||||||
|
|
||||||
SUBSYSTEM=="net", SUBSYSTEMS=="pci", ACTION=="add", NAME=="?*", ENV{INTERFACE_NEW}="$name"
|
|
||||||
SUBSYSTEM=="net", SUBSYSTEMS=="pci", ACTION=="add", IMPORT{program}="net-set-sriov-names"
|
|
||||||
|
|
||||||
# rename interface if needed
|
|
||||||
ENV{INTERFACE_NEW}=="?*", NAME="$env{INTERFACE_NEW}"
|
|
||||||
|
|
||||||
LABEL="net-sriov-names_end"
|
|
@ -1,79 +0,0 @@
|
|||||||
#!/bin/bash -e
|
|
||||||
#
|
|
||||||
# This script is run to rename virtual interfaces
|
|
||||||
#
|
|
||||||
|
|
||||||
if [ -n "$UDEV_LOG" ]; then
|
|
||||||
if [ "$UDEV_LOG" -ge 7 ]; then
|
|
||||||
set -x
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
# according to dev_new_index(), ifindex is within [1, INT_MAX]
|
|
||||||
int_max=$(/usr/bin/getconf INT_MAX)
|
|
||||||
ifindex_before() {
|
|
||||||
a=$1
|
|
||||||
b=$2
|
|
||||||
|
|
||||||
((0 < (b - a) && (b - a) < int_max / 2 ||
|
|
||||||
-1 * int_max < (b - a) && (b - a) < -1 * int_max / 2))
|
|
||||||
}
|
|
||||||
|
|
||||||
rename_interface() {
|
|
||||||
local src_net=$1
|
|
||||||
local dest_net=$2
|
|
||||||
local err=0
|
|
||||||
|
|
||||||
/sbin/ip link set dev $src_net down
|
|
||||||
/sbin/ip link set dev $src_net name $dest_net
|
|
||||||
}
|
|
||||||
|
|
||||||
if [ -z "$INTERFACE" ]; then
|
|
||||||
echo "missing \$INTERFACE" >&2
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -e "/sys/class/net/$INTERFACE/device/physfn" ]; then
|
|
||||||
pf=$(ls -1 "/sys/class/net/$INTERFACE/device/physfn/net")
|
|
||||||
if [ $(echo "$pf" | wc -l) -ne 1 ]; then
|
|
||||||
echo "too many pf's" >&2
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
read vfindex < "/sys/class/net/$INTERFACE/ifindex"
|
|
||||||
read pfindex < "/sys/class/net/$pf/ifindex"
|
|
||||||
if ifindex_before $pfindex $vfindex; then
|
|
||||||
bus_info=$(basename $(readlink "/sys/class/net/$INTERFACE/device"))
|
|
||||||
for virtfn in "/sys/class/net/$pf/device/"virtfn*; do
|
|
||||||
if [ "$(basename $(readlink "$virtfn"))" = "$bus_info" ]; then
|
|
||||||
vfnum=$(basename "$virtfn")
|
|
||||||
vfnum=${vfnum#virtfn}
|
|
||||||
echo "INTERFACE_NEW=$pf.vf$vfnum"
|
|
||||||
exit 0
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
read pfindex < "/sys/class/net/$INTERFACE/ifindex"
|
|
||||||
shopt -s nullglob
|
|
||||||
for virtfn in "/sys/class/net/$INTERFACE/device/"virtfn*; do
|
|
||||||
vf=$(ls -1 "$virtfn/net")
|
|
||||||
if [ $(echo "$vf" | wc -l) -ne 1 ]; then
|
|
||||||
echo "too many vf's" >&2
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
read vfindex < "/sys/class/net/$vf/ifindex"
|
|
||||||
if ifindex_before $vfindex $pfindex; then
|
|
||||||
vfnum=$(basename "$virtfn")
|
|
||||||
vfnum=${vfnum#virtfn}
|
|
||||||
if [ "$INTERFACE_NEW" ]; then
|
|
||||||
new_name=$INTERFACE_NEW
|
|
||||||
else
|
|
||||||
new_name=$INTERFACE
|
|
||||||
fi
|
|
||||||
new_name="$new_name.vf$vfnum"
|
|
||||||
if [ "$vf" != "$new_name" ]; then
|
|
||||||
rename_interface "$vf" "$new_name"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
done
|
|
@ -1,3 +1,9 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Thu Jun 11 12:00:09 UTC 2015 - werner@suse.de
|
||||||
|
|
||||||
|
- rules: support "locally administered" mac address in persistent rules (bnc#921831)
|
||||||
|
- rules: drop 76-net-sriov-names.rules and net-set-sriov-names (bnc#921831)
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Mon May 18 18:27:59 UTC 2015 - jengelh@inai.de
|
Mon May 18 18:27:59 UTC 2015 - jengelh@inai.de
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
#
|
#
|
||||||
# spec file for package udev-persistent-ifnames
|
# spec file for package udev-persistent-ifnames
|
||||||
#
|
#
|
||||||
# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
|
# Copyright (c) 2015 SUSE LINUX Products GmbH, Nuernberg, Germany.
|
||||||
#
|
#
|
||||||
# All modifications and additions to the file contributed by third parties
|
# All modifications and additions to the file contributed by third parties
|
||||||
# remain the property of their copyright owners, unless otherwise agreed
|
# remain the property of their copyright owners, unless otherwise agreed
|
||||||
@ -17,19 +17,17 @@
|
|||||||
|
|
||||||
|
|
||||||
Name: udev-persistent-ifnames
|
Name: udev-persistent-ifnames
|
||||||
Version: 0
|
Version: 0.1
|
||||||
Release: 0
|
Release: 0
|
||||||
Summary: Persistent classic network interface naming scheme
|
Summary: Persistent classic network interface naming scheme
|
||||||
License: GPL-2.0
|
License: GPL-2.0
|
||||||
Group: System/Base
|
Group: System/Base
|
||||||
|
|
||||||
Source: 75-persistent-net-generator.rules
|
Source0: 75-persistent-net-generator.rules
|
||||||
Source2: 76-net-sriov-names.rules
|
Source1: rule_generator.functions
|
||||||
Source3: rule_generator.functions
|
Source2: write_net_rules
|
||||||
Source4: write_net_rules
|
|
||||||
Source5: net-set-sriov-names
|
|
||||||
BuildArch: noarch
|
BuildArch: noarch
|
||||||
BuildRoot: %_tmppath/%name-%version-build
|
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||||
|
|
||||||
%description
|
%description
|
||||||
This package, when installed, disables the default "Predictable
|
This package, when installed, disables the default "Predictable
|
||||||
@ -54,7 +52,7 @@ install -pm0644 \
|
|||||||
"%_sourcedir"/*.rules \
|
"%_sourcedir"/*.rules \
|
||||||
"$b/%_prefix/lib/udev/rules.d/"
|
"$b/%_prefix/lib/udev/rules.d/"
|
||||||
install -pm0755 \
|
install -pm0755 \
|
||||||
"%_sourcedir"/{net-set-sriov-names,rule_generator.functions} \
|
"%_sourcedir"/rule_generator.functions \
|
||||||
"%_sourcedir"/write_net_rules \
|
"%_sourcedir"/write_net_rules \
|
||||||
"$b/%_prefix/lib/udev/"
|
"$b/%_prefix/lib/udev/"
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user