I don't remember everything, but I used to do a program to do that. You should also check ifmr.ifm_active value. There was some "strange" behaviour (obviously normal, but unexpected when I coded it), about up/down interfaces and plug or unplugged cables
and yep, ifconfig's doing it 'wrong' :) Samuel Martín Moro {EPITECH.} tek4 CamTrace S.A.S On Thu, Apr 1, 2010 at 8:56 PM, Steve Polyack <kor...@comcast.net> wrote: > On 04/01/10 14:21, Peter Steele wrote: > >> What's the best what to test the status of an Ethernet interface >> programmatically? We've been using this code similar to this: >> >> struct ifmediareq ifmr; >> memset(&ifmr, 0, sizeof(ifmr)); >> strcpy(ifmr.ifm_name, "nfe0"); >> ioctl(sockfd, SIOCGIFMEDIA, (caddr_t)&ifmr) >> >> and then checking the value of ifmr.ifm_status& IFM_ACTIVE. We've found >> that every once in a while this code will return a false positive, >> indicating that the interface has gone offline when in fact it has not. >> >> So, is there a more reliable call to test if an Ethernet interface has >> gone offline? >> >> > I was going to suggest that you look at the ifconfig(8) source code, but > then I did so myself - it looks like you're doing it pretty much exactly how > they are. I've never noticed ifconfig(8) returning an incorrect value, not > to say it's not possible. > > Are you sure that nothing is causing interface state resets? i.e. > mismatched duplex/speed settings between the FreeBSD machine and the switch? > Have you checked dmesg(8) for logs of interface state changes? You can > also check the output of 'netstat -i' to check for interface errors. > > > _______________________________________________ > freebsd-questions@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-questions > To unsubscribe, send any mail to " > freebsd-questions-unsubscr...@freebsd.org" > _______________________________________________ freebsd-questions@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-questions To unsubscribe, send any mail to "freebsd-questions-unsubscr...@freebsd.org"