Google
 

Trailing-Edge - PDP-10 Archives - BB-H348C-RM_1982 - swskit-v21/debugging-tools/dnsr/dnread-dnsend.mem
There are no other files named dnread-dnsend.mem in the archive.


                      DNREAD/DNSEND User's Guide

DNREAD and DNSEND are programs which produce listings of all  incoming
and  outgoing  NSP  messages  for  the  TOPS20 node.  The messages are
caught as they are received from or given to  the  driver  routine  in
TOPS20.

These two programs are essentially identical in  function.   The  only
difference  between  them  is that DNREAD lists incoming messages only
and DNSEND lists outgoing messages only.  For purposes of readability,
the  rest  of  this  document  refers only to DNREAD.  However, unless
otherwise specified, all the information applies to DNSEND as well.

DNREAD is very useful for dumping NSP messages when problems are being
experienced  with  task-to-task  communication,  particularly  when  a
Datascope is not available to monitor the line directly.   It  has  an
advantage  over  the  Datascope  in that all line traffic on the DDCMP
level is stripped off.  This  saves  the  specialist  the  trouble  of
decoding  the  DDCMP  messages to get to the (usually more useful) NSP
messages.

DNREAD is not a complete replacement for the Datascope,  however,  and
the  specialist  should  keep the following points in mind while using
this program:

     1.  Because the DDCMP protocol is invisible to the  DNREAD  user,
         the  output  will not be of any use, and could be misleading,
         if the problem is in fact due to DDCMP problems.

     2.  DNREAD examines only  those  NSP  messages  received  by  the
         TOPS20  node.   Any NSP messages received by the DN20 and not
         passed on over the DTE will not be noticed.

     3.  Occasionally DNREAD will miss an entire message.

A good attitude to take toward DNREAD is to trust it as  long  as  its
output  seems  consistent with the behavior you have observed.  It can
be very helpful in isolating problems.  However, keep a grain of  salt
handy.   Try  to verify its output with a Datascope if you have reason
to suspect the information.



1.0  RUNNING DNREAD

Because DNREAD inserts sampling code into the monitor using the  SNOOP
JSYS, it must be run with WHEEL or OPERATOR privileges enabled.

When DNREAD is run, it first prompts for an output report label.  This
is  a  descriptive  phrase  to  be  put  at  the top of the listing(s)
generated later.  The sampling code is then inserted into the monitor.
From  this  point  on, NSP messages received will be sampled until you
type a carriage return.  Because this can produce a tremendous  amount
of  output,  it  is  a  good  idea  to  start  up  DNREAD  just before
reproducing the problem and to stop it afterward.
                                                                Page 2


While  DNREAD  is  running,  it  occasionally  types  numbers  on  the
terminal.   These  are  the numbers of messages that have been sampled
and can be ignored.

When you stop snooping by typing the carriage return,  DNREAD  prompts
you  for the type of output you want produced.  It can produce a "raw"
listing, which essentially  just  dumps  the  NSP  messages  in  three
formats,  or  it  can  produce  a  formatted  listing for which DNREAD
attempts to decipher the NSP messages and  to  type  the  fields  with
appropriate  headings.   If  you  indicate  that  a particular type of
report is to be made, it requests a filespec for the output.

Unless you are such a wizard that you know the protocol by heart,  you
should  have  a copy of the appropriate NSP specification handy before
trying to interpret the output.

When DNREAD exits, it leaves a deleted  file,  SM.DAT,  in  your  disk
area.  This can be safely expunged.



2.0  RAW OUTPUT LISTING

In the raw output listing, each message is dumped in three ways --  as
words  in  octal, as bytes in octal, and as bytes in ASCII.  The first
four words are added by the monitor within NSPSRV and can be  ignored.
The actual NSP message begins with the fifth word.  Each word contains
four 8-bit bytes, left packed, so that the  bytes  are  in  bits  0-7,
8-15,  16-23,  24-31.   Bits  32-35  are  always  zero.  The bytes are
extracted and printed in octal to the right of the words.   The  first
sixteen  bytes  are  derived  from  the monitor's four-word header and
should be ignored.

To the right of this, the bytes are printed  in  ASCII.   Because  NSP
messages contain lots of binary data, this looks like junk as often as
not.



3.0  FORMATTED OUTPUT LISTING

In this listing the various fields of the NSP message are stripped out
and  printed  with  headings.   Between  the  headings  and  your  NSP
specification this listing is pretty much self-explanatory.  Each  new
message  is marked with an asterisk.  Any ASCII data in an NSP message
is printed in both ASCII and binary.  In  both  cases  the  bytes  are
eight bits.

Under header ACKNUM, a letter A means  this  message  is  an  ACK;   a
letter N means the message is a NAK.  For Link Service messages, under
header LSFLGS, the letter D is the interpretation of the FCVAL  field.
It means this message is a Data segment or message request count.  You
may also see the letter I which  means  it  is  an  Interrupt  request
count.   The  word  STAY following this represents the value of the FC
MOD field;  it means "no change".  You may also  see  STOP  for  "stop
                                                                Page 3


data" or START for "start data".



4.0  EXAMPLE


$RU DNREAD
Output Report Label:  Example for SWSkit

TYPE <CR> TO STOP SNOOPING!   

Do you want "raw" data output? (Y or N)  Y
Raw output to:  RAW.TXT

Do you want formatted output? (Y or N)  Y
Formatted output to:  FORMAT.TXT
$TY RAW.TXT
Example for SWSkit

TRACE OF INCOMING NSP MESSAGES - 21-Feb-80 17:05:14

TOTAL SAMPLES TAKEN = 88

RECEIVE MESSAGE
           0              0   0   0   0         ^@ ^@ ^@ ^@ 
100000000000             40   0   0   0           ^@ ^@ ^@ 
          10              0   0   0   0         ^@ ^@ ^@ ^@ 
           0              0   0   0   0         ^@ ^@ ^@ ^@ 
301113660160            140 222 366   7         ` ^R v ^G 
150434002120             64 107   0 105         4 G ^@ E 



RECEIVE MESSAGE
           0              0   0   0   0         ^@ ^@ ^@ ^@ 
100000000000             40   0   0   0           ^@ ^@ ^@ 
           7              0   0   0   0         ^@ ^@ ^@ ^@ 
           0              0   0   0   0         ^@ ^@ ^@ ^@ 
 51113660160             24 222 366   7         ^T ^R v ^G 
150442000000             64 110 200   0         4 H  ^@ 



RECEIVE MESSAGE
           0              0   0   0   0         ^@ ^@ ^@ ^@ 
100000000000             40   0   0   0           ^@ ^@ ^@ 
           7              0   0   0   0         ^@ ^@ ^@ ^@ 
           0              0   0   0   0         ^@ ^@ ^@ ^@ 
 11113660160              4 222 366   7         ^D ^R v ^G 
150752000000             64 172 200   0         4 z  ^@ 



RECEIVE MESSAGE
                                                                Page 4


           0              0   0   0   0         ^@ ^@ ^@ ^@ 
100000000000             40   0   0   0           ^@ ^@ ^@ 
          11              0   0   0   0         ^@ ^@ ^@ ^@ 
           0              0   0   0   0         ^@ ^@ ^@ ^@ 
 41113660160             20 222 366   7         ^P ^R v ^G 
150754000000             64 173   0   0         4 { ^@ ^@ 
  2000000000              1   0   0   0         ^A ^@ ^@ ^@ 

[ Much more, example was truncated here to save space ]

^L
$TY FORMAT.TXT
Example for SWSkit

TRACE OF INCOMING NSP MESSAGES - 21-Feb-80 17:05:29

TOTAL SAMPLES TAKEN = 88

*                     MSTYPE-DSLINK-SRLINK-ACKNUM-SEGNUM     *****

                      BomEom 173222  32007           107 

 DATA (ASCII) =
E

 DATA (BINARY) =
 105

*                     MSTYPE-DSLINK-SRLINK-ACKNUM     *****

                      LS ACK 173222  32007 A  110 

*                     MSTYPE-DSLINK-SRLINK-ACKNUM     *****

                      DA ACK 173222  32007 A  172 

*                     MSTYPE-DSLINK-SRLINK-ACKNUM-SEGNUM-LSFLGS-FCVAL     *****

                        LS   173222  32007           173 D STAY     1

[ Much more, example truncated ]
$



5.0  BUILDING DNREAD AND DNSEND

At  the  time  that  the  SWSkit  was  put  together,  DNREAD.MAC  and
DNSEND.MAC  required  the  use  of  the  3A version of MACSYM.  The 3A
version of MACSYM.UNV has been included for this purpose.   This  copy
of MACSYM should be used only for building these two programs.

[ End of DNREAD/DNSEND User's Guide ]