ZGRP - Persistent Sessions control blocks

    ====================================================================
      CONTROL BLOCK NAME = DFHZGRPC
      DESCRIPTIVE NAME = CICS TS PRSS initialisaton blocks
           Licensed Materials - Property of IBM
            Restricted Materials of IBM 
           5655-Y04
           (C) Copyright IBM Corp. 1992, 1998 
        The following control blocks are all created by DFHZGRP.
      FUNCTION = PRSS_CV29
          This is SHARED CICS data which contains:
          CV29, FMH5, BIS and BID data.
          There will be one PRSS CV29 per OPNDST RESTOREd TCTTE.
      LIFETIME =
          It is built by DFHZGRP during persistent session recovery
          (EMER | VTAM_RESART) and is freemained by DFHZNCA when
          DFHZC0146 or DFHZC0156 (good PS recover) is issued,
          or when DFHZCLS is run to cover all the cases where
          the session failed to restore and was unbound.
      STORAGE CLASS =
          SMMC SHARED_CICS
      LOCATION =
          Chained of the TCTTE via TCTE_PRSS_CV29_PTR.
      INNER CONTROL BLOCKS = none
      FUNCTION = NIBLIST
          Persistent sessions INQUIRE NIBLIST - created and used by
          DFHZGRP to hold data supplied by VTAM containing the
          following information about each NIB that persists.
          See VTAM Programming SC31-6436 for a full description.
      LIFETIME =
          It is built by DFHZGRP during persistent session recovery
          (startup or dynamic open) and freemained by DFHZGRP before
          it exits.
      STORAGE CLASS =
          USAGE(DOMAIN)
      LOCATION =
          Anchored off the TCT Prefix TCTV_FIRST_NIBLIST_PTR
      INNER CONTROL BLOCKS = See SC31-6436
      FUNCTION = TCT_BIND
          Defines the bind in the TCT, starting with the length.
          This is used to copy the PRSS BIND into the TCTTE.
      LIFETIME =
          It is built by DFHZGRP during persistent session recovery
          (emergency restart or vtam restart) when logmode= n
          is used and freemained if and when the TCTTE is
          deleted.
      STORAGE CLASS =
          ZCBIMG subpool
      LOCATION =
          Anchored off TCTEBIMG
      INNER CONTROL BLOCKS = none
      FUNCTION = ZGRP_RPL
          Defines a set of 11 RPLs for use by DFHZGRP and DFHZGUB.
      LIFETIME =
          It is built by DFHZGRP during persistent session recovery
          (startup or dynamic open) and freemained by DFHZGRP before
          it exits. However, if some of the RPLs are still active the
          pool will remain and then be re-used and freemained by
          subsequent dynamic OPEN VTAM ACB requests.
      STORAGE CLASS =
          ZCNIBLST subpool
      LOCATION =
          Anchored off the TCT Prefix TCTV_PRSS_RPL_POOL_PTR
      INNER CONTROL BLOCKS = none
      NOTES :
       DEPENDENCIES = S/370
       RESTRICTIONS =
       MODULE TYPE = Control block definition
     ------------------------------------------------------------------
      EXTERNAL REFERENCES =
        DATA AREAS =
        CONTROL BLOCKS =
        GLOBAL VARIABLES (Macro pass) =
     ------------------------------------------------------------------
    ====================================================================
    ====================================================================
     PRSS CV29 containing CV29, FMH5, BIS and BID data,
     built by DFHZGRP from OPNDST RESTORE data and passed to DFHZXPC
     and DFHZXRC (CV29 for terminals only).
    ====================================================================
Table 1.
Offset Hex Type Len Name (Dim) Description
(0) STRUCTURE 163 PRSS_CV29_DATA
(0) CHARACTER 91 PRSS_CV29
(5B) CHARACTER 42 PRSS_FMH5
(5B) CHARACTER 21 FMH5_PS_DATA FMH5 PLU to SLU data
(5B) CHARACTER 2 FMH5_PSSEQ FMH5 PLU to SLU seq. no.
(5D) CHARACTER 3 FMH5_PSRH FMH5 PLU to SLU RH
(60) CHARACTER 16 FMH5_PSRU FMH5 PLU to SLU RU
(70) CHARACTER 21 FMH5_SP_DATA FMH5 SLU to PLU data
(70) CHARACTER 2 FMH5_SPSEQ FMH5 SLU to PLU seq. no.
(72) CHARACTER 3 FMH5_SPRH FMH5 SLU to PLU RH
(75) CHARACTER 16 FMH5_SPRU FMH5 SLU to PLU RU
(85) CHARACTER 20 PRSS_BIS
(85) CHARACTER 10 BIS_PS_DATA BIS PLU to SLU data
(85) CHARACTER 2 BIS_PSSEQ BIS PLU to SLU seq. no.
(87) CHARACTER 3 BIS_PSRH BIS PLU to SLU RH
(8A) CHARACTER 5 BIS_PSRU BIS PLU to SLU RU
(8F) CHARACTER 10 BIS_SP_DATA BIS SLU to PLU data
(8F) CHARACTER 2 BIS_SPSEQ BIS SLU to PLU seq. no.
(91) CHARACTER 3 BIS_SPRH BIS SLU to PLU RH
(94) CHARACTER 5 BIS_SPRU BIS SLU to PLU RU
(99) CHARACTER 10 PRSS_BID
(99) CHARACTER 2 BID_SEQ Bid sequence number
(9B) CHARACTER 3 BID_RH Bid RH
(9E) CHARACTER 5 BID_RU Bid RU
    ====================================================================
     Persistent sessions NIBLIST - as produced by DFHZGRP as a result
     or INQUIRE PERSESS and OPNDST RESTORE.
     The NIB and BIND definitions should be replaced by the VTAM
     versions when they become available. If they are not replaced
     then they should be kept in step with the VTAM versions.
     The NIBLIST is anchored from TCTV_FIRST_NIBLIST_PTR
    ====================================================================
Table 2.
Offset Hex Type Len Name (Dim) Description
(0) STRUCTURE * NIBLIST
(0) CHARACTER 24 NIBLIST_HEADER
(0) CHARACTER 8 EYECATCHER >PRSSNBL !
(8) ADDRESS 4 CHAIN_PTR next niblist
(C) FULLWORD 4 NIB_COUNT count of NIBS in this list !
(10) FULLWORD 4 UNBIND_COUNT count of unbinds " !
(14) ADDRESS 4 TOP_NIBLIST start of this block
(18) CHARACTER * NIB_START start of nibs !
Table 3.
Offset Hex Type Len Name (Dim) Description
(0) STRUCTURE 64 NIB 1st of many NIBs !
(0) CHARACTER 1 * Always 'D0'x
(1) UNSIGNED 1 NIBFLG0
(1) 1... ....   NIBNNAMS Partner used member name
(2) CHARACTER 1 *
(3) UNSIGNED 1 NIBLEN Length of NIB
(4) FULLWORD 4 NIBCID CID !
(8) ADDRESS 4 NIBUSER a(old_tctte) a(tctte) or 0 !
(C) CHARACTER 8 NIBSYM Netname !
(14) CHARACTER 8 NIBMODE !
(14) CHARACTER 8 NIBNET Netid
(1C) CHARACTER 8 NIBDEVCH !
(1C) CHARACTER 4 *
(20) CHARACTER 1 DEVPHYSA
(24) CHARACTER 4 NIBPROCD !
(28) UNSIGNED 1 NIBFLG1 !
(28) 1... ....   NIBLAST Off if last nib
(28) .1.. ....   NIBCON On if OPNDST restore OK !
(29) UNSIGNED 1 NIBFLG2 !
(29) 11.. ....   * !
(29) ..1. ....   NIBPSPLU On if primary !
(29) ...1 ....   NIBPSDFS On if Continue specific !
(29) .... 1...   NIBPSDFA On if Continue any !
(29) .... .1..   NIBPSRSP On if RESP data mode !
(2A) CHARACTER 2 * !
(2C) ADDRESS 4 NIBEXLST
(30) CHARACTER 8 NIBGENN Generic resource name
(30) CHARACTER 8 NIBLMODE
(38) CHARACTER 4 *
(3C) ADDRESS 4 NIBRPARM Pointer to restore plist !
    --------------------------------------------------------------------
     RESTORE_PLIST_POINTERS
       A set of 7 pointer per NIB in the NIBLIST. Pointed to by
       NIBRPARM in the NIB.
       They in turn, point to data supplied for each NIB by INQUIRE
       PERSESS and OPNDST RESTORE.
    --------------------------------------------------------------------
Table 4.
Offset Hex Type Len Name (Dim) Description
(0) STRUCTURE 28 RESTORE_PLIST_ POINTERS
(0) ADDRESS 4 BIND_PTR
(4) ADDRESS 4 CV29_PTR
(8) ADDRESS 4 MODENAME_PTR
(C) ADDRESS 4 SESSID_PTR
(10) ADDRESS 4 FMH5_PTR
(14) ADDRESS 4 BID_PTR
(18) ADDRESS 4 BIS_PTR
    --------------------------------------------------------------------
     BIND
       Returned by INQUIRE PERSESS and pointed to by BIND_PTR
       The definition of fields within the bind should be replaced
       by the official VTAM ones.
    --------------------------------------------------------------------
Table 5.
Offset Hex Type Len Name (Dim) Description
(0) STRUCTURE 37 BIND
(0) UNSIGNED 1 BINFMTY Bind format and type !
         3 binfmt bit(4), Bind format
         3 bintype bit(4), Bind type
(1) UNSIGNED 1 BINFM FM profile !
(2) UNSIGNED 1 BINTS TS profile !
(3) CHARACTER 3 * !
(6) BIT(8) 1 BINCMNP2 7 Send/Receive mode !
(6) 111. ....   * !
(6) ...1 ....   BINBKFS Bit X'10' Primary is brackets!
(6) .... 1111   * !
(7) BIT(8) 1 BINAPACE 8 SLU send pacing !
(8) BIT(8) 1 BINRPACE 9 SLU receive pacing !
(9) UNSIGNED 1 BINSRUSZ 10 SLU max send RU size !
(A) UNSIGNED 1 BINPRUSZ 11 PLU max send RU size !
(B) BIT(8) 1 BINSPACE 12 PLU send pacing !
(C) BIT(8) 1 BINBPACE 13 PLU receive pacing !
(D) UNSIGNED 1 BINLUP 14 LU type !
(E) CHARACTER 11 BINPSCHR Bytes 15-25 !
(E) BIT(8) 1 BINLULEV 15 LU Type !
(F) BIT(8) 1 BINARCH1 16 Arch info 1 !
(10) CHARACTER 5 * 17-21 !
(15) BIT(8) 1 BINFLG0 22 Flag byte !
(15) 1... ....   BINES Bit X'80' Ext Sec Supp !
(15) .111 1111   * !
(16) BIT(8) 1 BINFLG1 23 Flag byte !
(16) 111. ....   * !
(16) ...1 ....   BINCLSS Bit X'01' Acc sec supp !
(16) .... 11..   * !
(16) .... ..1.   BINAVFS Bit X'02' Already verif !
(16) .... ...1   BINPV Bit X'01' Persist verif !
(17) BIT(8) 1 BINFLG2 24 Flag byte !
(17) 1... ....   * !
(17) .1.. ....   BINCSBK Bit X'40' Sync level 2 !
(17) ..1. ....   BINCONF Bit X'20' Sync level 1 !
(17) ...1 ....   * !
(17) .... 1...   BINSECNH Bit X'08' 2ry reinitiate !
(17) .... .1..   BINPRIMH Bit X'04' 1ry reinitiate !
(17) .... ..1.   BINPSS Bit X'02' parallel sess !
(17) .... ...1   BINGDSVF Bit X'01' CNOS supported !
(18) BIT(8) 1 BINFLG3 25 Flag byte !
(18) 1... ....   * !
(18) .1.. ....   BINLTDRC Bit X'40' LR bit !
(18) ..11 1111   * !
(19) BIT(8) 1 BINCRCTL 26 Cryptography !
(1A) UNSIGNED 1 BINPRIML 27 1ry LU name length !
(1B) CHARACTER 8 BINPRIM 28-35 1ry LU name !
        -------------------------------------------------------------
-! If a bind returned in a persisent session niblist has a
non 0 userdata length (BINUSEL) then the bind is followed
        by structured user data fields, including the modename,
        ! sessid, PLUNAME or SLUNAME.
        ! -----------------------------------------------------------
---
(23) UNSIGNED 1 BINUSEL 36 Length of user data !
(24) CHARACTER 1 BINUSE 37 First byte of data !
    --------------------------------------------------------------------
     MODENAME (Prefixed by 'll02'x)
       Returned by INQUIRE PERSESS and pointed to by MODENAME_PTR
    --------------------------------------------------------------------
Table 6.
Offset Hex Type Len Name (Dim) Description
(0) STRUCTURE 10 MODENAME_STRUCT !
(0) UNSIGNED 1 MODENAME_LENGTH Length of modename+ 1 !
(1) UNSIGNED 1 MODENAME_KEY Key '02' !
(2) CHARACTER 8 MODENAME Modename used by CICS !
    --------------------------------------------------------------------
     SESSID ( Prefixed by 'll03'x)
       Returned by INQUIRE PERSESS and pointed to by SESSID_PTR.
    --------------------------------------------------------------------
Table 7.
Offset Hex Type Len Name (Dim) Description
(0) STRUCTURE 10 SESSID_STRUCT !
(0) UNSIGNED 1 SESSID_LENGTH Length of sessid + 1 !
(1) UNSIGNED 1 SESSID_KEY Key '03' !
(2) CHARACTER 8 SESSID Sessid used by CICS !
    --------------------------------------------------------------------
     TCT_BIND
       Defines the bind in the TCT, starting with the length.
       Note: TCTEBIMG points beyond the flag in the first byte to the
       length, followed by the bind itself.
    --------------------------------------------------------------------
Table 8.
Offset Hex Type Len Name (Dim) Description
(0) STRUCTURE 38 TCT_BIND
(0) UNSIGNED 1 TCT_BIND_LENGTH
(1) CHARACTER 13 *
(E) UNSIGNED 1 TCT_BINLUP
(F) CHARACTER 23 *
    --------------------------------------------------------------------
     RPL_POOL
       Defines a set of 11 RPLs for use by DFHZGRP and DFHZGUB.
       The block is obtained from the ZCNIBLST variable length subpool
       when DFHZGRP is entered and deleted by DFHZGRP if all the
       RPLs are inactive.
       The ECB is for use by DFHZGUB to wait until an RPL becomes free.
       The first RPL is for use by DFHZGRP - INQUIRE and OPNDST.
       The next 10 are for DFHZGUB, which initiates up to 10 CLSDSTs
       or TERMSESS's. After that it needs to wait for one to become
       inactive.
     The RPL POOL is anchored from TCTV_PRSS_RPL_POOL_PTR.
     The last 10 RPLS for use by DFHZGUB are anchored from
     TCTV_PRSS_UNBIND_RPLS_PTR
    --------------------------------------------------------------------
Table 9.
Offset Hex Type Len Name (Dim) Description
(0) STRUCTURE * ZGRP_RPL_POOL
(0) CHARACTER 16 RPL_POOL_HEADER
(0) CHARACTER 8 RPL_EYECATCHER >PRSSRPL !
(8) ADDRESS 4 WAIT_RPL_ECB DFHZGUB wait for RPL ECB !
(C) FULLWORD 4 RPL_SIZE Size of each RPL !
(10) CHARACTER * ZGRP_RPL
    --------------------------------------------------------------------
     Security Mechanisms subfield (prefixed by '..14')
    --------------------------------------------------------------------
Table 10.
Offset Hex Type Len Name (Dim) Description
(0) STRUCTURE * SEC_MECH_STRUCT
(0) UNSIGNED 1 SEC_MECH_LENGTH Length of struct - 1
(1) UNSIGNED 1 SEC_MECH_KEY Key '14'
(2) UNSIGNED 1 SEC_POLICY_LENGTH security policy length
(3) CHARACTER * *
Table 11.
Offset Hex Type Len Name (Dim) Description
(0) STRUCTURE * EXT_SEC_MECH_STRUCT
(0) UNSIGNED 1 SEC_EXT_MECH_LEN length of extended mechs
(1) CHARACTER * SEC_EXT_MECH mechanisms
(1) CHARACTER 1 SEC_MECH_ID mechanism id
(2) UNSIGNED 1 SEC_MECH_POLICY mechanism policy
(2) 1... ....   SEC_POLICY_REQD Bit X'80' Req sec supp
(2) .111 1111   *

Constants

Table 12.
Len Type Value Name Description
  --------------------------------------------------------------------
   NIB_DATA_LENGTH
     Length of one NIB, PLIST and data returned by INQUIRE PERSESS
     Note - after VTAM APAR OY65251 LU62 NIB data will also contain
     key 04 from the bind user data - with a maximum length of 19
     VTAM may add extra subfields in later releases - in which case
     this length must be increased.
  --------------------------------------------------------------------
4 DECIMAL 164 NIB_DATA_LENGTH
  --------------------------------------------------------------------
   SHORTEST_NIB_DATA_LENGTH
     Length of the shortest possible NIB data returned by VTAM
     INQUIRE PERSESS.
  --------------------------------------------------------------------
4 DECIMAL 129 SHORTEST_NIB_DATA_ LENGTH
       
  --------------------------------------------------------------------
   OPNDST_DATA_LENGTH
     Length of one set of CV29, FMH5, BIS + BID.
  --------------------------------------------------------------------
4 DECIMAL 163 OPNDST_DATA_LENGTH