DataMuseum.dk

Presents historical artifacts from the history of:

CR80 Wang WCS documentation floppies

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about CR80 Wang WCS documentation floppies

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦b95b0be39⟧ Wang Wps File

    Length: 130278 (0x1fce6)
    Types: Wang Wps File
    Notes: AIR CANADA PROPOSAL       
    Names: »2054A «

Derivation

└─⟦45f76d1eb⟧ Bits:30006260 8" Wang WCS floppy, CR 1005V
    └─ ⟦this⟧ »2054A « 

WangText

B…00……00……00……00…=…02……00……00…=
=…07…<…0b…<
;…08…;…0c…; ;…07…:…0e…:
9…09…9…01…8…0a…8…02…8…06…8…07…7…0a…7…01…7…02…7…07…6…0f…6…06…5…0d…5…06…4…0d…4
3…08…3…09…3…0e…3 2…08…2…0b…2…02…1…0b…1…0f…1…05…0…0c…0…05…/…09…/…0f…/…02…/ /…07….…0b….…0f….
-…0a…-…0b…-…00…-…07……86…1         …02…   …02…   …02…   …02…                                           
                                                      CHAPTER 6
                                   Page #
        DOCUMENT III      TECHNICAL PROPOSAL          Apr. 29, 1982





6.       S̲O̲F̲T̲W̲A̲R̲E̲ ̲C̲H̲A̲R̲A̲C̲T̲E̲R̲I̲S̲T̲I̲C̲S̲

         This section attempts to present a comprehensive view
         of the software structure supporting the proposed ACDN.
          To assist in understanding the implied software linkages,
         certain typical and relevant data flow descriptions
         are presented.

         The primary design objectives for the networking software
         provided by Christian Rovsing has been:

         -   a realistic adherence to the proposed architecture
             for Open Systems Interconnection

         -   a well conceived strategy to exploit the inherent
             architectural strength of the CR80 environment.
             (this is illustrated by software components BTS
             & BDS)

         -   exploitation of the program development environment
             supported by PASCAL.

         Over and above these considerations, certain aspects
         of software structuring have been adopted that facilitates
         understanding in terms of mainframe communication architecture
         like IBM's SNA and Univac's DCA.


6.1      I̲n̲t̲r̲o̲d̲u̲c̲t̲i̲o̲n̲

         The software proposed for the ACDN is anchored on existing
         networking solutions from Christian Rovsing,and is
         supported by the system software for the CR80,namely
         DAMOS.

         Section 6.2 introduces the functions and facilities
         of DAMOS.

         Section 6.3 focuses on a key internal transport mechanisms
         designated as Basic Transport Service (BTS) and Basic
         Datagram Service (BDS) that is a part of the DAMOS
         Kernel. 

         Section 6.4 introduces data flow aspects and table
         structures.  This section provides a first level bridge
         between concepts introduced in Chapter 3 and functional
         software description that follows in 6.5 to 6.11.

         Section 6.5 to 6.11 describes the software complexion
         and functions of NSS, TAS, HAS, interfaces to other
         networks, NCS and Network Management Subsystem.

         Section 6.12 presents the electronic mail system oriented
         software capabilities.


6.2      C̲R̲8̲0̲ ̲S̲t̲a̲n̲d̲a̲r̲d̲ ̲S̲y̲s̲t̲e̲m̲ ̲S̲o̲f̲t̲w̲a̲r̲e̲

         o   CR80 Standard System Software is divided into

             -   operational software
             -   support software


         The CR80 Advanced Multi Processor Operating system
         DAMOS is the standard operating system for memory mapped
         CR80 systems.

         DAMOS is divided into operational and support software
         as defined overleaf.

         DAMOS includes a virtual memory operating system kernel
         for the mapped CR80 series of computers.

         DAMOS fully supports the CR80 architecture which facilitates
         fault tolerant computing based on  hardware redundancy.
          DAMOS supports a wide range of machines from a single
         Processing Unit (PU) with 1 CPU and 128 K words of
         main memory, and up to a maximum configuration with
         16 PU's where each PU has 5 CPU's and 16 M words of
         virtual memory and a virtually unlimited amount of
         peripheral equipment including backing storage.

         DAMOS is particularly suited for use in real time systems
         but supports also other environments like software
         development and batch.  The main objectives fulfilled
         in DAMOS are: high efficiency, flexibility, and secure
         processing.

         DAMOS is built as a hierarchy of modules, each performing
         its own special task.  The services offered by DAMOS
         include CPU, PU, and memory management.  Demand paging
         is the basic memory scheduling mechanism, but process
         swapping is also supported.  Other levels of DAMOS
         provide process management and interprocess communication,
         basic device handling and higher level device handling
         including handling of interactive terminals, communication
         lines, and file structured backing storage devices.

         DAMOS provides an operating system kernel which integrates
         supervisory services for real time, interactive and
         batchsystems.  A comprehensive set of software development
         tools is available under DAMOS.  The following languages
         are presently available:




                    ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲

                       DAMOS

                    ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲



           ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲                            ̲ ̲ ̲
          ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲

      OPERATIONAL                              SUPPORT
           SOFTWARE                                 SOFTWARE
    ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲                            ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲
   ̲ ̲

   -  Kernel
      -  resource management   -  terminal operating system
      -  directory functions   -  language processors
      -  process management    -  system generation software
      -  memory management     -  debugging facilities
      -  process communica-    -  utilities
         tion
      -  device management     -  maintenance and diagnostic
                                  programs
      -  device handling
      -  error processing
      -  real time clock
      -  PU management
      -  PU service
      -  transfer module
      -  Basic transport service

   -  Input/output system
      -  File Management
      -  Magtape Management
      -  Terminal Management

   -  Initialization






      Fig. III  6.2-1…01…DAMOS Software Overview


          -   assembler
          -   SWELL, the CR80 system programing language
          -   Pascal
          -   Cobol

          The following languages are announced:

          -   Fortran 77
          -   Ada

          The DAMOS standard operational software is described
          in this section.  The description is divided into the
          following areas:

          -   Overview of DAMOS
          -   Security,
              which describes the general DAMOS approach to data
              security
          -   Kernel,
              which describes the DAMOS operating system kernel
              components
          -   DAMOS Input/Output,
              which describes the DAMOS standard interfaces to
              peripheral I/O equipment, the DAMOS disk file management,
              magnetic tape file management and terminal and
              communication line management systems
          -   System initialization

          The DAMOS standard support software

          -   terminal operating system
          -   programing languages
          -   system generation software
          -   debugging software
          -   utilities
          -   maintenance and diagnostics programs

          is defined in section 6.2.6.


6.2.1     O̲v̲e̲r̲v̲i̲e̲w̲ ̲o̲f̲ ̲D̲A̲M̲O̲S̲ ̲O̲p̲e̲r̲a̲t̲i̲o̲n̲a̲l̲ ̲S̲o̲f̲t̲w̲a̲r̲e̲

          DAMOS may be visualized as the implementation of a
          set of abstract data types and a corresponding set
          of tools for creating and manupulating instantiations
          (objects) of these types.

          The major components in DAMOS are the Kernel, the File
          Management System, the Magnetic Tape File Management
          System, the Terminal Management System and the Root
          Operating System.

          The DAMOS Kernel exists in one incarnation for each
          processing unit (PU).  The data types and functions
          implemented by the Kernel are:

              D̲a̲t̲a̲ ̲T̲y̲p̲e̲                  F̲u̲n̲c̲t̲i̲o̲n̲

              CPUs                       CPU management and scheduling
              processes                  process management
              virtual memory segments    memory management
              PU's                       PU management
              synchronization elements   inter process communication
              device                     device management and
                                         basic device access
                                         methods
              ports                      basic transport service

          The Kernel also provides facilities for

              -   processing of errors
              -   centralized error reporting
              -   a data transfer mechanism
              -   a PU service module

          The File Management System (FMS) implements files on
          disks.  The FMS provides functions for manipulating
          and accessing files and acts as an operating system
          for a group of disks units.  The FMS may exist in several
          incarnations in each PU where each incarnation controls
          its own devices.

          The Terminal Management System (TMS) is similar to
          the FMS.  It provides functions for manipulating and
          accessing communication lines and terminals including
          line printers.  The objects accessed via the TMS are
          called units.  A unit may be an interactive terminal,
          a line printer or a virtual circuit.  The TMS acts
          as an operating system for a group of communication
          devices attached via LTUs, LTUXs or a parallel controller.



          The TMS may exist in several incarnations in each PU,
          each incarnation controlling its own devices.

          The Magnetic Tape File Management System handles files
          on magnetic tape units.

          A common security policy and hiearachical resource
          management strategy is used by the Kernel, the FMS
          and the TMS.  These strategies have been designed with
          the objective of allowing multiple concurrent higher
          level operating systems to coexist in a PU in a secure
          and independent manner.

          The Root operating system is a basic high level operating
          system which intially possesses all resources in its
          PU.


6.2.2     S̲e̲c̲u̲r̲i̲t̲y̲

          DAMOS offers comprehensive data security features.
           A multilevel security system ensures that protected
          data is not disclosed to unauthorized users and that
          protected data is not modified by unauthorized users.

          All memory allocatable for multiple users is erased
          prior to allocation in case of reload, change of mode,
          etc.  The erase facility is controlled during system
          generation.

          The security system is based on the following facilities:

          -   Hardware supported user mode/privileged mode with
              16 privilege levels.  Priviliged instructions can
              be executed only when processing under DAMOS control.

          -   Hardware protected addressing boundaries for each
              process.

          -   Non-assigned instructions will cause a trap.

          -   Primary memory is parity protected.

          -   Memory bound violation, non-assigned instructions,
              or illegal use of privileged instructions cause
              an interrupt of highest priority.

          -   The hierarchical structure of DAMOS ensures a controlled
              use of DAMOS functions.

          -   A general centralized addressing mechanism is used
              whenever objects external to a user process are
              referred to.

          -   A general centralized access authorization mechanism
              is employed.

          Centralized addressing capabilities and access authorization
          are integral parts of the security implementation.
           User processes are capable of addressing Kernel objects
          only via the associated object descriptor table.  The
          following types of DAMOS objects are known only via
          object descriptors:



          -   Processes
          -   Synchronization elements
          -   Segments
          -   Devices
          -   PUs
          -   CPUs
          -   Ports

          The object forms the user level representation of a
          DAMOS Kernel object.  It includes the following information:

          -   A capability vector specifying the operations which
              may be performed on the object by the process which
              has the object descriptor.
          -   A security classification

          The access right information concerning the various
          DAMOS objects is retained in a PU directory of object
          control blocks.  Each control is associated with a
          single object.

          When the access right of a process to a segment is
          verified and the segment is included in the logical
          memory space of the process, the contents of that segment
          may be accessed on a 16-bit word basis at the hardware
          level subject to hardware access checks.

          Authorization of access to an object is based on

              -   security classification check
              -   functional capability check for the object
                  versus the process

          The security policy is based on a multilevel -multicompartment
          security system.



6.2.3     K̲e̲r̲n̲e̲l̲

          The DAMOS Kernel is a set of reentrant program modules
          which provide the lowest level of system service above
          the CR80 hardware and firmware level.

          The Kernel consists of the following components:

          -   Resource Management,
              which administers resources in a coherent way

          -   Directory Functions,
              which provide a common directory service function
              for the other Kernel components

          -   Process Manager,
              which provides tools for CPU management, process
              management and scheduling

          -   Page Manager,
              which provides memory management tools and implements
              a segmented virtual memory

          -   Process Communication Facility,
              which provides a mechanism for exchange of control
              information between processes

          -   Device Manager
              which provides a common set of device related functions
              for device handlers and a standard interface to
              device handlers

          -   Device Handlers,
              which control and interface to peripheral devices

          -   Error Processor,
              which handles errors detected at the hardware and
              Kernel level and provides a general central error
              reporting mechanism

          -   Real Time Clock
              for synchronization with real time

          -   PU Manager,
              which provides functions for coupling and decoupling
              PUs

          -   PU Service Module,
              which provides service functions for remote PUs

          -   Transfer Module
              for a hardware based transfer of data in a PU and
              between PUs



          -   Basic Transport Service,
              which provides a general mechanism for exchange
              of bulk data between processes and device handlers.

          The following subsections describe the main Kernel
          functions:

          -   resource management
          -   process management
          -   memory management
          -   process communication
          -   CPU management
          -   PU management
          -   Basic transport service



6.2.3.1   R̲e̲s̲o̲u̲r̲c̲e̲ ̲M̲a̲n̲a̲g̲e̲m̲e̲n̲t̲

          The goal of DAMOS Resource Management is to implement
          a set of tools which enables the individual DAMOS modules
          to handle resources in a coherent way.  This again,
          will make it possible for separate operating systems
          to implement their own resource policies without interference.
           Further built-in deadlock situations will be avoided.

          The resource management module governs anonymous resources,
          such as control blocks.  Examples of resource types
          are:

          -   process control blocks
          -   segment control blocks
          -   synchronization elements
          -   PU directory entries

          Each type of resource is managed independently from
          all other types.

          The resources are managed in a way that corresponds
          to the hierarchical relationships among processes.
           Two operating systems which have initially got disjoint
          sets of resources, may delegate these resources to
          their subordinate processes according to separate and
          non-interfering strategies.  For example, one operating
          sytem may give all its ubordinate processes distinct
          resource pools, i.e. there will not be any risk of
          one process disturbing another.  On the contrary, the
          other operating system may let all its subordinate
          processes share a common pool, i.e there may be a much
          better resource utilization at the cost of the risk
          for deadlock among these processes.


6.2.3.2   P̲r̲o̲c̲e̲s̲s̲ ̲M̲a̲n̲a̲g̲e̲m̲e̲n̲t̲

          In the CR80 system, a clear distinction is made between
          programs and their executions, called processes.  This
          distinction is made logically as well as physically
          be applying two different base registers: one for program
          code and one for process data.  This distinction makes
          reentrant, unmodifiable code inevitable.

          The process is the fundamental concept in CR80 terminology.
           The process is an execution of a program module in
          a given memory area.  The process is identified to
          the remaining software by a unique name.  Thus, other
          processes need not to be aware of the actual location
          of a process in memory but must refer to it by name.



6.2.3.3   M̲e̲m̲o̲r̲y̲ ̲M̲a̲n̲a̲g̲e̲m̲e̲n̲t̲

          The addressing mechanism of the CR80 limits the address
          space seen by a process at any one time to a window
          of 2 x 64K words.  Due to the virtual memory concept
          of DAMOS a process may, however, change the "position"
          of the window, thus leading to a practically unlimited
          addressing capability.

          The finest granularity of the virtual memory known
          to a process is a segment.  Segments can be created
          and deleted.  They have unique identifiers and may
          have different sizes.  A process which has created
          a segment may allow others to share the segment by
          explicitly identifying them and stating their access
          rights to the segment.
 
          The Page Manager implements virtual memory.  The actual
          space allocated in a Processing Unit to a process may
          be only a few segments, while the logical address space
          is the full 2 x 64k words.  Whenever addressing of
          a segment, that is not in physical memory, is attempted,
          the Page Manager will bring in the addressed segment.



6.2.3.4   P̲r̲o̲c̲e̲s̲s̲ ̲C̲o̲m̲m̲u̲n̲i̲c̲a̲t̲i̲o̲n̲

          Synchronization of processes and communication between
          them is supported in DAMOS by objects called Synchronization
          Elements (synch elements) which are referred to by
          symbolic names and may thus be known by processes system-wide.


          In DAMOS a process cannot "send" a block of data directly
          to another process identified by name.  The exchange
          must be done using a synch element.




6.2.3.5   C̲P̲U̲ ̲M̲a̲n̲a̲g̲e̲m̲e̲n̲t̲

          The CPUs in a processing unit may be pooled and a given
          process is allocated processing power from one such
          pool.  In this way CPUs can be dedicated processes.



6.2.3.6   P̲r̲o̲c̲e̲s̲s̲i̲n̲g̲ ̲U̲n̲i̲t̲ ̲M̲a̲n̲a̲g̲e̲m̲e̲n̲t̲

          The DAMOS Kernel provides facilities for managing the
          logical connections between the individual Processing
          Units attached to a Supra Bus.

          PUs may be connected logically into groups.  The number
          of PUs in a group may vary from 1 to 16.  Two groups
          may be merged, the result being a new PU-group.

          Objects are identified by symbolic names having either
          local or global scope.  They are accessible from all
          PUs in the group where they reside.

          PU Management provides functions for inclusion of a
          PU in a PU-group.

          A logical connection between two PUs is not established
          until both have received an include request from the
          opposite.  When trying to connect two PU-groups, conflicts
          between the use of global names may arise.  Therefore,
          a connection is only established if the scope of all
          names can be maintained.

          The PU Management is designed to allow graceful degradation
          when purposely closing a PU or isolating a faulty PU.
           It is possible from a PU to force a member out of
          its common group.  All PUs in the group are informed
          to break their logical connection to the designated
          PU.  As a consequence all global objects residing in
          the isolated PU are thereafter unknown to the group.
           If not faulty, the isolated PU continues executing
          its local processes and is ready to receive new include
          requests.


6.2.3.7   B̲A̲S̲I̲C̲ ̲T̲r̲a̲n̲s̲p̲o̲r̲t̲ ̲S̲e̲r̲v̲i̲c̲e̲

          The Basic Transport Service (BTS) offers DAMOS processes
          and device handlers the possibility to communicate
          with other remote or local processes and device handlers.

          Processes and device handlers - in the following called
          Service Users (SU) - may be addressed indirectly via
          ports.

          A service user can dynamically be tied to a port. 
          When a service user wants to communicate with another
          service user, the former service user requests a connection
          to be established between (one of) his own port(s)
          and a prt to which the remote service user is tied.

          Once such a connection has been established, the two
          service users may exchange data and control information
          across the connection.

          The figure overleaf depicts the possible connections
          within a multiple PU node.


    (skema med tekst "Gateway process, not part of BTS)


6.2.3.7.1 S̲e̲r̲v̲i̲c̲e̲ ̲T̲y̲p̲e̲s̲

          The BTS offers two different types of service:

          -   stream service and
          -   message service

          In the first type of service data flows as a logically
          continuous stream from one SU to the other.  The blocking
          of data into buffers performed by the transmitting
          SU is not seen by the receiving SU.

          In the second type of service the buffers are treated
          as semantic entities and transmitted as such.  I.e.,
          a homomorph correspondance between transmit and receive
          buffers is enforced.


6.2.4     D̲A̲M̲O̲S̲ ̲I̲n̲p̲u̲t̲/̲O̲u̲t̲p̲u̲t̲

          DAMOS supports input/output (I/O) from user programs
          at different levels.

          At the lowest level user programs can interact with
          device handlers directly and transfer blocks of data
          by means of the Basic Transport Service modulel.  This
          interface is illustrated in the figure on next page.

          Device control is exercised via the Device Manager
          functions.  Data is transfered between the user process
          and the device handler using a port in the user process
          and a port in the device handler.

          At a higher level DAMOS offers a more structured I/O
          facility under the DAMOS I/O System (IOS).

          The IOS provides a uniform, device independent interface
          for user processes to

          -   disk files
          -   magnetic tape files
          -   interactive terminals
          -   communication lines
          -   line printers

          The IOS is a set of standard interface procedures through
          which a user communicates with a class of DAMOS service
          processes known as General File Management Systems.
           General File Management Systems include:

          -   the File Management System which implements disk
              files

          -   the Magnetic Tape File Management System for magnetic
              tape files

          -   the Terminal Management System for communication
              lines, interactive terminals and printers.

          The General File Management Systems provide functions
          which are classified as:

          -   device handling
          -   user handling
          -   file handling
          -   file access

          The common file access functions provided by the IOS
          are readbytes for input and appendbyte and modifybytes
          for output.


       Skema under afsnit 6.2.5 DAMOS Input/Output.


          These basic functions are used for transfer of blocks
          of data.

          On top of these functions the IOS provides a stream
          I/O facility where the IOS handles the blocking and
          buffering of data.



6.2.4.1   F̲i̲l̲e̲ ̲M̲a̲n̲a̲g̲e̲m̲e̲n̲t̲ ̲S̲y̲s̲t̲e̲m̲

          The File Management System (FMS) is responsible for
          storing, maintaining, and retrieving information on
          secondary storage devices (disks).

          The number and kind of devices attached to the FMS
          is dynamically reconfigurable.

          The following subjects are handled:

          -   devices and volumes
…02…-         directories
          -   files
          -   users
          -   integrity
          -   access methods



6.2.4.1.1 D̲e̲v̲i̲c̲e̲ ̲a̲n̲d̲ ̲V̲o̲l̲u̲m̲e̲ ̲H̲a̲n̲d̲l̲i̲n̲g̲

          The file system may be given commands concerning:

          -   Management of peripheral devices.
              Devices may be assigned to and deassigned from
              the file system dynamically.  Instances of device
              handlers are at the same time created or deleted.

          -   Management of volumes.
              Volumes may be mounted on and dismounted from specific
              devices.





6.2.4.1.2 D̲i̲r̲e̲c̲t̲o̲r̲i̲e̲s̲

          The file system uses directories to implement symbolic
          naming of files.  If a file has been entered into a
          directory under a name specified by the user, it is
          possible to locate and use it later on.  Temporary
          files does not need to be named.  A file may be entered
          into several directories, perhaps under different names.
           Since a directory is also considered a file, it can
          itself be given a name and entered into another directory.
           This process may continue to any depth, thus enabling
          a hierarchical structure of file names.

6.2.4.1.3 F̲i̲l̲e̲s̲

6.2.4.1.3.1   F̲i̲l̲e̲ ̲T̲y̲p̲e̲s̲

          The file system supports two different organizations
          of files on disk.  Al contiguous file consists of a
          sequence of consecutive sectors on the disk.  The size
          of a contiguous file is fixed at the time the file
          is created and cannot be extended later on.  A random
          file consists of a chain of indices giving the addresses
          of areas scattered on the volume.  Each area consists
          of a number of consecutive sectors.  The number of
          sectors per area is determined at creation time, whereas
          the number of areas may increase during the lifetime
          of the file.



6.2.4.1.3.2   F̲i̲l̲e̲ ̲C̲o̲m̲m̲a̲n̲d̲s̲

          The commands given to the file system concerning files
          may be grouped as:

          -   Creation and removal of files.
              A user may request that a file is created with
              a given set of attributes and put on a named volume.

          -   Naming of files in directories.
              A file may be entered into a directory under a
              symbolic name.  Using that name it is possible
              to locate the file later on.  The file may also
              be renamed or removed from the directory again.

          -   Change of access rights for a specfic user group
              (or the public) vis a vis a file.  The right to
              change the access rights is itself delegatable.





6.2.4.1.4 U̲s̲e̲r̲ ̲H̲a̲n̲d̲l̲i̲n̲g̲

          The file management system may be given commands concerning:

          -   Creation and Removal of users (processes)



6.2.4.1.5 D̲i̲s̲k̲ ̲I̲n̲t̲e̲g̲r̲i̲t̲y̲



6.2.4.1.5.1   S̲e̲c̲u̲r̲i̲t̲y̲

          The protection of data entrusted to the file management
          system is handled by two mechanisms:

          The first mechanism for access control is based on
          the use of Access Control Lists (ACL).  There is an
          ACL connected to each file.  The ACL is a table which
          describes the access rights of each individual user
          group (one being the public) to the corresponding file.
           Whenever a user tries to access a file, the ACL is
          used to verify that he is indeed allowed to perform
          this access.

          The second mechanism for access control is based on
          a security classificatio system.  Each user and each
          file is assigned a classification.  The user classification
          is recorded in the user control block and the file
          classification is recorded on the volume.  An access
          to a file is only allowed if the classification levels
          of the user and the file match to each other.


6.2.4.1.5.2   R̲e̲d̲u̲n̲d̲a̲n̲t̲ ̲D̲i̲s̲k̲s̲

          The FMS allows use of redundant disk packs, which are
          updated concurrently to assure that data will not be
          lost in case of a hard error on one disk.


          The FMS allows exclusion of one of the two identical
          volumes, while normal service goes on on the other
          one. After repair it is possible to bring up one volume
          to the state of the running volume, while normal service
          continues (perhaps with degraded performance).


          The bringing up is done by marking a raw copy of the
          good disk to that which should be brought up. While
          the copying takes place all read operations are directed
          to both disks.



6.2.4.1.5.3   B̲a̲d̲ ̲S̲e̲c̲t̲o̲r̲s̲

          The FMS is able to use a disk pack with bad sectors,
          unless it is sector 0.

          The bad sectors are handled by keeping a translation
          table on each volume from each bad sector to an alternative
          sector.

          While using redundant disks the translation tables
          of the two disks must be kept identical to assure that
          all disk addresses can bve interpreted in the same
          way. If bad sectors are detected while bringing up
          a disk, they are marked as such on both disks and both
          translation tables are updated accordingly.


6.2.4.1.6 A̲c̲c̲e̲s̲s̲ ̲M̲e̲t̲h̲o̲d̲s̲

          The file management system implements two access methods
          to files:


6.2.4.1.6.1   U̲n̲s̲t̲r̲u̲c̲t̲u̲r̲e̲d̲ ̲A̲c̲c̲e̲s̲s̲

          For transfer purposes a file is considered simply as
          a string of bytes. It is, therefore, a byte string
          which is transferred between a file and a user buffer.
          The user can directly access any byte string in a file.

          The commands which are implemented by this access methods
          are:

          READBYTES      -  Read a specified byte string

          MODIFYBYTES    -  Change a specified byte string

          APPENDBYTES    -  Append a byte string to the end of
          
                              the file.


6.2.4.1.6.2   I̲n̲d̲e̲x̲e̲d̲ ̲S̲e̲q̲u̲e̲n̲t̲i̲a̲l̲ ̲A̲c̲c̲e̲s̲s̲

          CRAM is a multi-level-index indexed sequentila file
          access method. It features random or sequential (forward
          or reverse) access to records of 0 to n bytes, n depending
          on the selected block size, based on keys of 0-126
          bytes. The collating sequence is using the binary value
          of the bytes so e.g. character strings are sorted alphabetically.

          CRAM is working on normal contiguous FMS files which
          are initialized for CRAM use by means of a special
          CRAM operation.



          The CRAM updating philosophy is based on the execution
          of a batch of related updatings, which all together
          forms a consistent status change of the CRAM file,
          being physically updated as a single update by means
          of a LOCK operation. That is, after such a batch of
          updates, all these updated may either be forgotten
          (by means of the FORGET operation) or locked (by means
          of the LOCK OPERATION). Both operations are performed
          without critical regions, i.e. without periods of CRAM
          data base inconsistency.

          For convenience, CRAM supports subdivision of the CRAM
          file in up to 255 subfiles, each identified by a subfile
          identifier of 0-126 byte (as a key).

          CRAM keeps track of the different versions of the CRAM
          data base by means of a 32 bit version number, which
          is incremented every time CRAMNEWLOCK (the locking
          operation) is called. This version number can only
          be changed by CRAMNEWLOCK (and CRAMINIT), but if the
          user intends to use it for some sort of unique update
          version stamping, it is delivered by the operations
          CRAMNEWOPEN, CRAMNEWLOCK, CRAMFORGET and CRAMNEWVERSION.


6.2.4.2   M̲a̲g̲n̲e̲t̲i̲c̲ ̲T̲a̲p̲e̲ ̲F̲i̲l̲e̲ ̲M̲a̲n̲a̲g̲e̲m̲e̲n̲t̲ ̲S̲y̲s̲t̲e̲m̲

          The Magnetic Tape File Management System (MTFMS) is
          responsible for storing and retrieving information
          on megnetic tapes. It is able to handle one magnetic
          tape controller with a maximum of 8 tape transports
          in daisy-chain. The driver is logically split into
          3 parts:

              -   I/O-SYSTEM interface
              -   Main Processing
              -   Magnetic tape controller interface

          Commands for the MTFMS are received by the I/O-System
          interface while the controller interface implements
          a number of (low level) commands for handling a tape
          transport.

          Symbolic volume names and file names are implemented
          through use of label records which comply with the
          ISO 1001 standard.

          The functions of the file system can be separated into
          four groups:

              -   Device functions
              -   Volume functions
              -   FIle functions
              -   Record functions



6.2.4.2.1 D̲e̲v̲i̲c̲e̲ ̲f̲u̲n̲c̲t̲i̲o̲n̲s̲

          The following functions are defined:

              -   Assign a given name to a given unit of the
                  controller.
              -   Deassign a given device.


6.2.4.2.2 V̲o̲l̲u̲m̲e̲ ̲f̲u̲n̲c̲t̲i̲o̲n̲s̲

          -   Initiate the tape on a given device assigning a
              name to it by writing a volume label.
          -   Mount a given volume on a given device.
          -   Dismount a given volume.
          -   Rewind a given volume.


6.2.4.2.3 F̲i̲l̲e̲ ̲f̲u̲n̲c̲t̲i̲o̲n̲s̲

          -   Create a file on a given volume. The following
              information must be supplied by the caller and
              will be written onto the tape in a file header
              label records:
              -   File name
              -   Fixed/variable length record specification
              -   Record size.

              The file is opened for output and the given volume
              is reserved for the caller.

          -   Find a file with a given name on a given volume.
              The file is opened for input and the given volume
              is reserved.

          -   Skip a given number of files (backwards or forwards)
              on a given volume. The file at the resulting tape
              position is opened for input and the volume is
              reserved.

          -   Get information about the currently open file on
              a given volume. Information like file sequence
              number, record size and type (fixed/variable length)
              can be retrieved.

          -   Close currently open file on a given volume. Volume
              reservation is released.


6.2.4.2.4 R̲e̲c̲o̲r̲d̲ ̲f̲u̲n̲c̲t̲i̲o̲n̲s̲

          -   Skip a given number of records (forwards or backwards)
              in a given file.
          -   Read a record in a given file.
          -   Write a record in a given file. The MTFMS performs
              recovery from writing errors by



              -   backspacing over the record in error
              -   erasing a fixed length of about 3.7 inches
                  (thus increasing the record gap).
              -   attempting the writing once more.

              This procedure will be repeated maximally 10 times.


6.2.4.3   T̲e̲r̲m̲i̲n̲a̲l̲ ̲M̲a̲n̲a̲g̲e̲m̲e̲n̲t̲ ̲S̲y̲s̲t̲e̲m̲ ̲

          The TMS is a service process which manages devices
          characterized by serial blockwise access. Examples
          of such devices are:

              -   interactive terminals (screen or hardcopy)
              -   data communication equipment (modems)
              -   line printers
              -   card readers

          In the following, the phrase "terminal" is used as
          a common term for any device of this category.

          Terminals may be attached to LTUs, LTUXs (via TDX)
          and parallel interfaces.

          The TMS performs the following main functions:

              -   terminal related security validation
              -   access control for terminals
              -   collecting of statistical information
              -   management of terminals
              -   transfer of I/O data between terminal device
                  handlers and user processes.

          The following subsections define:

          - transfer of I/O data
          - user handling
          - hardware categories


6.2.4.3.1 T̲r̲a̲n̲s̲f̲e̲r̲ ̲o̲f̲ ̲I̲/̲O̲ ̲D̲a̲t̲a̲

          The TMS enables user processes to perform I/O communication
          with terminals.

          The I/O communication can be performed in two modes:
          file mode and communication mode.


6.2.4.3.1.1   F̲i̲l̲e̲ ̲M̲o̲d̲e̲

          In this mode I/O to terminals is identical to I/O to
          backing store files from the point of view of the user
          process.



          The same IOS basic procedures are used (appendbytes,
          modifybytes, readbytes) and direct as well as stream
          I/O can be used.

          This mode provides the greatest flexibility for the
          user process. This flexibility is obtained at the expense
          of an additional overhead, as all I/O requests from
          the user process will have to pass the TMS.

          File mode I/O is aimed at terminals which will be connected
          to varying processes with different security profiles.
          The terminals in question will normally be local or
          remote interactive hardcopy or screen terminals.


6.2.4.3.1.2   C̲o̲m̲m̲u̲n̲i̲c̲a̲t̲i̲o̲n̲ ̲M̲o̲d̲e̲

          In this mode I/O requests from the user process are
          sent directly to the terminal handler. The I/O interface
          between the user process and the terminal device handler
          is that of the BTS and therefore inherently different
          from backing store I/O.

          Communication mode I/O is aimed at - but not limited
          to - terminals which are connected to a single user
          process throughout its lifetime.

          The terminals in question are primarily communication
          lines like e.g. trunk lines in a message swtiching
          network.



















































                      figur inds`ttes






6.2.4.3.2 U̲s̲e̲r̲ ̲H̲a̲n̲d̲l̲i̲n̲g̲

          Before a user process can make use of the TMS functions,
          it must be logged on to the TMS by means of th Useron
          command. This command must be invoked by a process
          which is already known by the TMS, either through another
          Useron command or because it is the parent process
          for the TMS.

          In the Useron command the calling process grants some
          of its TMS resources to the process which is logged
          on to the TMS in the Useron command.

          When a user process seizes to use the TMS, its TMS
          resources must be released by a call of Useroff.


6.2.4.3.3 H̲a̲r̲d̲w̲a̲r̲e̲ ̲C̲a̲t̲e̲g̲o̲r̲i̲e̲s̲

          The TMS recognizes the following categories of equipment:

              -   T̲e̲r̲m̲i̲n̲a̲l̲ ̲C̲o̲n̲t̲r̲o̲l̲l̲e̲r̲ which is a line controller
                  interfacing one or more lines.

              -   L̲i̲n̲e̲, which is a group of physical signals
                  capable of sustaining one simplex or duplex
                  data stream.

              -   U̲n̲i̲t̲, which is a terminal device connected
                  to a line.

          If more than one unit is connected to a given line,
          the line is called multiplexed line.



6.2.4.3.3.1   T̲e̲r̲m̲i̲n̲a̲l̲ ̲C̲o̲n̲t̲r̲o̲l̲l̲e̲r̲s̲

          Terminal controllers may dynamically be assigned and
          deassigned by the parent process for the TMS.

          A controller can either be assigned as an active or
          as a stand-by controller.

          A stand-by controller is a device which normally is
          not active, but which may take over in case of a failure
          in an active controller.

          When an active controller is assigned for which a stand-by
          is available, this must be defined in the assignment
          command.

          The process which assigned a controller is its initial
          owner.

          Ownership of a controller may be transfered to another
          user process which is logged on to the TMS.

          When a controller is assigned, the TMS creates a corresponding
          device handler.


6.2.4.3.3.2   L̲i̲n̲e̲s̲

          The owner of a controller may assign lines to the controller.

          When a line is assigned the TMS calls the device handler
          for the controller to that effect.


6.2.4.3.3.3   U̲n̲i̲t̲s̲

          The owner of a controller with lines assigned to it
          may create units on the lines.

          Units can be created for file mode I/O or communication
          mode I/O.

          A unit created for file I/O may be a multiple or single
          access unit.

          Single access units can only be accessed by the owner
          whereas multiple access units may be accessed by a
          number of user processes.



          When the owner creates a unit, an access path to the
          unit is established. The owner may from now on access
          the unit by the IOS functions readbytes for input -
          and appendbytes, and modifybytes for output.

          Other users may obtain access to a multiple access
          unit in different ways as described in the following.

          The creator of a unit may offer it to another user
          by means of the TMS OFFER function. The user to which
          the unit is offered obtains access to the unit by the
          ACCEPT function.

          The creator of a unit may define a symbolic name -
          a unit name - for the unit. A unit name is syntactically
          identical to an FMS file name.

          Other users may obtain access to the named unit by
          the LOOKUP ̲UNIT command which corresponds to the FMS
          commands getroot, lookup and descent.


6.2.5     S̲y̲s̲t̲e̲m̲ ̲I̲n̲i̲t̲i̲a̲l̲i̲z̲a̲t̲i̲o̲n̲

          When a CR80 memory mapped PU is master cleared., a
          boot strap loader is given control.

          The boot strap loader is contained in a programmed
          read-only memory which is part of the MAP module. Having
          initialized the translation tables of the MAP module,
          the boot strap loader is able to fetch a system load
          module from a disk connected to the PU.

          An initialization module which is part of the load
          module initalizes the DAMOS kernel and the DAMOS Root
          process.

          The Root process possesses all the PU resources.  The
          Root creates and intializes a system File Management
          System. 



6.2.6     S̲t̲a̲n̲d̲a̲r̲d̲ ̲S̲u̲p̲p̲o̲r̲t̲ ̲S̲o̲f̲t̲w̲a̲r̲e̲

          O   The support software assists in software development
              and in hardware maintenance and diagnostics.

          The support software consists of:

          -   terminal operating system
          -   language processors
          -   system generation software
          -   debugging software
          -   utilities
          -   maintenance and diagnostics programs


6.2.6.1   T̲e̲r̲m̲i̲n̲a̲l̲ ̲O̲p̲e̲r̲a̲t̲i̲n̲g̲ ̲S̲y̲s̲t̲e̲m̲ ̲(̲T̲O̲S̲)̲

          TOS is an operating system which supports interactive
          terminal users in a program development environment.

          The functions performed by TOS are invoked by two types
          of requests:

          Operator commands, which are messages typed at terminals
          and sent to TOS.  The functions which may be performed
          in response to these requests are:

          -   assign/deassign disk devices
          -   mount/dismount volumes on disk drives
          -   include terminals in the system/remove terminals
              from the system
          -   log on to the system
          -   remove processes from the system
          -   broadcast messages to terminals
          -   manipulate a "news" message facility
          -   present status information
          -   run a task
          -   close the system

          Programmed requests are sent from processes to TOS.
           The functions which may be performed in response to
          these requests are:

          -   allocate resources (memory) for a task, load a
              program, and create a process to execute the program
          -   start a process
          -   stop a process
          -   restart a process
          -   logout from the system
          -   reserve a print queue file semaphore
          -   release a print queue file semaphore
          -   start a printer task


6.2.6.2  L̲a̲n̲g̲u̲a̲g̲e̲ ̲P̲r̲o̲c̲e̲s̲s̲o̲r̲s̲

         The CR80 language processors include the following:

         -   PASCAL is a high level block-orientated language
             that offers structured and complex data and enforces
             well structured programs.  The CR80 implementation
             is based on standard Pascal as defined by Kathleen
             Jensen & Niklaus Wirth, with only minor deviations.
              The CR80 implementation provides for bit mask
             operations in addition to standard PASCAL data
             structures.  Furthermore, the CR80 implementation
             provides the following powerful additions:

             -   Compile time option enables merging assembly
                 object directly into the Pascal module.

             -   Overlay technique is supported.

             -   Built-in Trace of program execution may optionally
                 be switched in/out for debugging purposes.

             -   Sequential and random file access is available
                 from run time library.

         -   The CR80 COBOL compiler is an efficient industry-compatible
             two-pass compiler, fulfilling American National
             Standard X3.23-1974 level 1 as well as most of
             the level 2 features.

         -   SWELL 80 is a S̲oftW̲are E̲ngineering L̲ow level L̲anguage
             for the CR80 minicomputer.  SWELL offers most of
             the data and program structures of PASCAL, and,
             by enabling register control, is without the efficiency
             penalties experienced in true high-level languages.
              The main purpose of SWELL is to combine efficient
             program execution with efficient program development
             and maintenance.

         -   The assembler is a machine-orientated language
             for the CR80.  The language has a direct correspondence
             between instructions read and code generated.

         -   ADA compiler.  A project has been launched for
             implementation of the new DOD standard programming
             language ADA on the CR80 machine.  The project
             is planned for completion in 1983 and includes
             development of an ADA compiler hosted on and targeted
             for the CR80 as well as of an ADA programming support
             environment.  The programming support environment
             is based on the Stoneman report.


6.2.6.3  S̲y̲s̲t̲e̲m̲ ̲G̲e̲n̲e̲r̲a̲t̲i̲o̲n̲ ̲S̲o̲f̲t̲w̲a̲r̲e̲

         The utility SYSGEN-EDIT generates object files - based
         upon a set of directives, a system source, and command
         files - for subsequent compiling and linking.  A BINDER
         then binds the system object together with the application
         object based upon a command file from SYSGEN-EDIT.
          All the external references of the object modules
         are resolved in the Binder output, which is a load
         module ready for execution.  The BINDER produces a
         listing giving memory layout, module size, etc.


6.2.6.4  D̲e̲b̲u̲g̲g̲i̲n̲g̲ ̲S̲o̲f̲t̲w̲a̲r̲e̲

         The software debugging facilities include:

         -   Test Output Facility
         -   On-Line Interactive Debugger


6.2.6.5  U̲t̲i̲l̲i̲t̲i̲e̲s̲

         The CR80 utility software package will include:

         -   Editor
         -   File Copy and Compare
         -   File Merge
         -   Interactive Proper Patch Facility
         -   File Maintenance Program


6.2.6    D̲i̲a̲g̲n̲o̲s̲t̲i̲c̲ ̲P̲r̲o̲g̲r̲a̲m̲s̲

         The Maintenance and Diagnostic (M&D) package is a collection
         of standard test programs which is used to verify proper
         operation of the CR80 system and to detect and isolate
         faults to replaceable modules.


6.2.6.1  O̲f̲f̲-̲l̲i̲n̲e̲ ̲D̲i̲a̲g̲n̲o̲s̲t̲i̲c̲ ̲P̲r̲o̲g̲r̲a̲m̲s̲

         The off-line M&D software package contains the following
         programs:

         -   CPU Test Program
         -   CPU CACHE Test program
         -   Memory May Test Program
         -   RAM Test Program
         -   PROM Test Program
         -   Supra Bus I/F Test Program
         -   CIA Test Program
         -   LTU Test Program
         -   Disk System Test Program
         -   Magtape System Test Program
         -   Floppy Disk Test Program
         -   TDX-HOST I/F Test Program
         -   Card Reader and Line Printer Test Program


6.2.6.2  O̲n̲-̲L̲i̲n̲e̲ ̲D̲i̲a̲g̲n̲o̲s̲t̲i̲c̲ ̲P̲r̲o̲g̲r̲a̲m̲s̲

         On-Line Diagnostic programs will execute periodically
         as part of the exchange survailance system.  On-line
         diagnostics consists of a mixture of hardware module
         built-in test and reporting, and diagnostic software
         routines.  The following on-line diagnostic capability
         exists:

         -   CPO-CACHE diagnostic
         -   RAM test
         -   PROM test
         -   MAP/MIO test
         -   STI test
         -   Disk Controller/DCA test
         -   Tape Controller/TCA test
         -   LTU/LIA test

         On-line diagnostics will report errors to higher level
         processing to take recovery/switchover decision in
         the case of failures.


6.2.6    S̲t̲a̲n̲d̲a̲r̲d̲ ̲S̲u̲p̲p̲o̲r̲t̲ ̲S̲o̲f̲t̲w̲a̲r̲e̲

         O   The support software assists in software development
             and in hardware maintenance and diagnostics. 

         The support software consists of:

         -   terminal operating system
         -   language processors
         -   system generation software
         -   debugging software
         -   utilities
         -   maintenance and diagnostics programs


6.2.6.1  T̲e̲r̲m̲i̲n̲a̲l̲ ̲O̲p̲e̲r̲a̲t̲i̲n̲g̲ ̲S̲y̲s̲t̲e̲m̲ ̲(̲T̲O̲S̲)̲

         TOS is an operating system which supports interactive
         terminal users in a program development environment.

         The functions performed by TOS are invoked by two types
         of requests:

         Operator commands, which are messages typed at terminals
         and sent to TOS.  The functions which may be performed
         in response to these requests are:

         -   assign/deassign disk devices
         -   mount/dismount volumes on disk drives
         -   include terminals in the system/remove terminals
             from the system
         -   log on to the system
         -   remove processes from the system
         -   broadcast messages to terminals
         -   manipulate a "news" message facility
         -   present status information
         -   run a task
         -   close the system

         Programmed requests are sent from processes to TOS.
          The functions which may be performed in response to
         these requests are:

         -   allocate resources (memory) for a task, load a
             program, and create a process to execute the program
         -   start a process
         -   stop a process
         -   restart a process
         -   logout from the system
         -   reserve a print queue file semaphore
         -   release a print queue file semaphore
         -   start a printer task


6.2.6.2  L̲a̲n̲g̲u̲a̲g̲e̲ ̲P̲r̲o̲c̲e̲s̲s̲o̲r̲s̲

         The CR80 language processors include the following:

         -   PASCAL is a high level block-orientated language
             that offers structured and complex data and enforces
             well structured programs.  The CR80 implementation
             is based on standard Pascal as defined by Kathleen
             Jensen & Niklaus Wirth, with only minor deviations.
              The CR80 implementation provides for bit mask
             operations in addition to standard PASCAL data
             structures.  Furthermore, the CR80 implementation
             provides the following powerful additions:

             -   Compile time option enables merging assembly
                 object directly into the Pascal module.

             -   Overlay technique is supported.

             -   Built-in Trace of program execution may optionally
                 be switched in/out for debugging purposes.

             -   Sequential and random file access is available
                 from run time library.

         -   The CR80 COBOL compiler is an efficient industry-compatible
             two-pass compiler, fulfilling American National
             Standard X3.23-1974 level 1 as well as most of
             the level 2 features.

         -   SWELL 80 is a S̲oftW̲are E̲ngineering L̲ow level L̲anguage
             for the CR80 minicomputer.  SWELL offers most of
             the data and program structures of PASCAL, and,
             by enabling register control, is without the efficiency
             penalties experienced in true high-level languages.
              The main purpose of SWELL is to combine efficient
             program execution with efficient program development
             and maintenance.

         -   The assembler is a machine-orientated language
             for the CR80.  The language has a direct correspondence
             between instructions read and code generated.

         -   ADA compiler.  A project has been launched for
             implementation of the new DOD standard programming
             language ADA on the CR80 machine.  The project
             is planned for completion early 1984 and includes
             development of an ADA compiler hosted on and targeted
             for the CR80 as well as of an ADA programming support
             environment.  The programming support environment
             is based on the Stoneman report.…86…1         …02…   …02… 
              …02…   …02…                                          
6.2.6.3  S̲y̲s̲t̲e̲m̲ ̲G̲e̲n̲e̲r̲a̲t̲i̲o̲n̲ ̲S̲o̲f̲t̲w̲a̲r̲e̲

         The utility SYSGEN-EDIT generates object files - based
         upon a set of directives, a system source, and command
         files - for subsequent compiling and linking.  A BINDER
         then binds the system object together with the application
         object based upon a command file from SYSGEN-EDIT.
          All the external references of the object modules
         are resolved in the Binder output, which is a load
         module ready for execution.  The BINDER produces a
         listing giving memory layout, module size, etc.



6.2.6.4  D̲e̲b̲u̲g̲g̲i̲n̲g̲ ̲S̲o̲f̲t̲w̲a̲r̲e̲

         The software debugging facilities include:

         -   Test Output Facility
         -   On-Line Interactive Debugger



6.2.6.5  U̲t̲i̲l̲i̲t̲i̲e̲s̲

         The CR80 utility software package will include:

         -   Editor
         -   File Copy and Compare
         -   File Merge
         -   Interactive Proper Patch Facility
         -   File Maintenance Program


6.2.6.6  D̲i̲a̲g̲n̲o̲s̲t̲i̲c̲ ̲P̲r̲o̲g̲r̲a̲m̲s̲

         The Maintenance and Diagnostic (M&D) package is a collection
         of standard test programs which is used to verify proper
         operation of the CR80 system and to detect and isolate
         faults to replaceable modules.


6.2.6.6.1    O̲f̲f̲-̲l̲i̲n̲e̲ ̲D̲i̲a̲g̲n̲o̲s̲t̲i̲c̲ ̲P̲r̲o̲g̲r̲a̲m̲s̲

         The off-line M&D software package contains the following
         programs:

         -   CPU Test Program
         -   CPU CACHE Test Program
         -   Memory Map Test Program
         -   RAM Test Program
         -   PROM Test Program
         -   Supra Bus I/F Test Program
         -   CIA Test Program
         -   LTU Test Program
         -   Disk System Test Program
         -   Magtape System Test Program
         -   Floppy Disk Test Program
         -   TDX-HOST I/F Test Program
         -   Card Reader and Line Printer Test Program


6.2.6.6.2    O̲n̲-̲L̲i̲n̲e̲ ̲D̲i̲a̲g̲n̲o̲s̲t̲i̲c̲ ̲P̲r̲o̲g̲r̲a̲m̲s̲

         On-line Diagnostic programs will execute periodically
         as part of the exchange survailance system.  On-line
         diagnostics consists of a mixture of hardware module
         built-in test and reporting, and diagnostic software
         routines.  The following on-line diagnostic capability
         exists:

         -   CPU-CACHE diagnostic
         -   RAM test
         -   PROM test
         -   MAP/MIA test
         -   STI test
         -   Disk Controller/DCA test
         -   Tape Controller/TCA test
         -   LTU/LIA test

         On-line diagnostics will report errors to higher level
         processing to take recovery/switchover decision in
         the case of failures.


6.3      T̲r̲a̲n̲s̲p̲o̲r̲t̲ ̲M̲e̲c̲h̲a̲n̲i̲s̲m̲s

6.3.1    B̲T̲S̲ ̲E̲n̲v̲i̲r̲o̲n̲m̲e̲n̲t̲

         Basic Transport Service (BTS) is a module within the
         Christian Rovsing operating system DAMOS (Fig. III
         6.3.1.1).

         It enables processes to communicate in a uniform manner,
         whether they are located:

         1)  in the same CR80 processor unit
         2)  in computers connected via a supra bus, running
             the same operating system
         3)  in computers connected via a communication line,
             running independent operating systems.









































             Fig. III 6.3.1-1…01…BTS Environment


         S̲w̲i̲t̲c̲h̲i̲n̲g̲

         It is also possible for device handlers to use BTS.
          In this way, data may be switched through an intermediate
         node, directly from one communication device to another
         (Fig. III 6.3.1-2)

















































                Fig. III 6.3.1-2…01…Switching


































        Fig. III 6.3.1-3 Connection Establishment


         When a user process A wants to communicate with user
         process B, it:

         1)      issues a "connect", specifying the global identification
                 of the other process BTS, then

         2)      notifies process B, that it has been called
                 from A.

         User process B may then either:

         3a)     accept to communicate with A

         or  

         3b)     reject to communicate with A and BTS notifies
                 process A either:

         4a)     that the communication has been established

         or

         4b)     that the communication could not be established.Connection
                 Establishment


























             Fig. III 6.3.1-4 Data Transport

         When user process wants to send data via the connection,
         it:

         1)  issues a "send request" giving BTS a pointer to
             the data, specifying the address and the length
             of data.

         When user process B is ready to receive data via the
         connecition, it

         2)  issues a "receiving request" giving BTS a pointer
             to an empty data buffer, specifying the address
             and length.

         BTS then initiates the data transfer, and when the
         transfer is completed, it:

         3)  notifies A that data has been sent

         4)  notifies B that data has been received.

         User process B may simultaneously send data to user
         process A via the connection (it is fully duplex).

         The "receive request" from B may be issued before the
         "send request" from A.

         Any number of "send request" and "receive requests"
         may be outstanding on a connecition, they will be served
         by BTS as soon as a match occurs.































           Fig. III 6.3.1-5 Deferred Buffering

         If user process B has many connections on which it
         may receive data, it may not be able to allocate an
         input buffer for each.

         It may then:

         1)  give a data area to BTS to be used as a common
             buffer pool for several connections

         2)  specify that buffers from the pool shall be used
             for input on the connection

         when user process A

         3)  issues a "send request"

         BTS tries to allocate buffers from the buffer pool.
          When they become acailable, BTS initiates the data
         transfer, and when it is complete:

         4)  notifies A that data has been setn

         5)  notifies B that data has been received, specifying
             the buffers containing the input data.
































        Fig. III 6.3.1-6 The DAMOS Implementation

         BTS is an integrated part of the DAMOS kernel.

         1)  within one CR80 computer, the DMA device in the
             MAP is used to move data.

         29  On connection between computers connected by a
             supra bus, data is to/from the CR80 memory by the
             Supra Terminal Interface (STI), interfacing to
             the supra bus.

         3)  On connections via communication lines, data is
             first moved from the user process to the memory
             of the Line Termination Unit (LTU) by the DMA device
             in the MAP.

             When it has been transmitted to the memory of the
             receiving LTU, it is moved into the memory of the
             user processes by the DMA device in the MAP.

         The CPU is thus never loaded with movement of data.



6.3.2    B̲a̲s̲i̲c̲ ̲D̲a̲t̲a̲g̲r̲a̲m̲ ̲S̲e̲r̲v̲i̲c̲e̲

         The Basic Datagram Service (BDS) is a DAMOS system
         component for manipulation and exchange of main memory
         resident data buffers.  The BDS operates within the
         BTS environment of the BTS by exploiting the mapping
         mechanisms offered by the CR80 hardware.  BDS enables
         processes within a single PU to exchange large amounts
         of data by reference, and processes in different PUs
         to exchange data by copying from buffer to buffer.

         The BDS provides functions for allocation, release
         and mapping of buffers.  Exchange of buffers within
         a PU is based on communication of buffer identifiers
         via interprocess communication for example by means
         of the DAMOS PCF.

         The BDS supports buffers of fixed length.  It is possible
         to configure the BDS with several types of buffers
         corresponding to different sizes.  In the present system
         two types of buffers with sizes 64 and 512 bytes are
         envisaged.

         Buffers are grouped in pools which are DAMOS objects.
          The buffers in a pool have the same size.

         Before a process can access a buffer, the buffer must
         become part of the logical address space of the process.
          This is accomplished by a map-in function which changes
         the composition of the translation table of the process.
          A special kind of pseudo segment is used for this
         purpose.  These segments are called buffer-windows.

         The buffer-windows must be 'mapped' into the logical
         address space of the process before buffers can be
         mapped into the buffer-window.




















































       Fig. III 6.3.2-1…01…Process Logical Data Space


         The BDS provides the following functions:

             a̲l̲l̲o̲c̲a̲t̲e̲ ̲b̲u̲f̲ (pool)(buf ̲id)

             This function allocates a buffer from the specified
             pool.

             A PU-wide identification - buf ̲id - of the buffer
             is returned.  This identification must be used
             to release and map in the buffer.  The identification
             of the buffer can be passed to and used by another
             process.

             r̲e̲l̲e̲a̲s̲e̲ ̲b̲u̲f̲ (buf ̲id)

             This function deallocates the buffer identified
             by buf ̲id.

             M̲a̲p̲ ̲i̲n̲ (buf ̲id, approx-loc)(actual-loc)

             This function maps in a specified buffer at the
             specified location.  It is checked that the affected
             logical page(s) is part of a buffer-window.  The
             location specified at call is only accurate to
             1 k; the actual location is defined at exit from
             the function.

             The function changes the contents of the translation
             table for the process.

             B̲u̲f̲ ̲a̲d̲d̲r̲ (buf ̲id)(addr)

             This function returns the physical address of the
             buffer.  The address is delivered in a format compatible
             with the format required by XFER.

             This function is used as a prerequisite for transfer
             of buffer contents between PUs.



6.4      D̲a̲t̲a̲ ̲F̲l̲o̲w̲ ̲a̲n̲d̲ ̲N̲e̲t̲w̲o̲r̲k̲ ̲T̲a̲b̲l̲e̲s̲

         The scope of this section is to introduce typical data
         flows in the ACDN and to present the generic table
         structures incorporated in the NCC NMH and the nodes.
         The primary objective is to illustrate the linkages
         between session identifiers, transport service identifiers,
         virtual connection identifiers and the end users.

         The description presented herein is based on a current
         implementation for an IBM and Univac host environment.

6.4.1    N̲e̲t̲w̲o̲r̲k̲ ̲T̲a̲b̲l̲e̲s̲

         Tables reflecting network configuration and status
         are maintained in NMH, NCC and NODES.

         Global Network Tables are located in the NMH and the
         NCC while Local Network Tables are located in the NODES.

6.4.1.1  G̲l̲o̲b̲a̲l̲ ̲N̲e̲t̲w̲o̲r̲k̲ ̲T̲a̲b̲l̲e̲s̲

         The Global Network Tables (NT in NCC) reflect the entire
         network configuration and status.

         An entry in the Main Table always corresponds to an
         entry in the Quick Reference Table while the entries
         in the Session Table are network usage dependent.

         NCC initialization routines or NCC operators create
         entries in the Main Table by using an identifier transformation
         algorithm to find empty table elements.

         The entries are created within node specific boundaries
         and the corresponding elements in the Quick Reference
         Table are also found within node specific boundaries
         where the first free entry is chosen.

         Global Identifiers (q), which are used to locate elements
         in all Network Tables in the network, simply are the
         elements numbers in the Quick Reference Table.

         Global Data is pointed to by the pointer (d) but the
         data entries are not shown.


6.4.1.2  L̲o̲c̲a̲l̲ ̲N̲e̲t̲w̲o̲r̲k̲ ̲T̲a̲b̲l̲e̲s̲

         The Local Network Tables (NT in NODE) reflect configuration
         and status partially with respect to number of units
         and amount of information.

         Entries in the Local Main Table are created on basis
         of messages from NCC. The Global Identifiers (which
         are within a node specific range) are used as Quick
         Reference to the obligate corresponding Quick Reference
         Table elements. These elements are made pointing to
         the created Main Table elements.

         HOST and TERMINAL elements may point to Session Table
         elements or linked lists of Session Table elements
         (Session Control Blocks).

         TERMINAL elements may point (t) to Transaction elements
         which are not shown.

6.4.2    N̲e̲t̲w̲o̲r̲k̲ ̲T̲a̲b̲l̲e̲s̲ ̲M̲a̲i̲n̲t̲e̲n̲a̲n̲c̲e̲ ̲a̲n̲d̲ ̲U̲s̲a̲g̲e̲

         In the NCC the Network Tables are maintained by Network
         Configuration and used by both User and Session Services.

         In the NODE the tables are maintained by NODE Services
         respectively and used by Physical and Logical Services
         and by Session Managers.

         The host related NODE tables mainly reflect the hosts'
         view of the network, while the terminal related NODE
         tables mainly reflect the real network, so the LINE
         and CLUSTER elements in a given sub-tree in the host
         related part may be different from the terminal related
         LINE and CLUSTER elements both with respect to information
         held and with respect to number of elements.

         The number of NODE and TERMINAL elements in the host
         related part are equal to the number of NODEs and TERMINALs
         in the network.

         As a HOST can maintained sessions with many TERMINALS
         in the network a HOST element is provided with a pointer
         to a linked list of Session Table elements (Session
         Control Blocks).

         As a TERMINAL can have several sessions involved in
         a transaction the TERMINAL element has a pointer to
         both a linked list of Session Table elements and a
         Transaction element.

         The Session Table and Transaction Table are both maintained
         by Logical Services and Session Managers.







         NETWORK FUNCTIONAL OVERVIEW, NETWORK DATA FLOW EXAMPLES










                         tegning









                         tegning


6.4.3    S̲e̲s̲s̲i̲o̲n̲ ̲D̲a̲t̲a̲ ̲F̲l̲o̲w̲

         This section describes briefly how a session path between
         two end users is established, and of which entities
         it is composed.

         The framework within which the description is held
         is shown below.  Furhter details on flow are provided
         as part of section 6.7, Host Access Software.











                         tegning





         Legend:
         PN : Datagram packet network
         TS : Transport Station
         UDS: User Data Session

         The internal structure of User Data Session (UDS) is
         a task structure:







                         tegning


























         where
         ASI:    (Host) Application Session Interface task

         CAS:    Connection and Allocation Services task

         EM :    (Terminal) Emulator task

         TSU:    Transport Station User task

         The ASI and EM are Virtual Protocol Units (VPUs)

         CAS exists in one incarnation in each UDS and is created
         at initialisation time.  Having been created CAS connects
         to TS.

         The remaining tasks exist in principal in one incarnation
         per sesson.  These tasks are dhnamically created/deleted
         during session establishment/terminaton.

         Three cases of session path establishment are cover.

         1:  Terminal initiated session to an Univac host application.

         2:  Terminal initiated session to an IBM host application.

         3:  IBM host application initiated session to a termina.

         In each case, a path like the one sketched below is
         established.


















       PAS P<:  spec. tegn i sidste afsnit af tekst


















         The resources allocated to a session are composed of:

         -   the session paths
         -   NCC session services
         -   NODE session manager (at host)
         -   NODE session manager (at terminal)

         Session control blocks are used for accounting-control
         and recovery purposes.  Each triple is given an inernal
         global identifier thereby providing a linkage between
         the control blocks.

         Regarding the established session path, the entities
         of which it is composed may be depicted as shown overleaf.

         The symbol ?? and ?? each denote a part and its associated
         control block.  Two associated parts make a connection.
          The entity connecting TS and TS is a Virtual Connection.


         Thus the resources which are allocated to a session
         path are divided into:

         -   task instances (ASI, TSU, TSU, EM)
         -   connections, each composed of two associated parts

         In IBM and UNIVAC environments no global address defines
         the host application and the terminal.  The session
         path is identified by a series of relative addresses.

         On outbound flow - i.e. the flow from host application
         to terminal - the driver maps the destination address
         into a part to ASI, thereby obtaining a handle to the
         session path.

         On inbound flow - i.e. the flow from terminal to host
         - the driver maps the terminal identification into
         a part to EM thereby obtaining a handle to the session
         path.

         The ASI and the EM communicate with each other by using
         the services provided by the transport network.  Thus,
         these entities identify each other in the address space
         of the CRNET transport network.

         Below, we outline the various phases in establishing
         a session path.


6.4.3.1  T̲e̲r̲m̲i̲n̲a̲l̲ ̲u̲s̲e̲r̲ ̲l̲o̲g̲s̲ ̲o̲n̲































         1.  User logs on at terminal.

         2.  The terminal network driver does not have any part
             to UDS for the terminal, hence the logon message
             is routed to node services.

         3.  Node TAS service does some preliminary checks,
             removes any device dependencies from the logon
             message, and passes the logon on to User Services
             in NCC.

         4.  User Service checks user profile, passwords, etc.,
             and sends the logon to Node HAS services.

         5.  In case the user logged on to a Univac host application,
             the session path is established at this time. 
             In case the user logged on to an IBM host application,
             the establishmend of the session path is triggered
             by the arrival of a BIND from the host applicaton.

         6.  The Univac case is covered at first.


6.4.3.2  T̲e̲r̲m̲i̲n̲a̲l̲ ̲U̲s̲e̲r̲ ̲l̲o̲g̲s̲ ̲o̲n̲ ̲t̲o̲ ̲U̲n̲i̲v̲a̲c̲ ̲h̲o̲s̲t̲ ̲a̲p̲p̲l̲i̲c̲a̲t̲i̲o̲n̲














                         tegning


         1.  Node HAS Service passes the logon to Node session
             manager.

         2.  The session manager asks CAS in UDS to create a
             session path.

         3.  CAS creates an ASI - and a TSU task incarnation.

         4.  ASI connects to driver and afterwards to TSU tasks.

         5.  The TSU task connects to TS and asks TS in Node
             to connect Node HAS to connect to TS destination
             node.

         6.  TSU in host Node sends a command to CAS in UDS
             in terminal node.  This command is sent from TS-CAS
             connection established during system initialisation.

         7.  CAS in terminal node creates an EM - and a TSU
             task incarnation.

         8.  EM connects to terminal network driver and afterwards
             to TSU task.

         9.  TSU task connects to TS in node.

          10.    As session path set up complete message is
                 sent from CAS in node UDS via CAS in host node
                 UDS to host node session manager.

          11.    Host node session manager updates node session
                 manager and NCC session services.

          12.    Host node session manager releases the logon
                 and sends it to the host via CAS, ASI and the
                 driver.


6.4.3.3  T̲e̲r̲m̲i̲n̲a̲l̲ ̲u̲s̲e̲r̲ ̲l̲o̲g̲s̲ ̲o̲n̲ ̲t̲o̲ ̲I̲B̲M̲ ̲h̲o̲s̲t̲ ̲a̲p̲p̲l̲i̲c̲a̲t̲i̲o̲n̲































         1.  As in the Univac case, the logon eventually reaches
             HAS services.
         
         2.  The logon is sent to the host.

         3.  The host application sends a BIND, which is received
             by the driver.  The driver does not have any path
             to UDS for this BIND, hence it is routed to trip
             services.

         4.  Now the situation is almost similar to the Univac
             case.  When a session path has been established,
             the HAS session manager releass the BIND and sends
             it to ASI via CAS.  From ASI the BIND is sent along
             the session path to its destination, and EM in
             the terminal node.


6.5      N̲o̲d̲a̲l̲ ̲S̲w̲i̲t̲c̲h̲ ̲S̲o̲f̲t̲w̲a̲r̲e̲

         The ACON software is built using layered concepts.
         The NSS constitutes the lowest three environments:
         CUE, DTrE and DLE. Each "horizontal" layer consists
         of software schedulable tasks which provide similar
         services. The packaging of these tasks is done by "vertical"
         partitioning such that a group of tasks providing the
         total NSS capability can be included in in functional
         CR80-processes.

         In the following description, we concentrate on the
         functions of the NSS without regard to its packaging.
         Figure 6.5-1 illustrates this environment.


6.5.1    C̲o̲m̲m̲u̲n̲i̲c̲a̲t̲i̲o̲n̲ ̲U̲s̲e̲r̲ ̲E̲n̲v̲i̲r̲o̲n̲m̲e̲n̲t̲ ̲(̲C̲U̲E̲)̲

         This environment is primarily concerned with providing
         an orderly data exchange between two entities in the
         higher level software. This orderly exchange is provided
         by establishing session-conversations.

         This environment is not concerned with the idiosynchrocies
         of the individual user. The Network Interface Environment
         handles these by providing emulator functions or with
         implementation of virtual terminals.

         The session-conversations are built on the services
         provided by the Data Transmission Environment.


















































       Figure III  6.5-1 …01…Communication Environment



6.5.1.1  S̲e̲s̲s̲i̲o̲n̲-̲C̲o̲n̲v̲e̲r̲s̲a̲t̲i̲o̲n̲ ̲M̲a̲n̲a̲g̲e̲m̲e̲n̲t̲



6.5.1.1.1. S̲e̲s̲s̲i̲o̲n̲-̲C̲o̲n̲v̲e̲r̲s̲a̲t̲i̲o̲n̲ ̲E̲s̲t̲a̲b̲l̲i̲s̲h̲m̲e̲n̲t̲

         The purpose of the session-conversation establishment
         phase is to tie two Session Service Users (SSU) into
         a cooperative relationship. To do this the CUE includes
         the means to:

         -   request a session-conversation to another SSU

         -   receive a request for session-conversation from
             another SSU, which it can accept, reject or negotiate

         -   be notified of the session-conversation establishment
             or the rejection of the request 

         -   enable the two SSUs cooperatively to determine
             the values of the session-conversation parameters.

         These parameters determine:

         -   type of service (stream or datagram)
         -   grade of service (reliability, priority etc.)
         -   throughput (blocksize, degree of flow control)



6.5.1.1.2    S̲e̲s̲s̲i̲o̲n̲-̲C̲o̲n̲v̲e̲r̲s̲a̲t̲i̲o̲n̲ ̲D̲a̲t̲a̲ ̲T̲r̲a̲n̲s̲f̲e̲r̲

         This phase of the interaction serves for a controlled
         exchange of data during the lifetime of the conversation.

         Local flow control is provided by CUE so as not to
         overload the transport network. This is done by limiting
         the size of the outbound queue for each conversation.
         When CUE detects that the queue length for a particular
         conversation exceeds a predetermined number, it indicates
         this to the Session Service User. The latter is expected
         to limit the generated output if the ordely exchange
         is to be maintained.

         Other services for recovering from a possible failures
         are provided on request.


6.5.1.1.3    S̲e̲s̲s̲i̲o̲n̲-̲C̲o̲n̲v̲e̲r̲s̲a̲t̲i̲o̲n̲ ̲T̲e̲r̲m̲i̲n̲a̲t̲i̲o̲n̲

         This allows the SSU to terminate the conversation without
         loss of data. Either SSU may at any time request the
         forced termination of the conversation, in which case
         data may be lost.

         The CUE, optionally, gatheres charging data which is
         forwarded to the NSE on termination of a conversation.



6.5.2    D̲a̲t̲a̲ ̲T̲r̲a̲n̲s̲m̲i̲s̲s̲i̲o̲n̲ ̲E̲n̲v̲i̲r̲o̲n̲m̲e̲n̲t̲ ̲

         This environment provides standard interfaces and services
         which form the basic transport facilities in the ACDN.

         The Transport Service Users (TSU) get access to this
         facilities by acquiring a Transport Access Port (TAP).
         The request for a TAP is processed by the Network Services
         Environment. Once a TSU has acquired a TAP, it can
         communicate with other TSUs and vice versa.

         Chapter 6.5.2.2.1 expands on the addressing aspects.
         Notice that TSUs may be identified either e̲x̲p̲l̲i̲c̲i̲t̲l̲y̲
         or i̲m̲p̲l̲i̲c̲i̲t̲l̲y̲ in the addressing structure. When a C-PORT-NO
         is used the TSU is identified implicitly via the TAP
         corresponding to the C-PORT-NO. When the generic name
         of the TSU is used, the NSE at the destination is requested
         to identify the TSU. If the explicitly named TSU is
         known to the destination system (confirmed by directory-lookup),
         then it, or an incarnation of it, is activated and
         informed of the incoming information. The activated
         TSU will then respond to the incoming indication of
         a session-conversation by contacting the CUE.



6.5.2.1  D̲T̲r̲E̲ ̲S̲e̲r̲v̲i̲c̲e̲s̲

         The underlining mechanism by which DTrE communicates
         is based on datagram technology.

         The higher level software is provided with basically
         two types of services. T̲h̲e̲ ̲D̲a̲t̲a̲g̲r̲a̲m̲ ̲S̲e̲r̲v̲i̲c̲e̲ (DGS) is
         based directly on the underlining datagram technology.
         This provides a vechicle to base higher level transaction
         oriented services.


         The V̲i̲r̲t̲u̲a̲l̲ ̲T̲r̲a̲n̲s̲p̲o̲r̲t̲ ̲C̲o̲n̲n̲e̲c̲t̲i̲o̲n̲ ̲(̲V̲T̲C̲)̲ service provides
         enhanced stream oriented services again based on the
         underlining datagram technology. This provides a means
         for trasporting bulk data.

         Figure III  6.5.2.1-1 illustrates this.


















































           Figure III  6.5.2.1-1…01…DTrE Structure



6.5.2.2  D̲a̲t̲a̲g̲r̲a̲m̲ ̲S̲e̲r̲v̲i̲c̲e̲s̲ ̲(̲D̲G̲S̲)̲

         This service provides a one-to-one mapping on the underlining
         datagram implementation of the DTrE.

         The information entities exchanged within the network
         are d̲a̲t̲a̲g̲r̲a̲m̲s̲. A datagram is a data structure of a
         defined maximum size consisting of a Datagram Header
         (DH) and Datagram Text (DT). The datagram header contains
         the source and destination addresses of the datagram.
         The datagram text is the actual data to be transported
         through the network. This textual data is transparent
         to the datagram service.

         The DGS only accepts data in the form of Datagram Texts.
         Because of the limited size of the datagrams, the service
         user is expected to split longer data structures into
         a number of DTs. For ACDN a maximum size of 512 bytes
         for a DT is suggested. This maximum size will enable
         the ACDN to transport the majority of its transactions
         in a single datagram.

         The DGS provides a fast but not completely reliable
         service. If for some reason the datagram cannot be
         delivered the transport network will destroy them.
         An option is provided whereby the user may request
         the delivery confirmation of the datagram. In this
         case, the destination DTrE will automatically "echo"
         the datagram back to the user - the Datagram Text of
         the echo-datagram is shorten to the first ten bytes
         of the original datagram. It is expected that the source-user
         will have enough information within the echo-datagram-text
         to recognize the returned echo-datagram as being the
         delivery confirmation on a particular datagram sent
         previously.

         DGS will provide eight priority levels. The designated
         priority is noted in the packet header to ensure that
         all transit nodes will respect the priority level of
         the datagram. The priority assigned to a datagram affects
         the order in which it is transmitted and also the order
         in which it is processed in the individual nodes. However,
         the algorithms employed ensure that the low priorty
         traffic does not get completely blocked.

         DGS provides a test mode services. When in this mode,
         all datagrams are marked with a user provided mode-indicator.
         The interpretation and special processing is in the
         users domain.


6.5.2.2.1    A̲d̲d̲r̲e̲s̲s̲i̲n̲g̲ ̲S̲t̲r̲u̲c̲t̲u̲r̲e̲

         The transport network of CRNET provides a number of
         Transport Access Ports (TAP) through which the network
         users can communicate with one another. The addressing
         form reflects the heirarchical structure of the topology.

         Figure III  6.5.2.2.1-1 illustrate the various address
         formats used.

         1) C̲C̲-̲f̲o̲r̲m̲a̲t̲: This format is the normal address format
         used to identify another C-NET user who is known to
         be attached to a specific TAP.

         2) C̲N̲-̲f̲o̲r̲m̲a̲t̲: This is an optional address format used
         by a C-NET user to identify another C-NET user, who
         is known by a generic name but his specific address
         (TAP) is unknown to the source user. The format does
         not limit the size of this generic name - however,
         it is not expected to be greater than 8 bytes.

         3) X̲-̲f̲o̲r̲m̲a̲t̲: This is the normal format used by a C-NET
         user to identify a X-NET user. This format is similar
         to the CC-format, but has less addressing capability.






























   (̲a̲)̲,̲ ̲ ̲C̲C̲-̲f̲o̲r̲m̲a̲t̲          (̲b̲)̲,̲ ̲C̲N̲-̲f̲o̲r̲m̲a̲t̲          (̲c̲)̲,̲ ̲C̲X̲-̲f̲o̲r̲m̲a̲t̲

        Figure III  6.5.2.2.1-1…01…Addressing Formats


   where, AFI:    address format identifies
                = 0, CC-format or CN-format
                = 1, CX-format

        level:    identifies the C-port-level in the OSI
                architecture.
                The aim is to facilitate future developments
                towards layer level resources management and
             con-
                trol.

                = 0, C-port is at layer 4/5 boundary.
                = 1, C-port is at layer 5/6 boundary.
                = 2, C-port is at layer 6/7 boundary.

     C-NET-NO:      identifies the C-NET within the addressed
                 C-NODE.
                = value: from 0 to 15



         C-REGION-NO.)
                     ) : identifies the addressed region.
         X-REGION-NO.)
                        - value: from 0 to 255.

         C-NODE-NO. :   identifies the addressed C-Node.
                        - value: from 0 to 255.

         C-PORT-NO. :   identifies the transport access port
         
                        (TAP) at the addressed C-NET.
                        - value: fram 0 to 4095
                        n̲o̲t̲e̲:̲ this range is extended to three
                        times the value (12,287), when
                        supplemented with the use of "level".

         C-NAME-LENGTH: the length of the alpha-nummeric generic
         
                        name (CNAME)

         C-NAME-OFFSET: offset to the actual CNAME string

         X-PORT-NO:     identifies the TAP at the addressed
         X-NET
                        - value: from 0 to 255



6.5.2.2.2    D̲a̲t̲a̲g̲r̲a̲m̲ ̲F̲o̲r̲m̲a̲t̲

         Figure III  6.5.2.2.2-1 shows the datagram format while
         figure III  6.5.2.2.2-2 details the optional header-appendix.

         o HAL:  length of the header appendix/2

         o TF:   indicates presence of Test Mode (TM) in the
                 header appendix
                 .EC. 0, outline datagram
                 .NE. 0, test datagram

         o DFI:  datagram format identifier
                 .EC. 0, the present format
                 .NE. 0, reserved

         o SR:   shortest route indicator
                 .EC. 0, take the shortest route
                 .NE. 0, split routing

         o SD:   stream/datagram indicator
                 .EC. 0, datagram
                 .NE. 0, stream datagram

         o REL:  reliability requirement
                 = 3, highest
                 = 2, high
                 = 1, low
                 = 0, lowest



















































         Figure III  6.5.2.2.2-1…01…Datagram Format



         o   D:  delivery configuration indicator
                 .EC: 0, no configuration required
                 .NE. 0, configuration required

         o   PR: datagram priority
                 values: from 0 to 7 (7=highest)

         o   RC  datagram rebound count
                 -   incremented every time the datagram passes
                     
                     through a transit node.
                 -   when this count exceeds a predefined value,
                     
                     the datagram is considered non-deliverable
                     and therefore destroyed.

         o   PS: identifies the protocol used by the higher
                 level software.

         o   DA: Destination address

         o   SA: Source address

         o  HAP: Optional header-appendix, described below

         o   DT: Datagram text
                 -   contains transparent user data



















































         Figure III  6.5.2.2.2-2…01…Header Appendix


         The following describes the optional header-appendix:

         o   SI      -   this area is only present if SD.NE.0.
                          The area contains necessary stream
                         information to maintain the Virtual
                         Transport Connection service.

         o   TM      -   this is only present if TF.NE.0.  The
                         value of the byte is used by the user
                         to specify the test operation.

         o  DC-NAME/ -   alphanumeric text-strings identifying
            SC-NAME      the users by their generic name.

         o  Options  -   specify the various optional facilities
                         provided by DGS.

                         For the time being, the following options
                         are defined:

                         a)  network-time stamp
                         b)  error report
                         c)  return routing information


6.5.2.2.3    D̲a̲t̲a̲g̲r̲a̲m̲ ̲P̲r̲i̲m̲i̲t̲i̲v̲e̲s̲

         The DGS provides the following interface primitives:

         a)  SET ̲TOS
…0e…              ̲ ̲ ̲ ̲ ̲ ̲ ̲…0f…
                 This primitive is used to set the various parameters
                 which together define the Type-Of-Service provided
                 at a DGS-port (TAP).

         b)  SET ̲MODE
…0e…              ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲…0f…
                 This sets the DGS-port either in TEST mode
                 or ON ̲LINE mode.

         c)  DG ̲DATA ̲REQUEST
…0e…              ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲…0f…
                 This primitive transfers the user data over
                 to the DGS.

         d)  DG ̲DATA ̲INDICATION
…0e…              ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲…0f…
                 This primitive is used by the DGS to handover
                 the received data to the user.


6.5.2.2.4    D̲a̲t̲a̲g̲r̲a̲m̲ ̲R̲o̲u̲t̲i̲n̲g̲

         Based on the address information contained in the datagram
         header, the datagram is transported across the ACDN
         network to the receiving user.  The datagram is forwarded
         from node to node, following a path through the network
         as indicated by the routing tables in the traversed
         nodes until the received is reached.

         These routing tables are maintained by a routing algorithm.
          The routing tables indicate an ordered list of possible
         paths a datagram can take to reach a specified destination
         from the present location of the datagram.  The list
         is ordered by increasing costs.  In the ACDN, the principal
         factor affecting the cost will be the estimated datagram
         transit time.

         In most of the present day networks, the routing strategy
         is based on the shortest-path (least cost) principle.
          In ACDN, the technique known as split-routing will
         be implemented. This technique uses both the least
         cost paths as well as the non-least cost paths, thus
         exploiting all possible paths through the network.
          By spreading the traffic in this way, the use of the
         total bandwidth available between two nodes is optimized.
          Split routing disperses the datagrams at a node, sending
         them to one of the possible candidate paths on a probabilistic
         basis.   The user has the choice of overriding this
         mechanism by specifying an appropriate DGS-service.

         The ACDN routing strategy is characterised as a c̲e̲n̲t̲r̲a̲l̲i̲z̲e̲d̲
         ̲a̲d̲a̲p̲t̲i̲v̲e̲ ̲r̲o̲u̲t̲i̲n̲g̲ ̲s̲c̲h̲e̲m̲e̲.  The Network Services Environment
         in each node will report topological changes to the
         NCC.  A control algorithm at the NCC uses this information
         in conjunction with the knowledge of the total topology
         of ACDN to work out a set of new routing tables for
         each node.  The updated routing tables are then sent
         out to the relevant nodes.

         The routing algorithm works in the following way. 
         For each link terminating at a node, the algorithm
         maintains both a path length (PL) and a performance
         measure (COST) to each destination node within the
         same region and to each destination region if the destination
         node lies in another region.  On the basis of this
         the algorithm prepares two routing tables for each
         node: a regional routing table and a internodal routing
         table.


         a)  R̲e̲g̲i̲o̲n̲a̲l̲ ̲R̲o̲u̲t̲i̲n̲g̲
         
             This is the first level routing.  When the destination
             region number is not identical with the local region
             number, the routing is performed solely on the
             basis of the destination region number.

             Figure 6.5.2.2.4-1 shows the format of this table.
              The table consists of upto 256 entries.  Each
             entry contains the information necessary for routing
             to the destination region.  The entry specifies
             upto four possible paths to the destination region.
              Each path is specified by a logical path number,
             the local C-NET-NO. to which the path is attached
             and a Split Count Reset Value (SCRV).  This last
             parameter reflects the share of the traffic to
             be sent on the particular path performing split
             routing.

             At any given time, the Current Path Offset (CPO)
             points to the preferred link for routing.  For
             every datagram routed via the preferred path, the
             Current Split Count (CSC) is reduced by one until
             it reaches a value of zero.  At this point, the
             CSC is reset by copying the reset value into it
             and the CPO is changed to point to the next preferred
             path in the list.  In this way, all the paths are
             used to transport the traffic.  However, there
             are exceptions to this rule: if the datagram has
             the highest priority (PR=7) or the explicit request
             to take the path with the least cost (SR/0), then
             the optimal path is taken unconditionally.

             A path in this context represents a group of logical
             links. Each link, in iturn, is a group of trunks.

             The datagram sublayer of DTrE provides for increased
             reliability and capacity of paths by spreading
             the path traffic on a number of logical links.
             The DLE provides similar facilities at the link
             level by spreading the link traffic on multiple
             physical trunks.




































         where,
         PN      :   Logical path number

         C ̲NET ̲NO:   the local C-NET to which the trunk is attached

         SCRV    :   a reset value for CSC
                     -   reflects the share of split-traffic
                         to be directed on the path

         CSC     :   counts the number of datagrams routed via
                     the path during the current cycle.




      Figure III  6.5.2.2.4-1…01…Regional Routing Table


         b)  I̲n̲t̲e̲r̲-̲n̲o̲d̲a̲l̲ ̲R̲o̲u̲t̲i̲n̲g̲

             When the destination region is the same as the
             local region number, the routing procedure makes
             routing decision on the basis of the inter-nodal
             routing table.

             The format and the use of this table is similar
             to that described for Regional routing.


         c)  I̲n̲t̲r̲a̲-̲n̲o̲d̲a̲l̲ ̲R̲o̲u̲t̲i̲n̲g̲

             This form of routing is performed within the environment
             of a common operating system.  This form of routing
             is necessary in the following two cases:

             c1) The datagram is destined for another C-NET
                 within the same C-NODE.

             c2) The datagram is to be routed out via a path
                 attached to another C-NET with the same C-NODE.

             The DAMOS operating system provides facilities
             for such routing.



6.5.2.2.5    F̲l̲o̲w̲ ̲a̲n̲d̲ ̲C̲o̲n̲g̲e̲s̲t̲i̲o̲n̲ ̲C̲o̲n̲t̲r̲o̲l̲

         The purpose of flow and congestion control is to ensure
         an optimal orderly flow of traffic through the transport
         network.

         Congestion in the network may create a loss of traffic.
         This controlled loss of traffic is the price paid for
         steering the network out of any deadlock situation.

         Logically, the best traffic to lose is the traffic
         with the highest probability of being lost in the first
         place - low reliability traffic. At low degree of congestion,
         the network will exercise discretion as to which datagrams
         are to be sacrificed. But, if the situation gets worse,
         the network will take more drastic actions.

         The principle used in congestion control is to prioritize
         the traffic that is already in the network over new
         traffic entering into the network. Thus, when DTrE
         detects that the local buffer resources are running
         low, it will block the outgoing (locally generated)
         traffic at the Transport Access Port (TAP) and concentrate
         on servicing the incoming (transit) traffic. This will
         result in the outgoing queues at each TAP getting longer.

         Flow control is provided by CUE monitoring the outgoing
         queue length at each TAP. When this queue exceeds a
         given maximum length, the CUE will notify the Session
         Service User (SSU) to stop generating data. Conversely,
         when the queue reduces to a given minimum length, the
         CUE will notify the SSU to continue generating data.
         The actual values of these queue lengths are determined
         per TAP basis, depending on the grade of service offered.

         The above mechanism is accentuated in more serious
         cases of congestion, such that outgoing traffic is
         dropped and the associated buffers are confisticated
         to support the transit traffic.



6.5.2.3  V̲i̲r̲t̲u̲a̲l̲ ̲T̲r̲a̲n̲s̲p̲o̲r̲t̲ ̲C̲o̲n̲n̲e̲c̲t̲i̲o̲n̲ ̲S̲e̲r̲v̲i̲c̲e̲ ̲(̲V̲T̲C̲S̲)̲

         The VTCS provides an enhanced service based on the
         Datagram Service (DGS) described above. The primary
         purpose of VTCS is to provide the higher level users
         with a reliable end-to-end controlled  stream oriented
         data transfer.

         The services provided are divided into three main groups:

         -   connection establishment
         -   data transfer
         -   connection termination

         a)  C̲o̲n̲n̲e̲c̲t̲i̲o̲n̲ ̲E̲s̲t̲a̲b̲l̲i̲s̲h̲m̲e̲n̲t̲ ̲p̲h̲a̲s̲e̲

             The users are provided with facilities to dynamically
             create transport connections. At this time the
             users may request different types of services such
             as:

             -   the reliability of the connection, i.e. whether
                 the VTCS must retain copies of messages for
                 retransmission.

             -   the priority of the data transfer

             -   the throughput rate, which will influence the
                 end-to-end flow control window-size and the
                 degree of multiplexing with other data streams.

             -   maximum size of messages

             The same addressing scheme as described in 6.5.2.2.1
             is used to identify users in this service.

             The type of service parameters are defined in cooperation
             between VTCS and both the service users.

             On the successful completion of this phase, the
             two relevant users are provided with a two-way
             simultaneous path for data transfer and, optionally,
             a similar path of control purposes (expedited data
             path).



         b)  D̲a̲t̲a̲ ̲t̲r̲a̲n̲s̲f̲e̲r̲ ̲p̲h̲a̲s̲e̲

             This phase controls the orderly transmission of
             stream oriented traffic. The messages received
             from the source user are segmented into smaller
             units. These segments are sent to the destination
             VTCS via the Datagram Service. The destination
             VTCS reassembles these units in the correct sequence
             before relaying the message to the destination
             user.

             An end-to-end window mechanism is used to control
             the flow of data through the network. For normal
             data flow this window size is negotiated at connection
             establishment time. For expedited data, if selected,
             the window-size is fixed to one.

         c)  C̲o̲n̲n̲e̲c̲t̲i̲o̲n̲ ̲t̲e̲r̲m̲i̲n̲a̲t̲i̲o̲n̲ ̲p̲h̲a̲s̲e̲

             Both users of a connection may, regardless of the
             current activity, request that the connection be
             terminated. To terminate properly it is assumed
             that the users have ended their conversation prior
             to this request.

             When a request for termination is issued, all data,
             both normal and expedited, not yet delivered to
             the users are discarded.

             Should the VTCS not be able to maintain the service
             requested at establishment time, the VTCS may terminate
             the connection and notify the involved users.


6.5.2.3.1    V̲T̲C̲S̲ ̲S̲t̲a̲n̲d̲a̲r̲d̲s̲

         The services provided and the protocols used to provide
         these services are very much influenced by the current
         work being carried out in the international standards
         bodies.

         The following documents are particularly relevant:

         a)  Draft connection-oriented transport service definition
             ISO TC97/SC16 N860

         b)  ECMA-72, Transport protocol

         c)  Draft connection-oriented basic transport protocol
             specification ISO TC97/SC16 N861



6.5.2.4  D̲a̲t̲a̲ ̲L̲i̲n̲k̲ ̲E̲n̲v̲i̲r̲o̲n̲m̲e̲n̲t̲

         The Data Link Environment (DLE) supports the Balanced
         Link Access Protocol (LAPB) which is specified in CCITT
         recommendations X.25 and X.75.

         This protocol ensures error free full duplex transmission
         of frames on a single link, from one C-NODE to another,
         except for the very rare case where bit errors are
         not detected by the frame sequence check.

         The protocol is implemented in firmware on the Line
         Termination Unit (LTU) board, which connect trunks
         to the CR80 computer.

         To increase the reliability of the links, Multilink
         Link Procedures (MLP) will be implemented.



6.8      I̲n̲t̲e̲r̲n̲a̲l̲ ̲N̲e̲t̲w̲o̲r̲k̲ ̲A̲c̲c̲e̲s̲s̲ ̲S̲o̲f̲t̲w̲a̲r̲e̲

         The main task of the gateway (GWY)  is to act as the
         physical and logical link between the ACNC and the
         ACDN, see Figure III 6.5.5-1.

         As seen from the ACNC the gateway must look like several
         ICC'S with CRT's and printers.

         As seen from the Nodal Switch Software of the collocated
         node the Gateway must look like any other subsystem
         interfacing the network.

         Therefore the Gateway is a protocol converter between
         the ICC- and the NSS-protocols.

         It also acts as a multiplexer or speed converter of
         several ICC subsystems (of 9.6 Mbps each) and one CCI
         subsystem (Communication Control Interface).

         Finally the Gateway is a converter because messages
         must be converted to and from the Virtual Terminal
         Protocol entirely used inside the ACDN.



















































  Fig. III 6.8-1…01…The Gateway (GWY) and its Surroundings



6.8.1    A̲C̲D̲N̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲s̲

         o   The interface between the Gateway and the old ACNC
             is characterized by:

             -   several 9.6 Mbps lines
             -   ICC protocol (AC200) on each line incl. IMA.
             -   entire messages are stored and forwarded
             -   in case of error the entire message is retransmitted

             -   messages are divided into segments.

6.8.2    N̲e̲t̲w̲o̲r̲k̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲

         o   The interface between the Gateway and the new ACDN
             Packet Switched Network is characterized by:

             -   S-net Connection
             -   Message level protocol
             -   A number of logical channels will be established
                 for virtual calls as well as possible permanent
                 virtual circuits through the network

             -   Virtual Terminal Protocol

         The interface is shown on figure III 6.8-2.




















































Fig. III 6.8-2…01…The ACNC and the Network Interface of the Gateway



6.8.3    M̲o̲d̲u̲l̲e̲s̲ ̲o̲f̲ ̲t̲h̲e̲ ̲I̲n̲t̲e̲r̲n̲a̲l̲ ̲N̲e̲t̲w̲o̲r̲k̲ ̲A̲c̲c̲e̲s̲s̲ ̲S̲o̲f̲t̲w̲a̲r̲e̲


6.8.3.1  T̲h̲e̲ ̲I̲C̲C̲ ̲M̲o̲d̲u̲l̲e̲

         The ICC Module is divided into a number of co-routines
         each performing the task of acting like an intelligent
         Communications Concentrator as seen from the ACNC.

         Messages are exchanged with the CCI Module by means
         of Message Queues.

         a). T̲h̲e̲ ̲C̲o̲m̲m̲u̲n̲i̲c̲a̲t̲i̲o̲n̲s̲ ̲C̲o̲n̲t̲r̲o̲l̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲ ̲M̲o̲d̲u̲l̲e̲

             The Communications Control Interface Module (CCI)
             interfaces the Nodal Switch Software.

             Virtual Circuits to hosts, terminals and printers
             are created and dismantled when necessary initiated
             from this module.

             Messages are exchanged with the ICC co-routines
             by means of Message Queues.

         b). T̲h̲e̲ ̲H̲i̲g̲h̲ ̲L̲e̲v̲e̲l̲ ̲S̲e̲r̲v̲i̲c̲e̲ ̲M̲o̲d̲u̲l̲e̲

             The conversion to and from the Virtual Terminal
             Protocol entirely used inside the ACDN is done
             by the High Level Service Module.

         c). T̲h̲e̲ ̲S̲u̲p̲e̲r̲v̲i̲s̲o̲r̲y̲ ̲M̲o̲d̲u̲l̲e̲

             The Gateway is monitored from this module which
             generates Statistics (host-, terminal-, and printer
             connections) and error reports.  Possible controlling
             information too is received by the module.

         d). T̲h̲e̲ ̲R̲e̲c̲o̲v̲e̲r̲y̲ ̲M̲o̲d̲u̲l̲e̲

             This module will perform all recovery necessary
             for the GWY to be restarted after a Gateway-failure.
             The recovery will be done from appropriate checkpoint
             information.



6.9      E̲x̲t̲e̲r̲n̲a̲l̲ ̲N̲e̲t̲w̲o̲r̲k̲ ̲A̲c̲c̲e̲s̲s̲ ̲S̲o̲f̲t̲w̲a̲r̲e̲,̲ ̲E̲N̲A̲S̲

         The system and application software for supporting
         external network access is implemented in different
         subsystems. The high level procedures are implemented
         in the NCPs partly in the EMH, whereas the lower level
         software for link control etc. is implemented in the
         NSPs in order to provide external network access to
         the most appropriate node.

6.9.1    A̲R̲I̲N̲C̲ ̲a̲n̲d̲ ̲S̲I̲T̲A̲ ̲P̲r̲o̲c̲e̲d̲u̲r̲e̲s̲

         Christian Rovsing has extensive experience in implementing
         communication procedures like those defined by ATA/IATA
         and used on ARINC and SITA networks. This experience
         has been gained in military programs like FIKS and
         CAMPS, where the NATO defined ACP127 communications
         procedures have been implemented. The ACP127 is many
         similarities to the ATA/IATA procedures, but it is
         more complex, e.g. the ACP127 procedures includes 16
         different format lines with different optional and
         mandatory parameters per line.

         The utilization of both 5-bit and 7-bit coded character
         set and the conversion between these is also well known
         from the military environment.

         The validation of an ATA/IATA message is performed
         by the ENAS at the EMH. An ATA/IATA message has the
         following gour mandatory sections:

         -   Address
         -   Communications reference
         -   Text
         -   Ending

         The elements of the Address section are

         -   Start ̲of ̲Address (Mandatory)
         -   Priority Indicator (Optional)
         -   Addressee Indicator(s) (Mandatory)
         -   Alignment Function (Mandatory)
         -   End-of-Address (Mandatory)

         The elements of the Communications reference section
         are

         -   Message Origin (Mandatory)
         -   Message Identity (Mandatory)
         -   Special Service Address (Optional)



         The elements of the Text section are

         -   Start ̲of ̲Text (Mandatory)
         -   Text (Mandatory)
         -   Alignment (Mandatory)
         -   End-of-Text (Mandatory)
         -   Communication Control Information (Optional)

         The elements of the Ending section are

         -   Spacing signal (Mandatory)
         -   End-of-Message signal (Mandatory)
         -   Message Separation signal (Mandatory in some cases)

         In addition to the above mentioned elements, supplementary
         optional information might be required in special cases.

         The definition of all elements are different depending
         on which alphabet has been used. Both the asynchronous
         and the synchronous link control procedures can be
         applied.

         Asynchronous link control is performed by use of the
         following control codes

         -   VA, Validate Action Code
         -   IA, Invalidate Action Code
         -   SA, Suspend Transmission Code

         Synchronous link control utilizes a more extensive
         set of control information and procedures to ensure
         error free transmission.

         The link level control software will be installed in
         the NSP in other to connect the external networks.

6.9.2    C̲N̲T̲ ̲a̲n̲d̲ ̲S̲i̲m̲i̲l̲a̲r̲ ̲C̲o̲n̲n̲e̲c̲t̲i̲o̲n̲s̲

         Messages received from the CNT network are also checked
         when interfaced to the ACDN. The structure of a CNT
         message is however very simple, i.e. an envelope defined
         the start-of-message, the recipient followed by a free
         format text and ended by a end-of-message designator.

         ENAS located in the NSP controls polling and calling
         of selectorised teletype terminals connected to multi-drops
         full-duplex or half-duplex low-speed asynchronous lines.
         ENAS supports 81D1, 83B3 and similar teletype protocols.



         Global line and terminal control is exercised by the
         active NCC similar to the control exercised on other
         node terminations. ENAS recognizes and initiates appropriate
         controlling action for open circuit, mark hold, or
         terminal response failure. Line and terminal status
         is dynamically maintained in both ENAS and NCC.

         Terminal transmission of ATA/IATA formatted traffic
         is assembled by ENAS and transferred, upon receipt
         of EOM, to the EMH for validation, routing and mass
         storage retention. An input message acknowledgement
         is generated by the EMH and transferred via NSS for
         relay to the originating terminal. 

         Under control of a poll-call ratio structure, ENAS
         solicits the EMH to transfer, via the supra-bus, complete
         messages for delivery on the teletype terminal network.
         ENAS selects addressed terminals, initiates character
         transmission and if required, returns requeue status
         to the EMH in accordance with protected message philosophy.

         In order to establish a network compatibility at the
         low level between ACDN and the CNCP Telex network,
         on intelligent micro telecontroller is proposed.



         The Model 2000 Micro Telecontroller, a general purpose
         programmable controller "GPPC", is programmed to interface
         Air Canada's new data network ACDN to the CNCP-Telex
         Network.

         The GPPC provides for the "Incoming" and "Outgoing"
         telex connections and converts the internal ACDN data
         codes to 5-level Baudot and vice versa, as well as
         changing the transmission speeds automatically.

         The GPPC can interface to EIA/V24 lines and DC-Loops,
         and is capable to receive telex calls as well as establishing
         automatically outbound calls, providing also for "answerback"
         verifications.

         The GPPC, upon receiving a call request from ACDN for
         an outgoing call, automatically sets up the telex connection
         in the following manner:

         a)  AC-Data Network Call Request  - ESC, Dial Nbr.,
             STX
                                           - Called Answerback,
                                             ETX

         b)  GPPC stores Call Request      - EOT, NACK, DC3
             and acknowledges with

         c)  GPPC sets up call             - Seizes Telex Line
                                           - Transmits selection
                                             format
                                           - Waits for call
                     con-
                                             firmation
                                           - Compares received
                                             answerback
                                           - Transmits its own
                                             answerback

         d)  GPPC switches the Telex       - DC 1
             connection to originator

         e)  AC Data Network transmits     - SOH, Block Nbr.
             1
                                           -      Block N
                                           -      ETC

         f)  AC Data Network disconnects   - DC 3
             call
         g)  GPPC disconnects call         - clears telex line
                                             and returns to
                     idle

         A number of safeguards are built into the GPPC-program
         to prevent false telex connections, to detect busy
         conditions and time-outs, and to provide reports to
         the AC-Data Network concerning correct delivery of
         messages.



         The GPPC has inherent buffer storage of 2048 bytes
         for message storage, and the data flow is controlled
         with X-ON X-OFF transmitted towards the originator
         in the ACDN.

         While the GPPC is in the "outbound" call mode, incoming
         calls can not be accepted.

         The GPPC continuously monitors the telex line. Upon
         an Incoming Call Request, the GPPC will inhibit any
         outbound calls, and accept the incoming call as follows:

         a)  GPPC accepts call        - sets EIA/V24 control
                                        leads
                                      - X-OFF, DC3, transmitted
                                        to the AC Data Network
                                        to inhibit outbound
                     calls

         b)  GPPC requests and validates
             Calling Party Answerback  - transmits Fig. D towards
                                         telex network.
                                       - stores the Answerback
                                       - compresses the Answer-
                                         back to alpha/numerics
                                         space character

         c)  GPPC connects call to
             AC Data Network, sends    - SOH, CR LF, Calling
                                         Answerback, STX

         d)  GPPC sents its I.D.       - transmits its own
                                         Answerback

         e)  GPPC converts text        - message characters
                                         received from Telex
                                         are converted from
                     Bau-
                                         dot to ASC II towards
                                         the AC Data Network
                     in
                                        transparent mode.

         f)  GPPC disconnects call    - upon receipt of type
             B
                                        disconnect
                                      - upon time out after
                     60
                                        sec. delay
                                      - EOT, DC1 towards the
                     AC
                                        Data Network

         The GPPC returns to its "idle" mode and is ready to
         receive or originate new calls.



6.9.3    P̲u̲b̲l̲i̲c̲ ̲P̲a̲c̲k̲e̲t̲ ̲S̲w̲i̲t̲c̲h̲i̲n̲g̲ ̲D̲a̲t̲a̲ ̲N̲e̲t̲w̲o̲r̲k̲ ̲A̲c̲c̲e̲s̲s̲

         Christian Rovsing will provide to Air Canada the access
         capability to interface to any public or private packet
         switching network which can be interfaced through X.75.
         This standard, which has been issued by CCITT, is the
         internationally recommended interface between different
         packet switching network.

         The X.75 gateway software is equipped with Multi link
         Procedures (MLP) which enable the traffic over the
         connection to be diversified on more than one connection.
         This provides higher throughput capability and better
         reliability.

         The X.75 protocol might have to be customized by Air
         Canada, if billing and statistical data has to be transferred
         from the external network to ACDN or vice versa.


6.9.4    I̲n̲t̲e̲r̲p̲r̲e̲t̲e̲r̲ ̲f̲o̲r̲ ̲S̲t̲a̲n̲d̲a̲r̲d̲ ̲M̲e̲s̲s̲a̲g̲e̲ ̲T̲e̲x̲t̲ ̲(̲S̲M̲T̲)̲

         Christian Rovsing can optionally offer to implement
         a syntactical interpreter for SMT, when these are received
         in the ACDN. From military projects Christian Rovsing
         has achieved great experience in implementing advanced
         man machine interfaces comprising also utilization
         of predefined formats, where the structure of a predefined
         format can be defined in a way to both satisfy actual
         differences and similarities in applied messages.

         Christian Rovsing suggest to implement an interpreter
         as part of ENAS which will validate SMT according to
         tables defined by the following symbols.

         a       represents a single alphabetic character
         f       represents a single numeric character
         m       represents mixed alpha (A through Z) and figures
                 (numerics 0 through 9); excludes other characters

         t       represent any characters, numeral of special
                 value
         ()      brackets frame indicate optionality
         (*N*)   indicates an upper limit of a duplication factor
         (*M..N*) indicates lower and upper limit of 
                 duplication factor
         *F      indicates a figure shift (in alphabet No. 2)
         *L      indicates a letter shift (in alphabet No. 2)
         *S      indicates a space
         *LR     indicates a carriage return
         *LF     indicates a line feed

         Where a keyboard is to be spelt the format is specified
         in upper case characters, numerals, a slash or period.



6.11     N̲e̲t̲w̲o̲r̲k̲ ̲M̲a̲n̲a̲g̲e̲m̲e̲n̲t̲ ̲H̲o̲s̲t̲ ̲S̲o̲f̲t̲w̲a̲r̲e̲

         The Network Management Host (NMH) is a general purpose
         computer connected to the backbone network as an ordinary
         host processor.

         The services offered by the NMH are to a great extend
         standard software products as language processors and
         software maintenance utilities. All services are controlled
         by the DAMOS multiuser system which can provide service
         for an unlimited number of concurrent users.

6.11.1   N̲M̲H̲ ̲I̲n̲t̲e̲r̲f̲a̲c̲e̲s̲ ̲a̲n̲d̲ ̲F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲O̲v̲e̲r̲v̲i̲e̲w̲

         o   The services of the NMH are offered to any user
             at any terminal connected to the backbone network.
             The basic services offered are:

             -   Software development and maintenance facilities
             -   Network modelling software

         The NMH is connected to the backbone network via a
         supra bus link. Softwarewise the NMH contains support
         for the "File Transfer Protocol" and "Virtual Terminal
         Protocol".

         Thus the NMH is able to service any user at any terminal
         in the backbone network. The access to the NMH is controlled
         by a session control layer.

         Directly connected to the NMH there is the following
         standard peripheral equipment:

         -   Disc unit with 80 Mbyte moving head and 2 Mbyte
             fixed head capacity

         -   Disc unit with 80 Mbyte exchangeable disc pack
         -   Line printer for 600 LPM
         -   Magtape unit
         -   Floppy Disk
         -   3 Visual Display Units

         The functional areas of the NMH application are the
         following:

         -   Software development, maintenance and configuration
             control
         -   Maintenance of the data bases for: Network Configuration
             and Network Inventory List

         -   Downline loading of software and configuration
             data
         -   Processing of data for statistics and for cost
             and billing.

         -   Network modelling functions and automated test
             and emulation functions for real-life tests.



6.11.2   S̲o̲f̲t̲w̲a̲r̲e̲ ̲D̲e̲v̲e̲l̲o̲p̲m̲e̲n̲t̲ ̲a̲n̲d̲ ̲M̲a̲i̲n̲t̲e̲n̲a̲n̲c̲e̲ ̲F̲u̲n̲c̲t̲i̲o̲n̲s̲

         The NMH provides all the tools necessary for software
         development and maintenance.

         The following programming languages are available for
         the CR80M computers:

         -   SWELL, which is an intermediate level systems programming
             language

         -   PASCAL, which is a general purpose high level programming
             language

         -   COBOL, which is a high level language for administrative
             application programming.

         Furthermore, the new DOD standard programming language
         ADA will be available for the CR80M computers from
         1984.

         The NMH software development and maintenance package
         comprises the following functions:

         -   Source test editor
         -   Language processors for: SWELL, PASCAL, COBOL
         -   A comprehensive set of file-handling utilities
             (copying, moving, patching, comparing, backup,
             etc.)

         -   All the libraries necessary for software development
             and maintenance.

         An extensive description of all standard software available
         for the CR80 computer is found in the CR80 Minicomputer
         Handbook section 4.



6.11.3   M̲a̲i̲n̲t̲e̲n̲a̲n̲c̲e̲ ̲o̲f̲ ̲t̲h̲e̲ ̲D̲a̲t̲a̲ ̲B̲a̲s̲e̲

         The Data Base (DB) implemented in ACDN is a set of
         data structures giving the physical and logical relations
         between items in the ACDN. The key items in the DB
         are as follows:

         C̲o̲n̲f̲i̲g̲u̲r̲a̲t̲i̲o̲n̲ ̲a̲n̲d̲ ̲i̲n̲v̲e̲n̲t̲o̲r̲y̲ ̲d̲a̲t̲a̲

         -   End user devices (e.g. terminals, printers, host
             channels) - each device has associated a logical
             identification, a physical path (relates to inventory
             items attributes) and an attribute list (e.g. type,
             priviledges, protocol).

         -   Inventory Items - a list of all "line replaceable
             units" in the access networks and, the backbone
             network ordered per equipment type. Each unit has
             a record defining all external logical and physical
             connections with cross reference to the device
             path definitions for consistency checking.

         -   User catalogue - each user allowed access to the
             network is identified by a user profile, i.e. a
             user ID, password, user attributes (e.g. type,
             priviledges, priority).

         S̲t̲a̲t̲i̲s̲t̲i̲c̲a̲l̲ ̲a̲n̲d̲ ̲b̲i̲l̲l̲i̲n̲g̲ ̲D̲a̲t̲a̲

         -   For each transaction type, there will be statistical
             and billing information including host terminal,
             user identification plus time information.

         M̲o̲d̲e̲l̲l̲i̲n̲g̲ ̲D̲a̲t̲a̲

         -   Test configuration (e.g. terminals, concentrators,
             nodes and host) including their interconnection.

         -   Traffic profiles for terminals and hosts including
             time and length distribution.


         Subsets of the data base exist in three versions at
         the NMH. The previous version, the current version,
         and the version under update - only the latter is subject
         to any changes or updates. The data base is based on
         the index sequential access method: CRAM. Updates may
         be performed interactively or in batch mode.

6.11.4   D̲a̲t̲a̲ ̲B̲a̲s̲e̲ ̲M̲a̲n̲a̲g̲e̲m̲e̲n̲t̲ ̲S̲y̲s̲t̲e̲m̲ ̲U̲s̲e̲r̲ ̲G̲r̲o̲u̲p̲s̲

         Two different user groups of the DBMS are foreseen.

         The first group comprises the experienced programmers
         and the DB administrator who are responsible for the
         integrity of the DB. The other group consist of technicians
         who are interested in the configuration subset of the
         DB.

         D̲e̲v̲e̲l̲o̲p̲m̲e̲n̲t̲ ̲U̲s̲e̲r̲s̲

         The experienced users of the DB, has a detailed knowledge
         of the structure of the DB. Their requirements to a
         DBMS are:

         -   Query language facilities which can also be used
             for DB modifications

         -   Optimization capability which allows the experienced
             user to utilize his detailed knowledge of the DB
             structure to the full extend.

         M̲a̲i̲n̲t̲e̲n̲a̲n̲c̲e̲ ̲U̲s̲e̲r̲s̲

         The technicians who are responsible for the hardware
         components of the ADCN, i.e. the configuration have
         a different requirement to the DBMS:

         -   Specific retrieval capabilities to the configuration
             DB.

         -   Specific and limited change capability to the configuration
             DB

         -   Optimal access capabilities with small response
             times

         -   Guarantee for DB integrity during exercise of the
             above capabilities.

         The DBMS offered by Christian Rovsing will serve both
         user groups. The maintenance user will have specific
         and special tailored access capabilities, which can
         be expanded by AC is required in the future. The development
         users, i.e. programmers will get the total tool set,
         developed and used by Christian Rovsing during implementation.


6.11.5   D̲a̲t̲a̲ ̲B̲a̲s̲e̲ ̲M̲a̲n̲a̲g̲e̲m̲e̲n̲t̲ ̲T̲o̲o̲l̲s̲

         Instead of a standard and general purpose DBMS, Christian
         Rovsing will offer to Air Canada an extensive set of
         versatile tools, which when used by experienced users
         will provide great flexibility in many different aspect,
         e.g. query situations with complex dicision parameters
         followed by data base modifications. Also optimization
         situations where the experienced users detailed knowledge
         of the DB can be performed due to the high flexibility
         of DBMS.

         It is Christian Rovsing's experience, that modern software
         development strategies like structured programming
         combined with good documentation techniques is more
         beneficial to an experienced programming organization
         like Air Canadas, than the application of a more or
         less rigid DBMS which tend to obscure the actual data
         organization and which might only have limited optimization
         capabilities.

         The set of tools which Christian Rovsing will offer
         as a DBMS are aimed specifically at Air Canadas use.
         They include:

         o   Processing of the total DB is a sequential fashion
             to provide

             -   selection of subsets of the DB for downline
                 loading to other subsystems

             -   printout of the total database for manual inspection.

             -   foundation for user written query statements.

             -   optimization of DB in connection with reorganization.

         o   Optimal processing of any subset of the total DB,
             like

             -   configuration DB
             -   inventory DB
             -   statistical DB
             -   billing DB

         All the tools of the DBMS will be programmed in the
         high level language Pascal, and all the capabilities
         inherent in this language will be available for the
         user.



         Christian Rovsing will provide a source code library
         of all the components necessary for performing the
         above mentioned tasks. This includes definition of
         all record types and print modules for each type of
         record. The following example written in pseudo code
         will demonstrate how the tools can be applied.



         QUERY:
             DEFINE ICC ̲RECORD,
Module 1            ICC ̲FIELD1,
retrie-             ICC ̲FIELD2;
ve
             DEFINE TERMINAL ̲RECORD,
from                TERM ̲ID,
libra-              TERM ̲TYPE,
ry                  TERM ̲TEST ̲MODE ̲INDICATOR;
         LOOP:
             READ NEXT ̲RECORD INTO RECORD

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - 

User         IF RECORD = TERMINAL ̲RECORD THEN
written         IF TERM ̲TEST ̲MODE ̲INDICATOR = MODE1 THEN
state-          CALL PRINT ̲TERMINAL ̲RECORD;
ments

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 - - - 


             ELSE GOTO LOOP;

Module 2     PRINT ̲TERMINAL ̲RECORD:
retrieved           PRINT(TERM ̲LID, TERM ̲TYPE, TERM ̲TEST ̲MODE
                 ̲
from li-        INDICATOR),
brary           END PRINT ̲TERMINAL ̲RECORD;

             PRINT ̲ICC ̲RECORD;
                PRINT(FIELD1, FIELD2);
                END PRINT ̲ICC ̲RECORD;

             END QUERY;












                    Fig. III 6.11.5-1



         In order to make a printout of all terminals with a
         specific test mode indicator, all the programmer has
         to do is to retrieve two modules from the source library
         and insert the requested selection criteria before
         submission for compilation and executing. This can
         be controlled interactively from a CRT.

         The software development tools including on line library
         functions and source code editing will minimize the
         extra effort required by the programmer, when using
         this query facility and will be a small expense compared
         to the great flexibility provided. As an example it
         will only require a few statements to perform a bulk
         update of all terminal with some specific characteristics.

         If Air Canada express any concern over giving to much
         flexibility to the programmers, Christian Rovsing is
         also willing to deliver a query language version where
         the library modules are totally hidden from the user
         and where the compilation and execution is performed
         automatically. This will provide a more traditional
         interface to the user.

         In order to provide initial query language facilities
         to the maintenance user, Christian Rovsing will provide
         retrieval capabilities of any individual record type
         within the configuration DB. The terminal user only
         has to enter the record type, i.e. terminal, concentrators
         etc. and the identification key of that record.

         Future enhancement, which might give the maintenance
         user capabilities like simple updates in specific areas
         can be implemented by Air Canada, when requirements
         are identified.

6.11.6   R̲e̲p̲o̲r̲t̲ ̲G̲e̲n̲e̲r̲a̲t̲i̲o̲n̲

         Report generation capabilities are really enhancements
         to the query facilities. In addition to the sequential
         processing of the data base and the selection criteria,
         you might have to collect all printout information
         for sorting before further processing including accumulation,
         counting etc. followed by the final printout.

         Modern structured programming techniques have shown
         how this can be done in a straight forward way in normal
         high level languages without relaxation of any of the
         capabilities found in high level languages. Specialized
         report generators normally either contain output format
         limitations or they are so complicated to use that
         no time saving is obtained.

         Christian Rovsing will develop data base printout programs
         showing how this technique works.



6.11.7   N̲e̲t̲w̲o̲r̲k̲ ̲M̲o̲d̲e̲l̲l̲i̲n̲g̲ ̲S̲o̲f̲t̲w̲a̲r̲e̲ ̲a̲n̲d̲ ̲S̲u̲p̲p̲o̲r̲t̲ ̲f̲o̲r̲ ̲A̲u̲t̲o̲m̲a̲t̲i̲c̲
         ̲N̲e̲t̲w̲o̲r̲k̲ ̲T̲e̲s̲t̲s̲

         o   Network modelling and real life network tests are
             addressed in this section.

         Testing the consequences of network topology changes
         can be performed by means of the "Network Model" which
         is mathematical model of network or by means of the
         "Automated Test & Emulation System" - ATES.

6.11.7.1 N̲e̲t̲w̲o̲r̲k̲ ̲M̲o̲d̲e̲l̲

         The Network Modelling Software Package is a mathematical
         model of the entire network including submodels for
         all types of equipment.

         The model is used for consequence calculation of network
         topology changes. The model includes the entire backbone
         network, the entire terminal access network and the
         entire host access network.

         Input to the network model is the following data structures:

         -   The test configuration data base defining the entire
             network including terminal access net and host
             access net.

         -   A library of submodels for each type of equipment
             (terminal, mux, ICC, node, host). The submodels
             are complex queue models which can be updated by
             library update procedures.

         -   Per terminal connected to the network there shall
             be defined a traffic profile selected from a predefined
             library of traffic profiles. The traffic profile
             defines type of traffic, variation within a 24
             hour period, traffic volume in terms of number
             of transactions and number of input and output
             characters per transaction, destination/source
             of traffic. The traffic profiles may be updated
             by library update procedures.

         Initial values for all network parameters may be specified
         before a simulation.

         A  simulation for a specified time-period is performed
         by the model and output is produced in forms of a log
         data file.




         A special data reduction S/W package is provided for
         output of log data from the model.

         The model is able to provide the following set of data:

         -   Mean value, standard deviation, and maximum value
             over the simulation period of the following parameters:

             -   Queue lengths for all queues in the model
             -   Terminal response times
             -   Line utilization
             -   The parameter sensitivity to an increase/decrease
                 of the network throughput is given for each
                 of the above parameters.

         -   A histogram over a specified time period of above
             parameters may be output.

6.11.8   N̲e̲t̲w̲o̲r̲k̲ ̲T̲e̲s̲t̲i̲n̲g̲ ̲b̲y̲ ̲M̲e̲a̲n̲s̲ ̲o̲f̲ ̲A̲T̲E̲S̲

         The "Automated Test & Emulation System" (ATES) is a
         general test drive system developed by Christian Rovsing
         for the real-life test of major military communication
         systems.

         The software driving this system may be downline loaded
         via the NMH and executed on redundant eqipment in the
         nodes, the front-ends or the EMH.

         The functional capabilities of the ATES is described
         in Appendix F.

         The NMH contains all the software necessary for running
         a real-life test using the ATES:

         -   Transaction Volume Generator
         -   Online Test Controller
         -   Log File Editor (data reduction program)





6.12     E̲l̲e̲c̲t̲r̲o̲n̲i̲c̲ ̲M̲a̲i̲l̲ ̲S̲o̲f̲t̲w̲a̲r̲e̲ ̲P̲a̲c̲k̲a̲g̲e̲

         The Electronic Mail Software Package implements the
         protected message switching service for Type B-TDP
         traffic and Type B - PMS traffic in the ACDN. These
         services can be summarized as follows:

         o   Direct delivery traffic handling (Type B-TDP)

         o   Protected Message Switching
             -   Guaranteed automatic delivery of ATA/IATA messages
                 and automatic routing
             -   Longterm storage of messages for retrieval
             -   Message entry handling
             -   Message intercept, repair handling
             -   Logging, journalization, statistics

         o   Supervision of PMS traffic
             -   Table Handling
             -   Delivery Control
             -   Alarm Supervision
             -   Storage Maintenance

         o   Provisions for electronic mail applications

         o   Adaption to external networks and hosts.

         The EMH Services are provided to the following terminals,
         hosts and external networks:

         Terminals:

         -   Direct connected teleprinters (TTY)
         -   Concentrator Switched terminals (CRT's printers).

         Hosts:

         -   RES
         -   VIA
         -   SUPPH

         External Networks

         -   SITA
         -   ARINC
         -   CNT
         -   TELEX


         The operational specification of these services is
         given in section 4.9, and the functional interfaces
         against terminals, hosts and external networks are
         given in section 6.6, 6.7, 6.9.



6.12.1   I̲n̲t̲e̲r̲f̲a̲c̲e̲s̲ ̲t̲o̲ ̲t̲h̲e̲ ̲E̲M̲H̲

         The EMH connects to the network as a general purpose
         host. This means tht the transport network services
         are used for transport of the messages.

         The interface to the terminals is a HAS-Transport net
         - TAS connection, although the terminal characteristics
         (TTY, CRT, Printer) are mapped on the EMH applications.

         The interface to the hosts is a HAS-Transport net -
         HAS connection.

         The host protocol characteristics are mapped via Host
         Protocol Emulators.

         The interface to the external networks is provided
         by the external Network Access Software (ENAS).

         Interfaces to standard peripherals as supervisor VDU's,
         discs, line printers tape unit is provided in order
         to perform the functions on the EMH.



6.12.2   F̲u̲n̲c̲t̲i̲o̲n̲a̲l̲ ̲D̲e̲s̲c̲r̲i̲p̲t̲i̲o̲n̲ ̲o̲f̲ ̲t̲h̲e̲ ̲E̲M̲H̲

         An overview of the EMH S/W package is given in fig.
         6.12.2-1.

         The EMH S/W package will mainly be based on modifications
         of S/W developed for the FIKS and CAMPS projets which
         provide services similar to those required for EMH.

         The functions of the EMH is distributed on the following
         subsystems:

         o   T̲D̲P̲ ̲T̲r̲a̲f̲f̲i̲c̲ ̲H̲a̲n̲d̲l̲i̲n̲g̲ ̲S̲u̲b̲s̲y̲s̲t̲e̲m̲ ̲(̲T̲D̲P̲)̲
             -   TDP transfer session setup (HOST-EMH)
             -   Storage of message
             -   Enqueuing for printout
             -   Acknowledgement to Host.

         o   M̲e̲s̲s̲a̲g̲e̲ ̲A̲n̲a̲l̲y̲s̲i̲s̲ ̲S̲u̲b̲s̲y̲s̲t̲e̲m̲
             -   Incoming message analysis (PMS)
                 ATA/IATA Messages and Telex are accepted
             -   Address look up



             -   Incoming message statistics Journalization
             -   Reporting in case of exceptions
             -   Release incoming messages for delivery
             -   Assignment of input serial number
             -   Acknowledgement to originator
             -   Enqueuing of distribution and storage

         o   M̲e̲s̲s̲a̲g̲e̲ ̲O̲u̲t̲p̲u̲t̲ ̲S̲u̲b̲s̲y̲s̲t̲e̲m̲
             -   Output of all kinds of messages to printer
                 devices and to hosts and external networks.
             -   Output queue handling, delivery according to
                 priority.
             -   Outgoing statistics, reporting, journalization
             -   Message burn in case of burn limit excess
             -   Assignment of serial output no.
             -   Output to "drain device" (disc, tape)

         o   M̲e̲s̲s̲a̲g̲e̲ ̲E̲n̲t̲r̲y̲ ̲S̲u̲b̲s̲y̲s̲t̲e̲m̲ ̲(̲M̲E̲S̲)̲
             -   Interactive message entry/message edit
             -   Interactive retrieval
             -   Release of entered/retrieval/edited messages.

         o   M̲e̲s̲s̲a̲g̲e̲ ̲D̲i̲s̲t̲r̲i̲b̲u̲t̲i̲o̲n̲ ̲S̲u̲b̲s̲y̲s̲t̲e̲m̲ ̲(̲M̲D̲S̲)̲
             -   Distribution according to
                 1. address list (tx.no)
                 2. alternate/duplicate delivery
             -   For distribution to SITA/ARINC:
                 1. check message length and address
                    multiplicity (intercept if overrun)
                 2. Strip addresses already delivered.
             -   Enqueuing for delivery according to message
                 priority
             -   Enqueuing for drain

         o   S̲t̲o̲r̲a̲g̲e̲ ̲a̲n̲d̲ ̲R̲e̲t̲r̲i̲e̲v̲a̲l̲ ̲S̲u̲b̲s̲y̲s̲t̲e̲m̲ ̲(̲S̲R̲S̲)̲
             -   Storage of accepted messages
             -   Retrieval catalog
             -   Retrieval of messages and log/journal

         o   S̲u̲p̲e̲r̲v̲i̲s̲o̲r̲y̲ ̲F̲u̲n̲c̲t̲i̲o̲n̲s̲ ̲S̲u̲b̲s̲y̲s̲t̲e̲m̲ ̲(̲S̲F̲S̲)̲
             -   Monitoring (alarms, event logging)
             -   Control (table handling, device control, storage
                 control)
             -   Message Repair functions

         o   E̲l̲e̲c̲t̲r̲o̲n̲i̲c̲ ̲M̲a̲i̲l̲ ̲S̲e̲r̲v̲i̲c̲e̲ ̲S̲u̲b̲s̲y̲s̲t̲e̲m̲ ̲(̲E̲M̲S̲)̲
             -   Resource Management
             -   Allocation of queues, discfiles, controlblocks
             -   Storage/Retrieval
             -   Access of queues, files, controlblocksd

             S̲t̲a̲n̲d̲a̲r̲d̲ ̲S̲o̲f̲t̲w̲a̲r̲e̲
             -   Ref. CR80 handbook.

















































                     Figure 6.12.2-1

                          T B D


6.12.2.1 T̲D̲P̲ ̲T̲R̲A̲F̲F̲I̲C̲ ̲H̲A̲N̲D̲L̲I̲N̲G̲ ̲S̲U̲B̲S̲Y̲S̲T̲E̲M̲

         The TDP Subsystem handles the tranfer of non-ATA/IATA
         messages and non-telex messages (tickets, airway bills
         etc.). The transfer session is initiated from the originating
         host. The host has to provide the following informations:

         -   Destination printer address (mandatory)
         -   Delivery priority level (optional)
         -   Message burn time (optional)

         The message is stored on a TDP message file. This file
         is a wrap-around file. Accountability check for delivery
         is provided on the file, but no retrieval features
         are provided. In case of TDP message non-delivery (no
         burn time specified) on wrap-around the message is
         copied to a background garbage collection file for
         TDP traffic and an alarm is generated to the EMH supervisor.

         The TDP message is enqueued to the output device according
         to priority. Output is performed by the MOS. The TDP
         message stays in the queue until it is delivered to
         the output device or burnt. When successfully stored
         on disc the message is acknowledged to the originating
         host and the session is closed.



6.12.2.2 M̲e̲s̲s̲a̲g̲e̲ ̲A̲n̲a̲l̲y̲s̲i̲s̲ ̲S̲u̲b̲s̲y̲s̲t̲e̲m̲

         The MAS handles the analysis and validation of ATA/IATA
         messages and telex. Messages entered from terminals,
         hosts or external networks are stored on temporary
         storage and analyzed by the MAS.

         The ATA/IATA messages are syntactically checked as
         described in section 6.9.1. The addresses are looked
         up and stored on binary form in controlblocks for the
         MDS. Telex messages are recognized on the 2 first letters:
         'TX'. TX-Number or mne monic addresses are looked up
         and stored on binary form as for ATA/IATA messages.

         In case of any format error or invalid address the
         message is rejected back to the originating terminal
         or sent for repair in case of origination from hosts
         or external networks.

         When checked the message is released for delivery by
         the MDS and enqueued for storage by the SRS. Serial
         input no. is assigned to the message and acknowledgement
         to the originator is returned.



6.12.2.3 M̲e̲s̲s̲a̲g̲e̲ ̲O̲u̲t̲p̲u̲t̲ ̲S̲u̲b̲s̲y̲s̲t̲e̲m̲

         The MOS is the server process of all output queues.
         For each EMH Subscribing device there is a priority
         output queue (6 priority levels are recognized including
         the levels of ATA/IATA messages).

         The output queues are the only queues of significant
         lengths. No hard limits are put on the queue size,
         but queue thresholds may be specified by the EMH supervisor.
         System queue capacity is only limited by the disc capacity.
         The output queues are served in priority order per
         device. The messages stay in the queues until the device
         is ready to receive.

         If a "burn time" is specified (TDP traffic) the message
         is burnt, i.e. discarded, in case of burntime excess.

         When successfully output the output serial number is
         added to the retrieval catalog.

         Output to a device depends on the device status. This
         status is currently maintained by automatic supervisory
         functions and the interactive supervisory function.

         The status of a device may be one of the following:

         -   Device online/offline/failed-open circuit
         -   Hold traffic
         -   Alternative/duplicate route specified
         -   Drain file specified.

         Note that MOS serves as well printers as hosts and
         external networks.



6.12.2.4 M̲e̲s̲s̲a̲g̲e̲ ̲E̲n̲t̲r̲y̲ ̲S̲u̲b̲s̲y̲s̲t̲e̲m̲ ̲(̲M̲E̲S̲)̲

         The MES handles the interactive procedures for EMH
         users specified in section 4.9.5.2.3 "Message Entry
         Handling". The following procedures are supported:

         -   Enter message (ENT)
         -   Retrieve Message for hardcopy output (RTR)
         -   Retrieve for display (RTD)
         -   Edit message (EDI)
         -   Release edited message for delivery (REL)

         After release/entry of message the message is enqueued
         for analysis by the MAS.



6.12.2.5 M̲e̲s̲s̲a̲g̲e̲ ̲D̲i̲s̲t̲r̲i̲b̲u̲t̲i̲o̲n̲ ̲S̲u̲b̲s̲y̲s̲t̲e̲m̲

         The MDS is responsible for the automatic distribution
         of the messages to the output queues.

         The distributioon is performed on basis of the binary
         addressed looked up by MAS or TDP. Based on the output
         addresses the MDS distributes so that:

         -   the message is enqueued once per output device
         -   no message is enqueued to the originating printer,
             host of external network
         -   alternate or duplicate delivery is handled
         -   for delivery to SITA/ARINC the message is checked
             for length and address multiplicity.
             Furthermore address stripping is performed.



6.12.2.6 S̲t̲o̲r̲a̲g̲e̲ ̲a̲n̲d̲ ̲R̲e̲t̲r̲i̲e̲v̲a̲l̲ ̲S̲u̲b̲s̲y̲s̲t̲e̲m̲

         The SRS is the access subsystem to the long term storage.
         Long term storage is provided for at least 8 busy hours
         traffic, ref. section 3.5.3. The messages are stored
         sequentially and accessed via a retrieval catalog with
         the retrieval keys:

         -   Time, time range
         -   Originating & destination terminals
         -   Input serial no.
         -   Output serial no.

         The message file is a wrap-around file. Space for storage
         is provided by deletion of old messages corresponding
         to 1 busy hour. During deletion it is checked in the
         catalog whether the message has been delivered or not
         (serial output no. added for each destination). In
         case of non-delivery the message is copied to a background
         garbage collection file for PMS traffic and a report
         is generated to the EMH supervisor. All open queue
         references are removed.

         As mentioned the retrieval catalog acts as a journal
         file which provides for message accountability and
         as a checkpoint carrier to be used during recovery
         after switchover.

         The following events are journalized:

         -   When the message has been stored
         -   When the message has been transmitted to an output
             device
         -   When the message is cancelled from a queue


         Retrieval takes place using the above specified retrieval
         keys. The following keys must at least be specified:

         o   Time, time range and terminal id
       or    o   Terminal id and input ser.no.
       or    o   Terminal id and output ser.no.
       or    o   a combination of the above keys.

         The time used for retrieval will of course depend on
         how specific the retrieval keys are. If more than 5
         matches are found the operator is requested for more
         specific keys - ref. section 4.9.5.2.3.



6.12.2.7 S̲u̲p̲e̲r̲v̲i̲s̲o̲r̲y̲ ̲F̲u̲n̲c̲t̲i̲o̲n̲s̲ ̲S̲u̲b̲s̲y̲s̲t̲e̲m̲ ̲

         The SFS handles the interactive procedures for EMH
         supervisors as specified in section 4.9.5.2.4 "Message
         Repair Function" and 4.9.5.3 "EMH Supervisory Functions".

         Furthermore the SFS handles the control messages to
         and from the NCC automatically. The messages comprises
         the following functions:

         -   On-line table updates
         -   Device control
         -   Statistics, reporting
         -   Delivery control.



6.12.2.8 E̲l̲e̲c̲t̲r̲o̲n̲i̲c̲ ̲M̲a̲i̲l̲ ̲S̲e̲r̲v̲i̲c̲e̲ ̲S̲u̲b̲s̲y̲s̲t̲e̲m̲ ̲a̲n̲d̲ ̲S̲t̲a̲n̲d̲a̲r̲d̲ ̲S̲o̲f̲t̲w̲a̲r̲e̲

         Means for development of electronic mail applications
         are provided as specified in section 4.9.5.4 "Electronic
         Mail Services".