Author: sam
Date: Mon May 18 17:18:40 2009
New Revision: 192313
URL: http://svn.freebsd.org/changeset/base/192313

Log:
  add bpf_track eventhandler for monitoring bpf taps attached/detached
  
  Reviewed by:  csjp

Modified:
  head/sys/net/bpf.c
  head/sys/sys/eventhandler.h

Modified: head/sys/net/bpf.c
==============================================================================
--- head/sys/net/bpf.c  Mon May 18 17:14:48 2009        (r192312)
+++ head/sys/net/bpf.c  Mon May 18 17:18:40 2009        (r192313)
@@ -534,6 +534,8 @@ bpf_attachd(struct bpf_d *d, struct bpf_
 
        bpf_bpfd_cnt++;
        BPFIF_UNLOCK(bp);
+
+       EVENTHANDLER_INVOKE(bpf_track, bp->bif_ifp, 1);
 }
 
 /*
@@ -561,6 +563,8 @@ bpf_detachd(struct bpf_d *d)
        BPFD_UNLOCK(d);
        BPFIF_UNLOCK(bp);
 
+       EVENTHANDLER_INVOKE(bpf_track, ifp, 0);
+
        /*
         * Check if this descriptor had requested promiscuous mode.
         * If so, turn it off.

Modified: head/sys/sys/eventhandler.h
==============================================================================
--- head/sys/sys/eventhandler.h Mon May 18 17:14:48 2009        (r192312)
+++ head/sys/sys/eventhandler.h Mon May 18 17:18:40 2009        (r192313)
@@ -182,6 +182,11 @@ typedef void (*vlan_unconfig_fn)(void *,
 EVENTHANDLER_DECLARE(vlan_config, vlan_config_fn);
 EVENTHANDLER_DECLARE(vlan_unconfig, vlan_unconfig_fn);
 
+/* BPF attach/detach events */
+struct ifnet;
+typedef void (*bpf_track_fn)(void *, struct ifnet *, int /* 1 =>'s attach */);
+EVENTHANDLER_DECLARE(bpf_track, bpf_track_fn);
+
 /*
  * Process events
  * process_fork and exit handlers are called without Giant.
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to