User Tools

Site Tools


cdc:nos2.source:nam5871:nppwl

Table of Contents

NPPWL

Table Of Contents

  • [00014] PROC NPPWL(BUFADDR)
  • [00065] PROC LOCLLCB
  • [00066] PROC LOCNCNT
  • [00067] PROC NCSTTP
  • [00068] PROC NBSTTP
  • [00069] PROC OVLCALL
  • [00070] PROC XTRACE

Source Code

NPPWL.txt
  1. *DECK NPPWL
  2. USETEXT NIPDEF
  3. USETEXT NBT
  4. USETEXT OVERLAY
  5. USETEXT PARAMP
  6. USETEXT PARAMS
  7. USETEXT PCNB
  8. USETEXT LLCB
  9. USETEXT NCNB
  10. USETEXT NCNT
  11. USETEXT PWL
  12. USETEXT PT
  13. USETEXT APPSTAT
  14. PROC NPPWL(BUFADDR); # PROCESS A PRU WORKLIST #
  15. STARTIMS;
  16. #
  17. *1DC NPPWL
  18. *
  19. * 1. PROC NAME AUTHOR DATE
  20. * NPPWL J.C. LEE 80/04/01
  21. *
  22. * 2. FUNCTIONAL DESCRIPTION.
  23. * PROCESS A PRU WORKLIST
  24. *
  25. * 3. METHOD USED.
  26. * LOCATE NETWORK-SIDE PCNB
  27. * VALIDATE FOR A PCNB AND ALLOWED OPCODE VALUE,
  28. * PROCESS PWL
  29. *
  30. * 4. ENTRY PARAMETERS.
  31. * BUFADDR ADDRESS OF WORKLIST BUFFER
  32. *
  33. * 5. EXIT PARAMETERS.
  34. * CODE ZERO IF THERE IS NO SPACE FOR BUFFER
  35. *
  36. * 6. COMDECKS CALLED AND SYMPL TEXTS USED.
  37. * NIPDEF OPSIZE OVERLAY
  38. * PARAMP PCNB PWL
  39. * LLCB NCNT APPSTAT
  40. *
  41. * 7. ROUTINES AND OVERLAYS CALLED.
  42. * LOCLLCB LOCATE LLCB
  43. * LOCNCNT LOCATE NCNT
  44. * NCSTTP NETWORK CONNECTION STATE TAB PROCESSOR
  45. * NBSTTP NETWORK BLOCK STATE TABLE PROC
  46. * NGIGO OVL DAYFILE TEXT GENERATED BY NPU/PIP
  47. * NPISM OVL PROCESS ILLEGAL SUPERVISORY MESSAGE
  48. * XABTAPP OVL ROUTINE TO ABORT APPLICATION
  49. * HAPFAIL OVL PROCESSS APPLICATION FAILURE
  50. * NPPSM OVL PROCESS A PRU SUPERVISORY MESSAGE FROM PIP
  51. * NRPWL OVL RELEASE A PROCESSED PWL
  52. * OVLCALL LOAD AND EXECUTE OVERLAY
  53. * XTRACE TRACE CALLS
  54. *
  55. * 8. DAYFILE MESSAGES AND OTHER IMPORTANT INFORMATION
  56. * THIS PROCEDURE IS CALLED BY NEIB1 AND XSACB.
  57. *
  58.  #
  59. STOPIMS;
  60. #
  61.   EXTERNAL VARIABLES
  62. #
  63. XREF
  64. BEGIN
  65. PROC LOCLLCB;
  66. PROC LOCNCNT;
  67. PROC NCSTTP;
  68. PROC NBSTTP ;
  69. PROC OVLCALL; # LOAD AND EXECUTE OVERLAY #
  70. PROC XTRACE;
  71. END
  72. #
  73.   INTERNAL VARIABLES
  74. #
  75. ITEM BUFADDR; # BUFFER ADDRESS #
  76. ITEM CODE; # RETURN VALUE #
  77. ITEM PCNBADDR; # PCNB ADDRESS #
  78. ITEM NCNTEAD; # NCNT ENTRY ADDRESS #
  79. ITEM PRUCN; # PRU CONNECTION NUMBER #
  80. ITEM REASON U ;
  81. ITEM NCTRIGG ;
  82. ITEM DISCRDF B ; # WAITING PIP CONN. TERMINATION #
  83.  
  84. SWITCH PWLOPJT ,NPWLOP1,NPWLOP2,NPWLOP3,NPWLOP4,NPWLOP5,NPWLOP6 ;
  85.  
  86. # ******************************************************************** #
  87. BEGIN
  88.  
  89. CONTROL IFEQ DEBUG,1;
  90. XTRACE("NPPWL") ;
  91. CONTROL FI;
  92.  
  93. P<PWLHDR> = BUFADDR; # PRU WORKLIST ADDRESS #
  94. PARAMP4 = 0; # INITIALIZE NGIGO CALL FLAG #
  95. DISCRDF = FALSE ;
  96. IF PWLOP[0] EQ PWLOPDAYFI
  97. OR ( PWLHN[0] EQ PWLTN[0] AND PWLOP[0] EQ PWLOPBPRU ) # OP =6 #
  98. # ON A COUPLER, DAYFILE AS OP=5 #
  99. THEN # DAYFILE TEXT FROM PIP #$
  100. GOTO NPWLOP5 ; # DAYFILE TEXT FROM PIP #
  101.  
  102. PRUCN = PWLCN[0] ;
  103. LOCLLCB(PWLHN[0],PWLTN[0],P<LLCB>);
  104. LOCNCNT(P<LLCB>,PRUCN,NCNTEAD);
  105. P<NCNT> = NCNTEAD;
  106. PCNBADDR = NCNTNCNB[0];
  107. # #
  108.  
  109. IF PCNBADDR EQ 0
  110. THEN # CANNOT LOCATE PCNB #
  111. BEGIN
  112. PARAMP4 = DMCUCN; # UNKNOWN NETWORK CONNECTION NO #
  113. END
  114.  
  115. ELSE
  116. BEGIN # FOUND PCNB #
  117. P<PCNB> = PCNBADDR; # PCNB ADDRESS #
  118.  
  119. IF PCNBID[0] NQ PCNBIDVALUE
  120. AND PCNBID[0] NQ LCNBIDVALUE
  121. THEN # NOT A PCNB #
  122. BEGIN
  123. IF PWLOP[0] EQ PWLOPBPRU # IF OP=6, JUST DAYFILE IT #
  124. THEN
  125. BEGIN
  126. PARAMP4 = DMCPBPE;
  127. END
  128. ELSE # DAYFILE AND ABORT ON OP OTHER #
  129. BEGIN # THAN 6. #
  130. PARAMP4 = DMCNPCN;
  131. END
  132. END
  133.  
  134. ELSE
  135. BEGIN
  136. CODE = PWLOP[0]; # PRU WORKLIST OPCODE #
  137.  
  138. IF CODE LS PWLOPNSM
  139. OR CODE GR PWLOPXPRU
  140. THEN # BAD PWL OPCODE #
  141. BEGIN
  142. PARAMP4 = DMCBPWO; # BAD PWL OPCODE #
  143. END
  144.  
  145. ELSE # VALID PWL OPCODE #
  146. BEGIN
  147. #
  148.   CALL NETWORK BLOCK TABLE TO VALIDATE STATE
  149. #
  150. PARAMP2 = 2 ; # PRESET TO INITIAL ERROR STATE #
  151. NBSTTP(PCNBADDR,PRUDTA,P<PWLHDR>) ;
  152. IF PARAMP2 EQ 2
  153. THEN
  154. BEGIN
  155. PARAMP4 = 0; # CLEAR NGIGO CALL FLAG - NGIGO #
  156. # OVERLAY HAS ALREADY BEEN CALLD#
  157. GOTO NPPWL1 ; # TO PROCESS ILLEGAL PRU DATA #
  158. END
  159. IF PARAMP2 EQ 1
  160. THEN
  161. DISCRDF = TRUE ; # WE ARE WAITING FOR PRU TERMINATION #
  162. GOTO PWLOPJT[CODE] ; # SWITCH ON OPCODE #
  163. #
  164.   PROCESS PRU WORKLIST OPCODE FUNCTION
  165. #
  166. NPWLOP1:
  167. OVLNAME = NPPSMP; # PROCESS A PRU SM FROM PIP #
  168. IF DISCRDF
  169. THEN
  170. BEGIN
  171. GOTO NPPWL1 ;
  172. END
  173. GOTO CALLOVL;
  174. NPWLOP2:
  175. OVLNAME = NRPWLP; # RELEASE A PROCESSED PWL #
  176. GOTO CALLOVL;
  177. NPWLOP3:
  178. IF PWLRC[0] EQ 0
  179. THEN
  180. NCTRIGG = PIPR ;
  181. ELSE
  182. BEGIN
  183. IF PWLRC[0] LQ IFTRC
  184. AND PWLRC[0] GR 0
  185. THEN
  186. NCTRIGG = NXFTOFN ;
  187. ELSE
  188. # REASON CODE IS NOT WITHIN THE RANG#
  189. BEGIN
  190. PARAMP4 = DMCBTRC; # BAD TERMINATE PRU CON RC #
  191. END
  192. END
  193. IF PARAMP4 EQ 0
  194. THEN
  195. BEGIN # EVERYTHING O.K. #
  196. PARAMP1 = P<PWLHDR> ;
  197. PARAMP2 = P<PCNB> ;
  198. OVLNAME = NPPCTP ;
  199. OVLCALL ;
  200. IF PARAMP4 EQ 0 # NO ERROR IN SSTP CALL #
  201. AND PARAMP2 NQ 0 # NCNB RETURNED #
  202. THEN
  203. BEGIN # NO ERROR FOUND, GO AHEAD #
  204. P<NCNB> = PARAMP2 ; # CALL STATE PROCESSOR FOR #
  205.  
  206. NCSTTP(P<LLCB>,NCNBCN[0],NCTRIGG,P<PWLHDR>);
  207.  
  208. END # NCNB #
  209. PARAMP4 = 0; # CLEAR NGIGO CALL FLAG #
  210. END # EVERYTHING WENT O.K. #
  211.  
  212.  
  213. GOTO NPPWL1 ;
  214. NPWLOP4:
  215. OVLNAME = NPISMP; # PROCESS ILLOGICAL SUP MSG #
  216. GOTO CALLOVL;
  217. NPWLOP5:
  218. REASON = PWLRC[0]; # RC ASSOCIATED WITH DAY MSG #
  219. IF REASON EQ DFTX
  220. THEN # NIP IS TO DAYFILE PWL TEXT #
  221. BEGIN
  222. PARAMP4 = DMCPDM; # DMC FOR PIP DAYFILE MSG #
  223. END
  224. ELSE # NIP IS NOT TO DAYFILE MSG #
  225. BEGIN
  226. IF REASON EQ DFBPE
  227. THEN # PIP DETECTED BLOCK PROTOCOL ER#
  228. BEGIN # IN UPLINE MSG #
  229. PARAMP4 = DMCBNBD; # DMC FOR IVT BLK PROTOCOL ERR #
  230. END
  231. ELSE # CHECK FOR OTHER DAYFILE CODES #
  232. BEGIN
  233. IF REASON EQ DFME
  234. THEN # NIP IS TO DAYFILE MDI ERR STAT#
  235. BEGIN
  236. PARAMP4 = DMCMDS; # DMC FOR MDI DETAILED STATUS #
  237. END
  238. ELSE # NIP IS TO DAYFILE NO SUP MSG #
  239. BEGIN
  240. IF REASON EQ DFRDM
  241. THEN # PIP REJECTED DOWNLINE MSG #
  242. BEGIN
  243. PARAMP4 = DMCRDM; # DMC FOR REJECTING DOWNLINE MSG#
  244. END
  245. ELSE # NIP IS TO DAYFILE NO SUP MSG #
  246. BEGIN
  247. PARAMP4 = DMCNSV; # DMC FOR NONSUPPORT MDI MSG #
  248. END
  249. END
  250. END
  251. END
  252. GOTO NPPWL1 ;
  253. NPWLOP6:
  254. PARAMP4 = DMCPBPE; # PRU BLOCK PROTOCOL ERR WORKLST#
  255. #
  256.   STATE TABLE CALL TO NCSTTP TO SEND TO PIP PWL WITH OP
  257.   9, PIP WILL RESPONSE PWL WITH OP = 3.
  258.   #
  259. RCBRK = RCCB"NE" ; # RC = 20, NPU ERROR #
  260. NCSTTP(P<LLCB>,PRUCN,NCBRKPC,P<PWLHDR>);
  261. GOTO NPPWL1;
  262.  
  263. CALLOVL:
  264. PARAMP1 = P<PWLHDR>; # PRU WORKLIST ADDRESS #
  265. PARAMP2 = PCNBADDR; # PCNB ADDRESS #
  266. OVLCALL; # CALL OVERLAY #
  267. END
  268. END
  269. END
  270.  
  271. NPPWL1:
  272. IF PARAMP4 NQ 0
  273. THEN
  274. BEGIN
  275. PARAMP1 = P<PWLHDR>; # PRU WORKLIST ADDRESS #
  276. OVLNAME = NGIGOP; # DAYFILE GARBLED TEXT #
  277. OVLCALL; # CALL OVERLAY #
  278. END
  279. #
  280.   CHECK IF AN APPLICATION NEEDS TO BE ABORTED
  281. #
  282. IF ABTAPPF NQ 0
  283. THEN
  284. BEGIN
  285. OVLNAME = XABTAPPP;
  286. OVLCALL;
  287. END
  288.  
  289. #
  290.   CHECK IF AN APPLICATION HAS FAILED
  291. #
  292. IF FAILADR NQ 0
  293. THEN
  294. BEGIN # PROCESS APPLICATION FAILURE #
  295. OVLNAME = HAPFAILP;
  296. OVLCALL;
  297. END
  298. RETURN;
  299. END
  300. TERM
cdc/nos2.source/nam5871/nppwl.txt ยท Last modified: 2023/08/05 17:22 by Site Administrator