kern/157725: devd does not stop dhclient on removing cable from vr
ethernet port
Nick Hibma
nick at anywi.com
Thu Jun 9 10:10:12 UTC 2011
>Number: 157725
>Category: kern
>Synopsis: devd does not stop dhclient on removing cable from vr ethernet port
>Confidential: no
>Severity: non-critical
>Priority: medium
>Responsible: freebsd-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: change-request
>Submitter-Id: current-users
>Arrival-Date: Thu Jun 09 10:10:11 UTC 2011
>Closed-Date:
>Last-Modified:
>Originator: Nick Hibma
>Release: FreeBSD 8.2-STABLE i386
>Organization:
AnyWi Technologies
>Environment:
FreeBSD AWSniffer 8.0-STABLE FreeBSD 8.0-STABLE #2: Tue Feb 22 13:49:20 CET 2011 root at billary.localdomain:/usr/obj/nanobsd.8/usr/src/sys/SOEKRIS8 i386
>Description:
In /etc/devd.conf it says:
# Try to start dhclient on Ethernet like interfaces when the link comes
# up. Only devices that are configured to support DHCP will actually
# run it. No link down rule exists because dhclient automaticly exits
# when the link goes down.
but this is not true. dhclient does not exit.
>How-To-Repeat:
On a SOEKRIS board (hm, they use vr chips now as well ...):
# ifconfig vr2
vr2: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=8280b<RXCSUM,TXCSUM,VLAN_MTU,WOL_UCAST,WOL_MAGIC,LINKSTATE>
ether 00:00:24:cd:95:2a
inet 192.168.1.92 netmask 0xffffff00 broadcast 192.168.1.255
inet 172.17.17.17 netmask 0xfffffff0 broadcast 172.17.17.31
media: Ethernet autoselect (100baseTX <full-duplex>)
status: active
# ps ax|grep dhclient
1661 ?? Ss 0:00.00 dhclient: vr2 [priv] (dhclient)
1679 ?? Ss 0:00.00 dhclient: vr2 (dhclient)
# ifconfig vr2
vr2: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=8280b<RXCSUM,TXCSUM,VLAN_MTU,WOL_UCAST,WOL_MAGIC,LINKSTATE>
ether 00:00:24:cd:95:2a
inet 192.168.1.92 netmask 0xffffff00 broadcast 192.168.1.255
inet 172.17.17.17 netmask 0xfffffff0 broadcast 172.17.17.31
media: Ethernet autoselect (none)
status: no carrier
# ps ax | grep dhclient
1661 ?? Ss 0:00.00 dhclient: vr2 [priv] (dhclient)
1679 ?? Ss 0:00.00 dhclient: vr2 (dhclient)
On an ALIX board:
# ifconfig vr0
vr0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=8280b<RXCSUM,TXCSUM,VLAN_MTU,WOL_UCAST,WOL_MAGIC,LINKSTATE>
ether 00:0d:b9:1b:57:28
inet 192.168.1.94 netmask 0xffffff00 broadcast 192.168.1.255
inet 192.168.1.2 netmask 0xfffffffc broadcast 192.168.1.3
media: Ethernet autoselect (100baseTX <full-duplex>)
status: active
# ps ax|grep dhclient
3633 ?? Ss 0:00.00 dhclient: vr0 [priv] (dhclient)
3652 ?? Ss 0:00.00 dhclient: vr0 (dhclient)
# ifconfig vr0
vr0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=8280b<RXCSUM,TXCSUM,VLAN_MTU,WOL_UCAST,WOL_MAGIC,LINKSTATE>
ether 00:0d:b9:1b:57:28
inet 192.168.1.94 netmask 0xffffff00 broadcast 192.168.1.255
inet 192.168.1.2 netmask 0xfffffffc broadcast 192.168.1.3
media: Ethernet autoselect (none)
status: no carrier
# ps ax | grep dhclient
3633 ?? Is 0:00.00 dhclient: vr0 [priv] (dhclient)
3652 ?? Ss 0:00.00 dhclient: vr0 (dhclient)
>Fix:
Adding the following additional configuration fixes this:
notify 10 {
match "system" "IFNET";
match "type" "LINK_DOWN";
media-type "ethernet";
action "/etc/rc.d/dhclient quietstop $subsystem";
};
Notes:
- I have not tested this with other priority values.
- I have not tested this in a setup with interfaces with no DHCP in their
config lines.
Output of devd and console:
Processing event '!system=IFNET subsystem=vr2 type=LINK_DOWN'
Pushing table
setting system=IFNET
setting subsystem=vr2
setting type=LINK_DOWN
Processing notify event
Testing system=IFNET against ^IFNET
Testing type=LINK_DOWN against ^LINK_UP
Testing system=IFNET against ^IFNET
Testing type=LINK_DOWN against ^LINK_DOWN
Testing media type of vr2 against 0x20
vr2 has media type 0x20
Executing '/etc/rc.d/dhclient quietstop vr2'
Jun 1 12:13:12 AWSniffer dhclient[1661]: connection closed
Jun 1 12:13:12 AWSniffer dhclient[1661]: exiting.
Popping table
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-bugs
mailing list