cdc:nos2.source:nam5871:nlopip
Table of Contents
NLOPIP
Table Of Contents
- [00015] PRGM NLOPIP
- [00090] PROC MRELS
- [00091] PROC LOCLLCB
- [00092] PROC NXBLINK
- [00093] PROC OMSG
- [00094] PROC OVLCALL
- [00095] PROC XTRACE
Source Code
- NLOPIP.txt
- *DECK NLOPIP
- USETEXT ACB
- USETEXT AHEADER
- USETEXT APPSTAT
- USETEXT DRHDR
- USETEXT LLCB
- USETEXT NBT
- USETEXT NHEADER
- USETEXT NIPDEF
- USETEXT OVERLAY
- USETEXT PARAMP
- USETEXT PARAMS
- USETEXT PT
- USETEXT SUPMSG
- PRGM NLOPIP;
- # LINK DOWNLINE (OUTBOUND) SUPERVISORY MESSAGE FOR PIP #
- STARTIMS;
- #
- *1DC NLOPIP
- *
- * 1. PROC NAME AUTHOR DATE
- * NLOPIP E. GEE 85/04/02
- *
- * 2. FUNCTIONAL DESCRIPTION
- * LINK CS/NS SUPERVISORY MESSAGES TO OUTBOUND BUFFER.
- *
- * 3. METHOD USED
- * CHECK THAT THERE IS A CORRECT NBT ENTRY FOR THE SPECIFIC
- * COUPLER.
- * IF SUPERVISORY MESSAGE IS FROM CS,
- * CHECK THAT LOGICAL LINK EXISTS AND SUPERVISION EXISTS FOR THE
- * LOGICAL LINK.
- * CHECK NPU OFF FLAG, ACTIVE FLAG, DOWN FLAG, BOOTSTRAP FLAG, AND
- * LLK FLAG TO ALLOW SUITABLE MESSAGES TO BE LINKED.
- * IF NO ERROR ENCOUNTERED,
- * CONVERT APPLICATION HEADER TO NETWORK HEADER.
- * LINK MESSAGE TO PIP OUTBOUND CHAIN.
- * ELSE (BAD SUP MSG FROM CS/NS),
- * CALL OMSG TO ISSUE DAYFILE MESSAGE.
- * CALL NGIGO TO DAYFILE AND DISCARD BAD SUPERVISORY MESSAGE.
- *
- * 4. ENTRY PARAMETERS
- * ACBADDR ACB ADDRESS OF NS/CS
- * PARAMP1 MESSAGE BUFFER ADDRESS
- *
- * 5. EXIT PARAMETERS
- * NONE
- *
- * 6. COMDECKS CALLED
- * ACB APPLICATION CONTROL BLOCK TEMPLATE
- * AHEADER APPLICATION BLOCK HEADER WORD TEMPLATE
- * APPSTAT NETWORK WORKLIST PROCESSING TABLE
- * DRHDR DATA ENTRY HEADER WORD TEMPLATE
- * LLCB LOGICAL LINK CONTROL BLOCK TEMPLATE
- * NBT NETWORK BUFFER TABLE
- * NHEADER NETWORK BLOCK HEADER WORD TEMPLATE
- * NIPDEF NIP CONSTANT DEFINITIONS
- * OVERLAY OVERLAY TABLE
- * PARAMP PARAMETERS PASSED TO PRIMARY OVERLAY
- * PARAMS PARAMETERS PASSED TO SECONDARY OVERLAY
- * PT POINTER TABLE
- * SUPMSG SUPERVISORY MESSAGE TEMPLATES
- *
- * 7. ROUTINES AND OVERLAYS CALLED
- * LOCLLCB LOCATE LOGICAL LINK
- * NXBLINK LINK MESSAGE ON PIP OUTBOUND CHAIN
- * OMSG ISSUE DAYFILE MESSAGE
- * OVLCALL LOAD AND EXECUTE OVERLAY
- * XTRACE TRACE CALLS
- *
- * 8. DAYFILE MESSAGES AND OTHER IMPORTANT INFORMATION
- *
- * * BAD SUP MSG FROM NS/CS DISCARDED *
- *
- * THIS PROGRAM IS A PRIMARY OVERLAY LOADED BY SUBROUTINE OVLCALL.
- * WHEN EXECUTION HAS COMPLETED, A JUMP IS MADE TO LOCATION RJMAIN
- * TO RETURN TO THE CALLING PROGRAM.
- *
- * W A R N I N G - THIS PROGRAM CANNOT EXCEED THE PRIMARY
- * OVERLAY BUFFER SIZE MINUS 5 (560B WORDS).
- *
- * THIS OVERLAY IS CALLED BY HPPUT.
- *
- #
- STOPIMS;
- XREF
- BEGIN
- PROC MRELS; # RELEASE BUFFER SPACE #
- PROC LOCLLCB; # LOCATE LOGICAL LINK #
- PROC NXBLINK ; # LOG MESSAGE INTO PIP OUT #
- PROC OMSG; # ISSUE DAYFILE MESSAGE #
- PROC OVLCALL; # LOAD AND EXECUTE OVERLAY #
- PROC XTRACE; # RECORD TRACES #
- LABEL RJMAIN; # RETURN ADDRESS IN OVLCALL #
- END
- # LOCAL VARIABLES #
- ITEM BUFAD; # BUFFER ADDRESS #
- ITEM ERRORF B; # ERROR FLAG #
- ITEM CNODE; # COUPLER NODE #
- ITEM I; # LOOP CONTROL VARIABLE #
- ITEM IND; # INDEX #
- ITEM INDX; # INDEX #
- ITEM TEMP; # SAVE APPLICATION BLOCK HEADER #
- ITEM FOUND B ; # MATCHED NPU FLAG #
- ITEM TEMPDN ; # TEMPORARY DEST. NODE #
- ARRAY MSG01 S(4);
- BEGIN
- ITEM MSG011 C(0,0,34) = [" BAD SUP MSG FROM NS/CS DISCARDED."];
- ITEM MSG01E U(3,24,36) = [0];
- END
- #**********************************************************************#
- BEGIN # NLOPIP #
- CONTROL IFEQ DEBUG,1;
- XTRACE("LOPIP") ;
- CONTROL FI;
- P<DRHDRWD> = 0; # DATA BLOCK HEADER ADDRESS #
- P<ACB> = ACBADDR; # ADDRESS OF CS/NS ACB #
- ERRORF = TRUE; # INITIALIZE ERROR FLAG #
- P<SUPMSG> = PARAMP1 + DBHSIZE + ABHSIZE; # SM ADDRESS #
- P<AHEADER> = PARAMP1 + DBHSIZE; # APPLICATION HEADER ADDR #
- CNODE = ABHSN[0]; # COUPLER NODE #
- P<SMNIP> = P<SUPMSG>;
- TEMPDN = ABHDN[0]; # DESTINATION NODE #
- FOUND = FALSE;
- #
- SEARCH FOR NBT ENTRY WITH MATCHING COUPLER NODE NUMBER
- #
- FOR I = 0 STEP NBTFETNO WHILE I LQ NBTMAXID
- AND NOT FOUND
- DO
- BEGIN # SEARCH FOR NBTE WITH HN = COUPLE #
- IF NBTHN[I] EQ CNODE
- AND NBTIUF[I]
- THEN
- BEGIN # FOUND THE ENTRY #
- FOUND = TRUE ;
- IND = I; # SAVE INDEX #
- END
- END # SEARCH FOR NBTE WITH HN = COUPLR #
- I = IND;
- INDX = I+4; # INDEX INTO PIP FLAGS IN NBT 5TH FET #
- #
- CHECK IF OKAY TO SEND SUPERVISORY MESSAGE TO NPU
- #
- IF FOUND AND # ACTIVE NBT EXISTS #
- NOT NBTOF[INDX] AND # NPU NOT OFF IN EST#
- ( ( NBTAF[INDX] AND # NPU ACTIVE #
- NOT NBTMF[INDX] ) OR # AND SAMP IS NOT RUNNING#
- ( PFC EQ NPU AND # NS DUMP-LOAD SM FOR #
- CNODE EQ TEMPDN AND # LOCAL NPU-S WHICH IS #
- ( NOT NBTAF[INDX] OR # NOT AC AND SAM NOT LOAD#
- NBTDF[INDX] ) ) OR # OR IS IN NPU DUMP-LOAD #
- ( NBTLF[INDX] AND # PIP WAIT FOR REG/CP RSP#
- PFCSFC[0] EQ REGCP AND # REG/CP RSP TO PIP ALLOW#
- REGR[0] ) ) # RESPONSE BIT IS ON #
- THEN
- BEGIN
- ERRORF = FALSE; # NO ERROR ENCOUNTERED #
- END
- IF ACBAN[0] EQ PROCAN[CSORD]
- THEN # SUPERVISORY MESSAGE IS FROM CS #
- BEGIN
- ERRORF = TRUE;
- LOCLLCB(ABHSN[0],ABHDN[0],P<LLCB>) ;
- IF P<LLCB> NQ 0 AND # LOGICAL LINK EXISTS #
- LLCBCS[0] # CS HAS SUPERVISION OF THIS NPU #
- THEN # VALID SUPERVISORY MESSAGE TO SEND TO PIP#
- BEGIN
- ERRORF = FALSE; # VALID FOR CS TO SEND SUP MSG TO THIS NPU#
- END
- END
- IF NOT ERRORF
- THEN # NO ERROR WAS FOUND IN SUP MSG #
- BEGIN
- #
- CONVERT ABH TO NETWORK HEADER
- #
- TEMP = ABHWORD[0]; # SAVE APPLICATION HEADER #
- ABHWORD[0] = 0; # CLEAR APPLICATION HEADER #
- P<NHEADER> = PARAMP1 + DBHSIZE; # NETW HEADER ADDR #
- P<AHEADER> = LOC(TEMP); # APPLICATION HEADER #
- DN[0] = TEMPDN; # DESTINATION NODE #
- SN[0] = CNODE; # SOURCE NODE #
- CN[0] = 0;
- BT[0] = NETCMD; # BLOCK TYPE #
- NHACT[0] = ABHACT[0]; # CHARACTER TYPE #
- CC[0] = ABHTLC[0]; # TEXT LENGTH #
- IND = NBTINDX[I]*NBTFETNO + OSTFET;
- NXBLINK(PARAMP1,IND); # LINK MESSAGE TO PIP OUTBOUND QUEUE #
- END
- ELSE # DISCARD BAD SUPERVISORY MESSAGE #
- BEGIN
- OMSG(MSG01,0); # ISSUE DIAGNOSTICS DAYFILE MESSAGE #
- PARAMS1 = PARAMP1;
- P<DRHDRWD> = PARAMP1;
- PARAMS2 = BLKBS[0]; # SIZE OF BAD SUP MSG BLOCK #
- OVLNAME = ODAYFLP; # NAME OF OVERLAY TO LOAD #
- OVLCALL;
- END
- GOTO RJMAIN; # RETURN TO CALLING PROGRAM #
- END
- TERM
cdc/nos2.source/nam5871/nlopip.txt ยท Last modified: 2023/08/05 17:22 by Site Administrator