Documentation Archive Developer
Search

ADC Home > Reference Library > Technical Q&As > Legacy Documents > Networking >

Legacy Documentclose button

Important: This document is part of the Legacy section of the ADC Reference Library. This information should not be used for new development.

Current information on this Reference Library topic can be found here:

Open Transport T_DATA Event Queuing


Q: I have a question regarding T_DATA event handling for multiple active endpoints.

Let's say I have two endpoints open, ep1 and ep2. Data arrives for ep1, which then receives a T_DATA event.

If data arrives on ep2 before the data for ep1 is read, it is my understanding that ep2 will not get a T_DATA event until the data for ep1 is read. Is that correct? When the data for ep1 is finally read will ep2 then get a T_DATA event?

In other words, does Open Transport queue multiple T_DATA events corresponding to multiple endpoints?

A: XTI or Open Transport endpoints are handled independently of each other. Whatever events are pending on one endpoint have (for the most part) no effect on any other endpoints.

Assume that ep1 gets notified of a T_DATA event. Following this, a separate T_DATA event is queued up for ep2. As soon as the notifier for ep1 completes and returns to OpenTransport, the notifier for ep2 will be invoked. This behavior is not contingent upon whether ep1 processed the event or not.

Consequently, ep1 will not receive any more T_DATA events until its current T_DATA event is cleared. (In this case, by invoking OTRcv until its status returns a kOTNoDataErr.)

Keep in mind that waiting too long to process ep1's T_DATA event will result in the exhaustion of buffers in the lower protocol layers.

[May 14 1996]