summaryrefslogtreecommitdiffstats
path: root/sys/dev/if_ndis/if_ndis.c
diff options
context:
space:
mode:
authorandre <andre@FreeBSD.org>2004-05-06 13:17:02 +0000
committerandre <andre@FreeBSD.org>2004-05-06 13:17:02 +0000
commit1769ff7c1f07f4e9175195e010dd44c3d0ea098a (patch)
tree9c1ecb5e8a2046fbe11c84a940cb0c404cedaccb /sys/dev/if_ndis/if_ndis.c
parentdb874ef06090bf2687cdef28cdb000f19f5f19ec (diff)
downloadFreeBSD-src-1769ff7c1f07f4e9175195e010dd44c3d0ea098a.zip
FreeBSD-src-1769ff7c1f07f4e9175195e010dd44c3d0ea098a.tar.gz
Link state change notification of ethernet media to the routing socket.
o The ndis_ticktask() function updates the ifi_link_state field and calls rt_ifmsg() to notify listeners on the routing socket. Approved by: wpaul
Diffstat (limited to 'sys/dev/if_ndis/if_ndis.c')
-rw-r--r--sys/dev/if_ndis/if_ndis.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/sys/dev/if_ndis/if_ndis.c b/sys/dev/if_ndis/if_ndis.c
index 7b1251f..5c6c0e0 100644
--- a/sys/dev/if_ndis/if_ndis.c
+++ b/sys/dev/if_ndis/if_ndis.c
@@ -50,6 +50,7 @@ __FBSDID("$FreeBSD$");
#include <net/ethernet.h>
#include <net/if_dl.h>
#include <net/if_media.h>
+#include <net/route.h>
#include <net/bpf.h>
@@ -1063,11 +1064,15 @@ ndis_ticktask(xsc)
if (sc->ndis_80211)
ndis_getstate_80211(sc);
NDIS_LOCK(sc);
+ sc->arpcom.ac_if.if_link_state = LINK_STATE_UP;
+ rt_ifmsg(&(sc->arpcom.ac_if));
}
if (sc->ndis_link == 1 && linkstate == nmc_disconnected) {
device_printf(sc->ndis_dev, "link down\n");
sc->ndis_link = 0;
+ sc->arpcom.ac_if.if_link_state = LINK_STATE_DOWN;
+ rt_ifmsg(&(sc->arpcom.ac_if));
}
NDIS_UNLOCK(sc);
OpenPOWER on IntegriCloud