*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 = PTR TO INPUT APPLICATION BLOCK HEADER. * * EXIT SUPERVISORY MESSAGE PROCESSED. * P AND P 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 = 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