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 ]