*DECK IPISPSM
USETEXT TEXTIPL
PROC IPISPSM;
*CALL COPYRITE CDCNET - COPYRIGHT CONTROL DATA. 1992.
# TITLE IPISPSM - PROCESS SUPERVISORY MESSAGE. #
BEGIN # IPISPSM #
#
**** IPISPSM PROCESS SUPERVISORY MESSAGE.
*
* THIS PROCEDURE PROCESSES ALL SUPERVISORY MESSAGES RECEIVED BY
* THE NAM INPUT TRAFFIC HANDLER. THE MESSAGE IS VALIDATED AND
* THEN THE PROPER PROSESSING PROCEDURE IS INVOKED.
*
* PROC IPISPSM
*
* ENTRY INPBUF = ARRAY CONTAINING SUPERVISORY MESSAGE.
* P<ABH> = PTR TO INPUT APPLICATION BLOCK HEADER.
*
* EXIT SUPERVISORY MESSAGE PROCESSED.
* P<ABH> AND P<APSM> MAY POINT TO OUTGOING INFORMATION.
*
* METHOD THE PRIMARY AND SECONDARY FUNCTION CODES ARE EXAMINED
* TO DETERMINE WHICH SUPERVISORY MESSAGE WAS RECEIVED.
* BASED ON THE MESSAGE, THE REQUIRED ACTION IS TAKEN.
* SOME SUPERVISORY MESSAGES ARE IGNORED AS THEY HAVE NO
* EFFECT ON THE APPLICATIONS OPERATION.
*
#
#
**** PROC IPISPSM - XREF LIST
#
XREF
BEGIN
PROC IPIAIPA; # ABORT THE IP APPLICATION #
PROC IPISPCA; # PROCESS APPLICATION CONNECTION REJECT #
PROC IPISPCB; # PROCESS CONNECTION BROKEN #
PROC IPISPCE; # PROCESS CONNECTION END #
PROC IPISPCR; # PROCESS CONNECTION REQUEST #
PROC IPISPEL; # PROCESS ERROR LOGICAL #
PROC IPISPFA; # PROCESS BLOCK ACKNOWLEGMENT #
PROC IPISPFI; # PROCESS CONNECTION INITIALIZED #
PROC IPISPHO; # PROCESS HOST OPERATOR REQUEST #
PROC IPISPSI; # PROCESS SHUTDOWN REQUEST #
PROC MESSAGE; # DISPLAY AND DAYFILE A MESSAGE #
PROC XWOD; # CONVERT WORD TO OCTAL DISPLAY #
END
#
**
#
ITEM SMPFCSFC U; # PRIMARY/SECONDARY FUNCTION #
#
**** ARRAYS FOR INVALID SUPERVISORY MESSAGE
#
ARRAY INVALIDSM [00:00] S(4);
BEGIN
ITEM INV$TXT1 C(00,00,24) = ["IPP-INVALID SUPERVISORY "];
ITEM INV$TXT2 C(02,24,08) = ["MESSAGE."];
ITEM INV$ZBYTE U(03,12,48) = [0];
END
CONTROL EJECT;
PROC SMERROR;
BEGIN # SMERROR #
#
**
#
ITEM I U; # LOOP COUNTER #
ITEM K U; # LOOP COUNTER #
#
**
#
ARRAY SUPMSGTXT [00:00] S(3);
BEGIN
ITEM SUP$TEXT C(00,00,20);
ITEM SUP$ZBYTE U(02,00,60) = [0];
END
#
**** START SMERROR
#
FOR I = 0 STEP 1 UNTIL (ABHTLC [0] - 1) DO
BEGIN # CONVERT WORD OF SM FOR DAYFILE#
XWOD (INP$WORD [I] ,SUPMSGTXT);
MESSAGE (SUPMSGTXT, 0);
END # CONVERT WORD OF SM FOR DAYFILE#
RETURN;
END # SMERROR #
CONTROL EJECT;
#
**** START MAIN PROCEDURE
#
P<APSM> = LOC(INPBUF); # BASE SUPERVISORY MESSAGE #
SMPFCSFC = PFCSFC[0]; # PRIMARY/SECONDARY FUNCTION #
#
**** CON/ACRQ/A SUPERVISORY MESSAGE
#
IF SMPFCSFC EQ CONACRA
THEN
BEGIN # PROCESS CON/ACRQ/A #
IPISPCA;
END
#
**** CON/CB SUPERVISORY MESSAGE
#
ELSE IF SMPFCSFC EQ CONCB
THEN
BEGIN # PROCESS CONNECTION BROKEN #
IPISPCB;
END
#
**** CON/END/N SUPERVISORY MESSAGE
#
ELSE IF SMPFCSFC EQ CONENDN
THEN
BEGIN # PROCESS CONNECTION ENDED #
IPISPCE;
END
#
**** CON/REQ/R SUPERVISORY MESSAGE
#
ELSE IF SMPFCSFC EQ CONREQ
THEN
BEGIN # PROCESS CONNECTION REQUEST #
IPISPCR;
END
#
**** FC/ACK SUPERVISORY MESSAGE
#
ELSE IF SMPFCSFC EQ FCACK
THEN
BEGIN # PROCESS BLOCK DELIVERED #
IPISPFA;
END
#
**** FC/INA SUPERVISORY MESSAGE
#
ELSE IF SMPFCSFC EQ FCINA
THEN
BEGIN # IGNORE CONNECTION INACTIVE #
END
#
**** FC/INIT SUPERVISORY MESSAGE
#
ELSE IF SMPFCSFC EQ FCINIT
THEN
BEGIN # PROCESS CONNECTION INITIALIZED#
IPISPFI;
END
#
**** FC/NAK SUPERVISORY MESSAGE
#
ELSE IF SMPFCSFC EQ FCNAK
THEN
BEGIN # PROCESS BLOCK NOT DELIVERED #
IPIAIPA (NAKERR$); # NAM PROTOCOL ERROR #
RETURN;
END
#
**** ERR/LGL SUPERVISORY MESSAGE
#
ELSE IF SMPFCSFC EQ ERRLGL
THEN
BEGIN # PROCESS ERROR LOGICAL #
SMERROR; # ISSUE ERROR TO DAYFILE #
IPIAIPA (ERRLGL$); # NAM PROTOCOL ERROR #
RETURN;
END
#
**** SHUT/INSD SUPERVISORY MESSAGE
#
ELSE IF SMPFCSFC EQ SHUINS
THEN
BEGIN # PROCESS SHUTDOWN REQUEST #
IPISPSI;
END
#
**** HOP SUPERVISORY MESSAGE
#
ELSE IF PFC [0] EQ HOP
THEN
BEGIN # PROCESS HOST OPERATOR REQUEST #
IPISPHO;
END
#
**** ALL OTHER SUPERVISORY MESSAGES
#
ELSE
BEGIN # PROCESS OTHER TYPES #
MESSAGE (INVALIDSM, 0); # DAYFILE INVALID SM MESSAGE #
SMERROR; # ISSUE ERROR TO DAYFILE #
END
RETURN; # RETURN TO CALLER #
END # IPISPSM #
TERM