top - download
⟦bab7c403c⟧ Wang Wps File
Length: 37609 (0x92e9)
Types: Wang Wps File
Notes: FIX/1152/PSP/0062
Names: »3091A «
Derivation
└─⟦dfa2fde64⟧ Bits:30006137 8" Wang WCS floppy, CR 0266A
└─ ⟦this⟧ »3091A «
WangText
A…05…@…0b…@…02…@…07…?…0c…?…01…?…05…>…09…>…0e…>…0f…>…01…>…02…>…07…=…0c……86…1
…02…
…02…
…02…FIX/1152/PSP/0062
…02…JJJ/870211
…02…
#…02…
FIKS
MDS
SUBSYSTEM
PSP…02…OK/821129…02…
FIKS
…08……06…1 …02… …02… …02… …02… …02…
FIKS MDS Subsystem
Product Specification
FIX/1152/PSP/0062
…0f…J]rgen J. Jensen, CR84…0e…
J]rgen H]g
FMK (6) APE, JJJ, IA, NMN, SL, LU
…0e… FIKS Pgm. Mgr…0f…
…0e… Doc.Conf.Mgr.…0f…
1.1
870211
REVISION RECORD
REVISION RECORD
REVISION RECORD
REVISION RECORD
REVISION RECORD
Wang/Disk:
3091A/266A
̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲
̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲…06…1 …02… …02… …02…
ISSUE DATE PAGES BRIEF
DESCRIPTION
OF
CHANGE
ISSUE DATE PAGES BRIEF
DESCRIPTION
OF
CHANGE
ISSUE DATE PAGES BRIEF
DESCRIPTION
OF
CHANGE
ISSUE DATE PAGES BRIEF
DESCRIPTION
OF
CHANGE
ISSUE DATE PAGES BRIEF
DESCRIPTION
OF
CHANGE
AFFECTED
AFFECTED
AFFECTED
AFFECTED
AFFECTED
̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲
̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ^ ^
^
1 ^821129 ^ All ^
Original
issue
of
document.
^ ^ ^
1.1 ^870211 ^ DCN 1 ^
Changed
in
accordance
with
Order
No:
22/86
^ ^ ^
^ ^ ^
^ ^ ^
^ ^ ^
^ ^ ^
^ ^ ^
^ ^ ^
^ ^ ^
^ ^ ^
^ ^ ^
^ ^ ^
^ ^ ^
^ ^ ^
^ ^ ^
^ ^ ^
^ ^ ^
^ ^ ^
^ ^ ^
^ ^ ^
^ ^ ^
^ ^ ^
^ ^ ^
^ ^ ^
^ ^ ^
^ ^ ^
^ ^ ^
^ ^ ^
^ ^ ^
^ ^ ^
^ ^ ^
^ ^ ^
^ ^ ^
^ ^ ^
^ ^ ^
^ ^ ^
^ ^ ^
^ ^ ^
^ ^ ^
^ ^ ^
^ ^ ^
^ ^ ^
^ ^ ^
^ ^ ^
^ ^ ^
T̲A̲B̲L̲E̲ ̲O̲F̲ ̲C̲O̲N̲T̲E̲N̲T̲S̲ Page
1. SCOPE ..................................... 1
1.1 INTRODUCTION ........................... 1
1.2 ABBREVIATIONS .......................... 2
2. APPLICABLE DOCUMENTS ....................... 3
3. MODULE SPECIFICATION ........................ 4
3.1 FUNCTIONAL CAPABILITIES ................ 5
3.2 INTERFACE DESCRIPTION .................. 10
3.3 PROCESSING ............................. 14
3.3.1 DELIVERY Q MOD ......................... 16
3.3.2 PRINTER Q MOD .......................... 19
3.3.3 STORE .................................. 21
3.3.4 Checkpoint and Queuing ................. 22
3.3.5 NODAL ̲ERROR ̲HANDLING ................... 24
3.3.6 DISTRIB ̲ERROR .......................... 25
3.3.7 DECODE ̲ANO ̲L ........................... 27
3.3.8 TERM ACCESS IB ......................... 28
3.3.9 QUEUEING ............................... 30
3.3.10 DECODE AIG M ........................... 32
3.3.11 GET MSG ID ............................. 34
3.3.12 GET TCB INFO ........................... 36
3.3.13 UPDATE TERM BUF ........................ 37
3.3.14 UPDATE R MASK .......................... 39
3.4 Data Organization ...................... 41
3.5 Storage Allocation ..................... 49
3.6 Performance Characteristics ............ 49
3.7 Limitations ............................ 49
3.8 Error Codes/Error Locations ............ 49
3.9 Listing References ..................... 52
4. QUALITY ASSURANCE ........................... 53
4.1 Qualification Tests .................... 53
4.2 Other Quality Assurance Provisions ..... 53
5. PREPARATIONS FOR DELIVERY ................... 54
6. NOTES .......................................
7. APPENDICES ..................................
1. S̲C̲O̲P̲E̲
This document contains a detailed product specification of the message distribution subsystem
MDS.
1.1 I̲N̲T̲R̲O̲D̲U̲C̲T̲I̲O̲N̲
The main functions of the MDS are:
1. Receival of narrative messages
a) released from a local terminal
b) from the network (delivered by NSS)
2. Distribution of received messages
a) to terminals (PIP-Queues) which are represented in the address list of the message
b) to NSS for distribution at other MEDEs
c) to SIP in case of NATO addresses in the address list
d) to the DT-queue at the local supervisor in case of errors
e) to SIP without processing the address list if only S or Z is true in the routing
mask of the MTCB
3. Redistribution of messages
a) from the DT-queue requested by the local supervisor
b) retrieved from HDB
4. Delivery of messages in the supervisors DT-queue in case of
a) errors in the address list
b) messages rejected by the NSS
c) terminal queue overflow
5. Transport of control messages between NSS and SAF…86…W …02… …02… …02… …02…
1.2 A̲B̲B̲R̲E̲V̲I̲A̲T̲I̲O̲N̲S̲
Ref. data I/F chapter 1.2 (ref. I).
2. A̲P̲P̲L̲I̲C̲A̲B̲L̲E̲ ̲D̲O̲C̲U̲M̲E̲N̲T̲S̲
I FIX/0100/MAN/0004 FIKS DATA I/F REFERENCER
II FIX/1256/PSP/0078 QACCESS MONITOR PSP
III FIX/1256/PSP/0066 MTCB MONITOR PSP
IV FIX/1256/PSP/0057 LOG ̲JOUR MONITOR PSP
V FIX/1256/PSP/0092 SEND REP MONITOR PSP
VI FIX/1256/PSP/0081 RDF MONITOR PSP
VII FIX/1200/PSP/0077 PURGE PROCEDURE PSP
VIII FXA/SDS/004 RETRANSMISSION PROCEDURE
3. M̲O̲D̲U̲L̲E̲ ̲S̲P̲E̲C̲I̲F̲I̲C̲A̲T̲I̲O̲N̲
The chapter contain a description of the processing of narrative and control messages in
the MDS subsystem.
A description of the narrative message format is found in ref. I, chapter 10.1.2.
A description of the layout of real- and pseudo MTCB's is found in ref. I, chapter 7.1.1
and 7.1.2
3.1 F̲U̲N̲C̲T̲I̲O̲N̲A̲L̲ ̲C̲A̲P̲A̲B̲I̲L̲I̲T̲I̲E̲S̲
The MDS is a queue driven subsystem. When an element is inserted in one of the MDS queues
the MDS returns from its waiting point and reads the MTCB referred to by the queue element.
The processing of the queue element is now determined by the contents of the MTCB. After
processing the MDS returns to its waiting point.
The MDS queue is a group queue with 7 groups, one for each of the 7 precedences S,Z,Y,O,P,M
and R. Each queue is served in a 'first in, first out' order.
The elements are read from the MDS queues by call of QACCESS, READ ̲GROUP ̲ELEMENT (ref. II)
which automatically returns the first element from the highest - not empty - precedence
queue.
N̲a̲r̲r̲a̲t̲i̲v̲ ̲M̲e̲s̲s̲a̲g̲e̲s̲
The main purpose of the MDS is distribution of narrative messages between subsystems.
A narrative message which is meant for several terminals is received by MDS in one copy (one
MTCB) and is then split into the correct number of copies at queuing to the terminals. (The
splitting of the message is done by queuing the MTCB of the message into several queues.
The message file remains in one copy).
The block diagram in FIG. 3.2 shows the interface between the MDS and other subsystems.
Narrative messages for distribution are split in 2 categories.
Category 1,a: the input MTCB is real and the distribution of the message to printers is determined
by the decoding off the address list of the message. This category of messages
is enqueued to MDS by the subsystems TEP(at release or readdress) and NSS(
for local distribution of external messages).
Category 1,b: the input MTCB is real and it refers to a message which only contains S or
Z in the routing mask. The MDS shall not make local distribution of the message
although there might be local ANO's in the address list, because the message
was only intended for NICS TARE and therefore it shall be enqueued for SPM.
Category 2,a: the input MTCB is pseudo and the distribution of the message to printers is
determined by the contents of the pseudo MTCB. The contents of the pseudo MTCB
are
o MTCB id. of the narrative message.(This MTCB is enqueued to the printer
queues)
o 5 words of addressing information (each word contains in the upper byte:
terminal No., in lower byte: number of copies to this terminal).
Category 2,b: Another type of pseudo MTCB received by MDS is sent from NSS subsystem. (The
different types of pseudo MTCBs are known from each other by the variables
CATEGORY and SUBCATEGORY in the MTCB block). This type indicates a narrative
message (or central message - described later)
which cannot be sent to its proper destination by the NSS (The routing table do not
contain any routing direction to the NODE/MEDE it is bound for). The pseudo MTCB
contains the MTCB id. of the non-deliverable message. This id. is queued to SRS subsystem
for storage of the message and than the pseudo MTCB is enqueued to the supervisors
DT-queue.
C̲o̲n̲t̲r̲o̲l̲ ̲M̲e̲s̲s̲a̲g̲e̲s̲:
The only type of control messages handled by MDS are those sent by NSS and meant for SFS-SF
(Supervisors automatic functions queue). The input to MDS is a real MTCB and if its main
type (variable in the MTCB block) indicates a control message, the MTCB is queued to SFS-SF
without any further processing. (Control messages from SAF to NSS are sent directly from
SAF to NSS).
As with non-deliverable narrative messages (see NARRATIVE MESSAGES; category 2.b) the NSS
sends non-deliverable control messages to MDS as a pseudo MTCB, this MTCB is enqueued to
SFS-DT-queue without further processing
D̲e̲l̲i̲v̲e̲r̲y̲ ̲L̲i̲m̲i̲t̲a̲t̲i̲o̲n̲s̲
Depending of the type of messages to be enqueued to printer-queues some criterias must be
fulfilled:
S̲H̲-̲M̲e̲s̲s̲a̲g̲e̲s̲:
If the message is of special handling type (the message classification is bigger than 12
and/or message type is ATOM or CRYPTO) the terminal which is meant to receive the message
is examined. If the terminal is blocked or not logged on or if the user which have logged
on, does not have a SH-password, the message is sent to supervisors DT-queue instead. (A
pseudo MTCB is generated and updated with the MTCB of the message and reason for delivery).
If the SH-message includes NATO-ANOs in the address list the enqueuing to SIP-subsystem,
which cannot handle SH-messages, is omited and enqueued to SFS-DT-queue. (see also OUTBOUND
MESSAGES)
For all messages:
If the precedence of the message is FLASH and the addressed terminal is not logged on or
blocked, the message is enqueued but an alarm indicating the event is issued by call of the
monitor SEND ̲REPORT (An element is enqueued to SF-AL-queue). If enqueuing of a message is
impossible due to queue overflow, the message is enqueued to DT-queue instead. (A pseudo
MTCB is created and sent to DT-queue)
O̲u̲t̲b̲o̲u̲n̲d̲ ̲M̲e̲s̲s̲a̲g̲e̲s̲
The MTCB of a narrative message indicates (in word 7) whether the message is locally released
or it arrives from the net. If it is locally released and the decoding of its address list
indicates external ANOs the message shall be queued to NSS. While the address list is examined,
all external ANOs are processed by updating the bit in the variable ROUTING-MASK (ref. FIG.
3.4) corresponding to the MEDE id.
When the enqueuing to local printers is done the routing-mask is inserted in the MTCB of
the message which is enqueued to NSS.
Messages with NATO ANOs are sent to the SIP subsystems at NODE/MEDE K and E. That means that
on other MEDEs than K and E the routing mark is updated with bits corresponding to K and
E. On MEDE K the routing mark is updated with the bit corresponding to E and the message
is enqueued to SIP. On MEDE E the routing mask is updated with the bit corresponding to K
and the message is enqueued to SIP.
3.2 I̲N̲T̲E̲R̲F̲A̲C̲E̲ ̲D̲E̲S̲C̲R̲I̲P̲T̲I̲O̲N̲
Interface Data:
Exchange of information between MDS and other subsystems is done in MTCBs. Layout: ref I,
chapter 7.1.1 for real MTCBs and 7.1.2 for pseudo MTCBs.
Input queues:
MDS-input queue: a queue group of 7 queues, one for each precedence.
I̲n̲t̲e̲r̲f̲a̲c̲e̲ ̲t̲o̲ ̲o̲t̲h̲e̲r̲ ̲s̲u̲b̲s̲y̲s̲t̲e̲m̲s̲:
MES - MDS :
Real MTCB is enqueued in case of release or readdressing of a narrative message. Pseudo MTCB
is enqueued in case of redistribution of a message retrieved from HDB.
NSS - MDS :
Real MTCB in case of:
1. Narrative message bound for this mede
2. Narrative message with orbit error
3. Control message to SAF (SFS-SF)
Pseudo MTCB in case of:
1. Narrative messages with destination not available
MDS - NSS :
Real MTCB in case of release or readdressing of narrative message.
MDS - SIP :
Real MTCB in case of release or readdressing of narrative message including a SIP-ANO (only
at N/M K and E)
MDS - PIP :
Real MTCB in case of delivery of a narrative message from:
1. MES (release/readdress)
2. MESS (redistribution of retrieved messages)
3. SFS (redistribution of messages from DT-queue)
4. NSS (narrative messages from network)
MDS - SRS :
Real MTCB when a message is meant for storage on HDB.
MDS - SRS :
AMOS system answer (see SRS - MDS)
SRS - MDS :
AMOS system message is sent when the storage is completed.
MDS - PURGE :
Real MTCB when MDS is the last user of a SH-menage.
MDS - JOURNAL :
Pseudo MTCB (via call of MON LOG ̲JOUR)
MDS - SFS(DT) :
Pseudo MTCB in case of
1. detection of illegal address list elements in a narrative message
2. Non deliverable narrative message from NSS
3. Orbiting narrative message from NSS
4. SH-message to a terminal without SH password
5. SH-message to SIP
6. Print queue overflow
MDS - SFS(aSF) :
Real MTCB in case of control messages from NSS
MDS - SFS(AL):
Pseudo MTCB (via call of SEND-REP) in case of
1. SH-message to terminal without SH-password
2. Message of flash precedence to not logged on terminal
3. Print queue overflow
4. MTCB use count too big (the existance of a narrative message in too many copies)
C̲r̲i̲t̲i̲c̲a̲l̲ ̲R̲e̲g̲i̲o̲n̲s̲:
MDS reads information from cirtical region XTCBCR.
MDS reads and updates a counter (counter of mutilated messages) in critical region STATIC.
F̲i̲l̲e̲ ̲A̲c̲c̲e̲s̲s̲e̲s̲:
HDB, IMF, PDB :
accessed and read. As the MDS accesses the files via the MTCB monitor it does not know which
of the files it is accessing.…86…W …02… …02… …02… …02… …02…
MDS Interface
Block Diagram FIG. 3.2
3.3 P̲R̲O̲C̲E̲S̲S̲I̲N̲G̲
This chapter contains a describtion of the procedures in MDS. Fig. 3.3 shows the MDS subsystem
block diagrams. Data structures and variables referred to in this chapter are explained in
details in chapter 3.4.
MDS SUBSYSTEM
BLOCK DIAGRAM FIG. 3.3
3.3.1 D̲E̲L̲I̲V̲E̲R̲Y̲ ̲Q̲ ̲M̲O̲D̲
Delivery ̲Q ̲MOD is the main-module of the MDS subsystem. The module contains an initialization
part (opening of files, MTCB initialization etc.) and an endless loop.
The endless loop is initiated bya call of MON QACCESS, READ ̲GROUP ̲ELEM, which returns the
first element in the highest precedence queue of the MDS input queues.
The MTCB is read and the rest of the processing in MDS is determined by the contents of this
MTCB.
If the MTCB is of type Pseudo:
4 types of Pseudo MTCBs are accepted:
1. Supervisor-requested distribution of a narrative message from the DT-queue.
2. Redistribution of a message retrieved from HDB
3. A control message rejected by NSS due to non delivery
4. A narrative message rejected by NSS due to non delivery.
In case of type 1 and 2 PRINTER ̲Q ̲MOD is called. In case of types 3 and 4 NODAL ̲ERROR ̲HANDLING
is called. The queue element processed is dequeued, see DEQUEUING:
If the MTCB is of type REAL:
2 main types of real MTCBs are accepted:
1. Narrative messages (from local MEDE or network)
2. Control messages (from NSS)
All MTCBs of type 2 (Control msgs) are sent to the supervisors SF-queue without further processing.
Narrative messages are sent for storage by call of STORE. If the real MTCB indicates a message
which has been deliverered by NSS due to an orbit error the procedure DISTRIB ̲ERROR is called
(The message is enqueued to supervisors DT-queue).
Normal narrative messages and orbiting narrative messages with local ANOs are sent for local
distribution by call of PRINTER ̲Q ̲MOD.
When returning from PRINTER ̲Q ̲MOD the address bits of the message have been descoded and
the message distributed to local terminals addressed by the message.
If a SIP-ANO have been detected ( ANO with MEDE id=S,T,U,V,W,X,Y,Z) the routing mark is updated
with the bits for MEDE E and K.
(SH-message with SIP-ANOs are not allowed and are sent to supervisors DT-queue by MDS).
It is now checked if the narrative message is locally released and if it is bound for other
medes. If so, the routing mask is inserted in the message MTCB and the MTCB is enqueued
to NSS.
If SIP ANO's are present the MTCB is also enqueued to SIP-submodule (or MEDE E and K).
D̲E̲Q̲U̲E̲U̲I̲N̲G̲
This part of the procedure is common for both pseudo and real MTCB:
The queue element processed is dequeued. IF a Purge flag is returned from QACCESS (when the
message is of SH-type and MDS is the last user of the MTCB, ref VII) the MTCB is enqueued
to PURGE process and the MTCB is released. The last step in the endless loop of the MDS is
a test of the consistance of the narrative message being processed. If any errors have been
found during the processing (i.e. ANO-error) the procedure which detects the error sets the
flag F ̲MUTILATED ̲ERROR.
If the flag is set at the end of the processing, the critical region STATIC is entered and
the counter of mutilated messages is incremented.
The end of the loop is reached and the next queue element is read. If no entries in any of
the precedence queues the MDS enters a wait state.
3.3.2 P̲R̲I̲N̲T̲E̲R̲ ̲Q̲ ̲M̲O̲D̲
Registers: R6 LINK
The procedure is called when the MTCB being processed is indicating a narrative message for
local distribution. The input information to the procedure is the input MTCB.
The procedure is divided in two parts - one for real MTCBs and one for pseudo MTCBS.
R̲E̲A̲L̲ ̲M̲T̲C̲B̲s̲: (The input queue element points at a real MTCB) DECODE ̲ANO ̲L is called (The address
list is inspected and the buffer TERM ̲BUF indicating the terminals addressed is updated).
If the message is of SH-type, TERM ̲ACCESSIB is called (Terminals which are not allowed to
receive SH-messages are deleted in TERM ̲BUF).
QUEUING is called and PRINTER ̲Q ̲MOD IS exited.
P̲S̲E̲U̲D̲O̲ ̲M̲T̲C̲B̲s̲:
The Pseudo MTCB contains an index of a real MTCB which is the MTCB of the message to be distributed.
The real MTCB is read and its precedence is determined. The precedence is used to determine
which of the precedence - queues the message is meant for.
The rest of the pseudo MTCB which contains the terminal numbers and the number of copies
to each terminal is inspected and copied to TERM ̲BUF.
If the message is of SH-type TERM ̲ACCESSIB is called. The procedure QUEUING is called (The
message is queued to the terminals specified in TERM ̲BUF).
The MTCB index of the message MTCB is released before the procedure is exited.
3.3.3 S̲T̲O̲R̲E̲
Register: in: R0 : ref. MTCB id
R1 : error label
R4 : ref. MTCB block
R6 : LINK
The procedure is called when a narrative message is received in the input queue.
If the message fulfills the conditions
o Message SPECAT = 0
o Message classification 12 (Not SH)
o Stored on HDB : No
the message is to be stored. If not the procedure is exited.
S̲t̲o̲r̲a̲g̲e̲: The DTG is found by call of MON GET ̲DTG and it is inserted in the MTCB of the
message.
The MTCB index is queued by call of MON QACCESS, INS and the submodule enters a wait state
by call of MON WAITEVENT. When an AMOS message is received from SRS SUBMODULE (indicating
that the message now is registered on HDB) the procedure answers the message and exits.
3.3.4 C̲h̲e̲c̲k̲p̲o̲i̲n̲t̲ ̲a̲n̲d̲ ̲Q̲u̲e̲u̲i̲n̲g̲
Registers:
R0: Command No. used at call of CHECKP procedure (ref. chapter 3.4, Data Organization)…06…W
…02… …02… …02… …02…
R1: MTCB index to be queued
R2: Terminal No.
R3: Queue No.
R4: Error No. (label to be used if MON ERROR is called)
R5: Queuing flag 1: The MTCB id is queued and checkpointed
0: The MTCB id is
checkpointed
R6: Link
R7: QACCESS parameter 1: priviledged call
0: not priviledged call
All registers are kept at return to calling process.
An AMOS message with the contents of registers 0 to 4 (describing the event to be checkpointed)
is sent to the CHECKP process. An answer is expected to be returned. If the queuing flag
(register 5) is set, the MTCB id is enqueued to the terminal/queue specified by registers
2 and 3. Depending on the flag in register 7 the QACCESS call is priviledged or nonpriviledged
(ref. II).…86…W …02… …02… …02… …02… …02… …02… …02… …02…
CHECKPOINT ̲AND ̲QUEUING
FLOW CHART FIG. 3.3.4
3.3.5 NODAL ̲ERROR ̲HANDLING
…0e……0e… ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲…0f……0f…
Registers: R6: LINK
The procedure is called when a pseudo MTCB is received from NSS indicating either a narrative
or a control message which cannot be delivered to the destination. The message can either
be a transit message or a local generated message.
If the pseudo MTCB indicates a narrative message the MTCB of the message is read and STORE
is called. The message id is fetched by call of GET ̲MSGID and then the message is inserted
into the supervisors DT-queue by call of CHECKPOINT ̲AND ̲QUEUING. The event is logged by call
of MON LOG ̲JOURNAL.
If the pseudo MTCB indicates a control message, the pseudo MTCB is sent directly to the supervisors
DT-queue by call of CHECKPOINT ̲AND ̲QUEUING.
3.3.6 DISTRIB ̲ERROR
…0e……0e… ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲…0f……0f…
Registers: R0: in: error code
R1: in: queue number (if any)
This procedure is called whenever a delivery of a message is failed or the conditions for
delivery are not fulfilled. Messages with errors in the address list and messages which have
been rejected by the NODE is also handled by call of this procedure.
The processing is determined by the input parameter ERROR ̲CODE (reg. 0). The upper byte of
the parameter is examined and if not zero a pseudo MTCB is generated, updated (category =
bits 12-15 in ERROR ̲CODE, subcategory = bits 8-11) and enqueued to SFS-DT-queue. The event
is checkpointed by call of CHECKPOINT ̲AND ̲QUEUING and logged by call of the monitor procedure
LOG ̲JOUR (ref. IV). If the lower byte of ERROR ̲CODE is not zero, an entry is made in the
supervisors alarm queue by call of the monitor procedure SEND ̲REP (The event type = lower
byte of ERROR ̲CODE)(ref. V).
A list of all values of the input variable ERROR ̲CODE is found in chapter 3.4 in the variable
declaration list.…86…W …02… …02… …02… …02… …02… …02… …02… …02…
DISTRIB ̲ERROR
FLOW CHART
FIG. 3.3.6
3.3.7 DECODE ̲ANO ̲L
…0e……0e… ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲…0f……0f…
Registers: R6: LINK
The purpose of this procedure is a decoding of the address list of the message.
The result of the processing is an updated TERM-BUF (ref. chap 3.4) indicating the terminals
which are meant to receive the message, and a routing mask ROUTING ̲M indicating the other
MEDE's addressed by the messages.
The ANO's are read from the input file (IMF or PDB file) and copied to the buffer ANO ̲BUF,
and the ANOs are processed one by one in a CASE construction which contains a branch for
each type of ANO (FM, TO, -TO, INFO, -INFO, AIG, XMT).
In case of a SIG-ANO the AIG-bit mask is read from RDF to the local buffer AIG ̲BUF (The layout
of a AIG-mask is found in ref. VI).
The next ANO in the ANO ̲BUF is fetched and if the type is XMT, the bit corresponding to the
ANO to be exempted is preset in the AIG ̲BUF. The next ANOs are fetched and processed and
when all XMTs are processed the AIG is processed by call of DECODE ̲AIG ̲M.
When all ANOs in ANO ̲BUF is processed, the next part of the address list is processed, and
so on untill the entire address list is processed.
If an illegal address list element is found the procedure DISTRIB ̲ERROR is called.
Detailed processing: REF: Source List…86…W …02… …02… …02… …02… …02… …02… …02… …02…
3.3.8 T̲E̲R̲M̲ ̲A̲C̲C̲E̲S̲S̲I̲B̲
Registers: R6: LINK
The procedure is called before a special handling message is sent for enqueuing.
Input data for the precedure is TERM ̲BUF (Ref. description in chap. 3.4) which contains information
about which terminals the message being processed is meant for.
Only those terminals which are logged on and not blocked and which have a user with a special
handling password are allowed to receive the SH-message.
Information about each addressed terminal/user is extracted from the terminals control block
(by call of GET ̲TCB ̲INFO).
If the test of a terminal is negative the entry in the TERM ̲BUF corresponding to this terminal
is cleared and DISTRIB ̲ERROR is called.
At exit of the procedure TERM ̲BUF only contains entries of terminals which are allowed to
receive the SH-message.…86…W …02… …02… …02… …02…
FIG. 3.3.8:…01…TERM ̲ACCESSIB
FLOW CHART
3.3.9 Q̲U̲E̲U̲I̲N̲G̲
Registers: R6: LINK
The input to this procedure is the buffer TERM ̲BUF (Ref. chap. 3.4). The buffer is updated
by
DECODE ̲ANO ̲L and contains information about which terminals and precedence queues the message
(being processed) is to be queued to and in how many copies.
Before queuing all queuings are checkpointed by call of CHECKPOINT ̲AND ̲QUEUING. If an enqueuing
fails due to a precedence queue overflow (max. 20 elements) or to a MTCB use count overflow
(the MTCB waits in more than 63 copies) the error handling procedure DISTRIB ̲ERROR is called
(with information about the error type).
If the message is of FLASH precedence and it is queued to a blocked or logged off terminal
DISTRIB ̲ERROR is called (with information about the error type). (An entry in the alarm
queue is made). All enqueuings are logged by call of the monitor procedure LOG ̲JOURNAL (ref.
IV).…86…W …02… …02… …02… …02…
FIG. 3.3.9
QUEUEING
FLOW CHART…86…W …02… …02… …02… …02…
3.3.10 D̲E̲C̲O̲D̲E̲ ̲A̲I̲G̲ ̲M̲
Registers: R6: LINK
This procedure is called when an AIG ̲ANO in the address-list is met and all XMT-ANOS (ANO's
in the AIG which are exempt) are processed. The input to the procedure is the buffer AIG
̲BUF which have been updated with the actual AIG mask. (Layout of AIG-mask: Ref. VI)
The mask corresponding to each MEDE id is examined. If an ANO (ANO number = bit number in
the mask) corresponding to a terminal at a remote MEDE is found the procedure UPD ̲R ̲MASK
is called and the flag F ̲EXTERNAL (used by DELIVERY ̲Q ̲MOD) is set. If a local ANO is found
the procedure UPDATE ̲TERM ̲BUF is called.
When all masks are examined the procedure is exited…86…W …02… …02… …02… …02…
FIG. 3.3.10
DECODE ̲AIG ̲MASK
FLOW CHART…86…W …02… …02… …02… …02…
3.3.11 G̲E̲T̲ ̲M̲S̲G̲ ̲I̲D̲
Registers: R6: LINK
The procedure is called whenever the id of the message is required (i.e. call of LOG ̲JOURNAL
after queuing, when reporting to DT ̲QUEUE etc.)
The message file is opened by call of MTCB,GETFILE if it is not already opened elsewhere
(the flag F ̲FILE ̲OPEN indicates the state)
The message id is read and copied to the buffer MSG ̲ID.
For detailed flow: see source listings.
3.3.12 G̲E̲T̲ ̲T̲C̲B̲ ̲I̲N̲F̲O̲
Registers: R0: in : terminal no (kept)
R6: LINK
The critical region XTCBCR (Terminal control block critical region (Ref: I ) which contains
a record for each terminal at the mede, is accessed and the reocrd of the requested terminal
(Register 0) is copied to a local buffer.
Information extracted from the record are:
. Terminal id.
. if the terminal is not blocked the user id is extracted
. UMAP, TSTAT (user information, terminal status)…86…W …02… …02… …02… …02…
FIG. 3.3.12
GET ̲TCB ̲INFO
FLOW CHART…86…W …02… …02… …02… …02…
3.3.13 U̲P̲D̲A̲T̲E̲ ̲T̲E̲R̲M̲ ̲B̲U̲F̲
Registers: R0 : ANO
R6 : LINK
The procedure is called when an ANO representing a local terminal is met in the decoding
of the address list of a message. The ANO is converted to a terminal number by call of MON
RDF (Ref:VI). The entry in the buffer TERM ̲BUF (Ref: description in chap. 3.4) corresponding
to this terminal number is updated (queue number = the terminal queue corresponding to the
precedence of the message being processed). If the message is of type SH, the SH-queue number
is inserted. If the entry is already updated (when terminal addressed by more than one ANO)
the lowest queue number (highest precedence queue) is inserted.
Number of copies = 1 (independent of number of ANO's)
If the input ANO is invalid (error notification from MON RDF) the flag F ̲ANO ̲ERROR is set
and the procedure is exited.…86…W …02… …02… …02… …02…
FDIG. 3.3.13
UPDATE ̲TERM ̲BUF
FLOW CHART…86…W …02… …02… …02… …02…
3.3.14 U̲P̲D̲A̲T̲E̲ ̲R̲ ̲M̲A̲S̲K̲
Registers: R2 : in : mede id
R6 : LINK
The routing mask ROUTING ̲M is a bit mask of 2 words (32 bits) where each NODE/MEDE and SCC
is represented by a bit (Ref: description in chapt. 3.4)
The bit in R ̲MASK representing the input MEDE ID (Register 2) is set, except for ANOS with
id = S and Z where bit x is set.
If the input MEDE id. is not identical to the id of the local MEDE the flag F ̲EXTERNAL ̲DELIVERY
is set.…86…W …02… …02… …02… …02…
FIG:. 3.3.14:
UPDATE ̲R ̲MASK
FLOW CHART…86…W …02… …02… …02… …02…
3.4 D̲a̲t̲a̲ ̲O̲r̲g̲a̲n̲i̲z̲a̲t̲i̲o̲n̲
The layout of TERM ̲BUF and ROUTING ̲M is shown in Fig. 3.4.
Other variables and data structures are shown in the list on the next pages…86…W …02… …02…
…02… …02…
FIG: 3.4:
LAYOUT OF TERM ̲BUF and
ROUTING ̲M…86…W …02… …02… …02… …02…
3.5 S̲t̲o̲r̲a̲g̲e̲ ̲A̲l̲l̲o̲c̲a̲t̲i̲o̲n̲
Program Size : 1813
Process Size : 662
3.6 P̲e̲r̲f̲o̲r̲m̲a̲n̲c̲e̲ ̲C̲h̲a̲r̲a̲c̲t̲e̲r̲i̲s̲t̲i̲c̲s̲
N/A
3.7 L̲i̲m̲i̲t̲a̲t̲i̲o̲n̲s̲
N/A
3.8 E̲r̲r̲o̲r̲ ̲C̲o̲d̲e̲s̲/̲E̲r̲r̲o̲r̲ ̲L̲o̲c̲a̲t̲i̲o̲n̲s̲
See attached list…86…W …02… …02… …02… …02…
3.9 L̲i̲s̲t̲i̲n̲g̲ ̲R̲e̲f̲e̲r̲e̲n̲c̲e̲s̲
Ref: chap. 5
4 Q̲U̲A̲L̲I̲T̲Y̲ ̲A̲S̲S̲U̲R̲A̲N̲C̲E̲
4.1 Q̲u̲a̲l̲i̲f̲i̲c̲a̲t̲i̲o̲n̲ ̲T̲e̲s̲t̲s̲
Ref: S10 Test Report
4.2 O̲t̲h̲e̲r̲ ̲Q̲u̲a̲l̲i̲t̲y̲ ̲A̲s̲s̲u̲r̲a̲n̲c̲e̲ ̲P̲r̲o̲v̲i̲s̲i̲o̲n̲s̲
N/A
5 P̲R̲E̲P̲A̲R̲A̲T̲I̲O̲N̲S̲ ̲F̲O̲R̲ ̲D̲E̲L̲I̲V̲E̲R̲Y̲
Command files used in generation of the object code (MDS,CR0, MDS.CR1, MDS.CP,MDS.L0; MDS.L1)
can be found in FIXLILB source directory for MDS.
G̲e̲n̲e̲r̲a̲t̲i̲o̲n̲ ̲o̲f̲ ̲O̲b̲j̲e̲c̲t̲ ̲C̲o̲d̲e̲ ̲F̲i̲l̲e̲:̲
. Copy the source directory of the actual MDS version into a work directory.
. Activate the command file MDS.CR0
. Activate the command file MDS.CP
. Activate the command file MDS.L0
The object code ready for installation is now found in the file MDS.C
L̲I̲S̲T̲I̲N̲G̲S̲
By activating the command file MDS.LP all source files and link printout files are printed.