Re: Specification of Berkeley networking utilities

Alexander Dupuy (douglass!
24 Oct 88 20:36:26 GMT

Here's an old message which may shed light on your problems:

Article 1996 of comp.protocols.tcp-ip:
Path: columbia!rutgers!lll-lcc!lll-tis!ptsfa!rtech!daveb
From: From: daveb@rtech.UUCP (Dave Brower)
Newsgroups: comp.unix.wizards,comp.protocols.tcp-ip
Subject: OOB problems, wisdom anyone?
Message-ID: <1482@rtech.UUCP>
Date: 18 Dec 87 19:58:03 GMT
Reply-To: Reply-To: daveb@rtech.UUCP (Dave Brower)
Organization: Relational Technology Inc, Alameda CA
Lines: 44
Xref: columbia comp.unix.wizards:6073 comp.protocols.tcp-ip:1996

Some people here have been trying to use the OOB mechanism to send
"expedited data" between processes. No one here is all that familiar
with using it, and they have run into some problems that make them want
to give up and turn to something else.

I'd appreciate hearing general thoughts about using the BSD oob
mechanism for IPC, and specific comments on the problems they report
below. I will forward responses to the interested parties.


------- forwarded message describing OOB headaches.

1. "Leapfrogging:" The fatal aspect of OOB data is that when two
socket sends for OOB data are issued in sequence before the first has
been read, the second send passes the first and is read out of
sequence by the recipient. This is a gross violation of the stream
socket abstraction and makes the mechanism fundamentally unusable
except in the simplest and most restricted cases, not the situation

2. OOB receive loop: When an application has been notified of the
availability of OOB data and issues a receive for it, a subsequent
receive for normal data must be issued to "clear" the OOB notification
mechanism. If instead a select requesting notification of OOB data is
issued without an intervening receive for normal data, the caller is
immediately notified of the availability of OOB data: the same data
just received. This is at best a form of bizarre and undocumented
behavior; at worst a serious bug.

3. The integer-character problem: The IOCTL system call to determine
whether one has reached the OOB data in the stream is documented to
return a character. Several coding examples support this. In fact,
an integer is returned. It was necessary, after considerable grief,
to go to kernel source code to find that in fact an integer is
returned. It is not known how many similar major documentation errors
exist. Each could cause major delays, with time spent in fruitless

"If it was easy, we'd hire someone cheaper than	you to do it."
{amdahl, cbosgd, mtxinu, ptsfa,	sun}!rtech!daveb {amdahl, cbosgd, mtxinu, ptsfa,	sun}!rtech!daveb daveb@rtech.uucp

uucp: ...!rutgers!columbia!dupuy

This archive was generated by hypermail 2.0b3 on Thu Mar 09 2000 - 14:43:56 GMT