gtps2m21ACF/SNA Data Communications Reference

HPR Output Messages

Building an output message for an HPR LU-LU session involves several steps. The following example explains the steps for building an NLP containing 100 bytes of user data:

  1. The application issues the ROUTC macro pointing to the RCPL and a data level (core block) containing the 100 bytes of data to be sent. The core block can be any size (381, 1055, or 4 KB).
  2. The core block is converted to FID1 format. The FID1 TH is built along with the RH. The user data is the RU portion of the NLP. This block is referred to as an HPR SOUTC type-A block. Figure 82 shows what the HPR SOUTC type-A block looks like in this example.
  3. A new 4-KB core block is obtained in the system virtual memory (SVM). RH and RU data is copied from the HPR SOUTC type-A block to near the end of the new block. At the end of the new block there is the NLP pad area, which is used to save information regarding the NLP being built. A FID5 TH is built right before the RH. The HPR SOUTC type-A block is then returned to the system. The new block is referred to as an HPR SOUTC type-B block. Figure 82 shows what the HPR SOUTC type-B block looks like in this example.
  4. If the message cannot be sent right away, the HPR SOUTC type-B block is placed on the RTP output queue. If the message can be sent right away or when the message is dequeued from the RTP output queue, continue with the next step.
  5. The variable length NHDR and THDR are built. Next, the FID5 TH, RH, and RU are shifted up to just after the THDR. The LH is built now that the size of the NLP is known. A complete NLP has been built. The 4-KB core block containing the complete NLP is referred to as an HPR SOUTC type-C block. Figure 82 shows what the HPR SOUTC type-C block looks like in this example.
  6. The HPR SOUTC type-C block is placed on the SOUTC queue causing the NLP to be sent to the ALS.

Figure 82. HPR SOUTC Block Types




If the data is too large to be sent in one NLP, the original FID1 block (HPR SOUTC type-A block) is converted to multiple HPR SOUTC type-B blocks. See Segmenting Output Messages for more information.

Only HPR SOUTC type-B blocks exist on the RTP output queue. The NHDR and THDR portions of an NLP cannot be built until the NLP is ready to be sent out. For example, if a path switch is in progress, there is no current route; therefore, the routing information to put in the NHDR is unknown.

HPR SOUTC type-C blocks go only on the SOUTC queue. The beginning of the block up to and including the LH is identical to that of a FID2 PIU. This is necessary because both NLPs and FID2 PIUs can be sent on the same ALS (have blocks on the same SOUTC queue).

Some of the special HPR functions like message retransmission and sending a control message build their own HPR SOUTC type-B blocks to interface directly with the SOUTC code.