Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 17 Nov 2011 14:01:04 -0800
From:      YongHyeon PYUN <pyunyh@gmail.com>
To:        Juli Mallett <jmallett@freebsd.org>
Cc:        freebsd-net <freebsd-net@freebsd.org>, Maksim Yevmenkin <maksim.yevmenkin@gmail.com>
Subject:   Re: confused with if_baudrate
Message-ID:  <20111117220104.GD11828@michelle.cdnetworks.com>
In-Reply-To: <CACVs6=_HOGNhc84hL7yN1NxmS%2BEO5ykEQhOAQuBvjiyxe9JPrg@mail.gmail.com>
References:  <CAFPOs6oVZ-%2B8%2B37SoDQmSawAOYnZBAQbLstPaJ5i3wScd8WVeQ@mail.gmail.com> <CACVs6=_HOGNhc84hL7yN1NxmS%2BEO5ykEQhOAQuBvjiyxe9JPrg@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, Nov 17, 2011 at 01:39:24PM -0800, Juli Mallett wrote:
> On Thu, Nov 17, 2011 at 13:12, Maksim Yevmenkin
> <maksim.yevmenkin@gmail.com> wrote:
> > hello,
> >
> > i'm a little bit confused about if_baudrate. from system headers
> >
> > #define if_baudrate ?? ?? if_data.ifi_baudrate
> >
> > and
> >
> > u_long ??ifi_baudrate; ?? ?? ?? ?? ?? /* linespeed */
> >
> > so, i'm taking this as if_baudrate really should be an interface line
> > speed in megabits per second. am i correct? if so, then it appears
> > that at least some drivers lie about true line speed. for example from
> > ixgbe(4)
> >
> > ?? ?? ?? ??ifp->if_baudrate = 1000000000;
> >
> > it looks like its order of magnitude lower (i.e. 1 gigabit per second
> > instead of 10 gigabits per second). am i missing something here or its
> > just a typo?
> 
> ixgbe's developer is excessively concerned about overflow on 32-bit
> hosts (and unwilling to correct it under a preprocessor conditional),
> unlike several of the other 10GbE driver developers, although I think
> one 10GbE driver opts to omit if_baudrate entirely.
> 

Probably the driver could have used something like this.
ifp->if_baudrate = IF_Gbps(10UL);

I think the driver should update if_baudrate depending on
resolved speed(lost link, resolved speed etc).
And if we really care about overflowing if_baudrate on 32bit
machines, the IF_Gbps macro could be conditionally defined.

> Thanks,
> Juli.



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