gtps2m21 | ACF/SNA Data Communications Reference |
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:
- 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).
- 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.
- 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.
- 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.
- 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.
- 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.