Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 1 Apr 2010 20:58:21 +0200
From:      =?ISO-8859-1?Q?Samuel_Mart=EDn_Moro?= <faust64@gmail.com>
To:        Steve Polyack <korvus@comcast.net>
Cc:        Peter Steele <psteele@maxiscale.com>, "freebsd-questions@freebsd.org" <freebsd-questions@freebsd.org>
Subject:   Re: Testing ethernet interface status
Message-ID:  <h2yce5f79aa1004011158v4628f9a3w26826d6c2d95e58b@mail.gmail.com>
In-Reply-To: <4BB4EC44.2070804@comcast.net>
References:  <7B9397B189EB6E46A5EE7B4C8A4BB7CB3B65FC5D@MBX03.exg5.exghost.com>  <4BB4EC44.2070804@comcast.net>

next in thread | previous in thread | raw e-mail | index | archive | help
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=EDn Moro
{EPITECH.} tek4
CamTrace S.A.S


On Thu, Apr 1, 2010 at 8:56 PM, Steve Polyack <korvus@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, n=
ot
> 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 swit=
ch?
>  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-unsubscribe@freebsd.org"
>



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?h2yce5f79aa1004011158v4628f9a3w26826d6c2d95e58b>