gtps2m23 | ACF/SNA Data Communications Reference |
When an RTP connection is started, part of the ROUTE_SETUP process is to find the smallest link size of all the hops along the route. This value is the maximum link size (MLS) and is the largest size of an NLP that can be sent across the RTP connection. The MLS value can change (increase or decrease) when a path switch occurs.
The function of intermediate (ANR) nodes is to route NLPs, not examine or process them. For that reason, intermediate nodes do not segment or reassemble NLPs. This means that when an RTP endpoint transmits an NLP, the size of that NLP cannot be greater than the MLS value for that RTP connection. If a message is larger than the MLS value, the message is segmented by the origin RTP endpoint and sent as multiple NLPs that are THDR chained. The first NLP is marked as start-of-message (SOM) and the last NLP is marked as end-of-message (EOM). The remote RTP endpoint will reassemble the pieces of the message and then pass the complete message to the application for processing.
The use of segmentation and reassembly is transparent to the application; therefore, the application does not know or have to worry about the MLS value. However, segmentation and reassembly does involve overhead at the RTP endpoints. To avoid that overhead, it is recommended that you configure your network with link sizes large enough to prevent segmentation from being necessary.
The minimum link size for an HPR link is 768 bytes. The NHDR and THDR sections of an NLP cannot be segmented.
When the SOUTC code builds an NLP, the NHDR and THDR are built first. Subtracting the size of the LH, NHDR, and THDR from the MLS determines how much data will fit in this NLP. If all of the data from the message will fit, segmentation is not necessary and the message is sent in a single NLP. However, if all of the data does not fit, the message must be segmented and sent as multiple NLPs.
The following example shows a THDR chained message:
Figure 83. Segmenting an Output Message
In Figure 83:
In the previous example, the combined size of the LH, NHDR, and THDR was different for each NLP in the chained message. The LH size is fixed. For a given THDR chained message, the NHDR size and contents will be the same for all the NLPs that make up the message (unless a path switch occurs in the middle of sending the chained message). The THDR is variable length based on which optional segments are included.
When the TPF system receives a THDR chained (segmented) message, SNA Opzero reassembles the message and then passes the complete message to the application. When an NLP marked as SOM, but not EOM is received, this indicates the start of a chained message. The message is reassembled in a core block called the THDR chained input message block, which is pointed to by the RTPCB entry. As subsequent pieces of the message (NLPs) are received, the data from those NLPs is added to the core block to rebuild the message. When the NLP marked as EOM arrives, its data is added to the core block and the message is then passed to the application for processing.
Before HPR support, the TPF system supported TH chained messages for LU-LU sessions other than LU 6.2. The long message assembly (LMA) package puts a TH chained message back together before passing it to the application. With HPR support, TH chaining for LU 6.2 must be supported over RTP connections. SNA Opzero, not LMA, performs the TH chaining reassembly function for LU 6.2 sessions over RTP connections. This reassembly is very similar to THDR chaining reassembly except that the message is rebuilt in a core block called the TH chained input message block, which is pointed to by the SCB entry representing the LU 6.2 session.