pending changes for TOE support

Kevin Oberman oberman at
Sat Dec 15 14:41:04 PST 2007

> Date: Sat, 15 Dec 2007 14:02:28 -0800
> From: "Kip Macy" <kip.macy at>
> Sender: owner-freebsd-current at
> > I think we should make a best faith effort to figure out how to do the right
> > thing.  Employing harsh interrogation tactics is probably not called for, but
> > we have several vendors who are regularly involved in the FreeBSD community
> > and may be willing to lend their insight as to their requirements, even if an
> > implementation isn't immediately forthcoming.
> :-) - the two vendors that I know of have not been active in the
> community. Sam has initiated contact on my behalf with the one vendor
> that might be willing to talk to us. The other vendor has an
> established pattern of ignoring all requests.
> >
> > >> tcp_output() was previously an internal function of the TCP code, and now
> > >> the semantics are being exposed to device drivers.  Let's not perpetuate
> > >> poorly documented driver interfaces by adding another one.  I think it
> > >> would be a reasonable expectation of a driver author to have consistent
> > >> documentation of the life cycle of data structures and objects, locking
> > >> expectations and requirements, and the semantics for error values from
> > >> functions.  Certainly, they need to look at TCP a fair amount because
> > >> they'll be pulling things out of inpcb, tcpcb, etc, but I'd rather we limit
> > >> that requirement to simple things (addresses, socket options) that are
> > >> relatively static and avoid it being for complex things (locking, error
> > >> handling) that tend to be more subject to change.  Also, if you document
> > >> what you think the behavior is or should be, we can then check to see if we
> > >> agree.
> > >
> > > To the extent possible, yes. I'm not convinced that anyone person knows what
> > > all the existing invariants are in the stack as it is now. Do you feel that
> > > a Stevens'-esque understanding of the environment around the calls is
> > > necessary? I know it sounds like "other people beat their wives so I can
> > > too", but even something as well documented as ifnet gives no indication of
> > > what the locking conventions - e.g. you can't sleep or acquire sx locks in
> > > if_ioctl. The demands placed should be no greater than those placed on
> > > existing subsystems and should take into account the hitherto somewhat black
> > > box nature of TCP.
> >
> > Actually, what I was asking for in the omitted context above was something
> > along the lines of the following, adapted for whatever the reality may be:
> >
> >    Returning a non-zero value will lead to the software stack beginning a
> >    disconnect.
> >
> > Or, say,
> >
> >    Non-zero return values will be ignored. (*)
> >
> > This is not intended as a contrarian point.  I'm not looking for a complete
> > exposition of the behavior of the stack -- rather, basic information that we
> > should be documenting about a KPI, such as what an error being returned will
> > do.
> That is quite reasonable. I perceived your initial request as being
> entirely too open-ended.

We certainly know who provides support for Intel and Myricom cards
(unless there has been a recent change of which I am unaware) and I
happen to work across the hall from the guy who has been upgrading the
Neterion drivers for them and I suspect provided the recent new versions
to them.

Am I missing anyone?

If they are contacted and express disinterest or don't respond, I think
Kip has to proceed as best he can.

We use three of the vendors I know of with FreeBSD, so can push as a
customer, too. We will be ordering more 10GE cards from someone soon and
support for TOE could be a significant issue in selection. Until now it
has not been mentioned since there was no prospect of near-term FreeBSD
support, but that is clearly no longer the case.
R. Kevin Oberman, Network Engineer
Energy Sciences Network (ESnet)
Ernest O. Lawrence Berkeley National Laboratory (Berkeley Lab)
E-mail: oberman at			Phone: +1 510 486-8634
Key fingerprint:059B 2DDF 031C 9BA3 14A4  EADA 927D EBB3 987B 3751
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 224 bytes
Desc: not available
Url :

More information about the freebsd-arch mailing list