Google
 

Trailing-Edge - PDP-10 Archives - BB-H348C-RM_1982 - swskit-v21/documentation/wrong-nsp-version.mem
There are no other files named wrong-nsp-version.mem in the archive.


[SYMPTOM]


               DECnet-20 Version 2.0 MCB  reports  incorrect
          NSP version number to phase III nodes when Connect
          Initiate messages are sent from a task resident in
          the  MCB.   Actually,  sending  the  wrong version
          number should cause no problems, since no task  in
          the MCB ever needs to connect to a task in a phase
          III node.


[DIAGNOSIS]


               The NSP version 3.1  specification  describes
          bits  0  and  1  in  the  INFO byte of the connect
          initiate message to  be  the  link  priority.   On
          transmission,  this  subfield is supposed to be 1.
          The NSP version 3.2 specification interprets  this
          subfield  as an NSP version number where a 1 means
          NSP 3.1 and a zero means NSP 3.2.  The NSP code in
          the   MCB  never  bothered  to  set  the  priority
          subfield to 1.   As  a  result,  NSP  version  3.2
          implementations  think that the MCB is a phase III
          node, when it is actually a phase II node.


[CURE]


               In NETACP, when the SERVICES and INFO  fields
          are constructed, add the priority subfield.  Apply
          the following patch to the MCB system  image  with
          FILDDT.   An  example  is  provided  following the
          patch.



At CHKFLG in NSPSBA in NETACP replace 

12703 001  MOV  CL$TYP,R3       ; ASSUME NO FLOW CONTROL.

with

12703 401  MOV  CL$TYP+400,R3   ; NO FLOW CONTROL, PRI=1
                                                      Page 2


[EXAMPLE]


     This is done as follows.  First  compute  the  absolute
address  in your system that corresponds to CHKFLG in NSPSBA
in NETACP.  You do this by adding 160 (the address of CHKFLG
relative  to the beginning of NSPSBA) to the virtual address
of NSPSBA in NETACP (found  in  NETACP.MAP).   This  is  the
virtual  address  of  CHKFLG.  Now subtract 120000 from this
and then add to the result the base  address  of  NETACP  in
physical  memory  (found by looking at the output from VNP20
or using the /RSX:PART switch to MCBDA).  Now use FILDDT  to
insert the patch at the address you calculated.  Remember to
add 2000 bytes for the task header in the system  image  and
divide  by  4 since FILDDT counts in 36 bit words, not 8 bit
bytes.


@TYPE NETACP.MAP
PSECT Storage Map
Name    Loc     Length  /Start  Length  File    Module  Ident
        120162  004560
                        120162  000546  NSDSP   NSDSP   V01.01
                        120730  001116  NSNET   NSNET   V01.07
                        122046  000404  NSCON   NSCON   V01.01
                        122452  000050  NSDIS   NSDIS   V01.00
                        122522  000640  NSRCV   NSRCV   V01.00
                        123362  000160  NSSUB   NSSUB   V01.02
                        123542  000210  NSOBJ   NSOBJ   V01.03
                        123752  000362  NSMOU   NSMOU   V01.00
                        124334  000015  NSDAT   NSDAT   V01.00
                        124352  000024  SAVRG   SAVRG   X03   
                        124376  000172  SYSLIB.OLB      CAT5    02    
                        124570  000110  SYSLIB.OLB      C5TA    02    
                        124700  000042  SYSLIB.OLB      SAVAL   00    
NSPLNA  124742  001202
                        124742  001202  NSPLNA  NSPLNA  V01.10
NSPRCA  126144  001220
                        126144  001220  NSPRCA  NSPRCA  X01.03
NSPSBA  127364  003034
                        127364  003034  NSPSBA  NSPSBA  V01.10
NSPXMA  132420  001064
                        132420  001064  NSPXMA  NSPXMA  V01.04
....
$MCBDA
MCBDA - MCB CRASH DUMP ANALYZER V2-12                                           14-JUL-81 16:04  PAGE 1
ANALYSIS OF "NET:<DN200>DIABLO.SYS.11" CREATED  6-Aug-80 08:37:26
PARTITION INFORMATION



                        M E M O R Y    M A P
                                                                          Page 3


  PARTITION   MEMORY  ALLOCATED     SIZE        TYPE       OCCUPIED BY
  ---------   -----------------     ----        ----       -----------

   <EXEC>     00000000 00026134   00026134
   <POOL>     00026134 00050000   00021644

   CEXPAR     00050000 00055600   00005600    MAIN COMMON    CEXPAR

   TASK       00055600 00102000   00024200    MAIN TASK            
   NTINIT     00055600 00060500   00002700     SUB TASK      NTINIT
   NETACP     00060500 00102000   00021300     SUB TASK      NETACP

   GEN        00102000 00374000   00272000    MAIN SYS             
              00102000 00125500   00023500     SUB DYNAMIC   POOL..
              00125500 00130400   00002700     SUB DYNAMIC   NT.DMC
              00130400 00142300   00011700     SUB DYNAMIC   NT.LE 
              00142300 00152500   00010200     SUB DYNAMIC   NT.CR 
              00152500 00153000   00000300     SUB DYNAMIC   NT.AUX
              00153000 00166700   00013700     SUB DYNAMIC   NT.NSP
              00166700 00201500   00012600     SUB DYNAMIC   NT.DLX
              00201500 00204600   00003100     SUB DYNAMIC   NT.NRD
              00204600 00215500   00010700     SUB DYNAMIC   NT.NRM
              00215500 00224000   00006300     SUB DYNAMIC   NT.DTR
   NICE       00224000 00230100   00004100     SUB TASK      NICE..
   POSI       00230100 00257600   00027500     SUB TASK      POSI..
              00257600 00262400   00002600     SUB DRIVER    TT:
!
! 127364 + 160 - 120000 + 60500 = 70244
!
$FILDDT
FILDDT>ENABLE DATA-FILE 
FILDDT>ENABLE PATCHING 
FILDDT>GET (FILE) DIABLO.SYS
[Looking at file DIABLO.SYS.1]

70244+2000=72244
72244'4=16451
16451/  12703,,1        12703,,401
Z
$