summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--etc/devd.conf18
-rw-r--r--etc/rc.d/devd4
-rw-r--r--sys/net/if.c2
3 files changed, 14 insertions, 10 deletions
diff --git a/etc/devd.conf b/etc/devd.conf
index a8d7716..15adefa 100644
--- a/etc/devd.conf
+++ b/etc/devd.conf
@@ -28,17 +28,19 @@ options {
# override these general rules.
#
-# For ethernet like devices start configuring the interface. Due to
-# a historical accident, this script is called pccard_ether.
+# Configure the interface on attach. Due to a historical accident, this
+# script is called pccard_ether.
#
-attach 0 {
- media-type "ethernet";
- action "/etc/pccard_ether $device-name start";
+notify 0 {
+ match "system" "IFNET";
+ match "type" "ATTACH";
+ action "/etc/pccard_ether $subsystem start";
};
-detach 0 {
- media-type "ethernet";
- action "/etc/pccard_ether $device-name stop";
+notify 0 {
+ match "system" "IFNET";
+ match "type" "DETACH";
+ action "/etc/pccard_ether $subsystem stop";
};
#
diff --git a/etc/rc.d/devd b/etc/rc.d/devd
index 50c8a17..f025f9a 100644
--- a/etc/rc.d/devd
+++ b/etc/rc.d/devd
@@ -4,8 +4,8 @@
#
# PROVIDE: devd
-# REQUIRE: NETWORKING
-# BEFORE: mountcritremote
+# REQUIRE: netif
+# BEFORE: NETWORKING mountcritremote
# KEYWORD: nojail
. /etc/rc.subr
diff --git a/sys/net/if.c b/sys/net/if.c
index 03b21ca..a3c02bb 100644
--- a/sys/net/if.c
+++ b/sys/net/if.c
@@ -505,6 +505,7 @@ if_attach(struct ifnet *ifp)
if_attachdomain1(ifp);
EVENTHANDLER_INVOKE(ifnet_arrival_event, ifp);
+ devctl_notify("IFNET", ifp->if_xname, "ATTACH", NULL);
/* Announce the interface. */
rt_ifannouncemsg(ifp, IFAN_ARRIVAL);
@@ -682,6 +683,7 @@ if_detach(struct ifnet *ifp)
/* Announce that the interface is gone. */
rt_ifannouncemsg(ifp, IFAN_DEPARTURE);
EVENTHANDLER_INVOKE(ifnet_departure_event, ifp);
+ devctl_notify("IFNET", ifp->if_xname, "DETACH", NULL);
IF_AFDATA_LOCK(ifp);
for (dp = domains; dp; dp = dp->dom_next) {
OpenPOWER on IntegriCloud