Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
NLSYSEVENT(4)		    Kernel Interfaces Manual		 NLSYSEVENT(4)

NAME
       nlsysevent -- Netlink-based kernel event	notification module

SYNOPSIS
       To  load	 the driver as a module	at boot	time, place the	following line
       in loader.conf(5):

	     nlsysevent_load="YES"

       Alternatively, to load the module at runtime:

	     kldload nlsysevent

DESCRIPTION
       The nlsysevent kernel module provides a netlink(4) Generic Netlink  in-
       terface	for  receiving	kernel	device	events.	  It  hooks  into  the
       devctl(4) notification system and re-publishes  all  kernel  events  as
       Generic	Netlink	 multicast messages under the NETLINK_GENERIC protocol
       family.

       This provides an	alternative to reading events from  /dev/devctl	 (used
       by  devd(8)),  with the advantage that multiple consumers can subscribe
       to events simultaneously, and consumers can  selectively	 subscribe  to
       specific	event groups.

   Generic Netlink Family
       The  module registers a Generic Netlink family named "nlsysevent".  The
       dynamically-assigned family identifier can be resolved using the	 stan-
       dard CTRL_CMD_GETFAMILY request as described in genetlink(4).

   Commands
       The following command is	defined:

       NLSE_CMD_NEWEVENT
	       Sent  when  a  kernel  event occurs.  This message is never so-
	       licited by userland; it is only delivered to sockets that  have
	       subscribed to one or more multicast groups.

   Attributes
       Each NLSE_CMD_NEWEVENT message contains the following TLV attributes:

       NLSE_ATTR_SYSTEM
	       (string)	The system name	that generated the event (e.g.,	"ACPI,
	       "IFNET, "USB""").

       NLSE_ATTR_SUBSYSTEM
	       (string)	The subsystem name within the system.

       NLSE_ATTR_TYPE
	       (string)	The type of the	event.

       NLSE_ATTR_DATA
	       (string)	 Optional  extra data associated with the event.  This
	       attribute may be	absent if no extra data	was provided.

   Multicast Groups
       The module creates one multicast	group per system name.	The  following
       groups are pre-registered when the module is loaded:

	     ACPI
	     AEON
	     CAM
	     CARP
	     coretemp
	     DEVFS
	     device
	     ETHERNET
	     GEOM
	     HYPERV_NIC_VF
	     IFNET
	     INFINIBAND
	     KERNEL
	     nvme
	     PMU
	     RCTL
	     USB
	     VFS
	     VT
	     ZFS

       Additional groups are created dynamically as new	system names appear in
       kernel events, up to a maximum of 64 groups.

       The  group  identifier  for  a  given  system  name can be resolved via
       CTRL_CMD_GETFAMILY    and    then    subscribed	  to	 using	   the
       NETLINK_ADD_MEMBERSHIP socket option.

EXAMPLES
       The genl(1) utility can be used to monitor events:

	     genl monitor nlsysevent

SEE ALSO
       genl(1),	snl(3),	devctl(4), genetlink(4), netlink(4), devd(8)

HISTORY
       The nlsysevent module first appeared in FreeBSD 15.0.

AUTHORS
       The  nlsysevent	kernel	module	and  this  manual page were written by
       Baptiste	Daroussin <bapt@FreeBSD.org>.

FreeBSD	ports 15.quarterly	 April 9, 2026			 NLSYSEVENT(4)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=nlsysevent&sektion=4&manpath=FreeBSD+15.1-RELEASE+and+Ports.quarterly>

home | help