Hello On 2007-02-26 Marco d'Itri wrote: > On Feb 26, Loïc Minier <[EMAIL PROTECTED]> wrote: > > > Hence, I'm reassigning to udev; @Marco: do you confirm this looks like > > an udev bug and it should not attempt to rename VLAN interfaces? Or > Please show the complete /etc/udev/rules.d/z25_persistent-net.rules > and the output of udevinfo -a -p /sys/class/net/eth0.101 . It's below.
> The DRIVERS=="?*" statement in the rules file is supposed to prevent > renaming the vlan subinterfaces and indeed it used to do so when I first > added it. Here the normal eth0 rule seems to match as the VLAN interface indeed has the same MAC as eth0. bye, -christian- # grep -v ^# /etc/network/interfaces auto lo iface lo inet loopback auto eth0 iface eth0 inet static netmask 255.255.255.0 network 192.168.42.0 gateway 192.168.42.1 address 192.168.42.109 broadcast 192.168.42.255 iface eth0.42 inet static netmask 255.255.255.0 network 10.0.0.0 address 10.0.0.109 broadcast 10.0.0.255 # cat /etc/udev/rules.d/z25_persistent-net.rules # This file was automatically generated by the /lib/udev/write_net_aliases # program, probably run by the persistent-net-generator.rules rules file. # # You can modify it, as long as you keep each rule on a single line # and always set the INTERFACE_OLD. # PCI device 11ab:4320 (skge) ACTION=="add", SUBSYSTEM=="net", SYSFS{address}=="00:11:2f:d6:28:55", NAME="eth0", ENV{INTERFACE_OLD}="$kernel" # UNKNOWN ieee1394 device (/class/net/eth1) ACTION=="add", SUBSYSTEM=="net", SYSFS{address}=="00:02:3c:00:31:04:1c:a2", NAME="eth1", ENV{INTERFACE_OLD}="$kernel" # Firewire device 00e0180000a86b8d (ohci1394) SUBSYSTEM=="net", DRIVERS=="?*", ATTRS{address}=="00:e0:18:00:00:a8:6b:8d", NAME="eth1" # ifup eth0.42 WARNING: Could not open /proc/net/vlan/config. Maybe you need to load the 8021q module, or maybe you are not using PROCFS?? Set name-type for VLAN subsystem. Should be visible in /proc/net/vlan/config Added VLAN with VID == 42 to IF -:eth0:- SIOCSIFADDR: No such device eth0.42: ERROR while getting interface flags: No such device SIOCSIFNETMASK: No such device SIOCSIFBRDADDR: No such device eth0.42: ERROR while getting interface flags: No such device eth0.42: ERROR while getting interface flags: No such device Failed to bring up eth0.42. udevinfo -a -p /sys/class/net/eth0 Udevinfo starts with the device specified by the devpath and then walks up the chain of parent devices. It prints for every device found, all possible attributes in the udev rules key format. A rule to match, can be composed by the attributes of the device and the attributes from one single parent device. looking at device '/class/net/eth0': KERNEL=="eth0" SUBSYSTEM=="net" DRIVER=="" ATTR{weight}=="64" ATTR{tx_queue_len}=="1000" ATTR{flags}=="0x1003" ATTR{mtu}=="1500" ATTR{operstate}=="up" ATTR{dormant}=="0" ATTR{carrier}=="1" ATTR{broadcast}=="ff:ff:ff:ff:ff:ff" ATTR{address}=="00:11:2f:d6:28:55" ATTR{link_mode}=="0" ATTR{type}=="1" ATTR{features}=="0x1023" ATTR{ifindex}=="2" ATTR{iflink}=="2" ATTR{addr_len}=="6" looking at parent device '/devices/pci0000:00/0000:00:0a.0': KERNELS=="0000:00:0a.0" SUBSYSTEMS=="pci" DRIVERS=="skge" ATTRS{broken_parity_status}=="0" ATTRS{enable}=="1" ATTRS{modalias}=="pci:v000011ABd00004320sv00001043sd0000811Abc02sc00i00" ATTRS{local_cpus}=="ffffffff" ATTRS{irq}=="17" ATTRS{class}=="0x020000" ATTRS{subsystem_device}=="0x811a" ATTRS{subsystem_vendor}=="0x1043" ATTRS{device}=="0x4320" ATTRS{vendor}=="0x11ab" looking at parent device '/devices/pci0000:00': KERNELS=="pci0000:00" SUBSYSTEMS=="" DRIVERS=="" # ip link 1: lo: <LOOPBACK,UP,10000> mtu 16436 qdisc noqueue link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 2: eth0: <BROADCAST,MULTICAST,UP,10000> mtu 1500 qdisc pfifo_fast qlen 1000 link/ether 00:11:2f:d6:28:55 brd ff:ff:ff:ff:ff:ff 3: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop qlen 1000 link/ieee1394 00:02:3c:00:31:04:1c:a2 brd ff:ff:ff:ff:ff:ff:ff:ff 4: sit0: <NOARP> mtu 1480 qdisc noop link/sit 0.0.0.0 brd 0.0.0.0 5: [EMAIL PROTECTED]: <BROADCAST,MULTICAST> mtu 1500 qdisc noop link/ether 00:11:2f:d6:28:55 brd ff:ff:ff:ff:ff:ff # udevinfo -a -p /sys/class/net/eth0.42_rename Udevinfo starts with the device specified by the devpath and then walks up the chain of parent devices. It prints for every device found, all possible attributes in the udev rules key format. A rule to match, can be composed by the attributes of the device and the attributes from one single parent device. looking at device '/class/net/eth0.42_rename': KERNEL=="eth0.42_rename" SUBSYSTEM=="net" DRIVER=="" ATTR{weight}=="0" ATTR{tx_queue_len}=="0" ATTR{flags}=="0x1002" ATTR{mtu}=="1500" ATTR{operstate}=="down" ATTR{broadcast}=="ff:ff:ff:ff:ff:ff" ATTR{address}=="00:11:2f:d6:28:55" ATTR{link_mode}=="0" ATTR{type}=="1" ATTR{features}=="0x0" ATTR{ifindex}=="5" ATTR{iflink}=="2" ATTR{addr_len}=="6"