*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<CTQ>, 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