*DECK CSCDQE
USETEXT TEXTCS
USETEXT TEXTSS
USETEXT TXTAPSS
PROC CSCDQE;
# TITLE CSCDQE - DISPATCH QUEUE ENTRIES FOR THE CONNECTION LAYER. #
BEGIN # CSCDQE #
#
** CSCDQE - DISPATCH QUEUE ENTRIES FOR THE CONNECTION LAYER.
*
* D.G. DEPEW. 82/02/17.
*
* THIS PROCEDURE IS THE MAIN ROUTINE FOR THE CONNECTION LAYER. ITS
* MAIN FUNCTION IS TO ROUTE ENTRIES IN THE CONNECTION TRAFFIC QUEUE
* (*CNQ*) TO THE INDIVIDUAL C-LAYER PROCESSORS.
*
* PROC CSCDQE
*
* ENTRY 1. THE CONNECTION TRAFFIC QUEUE CONTAINS ONE OR MORE
* ENTRIES.
*
* EXIT 1. THE CONNECTION TRAFFIC QUEUE IS EMPTY.
* 2. VARIOUS ENTRIES HAVE BEEN PLACED IN THE OUTGOING
* TRAFFIC QUEUE (*OTQ*), THE OPERATOR TYPEIN QUEUE
* (*OPTQ*) AND THE PROTOCOL EVENT QUEUE (*PEQ*).
#
#
**** PROC CSCDQE - XREF LIST.
#
XREF
BEGIN
PROC CSCANT; # ACCEPT NOP TYPEIN (UPON INPUT) #
PROC CSCBPA; # BEGIN PROTOCOL ACTION #
PROC CSCCPA; # COMPLETE PROTOCOL ACTION #
PROC CSCPHT; # PREPARE HOP TEXT (FOR OUTPUT) #
PROC CSCPNT; # PREPARE NOP TEXT (FOR OUTPUT) #
PROC CSCUFS; # UPDATE FLOW CONTROL STATUS #
PROC CSCUHS; # UPDATE HOP STATUS #
PROC SSTRQE; # REMOVE QUEUE ENTRY #
END
#
****
#
ITEM I; # LOOP INDUCTION VARIABLE #
FOR I=0 WHILE CNQL NQ 0
DO # PROCESS CONNECTION TRAFFIC Q TIL EMPTY #
BEGIN
#
* REMOVE THE ENTRY FROM THE CONNECTION TRAFFIC QUEUE AND CALL THE
* APPROPRIATE C-LAYER ROUTINE IN ACCORDANCE WITH THE CS INTERNAL
* SM IDENTIFIER.
#
SSTRQE (P<CNQ>, WCBUF[0], ABHBUF[0], MSGBUF[0]);
IF WCB$SMID[0] EQ SMID"DATAIN"
THEN # INBOUND DATA FROM A TERMINAL #
CSCANT; # ACCEPT NOP TYPEIN #
ELSE IF WCB$SMID[0] EQ SMID"TTEXT"
THEN # OUTBOUND DATA TO AN OPERATOR #
IF ABHADR[0] EQ HOPORD$
THEN
CSCPHT; # PREPARE HOP TEXT #
ELSE
CSCPNT; # PREPARE NOP TEXT #
ELSE IF WCB$SMID[0] EQ SMID"SHUINS"
OR WCB$SMID[0] EQ SMID"CONREQ"
OR WCB$SMID[0] EQ SMID"CONCB"
OR WCB$SMID[0] EQ SMID"TCHTCH"
OR WCB$SMID[0] EQ SMID"CONENDN"
THEN # CONNECTION PROTOCOL SM #
CSCBPA; # BEGIN PROTOCOL ACTION #
ELSE IF WCB$SMID[0] EQ SMID"CONREQN"
OR WCB$SMID[0] EQ SMID"CONENDR"
OR WCB$SMID[0] EQ SMID"HOPSRTN"
THEN # PROTOCOL RESPONSE FM I-LAYER #
CSCCPA; # COMPLETE PROTOCOL ACTION #
ELSE IF WCB$SMID[0] EQ SMID"FCACK"
OR WCB$SMID[0] EQ SMID"INTRUSR"
OR WCB$SMID[0] EQ SMID"BIMARK"
OR WCB$SMID[0] EQ SMID"FCINA"
OR WCB$SMID[0] EQ SMID"FCINIT"
OR WCB$SMID[0] EQ SMID"FCNAK"
THEN # FLOW CONTROL SM #
CSCUFS; # UPDATE FLOW STATUS #
ELSE # MUST BE SPEC HOST OPERATOR SM #
CSCUHS; # UPDATE HOP STATUS #
END
END # CSCDQE #
TERM