*DECK RELCONN
USETEXT LLCB
USETEXT NCNB
USETEXT NCNT
USETEXT NIPDEF
USETEXT PARAMS
USETEXT SUPMSG
PROC RELCONN(LLCBA,TRIGER);
# RELEASE ALL CONNECTIONS ON A LOGICAL LINK #
STARTIMS;
#
*1DC RELCONN
*
* 1. PROC NAME AUTHOR DATE
* RELCONN E.T. WAN 81/05/26
*
* 2. FUNCTIONAL DESCRIPTION
* THIS ROUTINE TERMINATES ALL CONNECTIONS ON A LOGICAL LINK.
*
* 3. METHOD USED
* FOR EACH ACTIVE CONNECTION ON THE LOGICAL LINK, CALL NETWORK
* CONNECTION STATE TABLE PROCESSOR TO TERMINATE THE CONNECTION.
*
* 4. ENTRY PARAMETERS
* LLCBA ADDRESS OF LLCB
* TRIGER TRIGER TO STATE TABLE PROCESSOR
*
* 5. EXIT PARAMETERS
* NONE
*
* 6. COMDECKS CALLED
* LLCB
* NCNT
* NIPDEF
*
* 7. ROUTINES AND OVERLAYS CALLED
* NCSTTP NETWORK CONNECTION STATE TABLE PROCESSOR
* XTRACE TRACE CALLS
*
* 8. DAYFILE MESSAGES
* NONE
*
*
#
STOPIMS;
#
**** EXTERNAL ENTRY POINTS
#
XREF
BEGIN
LABEL RJMAIN; # RETURN ADDRESS IN OVLCALL #
PROC NCSTTP; # NETWORK CONNECTION STATE TABLE PROCESSOR#
PROC XTRACE; # TRACE CALLS #
END
#
* LOCAL VARIABLES
#
ITEM CONN; # CONNECTION NUMBER #
ITEM FIRSTCN; # FIRST CONNECTION NUMBER IN A NCNT #
ITEM I; # LOOP CONTROL VARIABLE #
ITEM J; # LOOP CONTROL VARIABLE #
ITEM NNCNTE; # NUMBER OF ENTRIES IN NCNT #
ITEM LLCBA ; # LLCB ADDRESS #
ITEM TRIGER ; # TRIGER TO STATE TABLE PROCESSOR #
#**********************************************************************#
BEGIN #RELCONN#
CONTROL IFEQ DEBUG,1;
XTRACE("RCONN") ;
CONTROL FI;
P<LLCB> = LLCBA ; # LLCB #
NNCNTE = NCNTSIZE - NCNTHSIZE; # NUMBER OF ENTRIES IN NCNT #
FOR I = LLCBHSIZE STEP 1 UNTIL LLCBSIZE - LLCBHSIZE - 1
DO # CHECK EACH NCNT ADDRESS IN LLCB #
BEGIN
P<NCNT> = LLCBNCNT[I]; # NCNT ADDRESS #
IF P<NCNT> NQ 0 # NCNT EXISTS #
THEN
BEGIN
FIRSTCN = NCNTCI[0] * NNCNTE; # FIRST CONN NUMBER IN NCNT #
FOR J = NCNTHSIZE STEP 1 WHILE J LQ NNCNTE AND
LLCBNCNT[I] NQ 0
DO # CHECK EACH NCNB ADDRESS IN NCNT #
BEGIN
IF NCNTNCNB[J] NQ 0 # NCNB EXISTS #
THEN
BEGIN
# IF THIS IS A PRU CONNECTION, SET THE NCNTREL BIT SO #
# THE CONNECTION WILL BE RELEASED WHEN PIP SENDS NIP A #
# RESPONSE WORKLIST (OP=3). #
P<NCNB> = NCNTNCNB[J];
IF (NCNBID[0] EQ PCNBIDVALUE) OR
(NCNBID[0] EQ LCNBIDVALUE)
THEN
BEGIN
NCNTREL[J] = TRUE; # SET THE TO-BE-RELEASED FLAG #
END
CONN = FIRSTCN + J - NCNTHSIZE ; # CONNECTION NUMBER #
#
* CALL NETWORK CONNECTION STATE TABLE PROCESSOR TO TERMINATE
* CONNECTION. TRIGGER IS 'LOGICAL LINK FAIL'.
#
NCSTTP(P<LLCB>,CONN,TRIGER,0);
END
END
END
END
END # RELCONN #
TERM