gtpc1m1fTransmission Control Protocol/Internet Protocol

Outbound Message Flow

Outbound message flow involves the following steps:

  1. The socket application issues a send-type API function call.
  2. One or more IP packets are built in the send buffer of the socket.
  3. The IP packets are added to the IP output queue, or sent directly to the OSA-Express card.
  4. The IP packets are sent to the IP routers connected to the TPF system.

When a socket application issues an API call to send user data, the socket API processing layer verifies to see if the send call can be processed at this time. There is a send buffer associated with each socket, and the size of the send buffer is controlled by the application. If there is enough available space in the send buffer of the socket to build the packets containing the user data, the packets are built and control is immediately passed back to the application with a good return code on the API call.

If there is not enough available space in the send buffer of the socket, the action to take is based on the mode in which the socket is running. If the socket is running in nonblocking mode, control is immediately passed back to the application with a return code indicating that the send operation could not be completed at this time. If the socket is running in blocking mode, the application entry control block (ECB) is suspended until enough space becomes available in the send buffer of the socket, or until the send times out (based on the send timeout value of the socket).

The type of socket determines when space becomes available in the send buffer for a socket:

Once an output message (IP packet) has been built, control is returned to the application that issued the socket API call. When the packets are actually sent to the network is an independent process. The socket type determines whether or not a packet can be sent to the network right away:

The TPF system supports differentiated services for outbound messages on an application basis. See TCP/IP Network Services Database Support for more information.

Outbound Message Flow for CDLC

Packets are added to the IP output queue when they are ready to be sent to the network and, for TCP sockets, when the remote end is willing to accept the packets. The actual sending of the packets to the network is an independent process that may or may not be triggered by adding a packet to the IP output queue. The I/O write initiate routine is called for the following:

For a write operation to start, an active IP router must exist that is not in slowdown mode and does not have any I/O operation already in progress. Packets are removed from the IP output queue and sent to the IP router. When the write operation is completed successfully, the packets are copied to the IP trace table if the IP trace function is active for those sockets.

Outbound Message Flow for OSA-Express

If the OSA-Express connection is active, packets are sent directly to the OSA-Express card by using the QDIO link layer and are not placed on the IP output queue unless the destination is in a remote network and there is no active gateway to that network. In this case, packets are placed on the IP output queue.

If the OSA-Express connection is not active or if all gateways to the remote network are not active, packets are placed on the IP output queue until the connection and gateway become active.

See Defining Gateways for more information about gateways.