2012-06-11 7 views
5

Ich schreibe ein Linux-Kernel-Modul, das benachrichtigt werden muss, wenn ein Link nach oben/unten geht, jetzt habe ich gelesen, dass ich eine netlink socket öffnen und die RTMGRP_LINK (Netzwerkschnittstelle erstellen/löschen/hoch/runter Ereignisse anhören kann)) Multicast-Gruppen, aber dies wird aus Benutzerraum verwendet ... jeder weiß, wie man diesen Interrupt vom Kernel-Raum abfängt? Ich benutze Kernel 2.6.35Wie fängt man den NIC Interrupt (hoch/runter)?

Antwort

3

Schauen Sie in <linux/netdevice.h>, speziell das Zeug über die Netdev Notifier-Kette. Sie können register_netdevice_notifier() anrufen, um einen Rückruf zu registrieren, der (neben vielen anderen Ereignistypen) die Ereignisse NETDEV_UP und NETDEV_DOWN empfängt.

+0

Vielen Dank! mit Notifier-Ketten war genau das, was ich brauchte. –