*DECK NVFCDQE USETEXT TXTANVF USETEXT TEXTSS USETEXT TEXTNVF USETEXT TXTAPSS PROC NVFCDQE; # TITLE NVFCDQE - DISPATCH QUEUE ENTRIES FOR CONNECTION LAYER PROCESS. # BEGIN # NVFDQE # # ** NVFCDQE - DISPATCH QUEUE ENTRIES FOR CONNECTION LAYER PROCESS. * * S. H. FISCHER. 81/12/07. * D. G. DEPEW. 82/04/09. * C. J. BRION 82/06/01,83/04/23. * * THIS PROCEDURE IS THE MAIN ROUTINE FOR THE CONNECTION LAYER. ITS * MAIN FUNCTION IS TO ROUTE ENTRIES IN THE CONNECTION TRAFFIC QUEUE * (*CTQ*) TO THE INDIVIDUAL C-LAYER PROCESSORS. * * PROC NVFCDQE * * ENTRY 1. THE CONNECTION TRAFFIC QUEUE CONTAINS ONE OR MORE * ENTRIES. * * EXIT 1. THE CONNECTION TRAFFIC QUEUE IS EMPTY. * 2. VARIOUS ENTRIES MAY HAVE BEEN PLACED IN THE OUTGOING * TRAFFIC QUEUE (*OTQ*), THE OPERATOR TYPEIN QUEUE * (*OPTQ*), THE PROTOCOL EVENT QUEUE (*PEQ*), THE * TERMINAL-TO-APPLICATION CONNECTION INPUT QUEUE * (*TAINPQ*), AND/OR THE APPLICATION-TO-APPLICATION * CONNECTION INPUT QUEUE (*AAINPQ*) DEPENDING UPON WHAT * INPUT WAS RECEIVED VIA THE *CTQ*. REFER TO THE * INDIVIDUAL CALLED ROUTINE DESCRIPTIONS FOR DETAILS. # # **** PROC NVFCDQE - XREF LIST. # XREF BEGIN PROC SSTRQE; # REMOVE QUEUE ENTRY # PROC NVFCAUT; # ACCEPT USER TEXT # PROC NVFCPHT; # PREPARE HOP TEXT # PROC NVFCPUT; # PREPARE USER TEXT # PROC NVFCBPA; # BEGIN PROTOCOL ACTION # PROC NVFCCPA; # COMPLETE PROTOCOL ACTION # PROC NVFCUFS; # UPDATE FLOW STATUS # PROC NVFCUHS; # UPDATE HOP STATUS # PROC NVFCUPS; # UPDATE PID STATUS # END # **** # ITEM I I; # LOOP VARIABLE # # ** BLSWT - BLOCK SWITCH. * * THE MAJOR DISPATCH KEY IS APPLICATION BLOCK TYPE. * THIS SWITCH IS USED TO SELECT THE APPROCIATE ROUTINE TO PROCESS * THE BLOCK. SUPERVISORY MESSAGES NEED ADDITIONAL SWITCHING. # # **** BLOCK TYP ROUTINE # SWITCH BLSWT LBLNULL, # APPNULL 0 NVFCAUT # LBLBLK, # APPBLK 1 NVFCAUT # LBLMSG, # APMSG 2 NVFCAUT # LBLCMD, # APPCMD 3 NVFCAUT - NVFC*** # ENDTAS, # 4 # ENDTAS, # 5 # ENDTAS, # 6 # LBLTTX, # APPTTX$ 7 NVFCPUT # LBLPTX, # APPPTX$ 8 NVFCPUT # LBLPR, # APPPR$ 9 NVFCPUT - NVFCCPA # LBLHOP, # HOPTX$ 10 NVFCPHT # ; # *** = SEE SWITCH SMSWT # # **** # # ** SMSWT - SUPERVISORY MESSAGE SWITCH (INBOUND ASYNCHRONOUS SM S). * * THIS SWITCH IS USED TO SELECT THE APPROCIATE ROUTINE TO PROCESS * INBOUND ASYNCHRONOUS SUPERVISORY MESSAGES. # # **** PFC/SFC ROUTINE # SWITCH SMSWT:CTQSTAT CNPROTO: SACC, # CR/ACC NVFCBPA # CNPROTO: SCB, # CR/CB NVFCBPA # CNPROTO: SITE, # CR/ITE NVFCBPA # CNPROTO: SIAP, # CR/IAP NVFCBPA # CNPROTO: SRAP, # CR/RAP NVFCBPA # CNPROTO: SRCN, # CR/RCN NVFCBPA # CNPROTO: SSWHN, # CR/SWH/N NVFCBPA # CNPROTO: STRMN, # CR/TRM/N NVFCBPA # CNPROTO: STCHAR, # TCH/TCHAR NVFCBPA # FLOWCON: SACK, # FC/ACK NVFCUFS # FLOWCON: SBRK, # FC/BRK NVFCUFS # FLOWCON: SIUSR, # INTR/USR NVFCUFS # FLOWCON: SINA, # FC/INACT NVFCUFS # FLOWCON: SINIT, # FC/INIT NVFCUFS # FLOWCON: SNAK, # FC/NAK NVFCUFS # SHOPMSG: SHBRK, # HOP/BRK NVFCUHS # SHOPMSG: SHCMD, # HOP/CMD NVFCUHS # SHOPMSG: SHEND, # HOP/END NVFCUHS # SHOPMSG: SHIG, # HOP/IG NVFCUHS # SHOPMSG: SHPAGE, # HOP/PAGE NVFCUHS # SHOPMSG: SHSTART, # HOP/START NVFCUHS # SSLLMSG: SSLL; # CR/SLL NVFCUPS # # **** # # DISPATCH ENTRIES FROM *CTQ* TO APPROPRIATE ROUTINES. # FOR I = 0 WHILE CTQLNGTH NQ 0 DO BEGIN # CLEAR MESSAGE BUFFER. # FOR I = 0 STEP 1 UNTIL NMSGBUF$ DO BEGIN MSG$WORD[I] = 0; END SSTRQE( P, WCBUF, ABHBUF, MSGBUF ); # XFER TO FIX BUFFER # # SELECT CASE FOR APPLICATION BLOCK TYPE. # GOTO BLSWT[ABHABT[0]]; # NULL, BLK AND MSG BLOCKS INPUT FROM THE NETWORK. # LBLNULL: LBLBLK: LBLMSG: NVFCAUT; # ACCEPT USER TEXT # GOTO ENDTAS; # SUPERVISORY MESSAGES INPUT FROM THE NETWORK. # LBLCMD: IF ABHADR[0] EQ 0 THEN BEGIN # ASYNCHRONOUS SM # # SELECT CASE FOR PFC/SFC. # GOTO SMSWT[WCB$SMID[0]]; CNPROTO: NVFCBPA; # BEGIN PROTOCOL ACTION # GOTO ENDTAS; SHOPMSG: NVFCUHS; # UPDATE HOP STATUS # GOTO ENDTAS; SSLLMSG: NVFCUPS; GOTO ENDTAS; FLOWCON: NVFCUFS; # UPDATE FLOW STATUS # END ELSE BEGIN # SYNCHRONOUS SM # NVFCUFS; # UPDATE FLOW STATUS # END GOTO ENDTAS; # BLK AND MSG BLOCKS OUTPUT TO THE NETWORK. # LBLTTX: LBLPTX: NVFCPUT; # PREPARE USER TEXT # GOTO ENDTAS; # SUPERVISORY MESSAGES OUTPUT TO THE NETWORK. # LBLPR: IF ABHADR[0] EQ 0 THEN BEGIN # ASYNCHRONOUS SM # NVFCCPA; # COMPLETE PROTOCOL ACTION # END ELSE BEGIN # SYNCHRONOUS SM # NVFCPUT; # PREPARE USER TEXT # END GOTO ENDTAS; # OPERATOR RESPONSE MESSAGES (TEXT) DESTINED FOR THE HOP. # LBLHOP: NVFCPHT; # PREPARE HOP TEXT # ENDTAS: END END # NVFCDQE # TERM