diff options
author | Scott Ullrich <sullrich@pfsense.org> | 2005-10-25 23:43:18 +0000 |
---|---|---|
committer | Scott Ullrich <sullrich@pfsense.org> | 2005-10-25 23:43:18 +0000 |
commit | 7a2215437ed23bb1cdced127db99468be964e00b (patch) | |
tree | c1fbdaed0ca1d84d6dbce6f298ea373b6dc9e945 /etc/devd.conf | |
parent | 1a97873411ca8def43b8e7dfbdc466bedf406686 (diff) | |
download | pfsense-7a2215437ed23bb1cdced127db99468be964e00b.zip pfsense-7a2215437ed23bb1cdced127db99468be964e00b.tar.gz |
Handle ethernet hotplug events correctly
Diffstat (limited to 'etc/devd.conf')
-rw-r--r-- | etc/devd.conf | 152 |
1 files changed, 9 insertions, 143 deletions
diff --git a/etc/devd.conf b/etc/devd.conf index 7246357..ae15b75 100644 --- a/etc/devd.conf +++ b/etc/devd.conf @@ -1,132 +1,48 @@ # $Id$ # $FreeBSD: src/etc/devd.conf,v 1.26.2.1 2005/09/03 22:49:22 sam Exp $ -# -# Refer to devd.conf(5) and devd(8) man pages for the details on how to -# run and configure devd. -# - -# NB: All regular expressions have an implicit ^$ around them. -# NB: device-name is shorthand for 'match device-name' options { - # Each directory directive adds a directory the list of directories - # that we scan for files. Files are read-in in the order that they - # are returned from readdir(3). The rule-sets are combined to - # create a DFA that's used to match events to actions. directory "/etc/devd"; - directory "/usr/local/etc/devd"; pid-file "/var/run/devd.pid"; - - # Setup some shorthand for regex that we use later in the file. - #XXX Yes, these are gross -- imp set scsi-controller-regex "(aac|adv|adw|aha|ahb|ahc|ahd|aic|amd|amr|asr|bt|ciss|ct|dpt|\ esp|ida|iir|ips|isp|mlx|mly|mpt|ncr|ncv|nsp|stg|sym|trm|wds)\ [0-9]+"; }; -# Note that the attach/detach with the highest value wins, so that one can -# override these general rules. - -# -# For ethernet like devices start configuring the interface. Due to -# a historical accident, this script is called pccard_ether. -# +# Handle ethernet linkup and linkdown attach 0 { media-type "ethernet"; - action "/sbin/dhclient $device-name"; + action "/etc/rc.linkup $device-name start"; }; detach 0 { media-type "ethernet"; - action "/sbin/ifconfig $device-name delete && /usr/sbin/arp -da"; + action "/etc/rc.linkup $device-name stop"; }; -# -# 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. -# -notify 0 { - match "system" "IFNET"; - match "type" "LINK_UP"; - media-type "ethernet"; - action "/sbin/dhclient $device-name"; -}; - -# -# Like Ethernet devices, but separate because -# they have a different media type. We may want -# to exploit this later. -# +# Handle wireless linkup and linkdown detach 0 { media-type "802.11"; - action "/sbin/ifconfig $device-name delete && /usr/sbin/arp -da"; + action "/etc/rc.linkup $device-name start"; }; + attach 0 { media-type "802.11"; - action "/sbin/dhclient $device-name"; -}; -notify 0 { - match "system" "IFNET"; - match "type" "LINK_UP"; - media-type "802.11"; - action "/sbin/dhclient $device-name"; -}; - -# An entry like this might be in a different file, but is included here -# as an example of how to override things. Normally 'ed50' would match -# the above attach/detach stuff, but the value of 100 makes it -# hard wired to 1.2.3.4. -attach 100 { - device-name "ed50"; - action "/sbin/ifconfig $device-name inet 1.2.3.4 netmask 0xffff0000"; -}; -detach 100 { - device-name "ed50"; + action "/etc/rc.linkup $device-name stop"; }; # When a USB keyboard arrives, attach it as the console keyboard. attach 100 { device-name "ukbd0"; - action "kbdcontrol -k /dev/ukbd0 < /dev/console && /etc/rc.d/syscons restart"; + action "kbdcontrol -k /dev/ukbd0 < /dev/console"; }; + detach 100 { device-name "ukbd0"; action "kbdcontrol -k /dev/kbd0 < /dev/console"; }; -# The entry below starts moused when a mouse is plugged in. Moused -# stops automatically (actually it bombs :) when the device disappears. -attach 100 { - device-name "ums[0-9]+"; - action "/etc/rc.d/moused start $device-name"; -}; - -# -# Rescan scsi device-names on attach, but not detach. However, it is -# disabled by default due to reports of problems. -# -attach 0 { - device-name "$scsi-controller-regex"; -// action "camcontrol rescan all"; -}; - -# Don't even try to second guess what to do about drivers that don't -# match here. Instead, pass it off to syslog. Commented out for the -# moment, as pnpinfo isn't set in devd yet. -nomatch 0 { -# action "logger Unknown device: $pnpinfo $location $bus"; -}; - -# Switch power profiles when the AC line state changes. -#notify 10 { -# match "system" "ACPI"; -# match "subsystem" "ACAD"; -# action "/etc/rc.d/power_profile $notify"; -#}; - # Notify all users before beginning emergency shutdown when we get # a _CRT or _HOT thermal event and we're going to power down the system # very soon. @@ -137,53 +53,3 @@ notify 10 { action "logger -p kern.emerg 'WARNING: system temperature too high, shutting down soon!'"; }; -/* EXAMPLES TO END OF FILE - -# The following might be an example of something that a vendor might -# install if you were to add their device. This might reside in -# /usr/local/etc/devd/deqna.conf. A deqna is, in this hypothetical -# example, a pccard ethernet-like device. Students of history may -# know other devices by this name, and will get the in-jokes in this -# entry. -nomatch 10 { - match "bus" "pccard[0-9]+"; - match "manufacturer" "0x1234"; - match "product" "0x2323"; - action "kldload if_deqna"; -}; -attach 10 { - device-name "deqna[0-9]+"; - action "/sbin/dhclient $device-name"; -}; -detach 10 { - device-name "deqna[0-9]+"; - action "/sbin/ifconfig $device-name delete && /usr/sbin/arp -da"; -}; - -# Examples of notify hooks. A notify is a generic way for a kernel -# subsystem to send event notification to userland. -# -# Here are some examples of ACPI notify handlers. ACPI subsystems that -# generate notifies include the AC adapter, power/sleep buttons, -# control method batteries, lid switch, and thermal zones. -# -# Information returned is not always the same as the ACPI notify -# events. See the ACPI specification for more information about -# notifies. Here is the information returned for each subsystem: -# -# ACAD: AC line state (0 is offline, 1 is online) -# Button: Button pressed (0 for power, 1 for sleep) -# CMBAT: ACPI battery events -# Lid: Lid state (0 is closed, 1 is open) -# Thermal: ACPI thermal zone events -# -# This example calls a script when the AC state changes, passing the -# notify value as the first argument. If the state is 0x00, it might -# call some sysctls to implement economy mode. If 0x01, it might set -# the mode to performance. -#notify 10 { -# match "system" "ACPI"; -# match "subsystem" "ACAD"; -# action "/etc/acpi_ac $notify"; -#}; -*/ |