cdc:nos2.source:nam5871:csddnt
Table of Contents
CSDDNT
Table Of Contents
- [00005] PROC CSDDNT
- [00006] CSDDNT - DISPATCHES NETWORK TRAFFIC TO THE APPROPRIATE QUEUE.
- [00047] PROC CSNVDSP(WCARY,ABHARY,TXTARA)
- [00048] CSNVDSP - DISPATCHES SM/DATA-BLOCK TO THE APPROPRIATE QUEUE.
- [00052] CSNVDSP - DISPATCHES SM/DATA-BLOCK TO THE APPROPRIATE QUEUE.
- [00088] WCARY - WORD COUNT ARRAY
- [00099] ABHARY - APPLICATION BLOCK HEADER ARRAY
- [00111] TXTARA - TEXT AREA
- [00129] PROC SSTAQE
- [00130] PROC ABORT
- [00131] PROC MESSAGE
Source Code
- CSDDNT.txt
- *DECK CSDDNT
- USETEXT TEXTCS
- USETEXT TXTAPSS
- USETEXT TXTSUSS
- PROC CSDDNT;
- # TITLE CSDDNT - DISPATCHES NETWORK TRAFFIC TO THE APPROPRIATE QUEUE. #
- BEGIN # CSDDNT #
- #
- * CSDDNT - DISPATCHES NETWORK TRAFFIC TO THE APPROPRIATE QUEUE.
- *
- * A. LIM 81/10/05
- * C. BRION 82/02/14.
- * C. BRION 82/03/17.
- * C. BRION 82/05/06.
- *
- * THIS IS A DUMMY PROCEDURE. ITS EXISTENCE IS TO CUSTOMIZE WITH
- * THE DECK NAME.
- *
- * PROC CSDDNT
- *
- * ENTRY NONE
- *
- * EXIT NONE
- *
- * NOTE THIS PROC WOULD NEVER BE CALLED. INSTEAD AN ALTERNATE
- * ENTRY POINT, CSNVDSP WILL BE CALLED. CSNVDSP IS USED TO
- * CUSTOMIZE WITH THE CS DISPATCH PROC.
- *
- * METHOD NONE
- *
- #
- #
- **** PROC CSDDNT - ALTERNATE ENTRY POINT
- #
- XDEF PROC CSNVDSP;
- #
- ****
- #
- CONTROL EJECT;
- PROC CSNVDSP(WCARY,ABHARY,TXTARA);
- # TITLE CSNVDSP - DISPATCHES SM/DATA-BLOCK TO THE APPROPRIATE QUEUE. #
- BEGIN # CSNVDSP #
- #
- ** CSNVDSP - DISPATCHES SM/DATA-BLOCK TO THE APPROPRIATE QUEUE.
- *
- * A. LIM 81/10/05
- * C. BRION 82/02/14.
- *
- * THIS PROCEDURE WILL BE CALLED BY AIP MONITOR WHENEVER A
- * SM/DATA-BLOCK COMES TO CS. ITS CHARTER IS TO
- * DISPATCH IT TO THE APPROPRIATE QUEUE.
- *
- * PROC CSNVDSP(WCARY,ABHARY,TXTARA)
- *
- * ENTRY WCARY = A ONE WORD ARRAY FOR INCOMING WC.
- * ABHARY = A ONE WORD ARRAY FOR INCOMING ABH.
- * TXTARA = A TEXT AREA FOR INCOMING SM/DATA-BLOCK.
- *
- * EXIT A SM/DATA-BLOCK IS ROUTED TO THE APPROPRIATE QUEUE.
- *
- * NOTES NONE
- *
- * METHOD IF INCOMING NETWORK TRAFFIC IS DATA-BLOCK, ROUTE IT
- * TO CONNECTION-TRAFFIC-QUEUE. ELSE IF IT IS SM,
- * SCAN THROUGH PFC/SFC-CLASSIFY TABLE TO FIND
- * A MATCH ON THE SM, AND ROUTE IT TO THE
- * APPROPRIATE QUEUE DETERMINED BY THE POSITION
- * OF THE SM IN THE TABLE.
- * IF NO MATCH IS FOUND IN THE TABLE, ABORT THE CS PROGRAM.
- *
- #
- #
- * FORMAL PARAMETERS
- #
- #
- ** WCARY - WORD COUNT ARRAY
- *
- * WCARY IS A ONE WORD ARRAY FOR INCOMING WC
- #
- ARRAY WCARY[00:00] S(1);
- BEGIN
- ITEM WC$SMID U(00,00,12); # INTERNAL SM ID #
- END
- #
- ** ABHARY - APPLICATION BLOCK HEADER ARRAY
- *
- * ABHARY IS A ONE WORD ARRAY FOR INCOMING ABH.
- *
- #
- ARRAY ABHARY[00:00] S(1);
- BEGIN
- ITEM ABH$WRD U(00,00,60); # FULL WORD #
- END
- #
- ** TXTARA - TEXT AREA
- *
- * TXTARA IS A TEXT AREA FOR THE INCOMING SM/DATA-BLOCK.
- *
- #
- ARRAY TXTARA[00:10] S(1);
- BEGIN
- ITEM TXT$WORD U(00,00,60);
- END
- #
- **** PROC CSNVDSP - XREF LIST
- #
- XREF
- BEGIN
- PROC SSTAQE; # SS ACCEPT Q ENTRY #
- PROC ABORT; # ABORT PROC #
- PROC MESSAGE; # ISSUE DAYFILE MSG #
- END
- #
- ****
- #
- # DEFS #
- DEF MXPSFC$ # 86 #; # MAX NUM PFCSFC + 1 #
- #
- * QSTAT - STATUS LIST VALUES THAT DEFINE THE POSSIBLE QUEUES FOR
- * DISPATCHING INCOMING NETWORK TRAFFIC.
- #
- STATUS QSTAT
- CNFTERQ, # CONF TERMINAL QUEUE #
- CNFRCRQ, # RESET CHARACTERISTIC OF TERMINAL #
- CNTRFQ, # CONN TRAFFIC QUEUE #
- NPUSUPQ, # NPU SUPERVISION QUEUE #
- OPSUPQ, # OPERATOR SUPERVISION Q #
- SSTATQ, # SOLICITED STATUS Q #
- UNSTATQ, # UNSOLICITED STATUS Q #
- # ALIAS EVENT QUEUE (EVQ) #
- IGNORE, # IGNORE THESE SM-S #
- NOMATCHQ; # QUEUE IDENTIFIER FOR NO #
- # MATCH IN PFCSFC TABLE #
- # ITEMS #
- ITEM I U; # LOOP VARIABLE #
- ITEM TEMP1 U; # TEMPORARY STORAGE AREA1#
- ITEM TEMP2 U; # TEMPORARY STORAGE AREA2#
- ITEM QNUM S:QSTAT; # QUEUE ID FOR GOTO #
- #
- * QSWT - STATUS SWITCH FOR CONTROLLING THE TYPE OF QUEUE THAT A
- * NETWORK MESSAGE SHOULD BE ROUTED TO.
- #
- SWITCH QSWT:QSTAT # USING QSTAT STATUS LIST #
- TOCTQ:CNFTERQ, # CONF TERMINAL REQUEST #
- TOCNQ:CNTRFQ, # CONNECTION TRAFFIC #
- TONPUQ:NPUSUPQ, # NPU SUPERVISION #
- TOOSQ:OPSUPQ, # OPERATOR SUPERVISION #
- TOSSQ:SSTATQ, # SOLICITED STATUS #
- TOEVQ:UNSTATQ, # UNSOLICITED STATUS #
- ENDOK:IGNORE, # IGNORE THESE SM-S #
- TOABORT:NOMATCHQ; # NO MATCH, TO ABORT LOGIC #
- #
- * NOMSG - DAYFILE MESSAGE FOR ABORT WHEN NO ROUTING OCCURS.
- #
- $BEGIN
- ARRAY NOMSG[00:00] S(3);
- BEGIN
- ITEM NO$TXT C(00,00,22) = ["CSDDNT - SM NOT ROUTED"];
- ITEM NO$ZERO U(02,12,48) = [0];
- END
- $END
- #
- * PSFCTBL - PFC/SFC TABLE.
- *
- * THE FOLLOWING TABLE CONTAINS THE PFC/SFC OF ALL INCOMING NETWORK
- * TRAFFIC AND THE CORRESPONDING ASSIGNED QUEUE IDENTIFIER FOR THE
- * INITIAL DISPATCHING FROM THE NETWORK DISPATCHER PROC, CSDDNT.
- * THE ORDER OF THE CODES IN THIS TABLE MUST MATCH ONE-FOR-ONE TO
- * THE ORDER OF THE "SMID" STATUS LIST DEFINED IN TEXTCS. IF ANY
- * ADDITIONS ARE MADE TO THE TABLE THE FOLLOWING PROCEDURE SHOULD
- * BE FOLLOWED:
- * ADD THE NEW PFCSFC TABLE ENTRY AT THE END OF THE
- * PSF$CODE ITEM LIST.
- * ADD THE NEW PSF$QID VALUE AT THE END OF THE LIST
- * BUT BEFORE THE NOMATCHQ ENTRY.
- * ADJUST THE MAXPSFC$ DEF TO THE NEW NUMBER OF PFCSFC
- * ENTRIES PLUS ONE.
- * ADD THE CORRESPONDING SMID STATUS LIST ENTRY IN THE
- * SAME RELETIVE POSITION FOR THE PFCSFC.
- * IF A NEW QUEUE ENTRY IS NEEDED, ADD THE NEW QUEUE
- * VALUE TO THE QSTAT STATUS LIST AND THE NEW ENTRY
- * TO THE QUEUE SWITCH QSWT.
- #
- ARRAY PSFCTBL [00:MXPSFC$] S(1);
- BEGIN
- ITEM PSF$CODE U(00,00,16)=
- # PFC/SFC LIST #
- # LOCATION #
- # ******* ********* #
- [CNFTE, # 0 #
- CNFRCTM, # 0.1#
- SUPCB, # 1 #
- SUPIN, # 2 #
- # UNSOLICITED PFCSFCS #
- # ******************* #
- ALMOP, # 3 #
- LOGER, # 4 #
- CDILI, # 5 #
- CDILL, # 6 #
- CDITE, # 7 #
- CDITR, # 8 #
- MSGOP, # 9 #
- STILI, # 10 #
- STINP, # 11 #
- STITR, # 12 #
- STIAP, # 12.1 #
- STITE, # 12.2 #
- STUTE, # 13 #
- STULI, # 14 #
- STULL, # 15 #
- STUTR, # 16 #
- STUNP, # 17 #
- STUCP, # 18 #
- STUVC, # 19 #
- OLDDT, # 20 #
- SUPGO, # 21 #
- # CONNECTION TRAFFIC PFCSFCS #
- # ************************** #
- SHUINS, # 22 #
- CONREQ, # 23 #
- HOPSTRT, # 24 #
- CONCB, # 25 #
- FCACK, # 26 #
- INTRUSR, # 27 #
- FCINA, # 28 #
- FCINIT, # 29 #
- FCNAK, # 30 #
- TCHTCH, # 31 #
- HOPALT, # 32 #
- HOPBRK, # 33 #
- HOPCMD, # 34 #
- HOPENDD, # 35 #
- HOPIG, # 36 #
- HOPPAGE, # 37 #
- CONENDN, # 38 #
- BIMARK, # 38.1 #
- # OPERATOR SUPERVISION PFCSFCS #
- # **************************** #
- HOPDU, # 39 #
- HOPTRCE, # 40 #
- HOPNOTR, # 41 #
- HOPREL, # 42 #
- HOPRS, # 43 #
- HOPDB, # 43.1 #
- HOPDE, # 43.2 #
- TRSNPN, # 44 #
- TRSTRN, # 45 #
- LISLIN, # 46 #
- LISNPN, # 47 #
- LLSLLN, # 48 #
- LLSNPN, # 49 #
- CPSCPN, # 50 #
- CPSNPN, # 51 #
- NPSNPN, # 52 #
- TESLIN, # 53 #
- TESLLN, # 54 #
- TESNPN, # 55 #
- TESTEN, # 56 #
- VCSLIN, # 57 #
- VCSNPN, # 58 #
- VCSVCN, # 59 #
- MSGLIN, # 60 #
- MSGLLN, # 61 #
- MSGNPN, # 62 #
- MSGTEN, # 63 #
- MSGLIA, # 64 #
- MSGLLA, # 65 #
- MSGTEA, # 66 #
- OLDINN, # 67 #
- OLDINA, # 68 #
- # SOLICITED STATUS PFCSFCS #
- # ************************ #
- STUTEN, # 69 #
- STULIN, # 70 #
- STULLN, # 71 #
- STUTRN, # 72 #
- STUNPN, # 73 #
- STUCPN, # 74 #
- STUVCN, # 74.1 #
- # IGNORE THESE PFCSFCS #
- # ******************** #
- CTRTCD, # 75 #
- CTRCCD, # 75.1 #
- CTRCHRN, # 75.2 #
- CTRCHRA, # 75.3 #
- CTRCTDN, # 75.4 #
- CTRCTDA, # 75.5 #
- CTRRTCA, # 75.6 #
- CTRRCCA, # 75.7 #
- ];
- ITEM PSF$QID S:QSTAT (00,30,30)= # QUEUE IDENTIFIER #
- #
- * ** NOTE THE FOLLOWING QUEUE DEFINITIONS FROM THE
- * ** ABOVE DEFINITION OF QSTAT.
- #
- [S"CNFTERQ", # 0 #
- S"CNFTERQ", # 0.1 #
- S"NPUSUPQ", # 1 #
- S"NPUSUPQ", # 2 #
- # UNSOLICITED PFCSFCS #
- # ******************* #
- S"UNSTATQ", # 3 #
- S"UNSTATQ", # 4 #
- S"UNSTATQ", # 5 #
- S"UNSTATQ", # 6 #
- S"UNSTATQ", # 7 #
- S"UNSTATQ", # 8 #
- S"UNSTATQ", # 9 #
- S"UNSTATQ", # 10 #
- S"UNSTATQ", # 11 #
- S"UNSTATQ", # 12 #
- S"UNSTATQ", # 12.1 #
- S"UNSTATQ", # 12.2 #
- S"UNSTATQ", # 13 #
- S"UNSTATQ", # 14 #
- S"UNSTATQ", # 15 #
- S"UNSTATQ", # 16 #
- S"UNSTATQ", # 17 #
- S"UNSTATQ", # 18 #
- S"UNSTATQ", # 19 #
- S"UNSTATQ", # 20 #
- S"UNSTATQ", # 21 #
- # CONNECTION TRAFFIC PFCSFCS #
- # ************************** #
- S"CNTRFQ", # 22 #
- S"CNTRFQ", # 23 #
- S"CNTRFQ", # 24 #
- S"CNTRFQ", # 25 #
- S"CNTRFQ", # 26 #
- S"CNTRFQ", # 27 #
- S"CNTRFQ", # 28 #
- S"CNTRFQ", # 29 #
- S"CNTRFQ", # 30 #
- S"CNTRFQ", # 31 #
- S"CNTRFQ", # 32 #
- S"CNTRFQ", # 33 #
- S"CNTRFQ", # 34 #
- S"CNTRFQ", # 35 #
- S"CNTRFQ", # 36 #
- S"CNTRFQ", # 37 #
- S"CNTRFQ", # 38 #
- S"CNTRFQ", # 38.1 #
- # OPERATOR SUPERVISION PFCSFCS #
- # **************************** #
- S"OPSUPQ", # 39 #
- S"OPSUPQ", # 40 #
- S"OPSUPQ", # 41 #
- S"OPSUPQ", # 42 #
- S"OPSUPQ", # 43 #
- S"OPSUPQ", # 43.1 #
- S"OPSUPQ", # 43.2 #
- S"SSTATQ", # 44 #
- S"SSTATQ", # 45 #
- S"SSTATQ", # 46 #
- S"SSTATQ", # 47 #
- S"SSTATQ", # 48 #
- S"SSTATQ", # 49 #
- S"SSTATQ", # 50 #
- S"SSTATQ", # 51 #
- S"SSTATQ", # 52 #
- S"SSTATQ", # 53 #
- S"SSTATQ", # 54 #
- S"SSTATQ", # 55 #
- S"SSTATQ", # 56 #
- S"SSTATQ", # 57 #
- S"SSTATQ", # 58 #
- S"SSTATQ", # 59 #
- S"OPSUPQ", # 60 #
- S"OPSUPQ", # 61 #
- S"OPSUPQ", # 62 #
- S"OPSUPQ", # 63 #
- S"OPSUPQ", # 64 #
- S"OPSUPQ", # 65 #
- S"OPSUPQ", # 66 #
- S"OPSUPQ", # 67 #
- S"OPSUPQ", # 68 #
- # SOLICITED STATUS PFCSFCS #
- # ************************ #
- S"SSTATQ", # 69 #
- S"SSTATQ", # 70 #
- S"SSTATQ", # 71 #
- S"SSTATQ", # 72 #
- S"SSTATQ", # 73 #
- S"SSTATQ", # 74 #
- S"SSTATQ", # 74.1 #
- # IGNORE THESE PFCSFCS #
- # ******************** #
- S"IGNORE", # 75 #
- S"IGNORE", # 75.1 #
- S"IGNORE", # 75.2 #
- S"IGNORE", # 75.3 #
- S"IGNORE", # 75.4 #
- S"IGNORE", # 75.5 #
- S"IGNORE", # 75.6 #
- S"IGNORE", # 75.7 #
- # ************************** #
- S"NOMATCHQ" # 76 #
- ];
- END
- CONTROL EJECT;
- #
- * DETERMINE TYPE OF NETWORK TRAFFIC. IF DATA-BLOCK, ROUTE IT TO
- * CONNECTION TRAFFIC QUEUE, ELSE SCAN THRU PFC/SFC TABLE FOR A
- * MATCHING SM. WHEN FOUND, USE THE POSITION OF THE SM IN THE TABLE
- * DETERMINE THE QUEUE THE SM SHOULD ROUTE TO.
- #
- TEMP1 = P<ABH>; #SAVE ABH POINTER#
- P<ABH> = LOC(ABHARY); #POINT TO ABH AREA#
- IF ABHABT[0] LQ APMSG #IF DATA BLOCK #
- THEN
- BEGIN
- WC$SMID[0] = SMID"DATAIN";
- SSTAQE(P<CNQ>,WCARY,ABHARY,TXTARA); # TO CONN TRAFFIC Q #
- GOTO ENDFIN;
- END
- ELSE
- BEGIN
- TEMP2 = P<APSM>; # SAVE INITIAL PTR #
- P<APSM> = LOC(TXTARA); # PT TO SM BODY #
- PSF$CODE[MXPSFC$] = PFCSFC[0]; # SAVE CURRENT SM #
- #
- * SEARCH PSFCTBL FOR MATCH ON THE INCOMING PFCSFC. ON MATCH, ROUTE
- * TO THE APPROPRIATE QUEUE FOR PROCESSING. THE METHOD FOR ROUTING
- * IS BASED ON THE VALUE OF THE DEFINITIONS FOR THE NUMBER OF SMS
- * IN EACH APPROPRIATE GROUP OF SMS.
- * NOTE-CAUTION-NOTE-CAUTION
- * THE MATCHING AND ROUTING CODE THAT FOLLOWS IS STRONGLY DEPENDENT
- * ON THE PSFCTBL FORMAT AND RELATION TO THE DEFINES FOR THE NUMBER
- * OF SMS IN EACH GROUP. IF IT IS CHANGED, BEWARE.
- *
- * THE PFCSFC OF THE INCOMING MESSAGE IS STORED INTO THE LAST ENTRY
- * OF THE PFCSFC TABLE TO INSURE THAT A MATCH ALWAYS OCCURS.
- *
- *
- #
- FOR I = 0 STEP 1 WHILE PFCSFC[0] NQ PSF$CODE[I]
- DO
- BEGIN
- END # EXIT LOOP MATCH ALWAYS #
- WC$SMID[0] = I; # SET INTERNAL ID #
- QNUM = PSF$QID[I]; # SET QUEUE NUMBER FOR ROUTE #
- GOTO QSWT[QNUM];
- TOCTQ: #CONF TERMINAL DISPATCH #
- SSTAQE(P<CTQ>,WCARY,ABHARY,TXTARA);
- GOTO ENDOK;
- TOCNQ: # CONN TRAFFIC DISPATCH #
- SSTAQE(P<CNQ>,WCARY,ABHARY,TXTARA);
- GOTO ENDOK;
- TONPUQ: # NPU SUPER SM DISPATCH #
- SSTAQE(P<NPUQ>,WCARY,ABHARY,TXTARA);
- GOTO ENDOK;
- TOOSQ: # OPERATOR SUPER DISPATCH #
- SSTAQE(P<OSQ>,WCARY,ABHARY,TXTARA);
- GOTO ENDOK;
- TOSSQ: # SOLICITED STATUS DISPATCH #
- SSTAQE(P<SSQ>,WCARY,ABHARY,TXTARA);
- GOTO ENDOK;
- TOEVQ: # UNSOL STATUS DISPATCH #
- # TO EVENT QUEUE #
- SSTAQE(P<EVQ>,WCARY,ABHARY,TXTARA);
- GOTO ENDOK;
- TOABORT: # BAD INP MESSAGE, NO MATCH #
- $BEGIN
- MESSAGE(NOMSG[0],0); # DAYFILE MSG #
- ABORT;
- $END
- SSTAQE(P<EVQ>,WCARY,ABHARY,TXTARA); # TO EVQ IF NON DEBUG #
- GOTO ENDOK;
- ENDOK:
- P<APSM> = TEMP2; # RESTORE POINTER TO SM #
- END # ELSE IF ABHABT #
- ENDFIN:
- P<ABH> = TEMP1;
- RETURN;
- END #CSNVDSP #
- END # CSDDNT #
- TERM
cdc/nos2.source/nam5871/csddnt.txt ยท Last modified: 2023/08/05 17:21 by Site Administrator