*DECK NGIGO
USETEXT NIPDEF
USETEXT NBT
USETEXT OVERLAY
USETEXT PARAMP
USETEXT PARAMS
USETEXT PT
USETEXT PWL
PRGM NGIGO; # DAYFILE NETWORK RELATED MESSAGES #
STARTIMS;
#
*1DC NGIGO
*
* 1. PROC NAME AUTHOR DATE
* NGIGO E. GEE 86/09/23
*
* 2. FUNCTIONAL DESCRIPTION.
* DAYFILE NETWORK RELATED MESSAGES.
*
* 3. METHOD USED.
* IF DISCARDING INTRAHOST MSG,
* CALL OMSG TO ISSUE DAYFILE MESSAGE.
* CALL OVERLAY ODAYFL TO DAYFILE CONTENTS OF WORKLIST.
* ELSE (PROCESSING NETWORK MSG),
* IF PIP RELATED DAYFILE MESSAGE CODE,
* ADD PIP ORDINAL TO DAYFILE MESSAGE.
* CALL OMSG TO ISSUE DAYFILE MESSAGE.
* IF PIP MESSAGE FOR DAYFILE,
* CALL OMSG TO ISSUE PIP DAYFILE MESSAGE.
* ELSE (EST RELATED DAYFILE MESSAGE CODE),
* ADD EST ORDINAL TO DAYFILE MESSAGE.
* CALL OMSG TO ISSUE DAYFILE MESSAGE.
* IF ASSOCIATED WORKLIST IS TO BE DAYFILED,
* CALL OVERLAY ODAYFL TO DAYFILE CONTENTS OF WORKLIST.
* IF NIP IS TO BE ABORTED,
* CALL ABORT TO ABORT NIP.
* ELSE (NIP DOES NOT NEED TO BE ABORTED),
* IF HOST CONSOLE OPERATOR NEEDS TO BE ALERTED,
* CALL KHOPMSG TO SEND MSG TO NIP K-DISPLAY.
*
* 4. ENTRY PARAMETERS.
* NBTIDX NBT INDEX OF NBT CURRENTLY BEING PROCESSED
* = NBTMAXID + 1 IF PROCESSING INTRAHST QUEUE
* PARAMP1 WORKLIST ASSOCIATED WITH DAYFILE MSG CODE
* PARAMP4 DAYFILE MESSAGE CODE
*
* 5. EXIT PARAMETERS.
* NONE
*
* 6. COMDECKS CALLED AND SYMPL TEXTS USED.
* NBT NETWORK BUFFER TABLE
* NIPDEF CONSTANT DEFINITIONS
* OVERLAY TABLE FOR CALLING OVERLAYS
* PARAMP BUFFER FOR PASSING PARAMS TO PRIMARY OVLS
* PARAMS BUFFER FOR PASSING PARAMS TO SECONDARY OVLS
* PT MISCELLANEOUS GLOBAL VARIABLES
* PWL PRU WORKLIST TEMPLATE
*
* 7. ROUTINES AND OVERLAYS CALLED.
* ABORT ISSUE DAYFILE MSG, IF ANY, AND THEN ABORT
* KHOPMSG SEND MSG TO NAM K-DISPLAY
* ODAYFL OVL DISPLAY TEXT IN DAYFILE
* OMSG ISSUE DAYFILE MESSAGE
* OVLCALL LOAD AND EXECUTE OVERLAY
* XTRACE RECORD PROCEDURE CALLS
*
* 8. DAYFILE MESSAGES AND OTHER IMPORTANT INFORMATION.
* *** PIP X ISSUED THE FOLLOWING MESSAGE. ***
* *** PIP X SENT MSG WITH BAD BLOCK TYPE. ***
* *** PIP X SENT PRU WORKLIST WITH BAD ADDR. ***
* *** PIP X SENT PRU WORKLIST FOR NONPRU CON. ***
* *** PIP X SENT WORKLIST WITH BAD OPCODE. ***
* *** PIP X SENT PRU WORKLIST WITH BAD SM. ***
* *** PIP X SENT PRU WORKLIST WITH BAD LENGTH. ***
* *** PIP X SENT REL WORKLIST WITH BAD LEVEL. ***
* *** PIP X SENT UNEXPECTED RELEASE WORKLIST. ***
* *** PIP X SENT TERM WORKLIST WITH BAD RC. ***
* *** PIP X REJECTED DOWNLINE MSG. ***
* *** EST XXX - BAD NODE NUMBER IN UPLINE MSG. ***
* *** EST XXX - UNSUPPORTED CHANNEL PROTOCOL. ***
* *** EST XXX - BAD NETWORK BLOCK DISCARDED. ***
* *** EST XXX - BAD NBSTTP TRIGGER FROM NETWK. ***
* *** EST XXX - MDI ERROR STATUS MESSAGE. ***
* *** UNEXPECTED INTRAHOST MSG 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 (313B WORDS).
*
* THIS OVERLAY IS CALLED BY NBSTTP, NEIB1, AND NPPWL.
*
#
STOPIMS;
#
INPUT PARAMETERS.
#
# NONE #
#
OUTPUT PARAMETERS. NONE
EXTERNAL VARIABLES
#
XREF BEGIN
PROC ABORT; # ABORT NIP #
PROC KHOPMSG ; # SEND MSG TO K-DISPLAY BUFFER #
PROC OMSG ; # ISSUE DAYFILE MESSAGE #
PROC OVLCALL; # LOAD AND EXECUTE OVERLAY #
PROC XTRACE; # TRACE CALLS #
LABEL RJMAIN; # RETURN ADDRESS IN OVLCALL #
END
#
INTERNAL VARIABLES
#
#
ARRAY PDAYMSG CONTAINS ALL THE PIP RELATED DAYFILE MESSAGES. THE DMP
FIELD IN THE ARRAY IS USED TO DETERMINE IF THE ASSOCIATED WORKLIST IS
ALSO TO BE DUMPED. THE ABT FIELD IN THE ARRAY IS USED TO DETERMINE
IF NIP SHOULD ABORT AS A RESULT OF THE DAYFILE MESSAGE. THE HOP FIELD
IN THE ARRAY IS USED TO DETERMINE IF THE HOP (HOST CONSOLE OPERATOR)
NEEDS TO BE ALERTED TO SEE THE DAYFILE MESSAGE.
#
ARRAY PDAYMSG [DMCMINPIP:DMCMAXPIP] S(5);
BEGIN
ITEM PDAYTXT C(0,0,40) = ["PIP X ISSUED THE FOLLOWING MESSAGE. ",
"PIP X SENT MSG WITH BAD BLOCK TYPE. ",
"PIP X SENT PRU WORKLIST WITH BAD ADDR. ",
"PIP X SENT PRU WORKLIST FOR NONPRU CON. ",
"PIP X SENT WORKLIST WITH BAD OPCODE. ",
"PIP X SENT PRU WORKLIST WITH BAD SM. ",
"PIP X SENT PRU WORKLIST WITH BAD LENGTH.",
"PIP X SENT REL WORKLIST WITH BAD LEVEL. ",
"PIP X SENT UNEXPECTED RELEASE WORKLIST. ",
"PIP X SENT TERM WORKLIST WITH BAD RC. ",
"PIP X REJECTED DOWNLINE MSG. "
];
ITEM PSOURCE C(0,0,5);
ITEM PDAYORD U(0,24,6);
ITEM PDAYFIL U(4,0,12);
ITEM PDAYDMP B(4,23,1) = [FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE];
ITEM PDAYABT B(4,35,1) = [FALSE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
FALSE];
ITEM PDAYHOP B(4,47,1) = [FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE];
END
#
ARRAY EDAYMSG CONTAINS ALL THE EST RELATED DAYFILE MESSAGES. THE DMP
FIELD IN THE ARRAY IS USED TO DETERMINE IF THE ASSOCIATED WORKLIST IS
ALSO TO BE DUMPED. THE ABT FIELD IN THE ARRAY IS USED TO DETERMINE
IF NIP SHOULD ABORT AS A RESULT OF THE DAYFILE MESSAGE. THE HOP FIELD
IN THE ARRAY IS USED TO DETERMINE IF THE HOP (HOST CONSOLE OPERATOR)
NEEDS TO BE ALERTED TO SEE THE DAYFILE MESSAGE.
#
ARRAY EDAYMSG [DMCMINEST:DMCMAXEST] S(5);
BEGIN
ITEM EDAYTXT C(0,0,40) = ["EST XXX - BAD NODE NUMBER IN UPLINE MSG.",
"EST XXX - UNSUPPORTED CHANNEL PROTOCOL. ",
"EST XXX - BAD NETWORK BLOCK DISCARDED. ",
"EST XXX - BAD NBSTTP TRIGGER FROM NETWK.",
"EST XXX - MDI ERROR STATUS MESSAGE. ",
"EST XXX - PRU BLOCK PROTOCOL ERROR. "
];
ITEM ESOURCE C(0,0,7);
ITEM EDAYORD U(0,24,18);
ITEM EDAYFIL U(4,0,12) ;
ITEM EDAYDMP B(4,23,1) = [TRUE,
TRUE,
TRUE,
TRUE,
TRUE,
TRUE];
ITEM EDAYABT B(4,35,1) = [FALSE,
FALSE,
FALSE,
FALSE,
FALSE,
FALSE];
ITEM EDAYHOP B(4,47,1) = [TRUE,
TRUE,
FALSE,
FALSE,
FALSE,
FALSE];
END
ARRAY INTRAMSG S(4);
BEGIN
ITEM INTRATXT C(0,00,35) = ["UNEXPECTED INTRAHOST MSG DISCARDED."];
ITEM INTRAFIL U(3,30,30) = [0];
END
CONTROL IFEQ DEBUG,1 ;
# DAYFILE MESSAGE TO ISSUE IF #
ARRAY ABTMSG S(4); # DAYFILE MESSAGE CODE IS BAD #
BEGIN
ITEM ABTTXT C(0,0,32) = ["BAD DMC PASSED TO OVERLAY NGIGO."];
ITEM ABTFIL U(3,12,48) = [0];
END
CONTROL FI;
ITEM ABTNIP B; # ABORT NIP FLAG #
ITEM ALTHOP B; # ALERT CONSOLE OPERATOR FLAG #
ITEM DMC; # DAYFILE MESSAGE CODE #
ITEM DMPWL B; # DUMP WORKLIST TO DAYFILE FLAG #
#**********************************************************************#
BEGIN
CONTROL IFEQ DEBUG,1 ;
XTRACE("NGIGO") ;
#
CHECK FOR VALID DAYFILE MESSAGE CODE
#
IF (PARAMP4 LS DMCMINPIP ) OR
( (PARAMP4 GR DMCMAXPIP) AND
(PARAMP4 LS DMCMINEST) ) OR
(PARAMP4 GR DMCMAXEST )
THEN # BAD DAYFILE MESSAGE CODE #
BEGIN
ABORT(ABTMSG,0); # ABORT NIP #
END
CONTROL FI ;
P<PWLHDR> = PARAMP1; # PRU WORKLIST POINTER #
IF NBTIDX EQ NBTMAXID + 1
THEN # WAS PROCESSING INTRAHOST MSG #
BEGIN
#
DISCARDING INTRAHOST MSG
#
OMSG(INTRAMSG,0); # ISSUE DAYFILE MESSAGE #
PARAMS1 = P<PWLHDR>; # ADDR OF WORKLIST TO DUMP #
PARAMS2 = PWLBS[0]; # SIZE OF WORKLIST TO DUMP #
OVLNAME = ODAYFLP; # NAME OF OVERLAY TO LOAD #
OVLCALL; # LOAD AND EXECUTE OVERLAY #
END
ELSE # WAS PROCESSING NETWORK MSG #
BEGIN
DMC = PARAMP4; # DAYFILE MESSAGE CODE #
IF DMC LQ DMCMAXPIP
THEN # DAYFILE MSG IS PIP RELATED #
BEGIN
#
DISCARDING PIP RELATED MSG
#
ALTHOP = PDAYHOP[DMC]; # ALERT CONSOLE OPERATOR FLAG #
ABTNIP = PDAYABT[DMC]; # ABORT NIP FLAG #
DMPWL = PDAYDMP[DMC]; # DUMP CONTENTS OF WORKLIST FLAG#
PDAYORD[DMC] = NBTPIP[NBTIDX]+27; # ADD PIP ORD TO DAY MSG #
PDAYFIL[DMC] = 0; # ADD ZERO BYTE TERMINATOR #
OMSG(PDAYMSG[DMC],0); # ISSUE DAYFILE MESSAGE #
IF DMC EQ DMCPDM
THEN # PIP SENT MSG FOR DAYFILE #
BEGIN
OMSG(P<PWLHDR>+BLKHSIZE+PWLHSIZE,0); # ISSUE PIP DAY MSG #
END
END
ELSE # MUST BE EST RELATED DAY MSG #
BEGIN
#
DISCARDING EST RELATED MSG
#
ALTHOP = EDAYHOP[DMC]; # ALERT CONSOLE OPERATOR FLAG #
ABTNIP = EDAYABT[DMC]; # ABORT NIP FLAG #
DMPWL = EDAYDMP[DMC]; # DUMP CONTENTS OF WORKLIST FLAG#
# ADD EST ORDINAL TO DAYFILE MSG#
EDAYORD[DMC] = (NBTEST1[NBTIDX]+27)*64*64 +
(NBTEST2[NBTIDX]+27)*64 +
NBTEST3[NBTIDX]+27; # CONVERT TO DISPLAY CODE#
EDAYFIL[DMC] = 0; # ADD ZERO BYTE TERMINATOR #
OMSG(EDAYMSG[DMC],0); # ISSUE DAYFILE MESSAGE #
END
#
DAYFILE CONTENTS OF WORKLIST IF NECESSARY
#
IF DMPWL
THEN # NEED TO DAYFILE CONTENTS OF WL#
BEGIN
PARAMS1 = P<PWLHDR>; # ADDR OF WORKLIST TO DUMP #
PARAMS2 = PWLBS[0]; # SIZE OF WORKLIST TO DUMP #
OVLNAME = ODAYFLP; # NAME OF OVERLAY TO LOAD #
OVLCALL; # LOAD AND EXECUTE OVERLAY #
END
#
ABORT NIP IF NECESSARY
#
IF ABTNIP
THEN # NEED TO ABORT NIP #
BEGIN
ABORT(0,0); # ABORT NIP #
END
ELSE # DO NOT NEED TO ABORT NIP #
BEGIN
#
ALERT HOP IF NECESSARY
#
IF ALTHOP
THEN # CONSOLE OPERATOR NEEDS TO BE #
BEGIN # INFORMED ABOUT ERROR CONDITION#
IF DMC LQ DMCMAXPIP
THEN # PIP RELATED DAYFILE MSG #
BEGIN
KHOPMSG(LOC(PDAYMSG[DMC]));# SEND DAY MSG TO NAM K-DISPLY#
END
ELSE # EST RELATED DAYFILE MSG #
BEGIN
KHOPMSG(LOC(EDAYMSG[DMC]));# SEND DAY MSG TO NAM K-DISPLY#
END
END
END
END
GOTO RJMAIN; # RETURN TO CALLING PROGRAM #
END
TERM