Browse Prior Art Database

X25 Data Receive One-Packet Option

IP.com Disclosure Number: IPCOM000104339D
Original Publication Date: 1993-Apr-01
Included in the Prior Art Database: 2005-Mar-19
Document File: 2 page(s) / 81K

Publishing Venue

IBM

Related People

Price, S: AUTHOR [+2]

Abstract

Disclosed is an extension of the X25 API of OS/2 EE* to allow applications to receive a single data packet improving efficiency by optimising use of buffer space and avoiding blocking X25 virtual circuits.

This text was extracted from an ASCII text file.
This is the abbreviated version, containing approximately 52% of the total text.

X25 Data Receive One-Packet Option

      Disclosed is an extension of the X25 API of OS/2 EE* to allow
applications to receive a single data packet improving efficiency by
optimising use of buffer space and avoiding blocking X25 virtual
circuits.

      The original implementation of the X25DataReceive verb has the
following limitation.  A user programming system that supports many
concurrent virtual circuits that receive data intermittently (in
bursts) can operate in either of the following ways.

      A specific X25DataReceive verb can be issued for each virtual
circuit, ensuring that there is always a verb with its data buffer
available for any incoming data packet or sequence of data packets.
Each verb specifies the connection ID of the virtual circuit to which
it is specific.  This technique has the limitation that it requires a
data buffer for each virtual circuit even though there may be no data
traffic on the circuit for considerable periods of time.  The amount
of buffer space could be up to 128 virtual circuits times the
required buffer size (anything up to 65535 bytes).

      Alternatively one or more X25DataReceive verbs with a
connection ID of zero are issued.  The connection ID of zero means
that data from any virtual circuit could satisfy the verb, called a
"group read".  This technique enables a single or a small number of
buffers to be shared by all the virtual circuits in use with the
limitation that it can sometimes cause virtual circuits to be locked
out, as follows.  Suppose a single group-read verb is issued.
Virtual circuit 1 starts sending a sequence of data packets and the
first packet is placed in the group-read data buffer, thus making the
buffer specific to virtual circuit 1.  It may be some time before the
rest of the sequence of data packets is received and placed in the
buffer.  During this time, virtual Circuits 2 and 3 (say) may start
sending data packets.  There is no data buffer available in which to
place these packets, and no means of notifying the user program that
there are packets to receive.  Virtual circuits 2 and 3 are thus
locked out until sufficient data packets from virtual circuit 1
arrive to fill the group-read data buffer.

      The problem is solved by implementing a new...