MULTICS TECHNICAL BULLETIN                                 MTB765
  
  
  To:       MTB Distribution
  
  From:     Mary Crawford
  
  Date:     08/07/87
  
  Subject:  Multics DSA Network Administration Guide
  
                 -----------------------------------
  
  This  MTB describes  the DSA   Network software  for the  Multics
  System.  As mentioned  in a cover page there  are several changes
  that  need to  be implemented   before publishing  this mtb  as a
  manual.
  
                 -----------------------------------
  
  Comments on this MTB should be directed by Multics mail to:
  
      System M:  GDixon.Multics
  
  or by phone to:
  
      Gary Dixon
      HVN:  862-3593
      DDD:  602-862-3593
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  _________________________________________________________________
  
  Multics project  internal documentation; not to  be reproduced or
  distributed outside the Multics project without permission of the
  Director of MDC.

  
  
  
  
  
  
  
  
  
                       PROBLEMS WITH THE MANUAL
  
  
  
  
  
  
       If  this manual  is to  be published  at a  future date  the
  following changes should be made:
  
  1.  In section  1, page 6 under "Common  exchange Interface (CXI)
      Protocol and  DN8/7100 Control" change all  DN8 references to
      DN7.
  
  2.  In section  2, page 8  command descriptions should  not be in
      section entitled "Start-up of DSA" but should be in their own
      section.  These commands are located in several places in the
      manual.
  
  3.  In section 2, page 10,11  the paragraph starting with "Listed
      below are the steps to follow to complete......"  ending with
      "10.   Log in the  other DSA daemons."   is an overview  that
      should be at the beginning of the section.
  
  4.  In  section  2,  page  19  under  "Loading  and  Executing  a
      Generator Image",  the admin_dsa.ec does all  of this.  There
      needs  to be  documentation for  this.  Looks  like it  is in
      Section 9.
  
  5.  In  section  7,  page  16  under  "Changes  to  the ttt_info_
      subroutine" states that "The  following new entry point....";
      however,  the entry  point is  located on  page 7-20  "Entry:
      ttt_info_$dsatm_device".
  
  6.  In section 7, page 22 under "Using EMACS" the video system is
      automatically  invoked  if  not  already  activated when user
      enters Emacs.  This section needs  to be reworked in light of
      this.   Without  invoking  video,  there  is  some video like
      functionality.
  
  7.  In section 8, page 3 under "Process Manipulation Commands" in
      the sentence that reads "....commands permits the operator to
      specify..."   it should  possibly be  initializer instead  of
      operator.
  
  
  
  

  
  
  8.  In section  9, page 11  under "Arguments" beginning  with the
      sentence "Lines to add at  the end of admin.ec in order....",
      and including the rest of section  9 seems to be in the wrong
      place to talk about installing DSA which is supposed to be in
      section 2.
  
  9.  In Appendix A there should be some notation that This section
      only applies to the French Installations as some ec's are not
      on our system.
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

  
  
  
  
  
  
  
  
  
                               PREFACE
  
  
  
  
       This  manual  is  for  Multics  network administrators.  Its
  purpose is to provide them  with the reference material they need
  to startup DSA  on Multics and to administer a  Multics node of a
  DSA network.
  
  
       This manual offers the following:
  
       o    An overview of DSA on Multics
  
       o    Step-by-step  instructions  for   starting  DSA  up  on
            Multics
  
       o    Descriptions of the major  components of DSA on Multics
            (the  login server  subsystem, the  network information
            table, the CXI subsystem, the various DSAC subsystems)
  
       o    Explanations  of  how  the  user  environment  and  the
            operator environment  are different under DSA  from how
            they are under MCS
  
       o    Detailed descriptions of DSA-related commands
  
  
       Other Honeywell manuals which may  be of interest to Multics
  network administrators are listed below.
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  Copyright (c) Honeywell Bull Inc., 1986            File No.: 1L63
  

  
  
       Order
       Number       Title
  
       DP43         DNS System Installation and Generation
       DP42         DNS System Operations
       DM23         DNS Terminal User's Guide
       DS58         Inline/Online  Test  and  Verification  Package
                    User's Guide
       DP31         Inline/Online  Test  and  Verification  Package
                    Reference Manual
       DV47         DSA  Software,   Documentation,  and  Education
                    Directory
  
  
       Bull  manuals which  may be  of interest  to Multics network
  administrators are listed below.
  
  
       Reference
       Number       Title
  
       39 A2 9807   DNS System Generation
       39 A2 9799   DNS System Operations
       39 A2 9820   DNS Terminal Management Reference Manual
       39 A2 00DM   DNS In/On Line Test Operator's Guide
       39 A2 26DM   DSA Network System Messages and Return Codes
       39 A4 9798   DNS Documentation Directory
       30 A4 9726   DSA Documentation Directory
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  Copyright (c) Honeywell Bull Inc., 1986            File No.: 1L63
  

  
  
  
  
  
  
  
  
                               CONTENTS
  
  
                                                           Page
  
  Section 1     Introduction  . . . . . . . . . . . . . .   1-1
                   Differences Between MCS and MCA  . . .   1-2
                   Extensions to the Multics System . . .   1-2
                      Multics Networking Architecture . .   1-2
                      Changes to the Answering Service  .   1-3
                      Changes to the Hardcore . . . . . .   1-4
                      Changes to System Exec_Coms . . . .   1-4
                   DSA Specific Software  . . . . . . . .   1-4
                      Network Information Table (NIT) . .   1-4
                      Common eXchange Interface (CXI)
                       Protocol and DN8/7100 Control  . .   1-4
                      Session Control . . . . . . . . . .   1-5
                      Transport Control . . . . . . . . .   1-5
                      Terminal Management (TM)  . . . . .   1-5
                      Unified File Transfer (UFT) . . . .   1-6
                      Distributed System Administration
                       and Control (DSAC) . . . . . . . .   1-6
                         DSA_DSAC.Daemon  . . . . . . . .   1-7
                            ASF LOG Function  . . . . . .   1-7
                            NAD Function  . . . . . . . .   1-7
                            ASF Function  . . . . . . . .   1-7
                         The dssr Subsystem . . . . . . .   1-8
                            Remote NOI Access Function  .   1-8
                            Remote NAD Access Function  .   1-8
                            Session Exerciser Function  .   1-8
                      Datanet 8 (DN8/7100) and
                       Distributed Network Supervisor
                       (DNS)  . . . . . . . . . . . . . .   1-8
                         Files That are Unloaded from the
                          Delivery Tape . . . . . . . . .   1-9
                         Files That Must Be Built . . . .   1-9
                         Files That Are Generated . . . .   1-9
                         DN8/7100 Tests and Diagnostics
                          (T&D) . . . . . . . . . . . . .  1-10
  
  Section 2     Starting Up DSA on Multics  . . . . . . .   2-1
                   Tailoring the Multics Environment for
                    DSA . . . . . . . . . . . . . . . . .   2-1
                      Editing the Multics Config Deck . .   2-2
                      Creating New Access Control
                       Segments . . . . . . . . . . . . .   2-2
  
  
  

  
                           CONTENTS (cont)
  
  
                                                           Page
  
                      Updating the installation_parms
                       Segment  . . . . . . . . . . . . .   2-3
                      Changing the TTF  . . . . . . . . .   2-3
                      Setting ACLs on the DSA Logs  . . .   2-3
                       Registering the New DSA Daemons  .   2-4
                      Building a Multics DSA Hierarchy  .   2-5
                      dsa_fep_working_dir (dsafwd)  . . .   2-8
                   Building the Network Information Table   2-9
                   Building a DN8/7100 DIR 'sys>' . . . .   2-9
                   Managing DN8/7100 Generation and Run
                    Operations  . . . . . . . . . . . . .  2-10
                      Loading the DNS Software onto
                       Multics  . . . . . . . . . . . . .  2-11
                      Converting GCOS Files to Multics
                       Format . . . . . . . . . . . . . .  2-11
                      dsa_cv_dns_tape (dsacvt)  . . . . .  2-12
                      Creating the CXI Driver Segment . .  2-15
                      cxi_create_driver_seg . . . . . . .  2-16
                      Starting Session Control  . . . . .  2-17
                      dsa_init  . . . . . . . . . . . . .  2-18
                      Logging in the CXI Input Daemons  .  2-19
                      Starting the CXI Subsystem  . . . .  2-19
                      Loading and Executing a Generator
                       Image  . . . . . . . . . . . . . .  2-19
                      Loading, Executing, and Starting a
                       Runnable Image . . . . . . . . . .  2-20
                      Starting the CXI Driver . . . . . .  2-20
                      Logging in the Other DSA Daemons  .  2-20
  
  Section 3     Network Login Server  . . . . . . . . . .   3-1
                   Registering the Login Server Daemon  .   3-2
                   Starting the Login Server Request
                    Mechanism . . . . . . . . . . . . . .   3-2
                      ls_request_server . . . . . . . . .   3-3
                   Logging in the Login Server Daemon . .   3-4
                      login, (l)  . . . . . . . . . . . .   3-4
                   Controlling the Login Server Daemon  .   3-5
                   Network Login Server Requests  . . . .   3-6
                      self_identify . . . . . . . . . . .   3-6
                      help  . . . . . . . . . . . . . . .   3-6
                      list_help, (lh) . . . . . . . . . .   3-7
                      list_endpoints, (lsep)  . . . . . .   3-8
                      list_requests, (lr) . . . . . . . .   3-8
                      quit, (q) . . . . . . . . . . . . .   3-9
                      start_login_service . . . . . . . .  3-10
                      stop_login_service  . . . . . . . .  3-10
  
  Section 4     Network Information Table . . . . . . . .   4-1
                   The Purpose of the NIT . . . . . . . .   4-1
  
  

  
                           CONTENTS (cont)
  
  
                                                           Page
  
                   Building a NIT . . . . . . . . . . . .   4-2
                   NIT Source Language  . . . . . . . . .   4-2
                      NIT Source Language Syntax  . . . .   4-3
                   NIT Object Definitions . . . . . . . .   4-4
                      Mna_general_info  . . . . . . . . .   4-6
                         Syntax . . . . . . . . . . . . .   4-6
                         Example  . . . . . . . . . . . .   4-8
                      Service . . . . . . . . . . . . . .   4-9
                         Syntax . . . . . . . . . . . . .   4-9
                         Example  . . . . . . . . . . . .  4-11
                      Session_type_descriptor . . . . . .  4-12
                         Syntax . . . . . . . . . . . . .  4-12
                         Example  . . . . . . . . . . . .  4-15
                      Sc_loc  . . . . . . . . . . . . . .  4-16
                         Syntax . . . . . . . . . . . . .  4-16
                         Example  . . . . . . . . . . . .  4-20
                      Mailbox . . . . . . . . . . . . . .  4-21
                         Syntax . . . . . . . . . . . . .  4-21
                         Example  . . . . . . . . . . . .  4-23
                      Dsac_info . . . . . . . . . . . . .  4-24
                         Syntax . . . . . . . . . . . . .  4-24
                         Example  . . . . . . . . . . . .  4-25
                      Admin_function  . . . . . . . . . .  4-26
                         Syntax . . . . . . . . . . . . .  4-26
                         Example  . . . . . . . . . . . .  4-28
                      Admin_group . . . . . . . . . . . .  4-29
                         Syntax . . . . . . . . . . . . .  4-29
                         Example  . . . . . . . . . . . .  4-30
                      Ts  . . . . . . . . . . . . . . . .  4-31
                         Syntax . . . . . . . . . . . . .  4-31
                         Example  . . . . . . . . . . . .  4-31
                      Frontend  . . . . . . . . . . . . .  4-32
                         Syntax . . . . . . . . . . . . .  4-32
                         Example  . . . . . . . . . . . .  4-34
                      Session_Route . . . . . . . . . . .  4-35
                         Syntax . . . . . . . . . . . . .  4-35
                         Example  . . . . . . . . . . . .  4-35
                      System  . . . . . . . . . . . . . .  4-36
                         Syntax . . . . . . . . . . . . .  4-36
                         Example  . . . . . . . . . . . .  4-38
                      Correspondent . . . . . . . . . . .  4-39
                         Syntax . . . . . . . . . . . . .  4-39
                         Example  . . . . . . . . . . . .  4-41
                      Admin_correspondent . . . . . . . .  4-42
                         Syntax . . . . . . . . . . . . .  4-42
                         Example  . . . . . . . . . . . .  4-44
                   DSA NIT Source Table Example . . . . .  4-45
                   Compiling a NIT  . . . . . . . . . . .  4-70
                      dsa_cv_nif  . . . . . . . . . . . .  4-71
  
  

  
                           CONTENTS (cont)
  
  
                                                           Page
  
                   Installing a NIT . . . . . . . . . . .  4-73
                   Updating a NIT . . . . . . . . . . . .  4-73
  
  Section 5     Common Exchange Interface (CXI) Subsystem   5-1
                      cxi_input_daemon (cid)  . . . . . .   5-2
  
  Section 6     Distributed System Administration and
                 Control  . . . . . . . . . . . . . . . .   6-1
                   The DSA_DSAC Daemon  . . . . . . . . .   6-1
                      Logging In and Initializing the
                       DSA_DSAC Daemon  . . . . . . . . .   6-2
                      Logging Out the DSA_DSAC Daemon . .   6-2
                      run_dsac_daemon_init (rdd_init) . .   6-3
                      run_dsac_daemon (rdd) . . . . . . .   6-4
                      start_admin_function, (start_af)  .   6-8
                      stop_admin_function, (stop_af)  . .   6-9
                   Administrative Interface to Session
                    Control . . . . . . . . . . . . . . .  6-11
                      Multics-Specific Session Control
                       Administration . . . . . . . . . .  6-11
                      dsa_scc . . . . . . . . . . . . . .  6-12
                      Display of DSA Objects on Multics .  6-29
                      dsa_dsac  . . . . . . . . . . . . .  6-30
                   The dssr Subsystem . . . . . . . . . .  6-37
                      The Basic Network Session Exerciser  6-37
                      Remote NOI/NAD Access Facility  . .  6-38
                      dsa_ssu_root (dssr) . . . . . . . .  6-40
  
  Section 7     Changes And New Features That Affect
                 Users  . . . . . . . . . . . . . . . . .   7-1
                   Connecting to Multics from a Remote
                    Terminal  . . . . . . . . . . . . . .   7-1
                      Sample Login/Logout Session . . . .   7-4
                   Changes to the tty_ I/O Module . . . .   7-6
                      New Control Orders  . . . . . . . .   7-6
                      Control Orders That Cannot Be Used    7-7
                   Changes to the set_tty Command . . . .   7-8
                      New Control Arguments . . . . . . .   7-8
                      Control Arguments That Can Not Be
                       Used . . . . . . . . . . . . . . .   7-9
                      Changes to the -ttp Control
                       Argument . . . . . . . . . . . . .   7-9
                      New and Changed Mode Specifications   7-9
                   Changes to the Terminal Type File  . .  7-11
                   Changes to the ttt_info_ Subroutine  .  7-16
                      dsatm_parameters (tmparm) . . . . .  7-16
                      ttt_info_$dsatm_device  . . . . . .  7-20
                      display_connection_list . . . . . .  7-23
  
  
  

  
                           CONTENTS (cont)
  
  
                                                           Page
  
  Section 8     Changes that Affect Operators . . . . . .   8-1
                   Changes to the login Command . . . . .   8-1
                   Changes to Various Initializer
                    Commands  . . . . . . . . . . . . . .   8-2
                      attach and remove Commands  . . . .   8-3
                      Process Manipulation Commands . . .   8-3
                      accept Command  . . . . . . . . . .   8-4
                      drop Command  . . . . . . . . . . .   8-4
                      intercom Command  . . . . . . . . .   8-4
                      substty Command . . . . . . . . . .   8-5
                      define, redefine, and undefine
                       Commands . . . . . . . . . . . . .   8-5
                      accept_vchn Command . . . . . . . .   8-5
                      accept_vchn . . . . . . . . . . . .   8-6
                   Preaccepting Terminals Associated with
                    DSA Channels  . . . . . . . . . . . .   8-8
  
  Section 9     Implementation of new exec commands . . .   9-1
  
  Section 9     Specific DSA hierarchy structure  . . . .   9-1
                   Dynamic environment built in
                    frontend_working_dir  . . . . . . . .   9-2
                      gen_dn7.ec  . . . . . . . . . . . .   9-4
                      start_dn7.ec  . . . . . . . . . . .   9-6
                      load_dn7.ec . . . . . . . . . . . .   9-7
                      stop_dn7.ec . . . . . . . . . . . .   9-8
                      dump_dn7.ec . . . . . . . . . . . .   9-9
                      st_dn7.ec . . . . . . . . . . . . .  9-10
                      start_dsa . . . . . . . . . . . . .  9-11
  
  Appendix A         MULTICS DSA PHASE 1 INSTALLATION
                 PROCEDURE  . . . . . . . . . . . . . . .   A-1
  
  Appendix B    Exec_Coms . . . . . . . . . . . . . . . .   B-1
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

  
  
  
  
  
  
  
                              SECTION 1
  
  
                             INTRODUCTION
  
  
  
  
       Multics DSA software provides the following:
  
       o    The ability to have Multics act as a DSA host
  
       o    Interconnections  between Multics and  other Honeywell,
            CII-HB, and foreign systems
  
       o    Access to Multics applications from terminals connected
            via DSA terminal management
  
       o    File  transfer between  Multics and  other DSA  systems
            using the unified file transfer (UFT) facility
  
       o    A DSAC ASF on Multics
  
       o    A DSAC NAD on Multics
  
       o    The   ability   to   load,   dump,   and   generate   a
            locally-connected or a remote DN8/7100
  
       o    DSA terminal management
  
  
       Multics  DSA software  includes the  following extensions to
  the Multics system:
  
       o    The  addition  of  a  Multics  networking  architecture
            (MNA), which provides new software layering and dynamic
            connection management
  
       o    Changes to  the answering service, which  are invisible
            to the user except for  the addition of a network login
            server
  
       o    Changes to  the hardcore, mainly consisting  of changes
            to IPC and IPS, which  are invisible to the user except
            for a new IPC entrypoint
  
  
  

  
  
  
  These extensions are described later in this section.
  
  
       Multics  DSA software  includes the  following DSA  specific
  software:
  
       o    Network information table (NIT)
  
       o    Common exchange interface (CXI) protocol
  
       o    Session control
  
       o    Transport control
  
       o    Terminal management
  
       o    Unified file transfer (UFT)
  
       o    Distributed system administration and control (DSAC)
  
  This software  is described later in this  section.  This section
  also  provides an  overview of  the DN8/7100  and the distributed
  network supervisor (DNS).
  
  
  DIFFERENCES BETWEEN MCS AND MCA
  
       Under DSA the user can only login at system_low.
  
       The   user   cannot   use   dial_manager_$privileged_attach,
  dial_manager_$release_channel  and dial_manager_$dial_out  on the
  DSA channels.
  
       DSA  runs in  ring 2,   this eliminates  the possibility  of
  Ring_1_Repair.SysDaemeon,  Dumper or   Retriever from  logging in
  from DSA as  a terminal.  The user will be  able to login through
  the message coordinator and through an MCS channel.
  
       The last character of the screen under a DSA connection with
  video  stays   with  the  cursor   on  the  next   line  and  the
  line_indicator.
  
  
  EXTENSIONS TO THE MULTICS SYSTEM
  
  
  Multics Networking Architecture
  
       The Multics  DSA implementation uses  a number of  the ideas
  defined as part of the new Multics networking architecture (MNA).
  In   particular,  DSA   allows  connections   (sessions)  to   be
  dynamically created and deleted  without being predefined.  (With
  
  

  
  
  
  MCS,  each connection must  be predefined in  the CMF.)  The  DSA
  communications   protocols,   session   control   and   CXI,  are
  implemented in an inner ring; however, unlike with MCS, where the
  communications  protocols are  implemented in  ring 0,  with DSA,
  they  are  implemented  in  ring  2.   The  DIA connection to the
  frontend is handled using the  standard IO interface (IOI).  This
  combination of using ring 2 and  IOI provides a more flexible and
  robust  environment  for  implementing,  testing,  and  debugging
  complicated  communications protocols.    Note that  MCS coexists
  with DSA.
  
  
  Changes to the Answering Service
  
       In order to avoid changing the answering service each time a
  new type of  network must be supported, the concept  of a network
  login server has  been introduced.  The login server  is a daemon
  process which "listens" for  incoming network connection requests
  and engages  in whatever dialogue is necessary  to determine what
  should  be done  with the  connection requests.   For example,  a
  remote  user trying to  login to Multics  must provide his  name,
  password, login  arguments, etc.  The login  server packages this
  information into  formatted structures and communicates  with the
  answering service  (using the user message  facility) to actually
  get   a  process  created.    The  protocol  which   allows  this
  communication between the login  server and the answering service
  consists of wakeups and message segments.  This division of labor
  allows the login server to handle the network-specific interface,
  so  the  answering  service  only  needs  to  handle the standard
  formatted structures.  The login server  is also designed to make
  different ways  of obtaining the required  login information easy
  to implement.  For instance, the DSA login server uses the normal
  Multics  greeting banner, login  line, password prompt,  etc.  if
  the connection  is made through  DSA terminal management,  but it
  gets  the  user  name  and  password  from  the  session  control
  submitter  ID  record  if  the  connection  is  for  unified file
  transfer  (UFT).  The  actual code  used by  the login  server is
  picked dynamically  based on the name of  the connection endpoint
  (mailbox) and information in the network information table (NIT).
  This  allows for  easy customization   of the  login dialogue  to
  support different dialogue requirements,  e.g., those of Videotex
  terminals.  The login server is described in detail in Section 3.
  
  
       Another answering service change, which is not DSA specific,
  has  been made  to improve  the way  the answering  service sends
  "warn" messages  to users.  Until now, the  answering service has
  forcibly  "blasted" the  message onto  the user's  terminal.  But
  this  is no  longer possible   because, as  mentioned above,  the
  answering service does  not know about DSA connections  or how to
  use them (the login server does instead).  Thus, a new IPS signal
  has been defined  and a default handler for this  signal has been
  
  

  
  
  
  provided.  The answering service puts the "warn" message into the
  user message facility message segment and sends the IPS signal to
  the user's  process.  The default handler reads  the message from
  the message  segment and sends  it to the  user's terminal.  This
  happens  in  the  user's  process  so  the  terminal state is not
  destroyed.   The new IPS  signal is described  in more detail  in
  Section 7.
  
  
  Changes to the Hardcore
  
       As part  of the DSA  implementation, some changes  have been
  made  to the IPC  facility.  In particular,  a new type  of event
  channel has been  defined which, in addition to  sending a normal
  IPC  wakeup, also sends  an IPS "wkp_"  signal.  This allows  the
  target process to be woken up  whether or not it is blocked.  The
  only user  visible aspect of this  change is the addition  of the
  "create_event_channel" entrypoint  in ipc_.  The new  type of IPC
  event channel is described in more detail in Section 7.
  
  
  Changes to System Exec_Coms
  
       In  order to  run DSA  several changes  are required  in the
  system_startup.ec  (ssu.ec)  and  admin.ec.   These  changes  are
  described in Section 9.
  
  
  DSA SPECIFIC SOFTWARE
  
  
  Network Information Table (NIT)
  
       The  NIT is  the central  repository for  describing the DSA
  network configuration on Multics.  The NIT is described in detail
  in Section 4.
  
  
  Common eXchange Interface (CXI) Protocol and DN8/7100 Control
  
       CXI  provides  the  programmatic  interface  between session
  control and transport control.  It  does not implement a protocol
  in  the DSA  sense, but  is  only  an interface.   CXI is  needed
  because  session control  runs in  Multics and  transport control
  runs in  the DN8/7100 and  they must communicate  through the DIA
  hardware connection.  A  subsystem, cxi_input_daemon, is provided
  to control a DN8/7100 frontend and  to start up the input side of
  CXI.  Normally,  this subsystem is  run in a  daemon process, and
  there  is one  such daemon  for each  DN8/7100 configured  on the
  system.    Specifically,  the   cxi_input_daemon  subsystem   has
  requests (e.g.,  load_frontend, dump_frontend) which are  used to
  control a DN8/7100.  There are also requests (e.g., start_driver,
  
  

  
  
  
  stop_driver)  which control  the input  side of  CXI.  (The  code
  which runs  in a CXI daemon  is called a CXI  driver.)  Normally,
  the  cxi_input_daemon subsystem  is used  to generate  a DN8/7100
  image,  load   the  image,  and  start  it   running.   Then  the
  start_driver request is used to cause the daemon process to begin
  handling DSA input from the DN8/7100 using CXI.  CXI runs both in
  the  input daemon  and in  the user's  process.  It  communicates
  using shared  segments.  In particular,  all input is  handled in
  the input daemon process, and all user output is done directly by
  the  user's process.   This is  accomplished by  sharing the  IOI
  workspace (that the  input daemon gets when it  attaches the DIA)
  in ring  2.  For this reason,  the input daemon should  always be
  logged  into  ring  2  before  the  cxi_input_daemon subsystem is
  started.  Various entries in the  CXI programs manage the sharing
  of this wired buffer space (the  IOI workspace), in much the same
  way that tty_buf  is currently managed by MCS.  The  size of this
  wired space  is specified in the  NIT.  CXI is described  in more
  detail in Section 5.
  
  
  Session Control
  
       DSA session control, like CXI,  has an input side which runs
  in the input daemon process and  an output side which runs in the
  user's  process.  The  input  daemon  decides which  user process
  should receive  the input and then  sends a wakeup to  notify the
  process that  input has arrived.   The user's process  then calls
  session  control to  retrieve the  input.  Session  control, also
  like CXI,  coordinates its actions  between the input  daemon and
  the user's process using a  shared database.  The session control
  interface is also the gate into ring 2, so all access checking to
  control the usage of DSA  connections is done by session control.
  The CXI modules running on  Multics and in the DN8/7100 cooperate
  (through  the DIA)  to  provide  the interface  between transport
  control and session control.
  
  
  Transport Control
  
       DSA  transport control  runs  in  the DN8/7100  frontend and
  communicates  with  the  CXI  module  in  the  frontend.  The CXI
  modules running on Multics and in the DN8/7100 cooperate (through
  the DIA)  to provide the interface between  transport control and
  session control.
  
  
  Terminal Management (TM)
  
       TM manages terminal  input and output.  It runs  in the user
  application,  on  top  of  session   control.   TM  is  the  only
  presentation control in Multics DSA.   What a user connects to on
  the  DN8/7100 is  terminal management;  what a  user communicates
  
  

  
  
  
  with  on Multics  is the   TM correspondent.   The iox  interface
  hasn't  changed; the  tty_ I/O  module and  the video  system use
  either  TM  or  MCS  as  appropriate.   The  following orders are
  returned to caller  without error by TM, they are  handled in the
  video     system:     accept_printer_off,     refuse_printer_off,
  set_framing_chars,                      input_flow_control_chars,
  output_flow_control_chars,     set_delay,     and     reset_more.
  Information  about changes  to the  tty_ I/O  module, the set_tty
  command, and the TTF is available in Section 7.
  
  
  Unified File Transfer (UFT)
  
       UFT manages the transfer of files between two systems.  Like
  TM, it runs  in the user application, on top  of session control.
  UFT is the only application control in Multics DSA.
  
  
       Two important concepts associated with  UFT are those of the
  request  daemon and  the server  daemon.  A  request daemon  is a
  daemon which  extracts requests from a queue  and processes them.
  It is associated  with a set of remote entities  to which it will
  send requests over the network.  The UFT I/O daemon is an example
  of a request  daemon.  A server daemon is a  daemon which handles
  requests  for   network  services  from  remote   users.   It  is
  associated with a set of local endpoints to which it will listen.
  The network login server and  the DSA_DSAC daemon are examples of
  server  daemons.  Both  request  daemons  and server  daemons are
  defined in the  NIT, thus allowing applications to  know only the
  names of services and foreign systems.
  
  
       UFT is  not described any further in  this manual.  Complete
  information  about UFT  is available  in the  Multics DSA Unified
  File Transfer (UFT) Facility manual, Order No.  *** TBS ***.
  
  
  Distributed System Administration and Control (DSAC)
  
       DSAC is the administrative part of DSA.  It runs in both DNS
  and in Multics.  In DNS, DSAC performs the following functions:
  
       o    NOI (network operator interface)
  
       o    NAD (network administration)
  
       o    ASF (administrative storage facility)
  
       o    LOG (network logging)
  
  These functions work  just the same way in a  Multics frontend as
  they do in other DSA frontends, and are not discussed here.
  
  

  
  
  
       In   Multics,  DSAC   is  divided   into  two   parts:   the
  DSA_DSAC.Daemon  and  the  dssr  subsystem.   The DSA_DSAC.Daemon
  performs the following functions:
  
       o    ASF LOG (administrative storage facility log)
  
       o    NAD (network administration)
  
       o    ASF (administrative storage facility)
  
  The dssr subsystem performs the following functions:
  
       o    remote NOI access
  
       o    remote NAD access
  
       o    session exerciser
  
  
  DSA_DSAC.DAEMON
  
       The  DSA_DSAC.Daemon  performs  the  ASF  LOG,  NAD, and ASF
  functions by "listening" for requests  on the $LOGFILE, $NAD, and
  $NASF mailboxes, respectively.
  
  
  ASF LOG Function
  
       The  ASF LOG  function of  the DSA_DSAC.Daemon  receives AEP
  messages from various NADs in the  network and stores them in the
  DSA  AEP log (dsa_al).   This function is  mostly for use  by the
  DN8/7100 NAD, because  it has no place to  store information.  It
  may also be used by other nodes for logging statistics.
  
  
  NAD Function
  
       The NAD function of the DSA_DSAC.Daemon accepts DSA sessions
  with the local  DN8/7100 NOI.  The NAD function  also ships local
  AEP  messages.  For  example, AEP  messages generated  by CXI are
  stored  in the DSA  system AEP log  (dsa_sal).  The NAD  function
  reads the AEP messages in the log  and sends them to the DNS NOI,
  which translates them  from AEP format into ASCII  format, so the
  NOI operator can read them.  The NAD function does not accept AEP
  commands from other nodes in the DSA network.
  
  
  ASF Function
  
       The ASF function of  the DSA_DSAC.Daemon accepts connections
  from local or  remote DNS NADs and provides a  remote file access
  service for  the DN8/7100, which has  no file system of  its own.
  
  

  
  
  
  The DNS  NAD asks the Multics  ASF to read or  write files for it
  (usually   config  files,   runnable  images,   dumps,  and  test
  overlays).   DNS knows the  name of the  directory and the  entry
  name of the file.
  
  
  THE DSSR SUBSYSTEM
  
       The  dssr  subsystem  runs  in  a  normal  user process.  It
  performs the  remote NOI access,  remote NAD access,  and session
  exerciser  functions  by  responding  to  requests  aimed  at the
  $TMDIALOU,  $NOIAEP,  and  $NSE  (acceptor)  and $NSF (initiator)
  mailboxes, respectively.
  
  
  Remote NOI Access Function
  
       The remote NOI access function  of the dssr subsystem allows
  you  to dialout through  session control to  the DNS NOI,  so you
  look  like an  operator's terminal  to DNS.   For administrators,
  using the  remote NOI access  function is the  same as connecting
  through a terminal directly to the DN8/7100.
  
  
  Remote NAD Access Function
  
       The remote NAD access function  of the dssr subsystem allows
  Multics and DNS to communicate.   It accepts requests and Multics
  commands in  ASCII format, translates  them into AEP  format, and
  sends them on  to the NAD in the DNS.   For administrators, using
  the remote NAD access function is  the same as using the DNS NOI,
  except that it  provides the advantages of being  able to connect
  to any DN8/7100 and to have Multics file output.
  
  
  Session Exerciser Function
  
       The session exerciser function  of the dssr subsystem allows
  you  to initiate a  session to or  accept a session  from another
  node in order to test the connection.  It allows you to establish
  a session, send data, get the data echoed back, and terminate the
  session.
  
       DSAC is described in detail in Section 6.
  
  
  Datanet 8 (DN8/7100) and Distributed Network Supervisor (DNS)
  
       DNS  is the  operating system   software which  runs on  the
  DN8/7100 frontend hardware.
  
  
  
  

  
  
  
  FILES THAT ARE UNLOADED FROM THE DELIVERY TAPE
  
       The DN8/7100  software is delivered  on a GCOS  8 SAVE tape.
  The  gcos_fms command  is used  to  read  the tape  and create  a
  corresponding  Multics hierarchy.   The "sys"  directory in  this
  hierarchy  contains  the  files   below.   These  files  must  be
  converted   into  the   appropriate  Multics   format  with   the
  dsa_cv_dns_tape command.   They are then ready to  be loaded into
  the DN8/7100.
  
       o    generator image  file:  when it is run,  it generates a
            specific  runnable image  for a  specific DNS  software
            release.
  
       o    patch file:  contains software updates.
  
       o    object  segments:  DN8/7100  software modules  (used by
            the generator  image file to create  the runnable image
            file).
  
  
  FILES THAT MUST BE BUILT
  
       Templates for  the files below are provided  on the delivery
  tape, but the actual files for  a particular site must be created
  by the  system administrator.  They are normal  ASCII text files,
  so any Multics editor may be used.
  
       o    config file:   describes the configuration for  a given
            frontend.
  
       o    scenario file:   describes a scenario for  performing a
            load, dump, go, or generation  of a remote datanet.  It
            is  like  a  subsystem  exec_com,  and  enables  you to
            manipulate  remote  DN8/7100s  the  same  way  you  can
            manipulate local DN8/7100s.
  
  
  FILES THAT ARE GENERATED
  
       The files  below must be created  using the cxi_input_daemon
  subsystem to  load a generator  image into the  DN8/7100, run it,
  and get back a runnable image.   The dump files are created using
  the dump_frontend request  to create a Multics file  which can be
  examined with standard Multics tools (i.e., dump_segment).
  
       o    runnable image file:  is related to a specific DN8/7100
            configuration, and  consists mainly of config  maps and
            images.   It is produced  by running a  generator image
            file.
  
       o    dump file:  contains a DN8/7100 memory dump.
  
  

  
  
  
       More  information on  all of   these files  is available  in
  Section 2.
  
  
  DN8/7100 TESTS AND DIAGNOSTICS (T&D)
  
       The standard T&Ds provided for GCOS 8 to handle the DN8/7100
  frontend will also run on Multics under COLTS (just like the T&Ds
  for the current DN61xx frontend).
  
  
       The figure  "Layers Synopsis" illustrates  the relationships
  between various Multics layers and data bases.
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

  
  
  
  LAYERS SYNOPSIS
  
  
         /-------          /-------
       /                  /         
     /                    | DSAC(s) |
    |   PROCESS(es)   |             /
                    /      -------/
                  /           ||               RING 4
      /  -------/            ||                   |
    /                         ||                   |
   |                  |        ||                   |
  -----------|-----------      ||    wakeups        |
  |   TM     |   UFT    |      ||       /          |
  -----------------------     //         |          |
            ||              //           |          |
            ||   calls    //             |          |
            ||          //               |          |
            /         /                |         /
  ---------------------------------------------- ......  GATES ...
  |    Session Control  ||    Session Control  |   /
  |       in the        ||       in the        |    |    RING 2
  |    user  process    ||    driver process   |    |
  ----------------------------------------------    |
            ||                      /              |
            || calls                || calls        |
            /                      ||              |
  ----------------------------------------------    |
  |       CXI           ||        CXI          |    |
  |   running in the    ||   running in the    |    |
  |   user  process     ||   driver  process   |    |
  ----------------------------------------------    |
  write or read  |                   /
  in CXI wired   |                   || calls
  buffer         |                 ------
                 |               / DRIVER 
           ................     | PROCESS  |<------  TIMER DRIVEN
           | wired buffer |        CXI   /
           ................        ------
                 |||
                 DIA
                 |||
       =========================
       |        D N 8          |
       |   (Transport and...)  |
       =========================
  
  
  
  
  
  
  
  

  
  
  
  
  
  
  
  
  
                              SECTION 2
  
  
                      STARTING UP DSA ON MULTICS
  
  
  
  
       This section describes what  administrators must do to start
  up  DSA  on  Multics.   The  information  is  divided  into  four
  categories as follows:
  
       o    Tailoring the Multics environment for DSA (must be done
            once, when DSA is first brought up on Multics)
  
       o    Building  the network  information table  (must be done
            when DSA is  first brought up on Multics,  and also any
            time the network configuration changes)
  
       o    Building a DN8/7100 config file  (must be done when DSA
            is first brought  up on Multics, and also  any time the
            network configuration changes)
  
       o    Managing DN8/7100  generation and run  operations (must
            be done  when DSA is  first brought up  on Multics, any
            time  the network  configuration changes,  and any time
            there  is  a  new  DNS  release  or  a  DNS  patch; run
            operations alone must be done any time Multics has been
            shut down)
  
  
       NOTE:   In order to  use Multics DSA  fully, the newer  NMLC
  boards must  be used in the  DN8/7100.  If the older  MLCP boards
  are used  in the DN8/7100, Multics  DSA will not work  with video
  and Emacs; it will only work with line mode.
  
  
  TAILORING THE MULTICS ENVIRONMENT FOR DSA
  
       Administrators must perform the tasks listed below to tailor
  the Multics environment for DSA:
  
       o    Edit the Multics config deck
  
       o    Create new access control segments
  
  
  

  
  
  
       o    Update the installation_parms segment
  
       o    Optionally change the terminal type file (TTF)
  
       o    Set ACLs on the DSA logs
  
       o    Register the new DSA daemons
  
       o    Build a Multics DSA hierarchy
  
  
  Editing the Multics Config Deck
  
       You must  add a prph diaX  card to the config  deck for each
  frontend defined by a Frontend  object definition in the NIT (the
  NIT is described in detail in Section 4).  The name on the config
  card must match the name specified by the dia statement under the
  Frontend  object definition for  the frontend in  question; e.g.,
  diab.  The prph diaX card defines the characteristics of a DIA or
  direct  channel.  See  the Multics  System Maintenance Procedures
  manual, Order No.  AM81, for a complete description of the config
  deck.
  
  
  Creating New Access Control Segments
  
       You must create a set  of new access control segments (ACSs)
  to control  access over the DSA network.   Specifically, you need
  an ACS  for each DIA attached  to a frontend, and  ACSs for these
  objects   as   described   in   the   NIT:   systems,  mailboxes,
  correspondents, and administrative correspondents.
  
  
       The access  control segments for  DIAs should be  created as
  described in the Multics System Administration Procedures manual,
  Order No.  AK50.  Typically, ACSs  for devices (DIAs) are created
  under  >sc1>rcp  as  <device_name>.acs  (e.g.,  diaa.acs).  A CXI
  input daemon requires rw access to the ACS for any DIA it uses.
  
  
       Access  control  segments  for  the  NIT  objects  (systems,
  mailboxes,  correspondents,  and  administrative  correspondents)
  must  be created  using the  pathnames specified  by the acl_path
  statements   under  the   System,  Mailbox,   Correspondent,  and
  Admin_correspondent object definitions in the NIT.  Set access on
  these  ACSs  according  to  the  instructions  provided under the
  descriptions  of the  acl_path  statements  for the  objects (see
  Section 4).  Normally, these ACSs are located under >sc1>mna>dsa.
  
  
  
  
  
  

  
  
  
  Updating the installation_parms Segment
  
       Two new mechanisms have been  added to the Multics answering
  service which have an effect on the installation_parms segment.
  
  
       The  second mechanism  allows  you  to charge  processes for
  their use of DSA channels:  bytes sent, packets sent, and connect
  time.  Rates for these charges are  handled the same way as rates
  for  tape and disk  device use.  The  charges per thousand  bytes
  sent, per thousand packets sent, and per hour of connect time are
  stored   as   device   rates   for   each   rate   structure   in
  installation_parms.  The new devices defined for this purpose are
  dsa_kbyt,  dsa_kpkt, and  dsa_hour, respectively.   To add  these
  device names  to installation_parms and specify a  set of prices,
  use the ed_installation_parms command.
  
  
       The  ed_installation_parms  command   is  described  in  the
  Multics  Administrative,  Maintenance,  and  Operations  Commands
  manual,  Order  No.   GB64.   The  installation_parms  segment is
  described in the Multics System Administration Procedures manual,
  Order No.  AK50.
  
  
  Changing the TTF
  
       The Multics  TTF has been  extended to permit  definition of
  options that  are specific to  operation in the  DSA environment.
  This  has been  accomplished via  the dsatm_device  substructure,
  which is optional and consists  of the dsatm_device statement and
  one  or more  substatements.  Default  values are  assumed if  no
  dsatm_device  substructure is  included in  the TTF  entry for  a
  given  terminal   type.   However,  it  is  best   to  include  a
  dsatm_device substructure in the TTF  entry for any terminal type
  which will be used to access  Multics via DSA.  See Section 7 for
  a complete description of this substructure.
  
  
  Setting ACLs on the DSA Logs
  
       Three logs  are defined in  the NIT (see  the description of
  the Mna_general_info object definition in Section 4):
  
       o    DSA system log (dsa_sl), for recording CXI input daemon
            and session control errors
  
       o    DSA system  AEP log (dsa_sal), for  recording CXI input
            daemon and session control AEP activity
  
       o    DSA AEP  log (dsa_al), for  recording UFT and  DSAC AEP
            activity
  
  

  
  
  
  Normally,    dsa_sl    and     dsa_sal    are    located    under
  >site>dsa>system_logs_dir    and   dsa_al   is    located   under
  >site>dsa>aep_logs_dir.     All    three    logs    are   created
  automatically, but before they are  created (i.e., before you run
  DSA for  the first time), you  must set ring brackets,  ACLs, and
  IACLs  on the directories  which contain them,  and you must  set
  ACLs on the logs themselves.
  
  
       Set the  ring brackets on >site>dsa>system_logs_dir  to 2,7.
  Set  the ACL to  sma for *.*.*.   Set the IACL  to rw for  *.*.*.
  Note that  this is a ring  2 IACL, which means  that you must use
  the "ring 2" option in order to set it.
  
  
       Set the ring brackets on >site>dsa>aep_logs_dir to 7,7.  Set
  the ACL to sma for DSA_DSAC.Daemon, DSA_UFT.SysDaemon, and *.*.f.
  Set  the IACL to  rw for DSA_DSAC.Daemon,  DSA_UFT.SysDaemon, and
  *.*.f.  Note that this is a ring 4 IACL.
  
  
       Both the DSA  system log and the DSA system  AEP log will be
  ring 2 logs (ring brackets 2,2,2).   Give rw access to *.*.*.  To
  look  at one of  these logs, use  the print_sys_log command  with
  either  the -dsasl  or -dsasal  control argument.   These control
  arguments are described in Section  7.  Note that you need access
  to dsa_log_admin_gate_ to look at these logs.
  
  
       The DSA AEP log will be  a ring 4 log (ring brackets 4,4,4).
  The DSAC and UFT daemons require  rw access.  Also give rw access
  to *.*.f.   (The "f" tag denotes file  transfer server processes,
  which  implies  that  additional  access  permissions  have  been
  previously established for this class  of user.)  To look at this
  log, use  the print_sys_log command  and specify the  pathname of
  the DSA AEP log.  No special control argument is required.
  
  
   Registering the New DSA Daemons
  
       Multics DSA employs the  following daemons to perform varied
  services over the network:
  
       o    DSA_DSAC.Daemon, responsible for ASF  LOG, NAD, and ASF
            functions
  
       o    DSA_CXI.Daemon, responsible for handling all input from
            a frontend;  there is one for  each frontend configured
            in the NIT
  
  
  
  
  

  
  
  
       o    Login_Server.Daemon, responsible  for fielding requests
            for  sessions  from  remote  users  and  arranging  for
            process creation on their behalf on Multics
  
       o    DSA_UFT.SysDaemon  (an  I/O  daemon),  responsible  for
            queued  file transfer  requests from  Multics to  other
            computers on the network
  
  
       The DSA_DSAC daemon must be registered in the PNT and in the
  PMF for the  Daemon project.  Set the default login  ring for the
  DSA_DSAC daemon to 4 in the PMF.
  
  
       The DSA_CXI daemon must be registered  in the PNT and in the
  PMF for the  Daemon project.  Set the default login  ring for the
  DSA_CXI  daemon to 2  in the PMF.   Note that the  DSA_CXI daemon
  must have rw access to  >sc1>rcp>workspace.acs in order to attach
  the DIA connected to the DN8/7100 with which it interfaces.
  
  
       The login server daemon must be registered in the PNT and in
  the PMF for  the Daemon project.  Set the default  login ring for
  the  login server  daemon to  4 in  the PMF.   Specify the  login
  server's process overseer as "login_server_overseer_" in the PMF.
  Note  that   the  login  server  daemon  requires   r  access  to
  >sc1>answer_table and ao access to >sc1>login_server_requests.ms.
  
  
       The DSA_UFT daemon must be registered  in the PNT and in the
  PMF for  the SysDaemon project.   Set the default  login ring for
  the DSA_UFT  daemon to 4 in  the PMF.  I/O daemon  tables must be
  updated  for UFT  and  recompiled.   The required  procedures are
  described under "Configuring the UFT Facility" in the Multics DSA
  Unified File  Transfer (UFT) Facility manual, Order  No.  *** TBS
  ***.
  
  
       See  the Multics   System Administration  Procedures manual,
  Order No.  AK50, for more information on registering daemons.
  
  
  Building a Multics DSA Hierarchy
  
       Multics DSA  hierarchy contains files associated  with local
  and  remote frontends and  stores the DNS  software to be  loaded
  from  the GCOS  SAVE tape  (described below)  and then converted.
  The suggested location is under >site.
  
  
  
  
  
  

  
  
  
       The dsa Directory is  created under >site.  Under >site>dsa,
  you find the directories:   fontend_dir_dir (fdd), c1m4, acs, and
  system_logs_dir, aep_logs_dir, and uft_logs_dir.
  
  
       Under fdd, a subdirectory exists for each frontend connected
  to  Multics, using  the frontend  name defined  by the associated
  Frontend object  definition in the  NIT; e.g., dn7a,  dn7b.  This
  directory is the working directory  of the CXI input daemon which
  interfaces  this frontend  with Multics.   Normally, the runnable
  image,  config  file,  links  to  DNS  files,  and dumps for this
  frontend should be kept in this directory.  Also, the start_up.ec
  for the CXI  input daemon should contain a command  to change the
  working    directory    to    this    directory.     Either   the
  dsa_fep_working_dir    (dsa_fwd)   active    function   or    the
  frontend_working_dir (fwd) CXI subsystem  request may be used for
  this purpose; e.g., cwd  [dsa_fwd dn8a].  The dsa_fep_working_dir
  active function is described  below; the frontend_working_dir CXI
  subsystem  request is  described in  Section 5.   Note that  this
  directory  must  be  the  same   as  the  one  specified  by  the
  working_dir  statement  under   the  associated  Frontend  object
  definition in the NIT.
  
  
       Under each subdirectory for a frontend connected to Multics,
  there can be  a subdirectory of remote scenarios  if the frontend
  has  the  teleload/teledump  capability.   This  subdirectory can
  contain  different scenario  files for  loading remote  frontends
  (see the DNS System Installation and Generation manual, Order No.
  DP43 or  the DNS System  Generation manual, Reference  No.  39 A2
  9807, for a description of scenario files).
  
  
       Under  c1m4, create one  subdirectory called sys  to contain
  the DNS software files converted to Multics format.
  
  
       Note also  you find under  >site>dsa the directory  in which
  CXI  and  session  control  will  store  their segments, normally
  >site>dsa>data, and the directories in which the DSA logs will be
  located,  normally >site>dsa>system_logs  and >site>dsa>aep_logs.
  A last directory >site>dsa>uft_logs_dir will contain uft specific
  logs.   This pathname is  to be specified  in value segment  used
  when     enabling     uft     tracing,     and     located     in
  >site>dsa>data>uft_value.value.
  
  
       The  last  directory  >site>dsa>acs  contains  acs  segments
  explicitly named  in NIF and  determining access rights.   If you
  want  to  change  any  segment  name,  you  have  also  to change
  acs_pathnames in NIF.
  
  
  

  
  
  
       A major part of this hierarchy is automatically created when
  reloading a  DSA tape at installation, the  remaining is manually
  created   according  to   site  configuration   and  installation
  instructions contained in the pseudo dsa-sib (see Appendix A).
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

  ___________________                           ___________________
  
  dsa_fep_working_dir                           dsa_fep_working_dir
  ___________________                           ___________________
  
  
  NAME: DSA_FEP_WORKING_DIR, DSAFWD
  
  SYNTAX AS A COMMAND
  
  dsafwd frontend_name
  
  SYNTAX AS AN ACTIVE FUNCTION
  
  [dsafwd frontend_name]
  
  FUNCTION
  
  prints  the  working  directory   specified  by  the  working_dir
  statement under the Frontend object definition in the NIT for the
  frontend  specified  by  frontend_name.   As  an active function,
  dsafwd  returns the name  of the working  directory.  There is  a
  corresponding  CXI subsystem request  called frontend_working_dir
  (fwd).
  
  ARGUMENTS
  
  frontend_name
     is  the  name  of  the  frontend  whose  working  directory is
     desired.
  
  ACCESS REQUIRED
  
  This command requires r access to the NIT.
  
  NOTES
  
  The working directory for a frontend is where its runnable image,
  config file, patch files, and dump files are usually kept.  Thus,
  this  command is  normally executed   in the  CXI input  daemon's
  start_up.ec, or the corresponding request  is executed in the CXI
  subsystem's start_up.cidec.
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

  
  
  BUILDING THE NETWORK INFORMATION TABLE
  
       The   network  information   table  (NIT)   is  the  central
  repository  for  describing  the  DSA  network  configuration  on
  Multics.   As  is  evidenced  throughout  this section, virtually
  every  aspect of  hardware and  software linked  together in  the
  network has some reference point in the NIT.  An integral part of
  bringing up  DSA on Multics is  to build, compile, and  install a
  NIT as described in Section 4 of this manual.
  
  
  BUILDING A DN8/7100 DIR 'SYS>'
  
       You  must build  a DIR  'sys>' for  each datanet  managed by
  Multics  and defined  in the  NIT.  To  do this,  use any Multics
  editor and follow the instructions in the DNS System Installation
  and  Generation manual,  Order No.    DP43 or  in the  DNS System
  Generation manual, Reference No.  39 A2 9807.
  
  
       Because  DN8/7100 generation  is executed  from the  Multics
  host  rather than from  a locally loaded  diskette, the group  of
  command  lines listed  below  must  follow immediately  after the
  DN8/7100 command, the first command in the config file:
  
         DIR 'sys>'
         LANG NATIONAL -KEYFIL 'DLCKW' &
                       -MESFIL 'DLCMSG'
  
  The final command line in the config file must be:
  
       END -START -EX
  
  Note  that  this  is  true  regardless  of  whether the generated
  runnable image is  for a local frontend or a  remote datanet.  If
  the image is for a remote datanet, it will be stored in the right
  format and the suffix will be  changed from ".i" to ".b" when the
  patches are applied.
  
  
       To build a DN8/7100 config file, you also have the option of
  using the sample  config file which is provided on  the GCOS SAVE
  tape  as  a  template,  and   tailoring  it  to  the  appropriate
  specifications.  This requires loading  the DNS software from the
  installation  tape onto  Multics and  converting the  loaded GCOS
  files to Multics  file format.  To do this, see  "Loading the DNS
  Software  onto Multics"  and  "Converting  GCOS Files  to Multics
  Format" later in  this section.  Once the sample  config file has
  been loaded and  converted from the SAVE tape to  the Multics DSA
  hierarchy,  you can  edit it  as described  above to  reflect the
  desired frontend configuration.
  
  
  
  

  
  
       Remember that you must build  a config file for each datanet
  managed by Multics and defined in the NIT.
  
  
  MANAGING DN8/7100 GENERATION AND RUN OPERATIONS
  
       The common exchange interface  (CXI) protocol allows session
  control  on Multics  to communicate  with transport  control on a
  DN8/7100  over a  DIA hardware  connection.  CXI  runs both  in a
  daemon process and  in a user process.  When it  runs in a daemon
  process, CXI  calls session control to  perform input processing.
  When it runs in a user  process, CXI is called by session control
  to perform output processing.
  
  
       There is one  CXI input daemon for each  frontend defined in
  the  NIT.  All  input daemons   share a  database called  the CXI
  driver segment.  The  CXI subsystem runs in a  daemon process and
  provides the means to produce a runnable image from the generator
  image  supplied  with  the  DNS  software  tape  and  to  start a
  frontend.  The subsystem also controls the input side of CXI (the
  CXI driver).
  
  
       Listed below are the steps to follow to complete DSA startup
  preparations.  Each  step is described in detail  after the list.
  If you are starting up DSA on  Multics for the first time, if the
  network configuration has changed, or if you are installing a new
  DNS release  or a DNS  patch, perform steps  1 - 10.   If you are
  booting Multics  after having shut it  down, perform steps 3  - 6
  and steps 8 - 10.
  
  1.   Load  the  DNS  software  from  the  installation  tape onto
       Multics.
  
  2.   Convert the loaded GCOS files to Multics file format.
  
  3.   Create the CXI driver segment.
  
  4.   Start up session control.
  
  5.   Log in the CXI input daemons.
  
  6.   Start up the CXI subsystem.
  
  7.   Load and execute a generator image.
  
  8.   Load, execute, and start a runnable image.
  
  9.   Start the CXI driver.
  
  10.  Log in the other DSA daemons.
  
  
  

  
  
  Loading the DNS Software onto Multics
  
       The DNS software is delivered on  a SAVE tape created by the
  GCOS  file master  supervisor.   Significant  files on  this tape
  include a sample config file,  patch files with software updates,
  DNS object segments, and a generator image.
  
  
       To load the supplied files onto Multics, mount the SAVE tape
  and  execute the  gcos_fms command,  using >site>dsa>c1m4  as the
  working  directory.  The  format of  the gcos_fms  command is  as
  follows:
  
       gfms reel_number -no_ga
  
  
       The gcos_fms command is a  standard Multics command, used to
  transport GCOS files to the  Multics environment; it is described
  in the  Multics Commands and  Active Functions manual,  Order No.
  AG92.  Use other control arguments  as appropriate, but note that
  the  -no_ga   control  argument  is  undocumented   and  must  be
  specified.
  
  
       Output  from  the  gcos_fms  command  maps  the GCOS catalog
  structure to the Multics DSA hierarchy under >site>dsa>c1m4>c1m4.
  
  
  Converting GCOS Files to Multics Format
  
       The dsa_cv_dns_tape  command (described below)  converts the
  loaded GCOS files to Multics format  and maps them to the Multics
  DSA hierarchy under >site>dsa>c1m4>sys.
  
  
       After you  have used the dsa_cv_dns_tape  command to convert
  the  files, use the  following command line  to add the  standard
  default names to them:
  
       do "an &1 [uppercase[spe &1]]"!([segs **])
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

  _______________                                   _______________
  
  dsa_cv_dns_tape                                   dsa_cv_dns_tape
  _______________                                   _______________
  
  
  NAME: DSA_CV_DNS_TAPE, DSACVT
  
  SYNTAX AS A COMMAND
  
  dsacvt input_path {output_path} {-control_args}
  
  FUNCTION
  
  Converts  a GCOS  format file  containing only  ASCII media  code
  records to a Multics file  of the appropriate type.  This command
  is  specialized to  handle the  files generated  by the  gcos_fms
  (gfms) command  operating on a DNS software  distribution tape in
  GCOS 8 format.
  
  ARGUMENTS
  
  input_path
     specifies  the name of  the input file  to be processed.   The
     star convention is allowed.  This argument must be specified.
  
  output_path
     specifies  the name of  the output file  to be produced.   The
     equal convention is allowed.  A suffix  of a, b, or i is added
     if not already present (these  suffixes are defined in control
     argument  descriptions  below).   If   this  argument  is  not
     specified,  the  input_path  entry  name  is  used,  with  the
     appropriate suffix added.
  
  CONTROL ARGUMENTS
  
  -ascii
     specifies that the output file  be in ASCII format, regardless
     of its name.  Each record in the input file will have an ASCII
     newline character  appended to it  before it is  stored in the
     output file.  The output file suffix will be "a".  The default
     depends on the  input file name.  If -ascii  is specified, the
     default output file organization will be stream output.
  
  -binary, -bin
     specifies that the output file be in binary format, regardless
     of  its name.  Each  record in the  input file will  be stored
     with no  changes in the  output file.  The  output file suffix
     will be "b".  The default depends  on the input file name.  If
     -binary  is specified,  the default  output file  organization
     will be sequential output.
  
  -image
     specifies that the output file  be in image format, regardless
     of its name.   This is the same as binary  format, except that
  
  

  _______________                                   _______________
  
  dsa_cv_dns_tape                                   dsa_cv_dns_tape
  _______________                                   _______________
  
  
     file  organization  is  stream  rather  than  sequential.  The
     output file  suffix will be  "i".  The default  depends on the
     name of the  input file.  If -image is  specified, the default
     output file organization will be stream output.
  
  -sequential_output, -sqo
     specifies  that  the  output   file  be  a  sequential  vfile_
     regardless of  its name.  The  default depends on  the name of
     the  input  file  and  the  value  of  the file format control
     argument.
  
  -stream_output, -so
     specifies that  the output file be a  stream vfile_ regardless
     of  its name.  The  default depends on  the name of  the input
     file and the value of the file format control argument.
  
  NOTES
  
  This  command is specialized  to handle the  files from a  GCOS 8
  SAVE tape used for DNS  software distribution.  It recognizes the
  following  input file  names (in   either upper  or lower  case),
  handling them as described:
  
  PATCH0,  PATCH1,  PATCH2,  CHXMOD,  CONFIG,  DLCKW,  DLCMSF:  the
  default output file format for these input files is ASCII stream;
  the "a"  suffix is added.   These are normal  Multics text files,
  which can be edited by any text editor.
  
  IMAMEM, IMAMEMU:  the default output  file format for these input
  files is binary stream; the "i" suffix is added.  These files are
  suitable for  loading directly into a  local DNS, but not  into a
  remote DNS.   The dump_segment command (described  in the Multics
  Commands  and Active  Functions manual,  Order No.   AG92) can be
  used to examine them.
  
  Any other input  name:  the default output file  format for these
  input files is binary sequential; the "b" suffix is added.
  
  Normally,  the dsa_cv_dns_tape  command is  run in  the directory
  containing  the  converted  software,  i.e.,  >site>dsa>c1m4>sys.
  Given that the gcos_fms  command creates >site>dsa>c1m4>c1m4 when
  loading the  DNS software distribution  tape, you should  use the
  following command  line to create  output files with  the correct
  suffixes for subsequent operations:
  
     dsacvt >site>dsa>c1m4>c1m4>sys>** ==
  
  If you intend to load (or reload) a remote DN8/7100 from Multics,
  you should  follow the command  line above with  the command line
  
  

  
  
  below,  in   order  to  generate  a   properly  formatted  image,
  recognizable  by  the  remote   frontend  (i.e.,  an  image  that
  preserves the original record boundaries):
  
     dsacvt >site>dsa>c1m4>c1m4>sys>imamem IMAMEM.b -binary
           -sequential_output
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

  
  
  Creating the CXI Driver Segment
  
       The CXI driver segment (cxi_driver_seg) is a shared database
  that all CXI input daemons use to store their data.  It should be
  created  before  logging  in  the  daemons  and  invoking the CXI
  subsystem.  When you start up session control (using the dsa_init
  command  described  below),  the  driver  segment  is  created by
  default;   the   pathname   used   is   that   specified  by  the
  cxi_driver_segment  statement under  the Mna_general_info  object
  definition  in the NIT  (see Section 4).   The usual location  is
  under >site>dsa>data.
  
  
       Alternatively, the  cxi_create_driver_seg command (described
  below) can be used.  This command will query you by default as to
  whether  or not it  should proceed with  segment creation if  the
  segment already exists.
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

  _____________________                       _____________________
  
  cxi_create_driver_seg                       cxi_create_driver_seg
  _____________________                       _____________________
  
  
  NAME: CXI_CREATE_DRIVER_SEG
  
  SYNTAX AS A COMMAND
  
  cxi_create_driver_seg {-control_args}
  
  SYNTAX AS AN ACTIVE FUNCTION
  
  [cxi_create_driver_seg {-control_args}]
  
  FUNCTION
  
  creates and initializes the shared  segment used by all CXI input
  daemons.   This segment  must be  created and  initialized before
  user   processes   can   use   DSA.    As   an   active  function
  cxi_create_driver_seg  returns "true"  if the  segment is created
  and  initialized without  error, "false"  otherwise.  The segment
  pathname is obtained from  the cxi_driver_segment statement under
  the Mna_general_info object definition in the NIT.
  
  CONTROL ARGUMENTS
  
  -brief, -bf
     does not print  a message informing the user  that the segment
     has been created.
  
  -force, -fc
     creates and initializes the segment without querying the user,
     even if the segment already exists and appears to be in use by
     other CXI input daemons.
  
  -long, -lg
     prints a message informing the  user that the segment has been
     created and initialized.  This is the default.
  
  -no_force, -nfc
     queries the user if the  segment already exists and appears to
     be in use by other CXI input daemons.  This is the default.
  
  ACCESS REQUIRED
  
  This command requires re access to cxi_driver_admin_gate_.
  
  NOTES
  
  This  command  calls  cxi_driver_admin_gate_  so  that the driver
  segment will be created in ring  2.  The pathname for the segment
  is  obtained   from  the  cxi_driver_segment  statement   of  the
  Mna_general_info object definition in the NIT.
  
  

  
  
  Starting Session Control
  
       Session  control, a  Multics DSA  component, cooperates with
  transport control on  a DN8/7100 through the services  of the CXI
  interface  to  enable  applications  on   the  host  to  talk  to
  applications on remote systems.
  
  
       To  start session  control, invoke  the dsa_init  command as
  described   below.   This   command  should   be  added   to  the
  system_start_up.ec.
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

  ________                                                 ________
  
  dsa_init                                                 dsa_init
  ________                                                 ________
  
  
  NAME: DSA_INIT
  
  SYNTAX AS A COMMAND
  
  dsa_init {-control_args}
  
  FUNCTION
  
  initializes  DSA  operations   by  initializing  session  control
  databases,  creating  mailboxes,  and  creating  the  CXI  driver
  segment for CXI operations.
  
  CONTROL ARGUMENTS
  
  -all, -a
     specifies  that  all  initializations  should  be  done.  This
     includes all  session controls, all mailboxes  associated with
     each  session control,  all  data  bases associated  with each
     session control (i.e., the general data segment, seg_info, the
     logical  connection  segment,  lc_data,  and  the handle table
     segment, dsa_sc_hm_seg), the connection list data, and the CXI
     driver segment.  This is the default.
  
  -cxi
     specifies that the CXI driver segment should be created.  This
     is the default.
  
  -no_cxi, -ncxi
     specifies that the CXI driver segment should not be created.
  
  -no_session_control, -nsc
     specifies that no session controls should be initialized.
  
  -session_control session_control_name, -sc session_control_name
     specifies  that  only  the  named  session  control  should be
     initialized.   The  default  is   to  initialize  all  session
     controls  defined in  the  NIT  by Sc_loc  object definitions.
     (Currently,  only one  session control  may be  defined in the
     NIT.)
  
  NOTES
  
  When this command initializes the CXI driver segment, it uses the
  -force  option   so  there  will   be  no  user   query  even  if
  cxi_driver_seg  is already in  use.  It may  be safer to  use the
  cxi_create_driver_seg  command   if  it  is  possible   that  the
  cxi_driver_seg may be in use.
  
  
  
  

  
  
  Logging in the CXI Input Daemons
  
       Log in all CXI input  daemons (one for each frontend defined
  in the NIT)  either as part of system startup  (i.e., via command
  lines   in   the    system_start_up.ec)   or   through   operator
  intervention.  These daemons should be logged in at ring 2.
  
  
  Starting the CXI Subsystem
  
       The CXI subsystem is the mechanism through which a CXI input
  daemon manages a frontend.   Included in the subsystem repertoire
  are requests to:
  
       o    Load and execute a generator image
  
       o    Load, execute, and start a runnable image
  
       o    Dump a frontend
  
       o    Start the daemon's CXI driver
  
  
       Use  the cxi_input_daemon  (cid) command  to invoke  the CXI
  subsystem.  The  subsystem runs in the  daemon process associated
  with  the  frontend  named  on  the  command  line.  Usually, the
  cxi_input_daemon  command is executed  in the CXI  input daemon's
  start_up.ec.  See Section 5 for a complete description of the CXI
  subsystem and the cxi_input_daemon command.
  
  
  Loading and Executing a Generator Image
  
       A generator image file (in these examples, imamem.i) is used
  to tailor a DN8/7100 and produce  a runnable image file (in these
  examples, runnable_image.i) from which the frontend is started up
  on  the network.   The generator  image must  be loaded  into the
  frontend  and executed  so that  it can  read in  the appropriate
  config  file, patches,  and  object  segments converted  from the
  supplied DNS software.  Load and  execute a generator image for a
  frontend only when  the config file has been altered  or when you
  want to apply new patches (PATCH0 and PATCH1).
  
  
       Use  the CXI  subsystem  load_frontend  request to  load the
  appropriate  generator image  into  the  frontend.  Then  use the
  execute_in_frontend  request to  execute the  generator image and
  produce  a  runnable  image.   Finally,  use  the  start_frontend
  request  to   start  the  runnable  image.    The  load_frontend,
  execute_in_frontend,  and start_frontend  CXI subsystem  requests
  are described in detail in Section 5.
  
  
  
  

  
  
  Loading, Executing, and Starting a Runnable Image
  
       A  runnable image  produced by  executing a  generator image
  must be loaded into the  appropriate frontend and executed (using
  the load_frontend and execute_in_frontend requests) before it can
  be  started (using  the start_frontend  request).  Load, execute,
  and start a runnable image for  each frontend each time you start
  up DSA on  Multics.  See Section 5 for a  complete description of
  these requests as they are used with a runnable image.
  
  
       See  Appendix   B  for  exec_coms  cidec   used  by  DSA_CXI
  sub_system  These exec_coms load,  execute, and start  a runnable
  image in the current frontend.
  
  
  Starting the CXI Driver
  
       Once  a frontend  is running  (its runnable  image has  been
  started),  the CXI driver  for the input  daemon can be  started.
  Invoke the start_driver request as described in Section 5.
  
  
  Logging in the Other DSA Daemons
  
       Ensure  that all  other DSA  daemons, i.e., DSA_DSAC.Daemon,
  Login_Server.Daemon, and  DSA_UFT.SysDaemon, have been  logged in
  either as part of system startup  (i.e., via command lines in the
  system_start_up.ec) or through operator intervention.
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

  
  
  
  
  
  
  
  
  
                              SECTION 3
  
  
                         NETWORK LOGIN SERVER
  
  
  
  
       To  administer a  Multics node  in a  DSA network,  you must
  login and  activate the network login server.   The network login
  server is a daemon process that you assign to monitor one or more
  network  endpoints.   The  login   server  daemon  "listens"  for
  incoming  session  requests  submitted  to  the  endpoints.   The
  session requests  can be either  login requests or  file transfer
  requests.
  
  
       When  the  login  server   daemon  receives  a  DSA  session
  establishment  letter  on  the  LOGIN  mailbox,  it establishes a
  session and then engages in a login dialogue with the user who is
  trying  to connect  to Multics.    The login  server daemon  then
  passes the  user's name and  password information to  the Multics
  initializer  process  for  validation.   If  the  user's name and
  password  information  are  not  deemed  valid,  the login server
  daemon terminates  the session .   If they are  deemed valid, the
  user is permitted  access to Multics and the  login server daemon
  requests the creation of a new user process from the initializer.
  Once the initializer creates the  new user process, it passes the
  process_id  to  the  login  server  daemon,  which  delegates the
  session  to that process.   If the session  is terminated by  the
  network for any reason, session  control signals this fact to the
  login  server.  The  login server  then asks  the initializer  to
  terminate  the user  process.   Assuming  that the  session isn't
  terminated by the network, when the user terminates processing in
  the  Multics system,  the initializer  signals this  fact to  the
  login server daemon.  The login server daemon then terminates the
  session.
  
  
       When  the  login  server   daemon  receives  a  DSA  session
  establishment letter on the FILETRAN  mailbox, it receives all of
  the login information necessary for  Multics in that letter.  The
  login  server   daemon  passes  the  user's   name  and  password
  information  to the  Multics initializer  process for validation.
  If the user's  name and password are not deemed  valid, a session
  is not established.   If they are deemed valid,  the login server
  
  

  
  
  
  daemon establishes a  session and requests the creation  of a new
  user process from the  initializer.  Once the initializer creates
  the user  process, it passes  the process_id to  the login server
  daemon,  which delegates  the session  to that  process.  If  the
  session  is terminated  by the  network for  any reason,  session
  control signals this fact to  the login server.  The login server
  then  asks  the  initializer   to  terminate  the  user  process.
  Assuming that  the session isn't terminated by  the network, when
  the  user  terminates  processing  in  the  Multics  system,  the
  initializer signals  this fact to  the login server  daemon.  The
  login server daemon then terminates the session.
  
  
       The  login server  daemon uses  a special  process overseer,
  login_server_overseer_.   This   process  overseer  automatically
  starts the login server subsystem.  To communicate with the login
  server daemon, you use a  set of login server subsystem requests.
  These requests are described later in this section under "Network
  Login Server Requests."
  
  
  REGISTERING THE LOGIN SERVER DAEMON
  
       The  login  server   daemon  (Login_Server.Daemon)  must  be
  registered  and installed  as part   of the  Multics DSA  startup
  process.  This process is described in Section 2 of this manual.
  
  
  STARTING THE LOGIN SERVER REQUEST MECHANISM
  
       The  login  server  communicates  with  the Initializer user
  control  subsystem using  the send_ls_request_  subroutine.  This
  subroutine  queues requests for  Initializer action in  a message
  segment.   The   ls_request_server_  mechanism  running   in  the
  Initializer process  handles these requests, and  sends responses
  back to the login server.  The  facility is similar to the answer
  service  request mechanism  used to  send admin  commands, daemon
  commands, and similar requests to the answering service.
  
       To     start    the    ls_request_server_,     invoke    the
  ls_request_server  command  as  described  below.   This  command
  should be added to the system_start_up.ec.
  
  
  
  
  
  
  
  
  
  
  
  

  _________________                               _________________
  
  ls_request_server                               ls_request_server
  _________________                               _________________
  
  
  NAME: LS_REQUEST_SERVER
  
  SYNTAX AS A COMMAND
  
  ls_request_server operation
  
  SYNTAX AS AN ACTIVE FUNCTION
  
  [ls_request_server operation]
  
  FUNCTION
  
  This command starts and stops  the login server request mechanism
  which runs in the user  control portion of the Answering Service.
  It also  starts and stops  the connection list  manager.  Both of
  these  facilities are  needed in  order to  run the  login server
  daemon.
  
  ARGUMENTS
  
  operation
     can  be one of  the operations given  in "List of  operations"
     below.
  
  LIST OF OPERATIONS:
  
  
  start
     starts  operation of  the ls_request_server_  mechanism in the
     Initializer       process,      and       initializes      the
     connection_list_manager_.
  
  stop
     stops  operation of  the ls_request_server_  mechanism in  the
     Initializer      process,     and      shuts     down      the
     connection_list_manager_.
  
  ACCESS REQUIRED:
  
  This  command can  only be  executed in  the Initializer process,
  while   in  admin   mode.   It    requires  re   access  to   the
  hpriv_connection_list_ gate.
  
  NOTES
  
  The  ls_request_server_  mechanism  has  not  been  certified for
  operation  at the  B2  security  level.  Therefore,  this command
  should  not be used  at sites desiring  to run only  B2 certified
  software.
  
  

  _________________                                          ______
  
  ls_request_server                                          login,
  _________________                                          ______
  
  
  LOGGING IN THE LOGIN SERVER DAEMON
  
       The   login  server   daemon   may   be  logged   in  either
  automatically at  system startup (via the  system_start_up.ec) or
  manually by an operator or administrator.
  
  
       If  logged in  automatically  at  system startup,  the login
  server  daemon is controlled  from the initializer  terminal.  If
  logged in manually,  the login server will normally  be logged in
  from  the initializer  terminal.  Alternatively,  the operator or
  administrator can  login the login server daemon  from any remote
  terminal.  However,  in this case,  the terminal is  dedicated to
  communication with the login server daemon and cannot be used for
  other purposes.
  
  
       To login  the login server  daemon from the  the initializer
  terminal, execute the following command line:
  
       login  Login_Server.Daemon  <login_server_daemon_label>
  
  where  "login_server_daemon_label" is a  user-selected identifier
  that  will later  be used   in the  initializer reply  command to
  direct input to the daemon.
  
  The following are changes to the login Preaccess Command:
  
  
               ________________________________________
  
  
  NAME: LOGIN,, L
  
  SYNTAX
  
  l Person_id{.Project_id} {-control_args}
  
  FUNCTION
  
  This is a login preaccess command.
  
  
  
  
  
  
  
  
  
  

  ______                                                     ______
  
  login,                                                     login,
  ______                                                     ______
  
  
  CONTROL ARGUMENTS
          (operator login)
  
  -operator, -op
     logs in the user as a system operator, connecting the terminal
     to the  message coordinator.  The user must  have the operator
     attribute to use this control argument.
  
  -virtual_channel STR, -vchn STR
     connects  the  terminal  to  the  message  coordinator virtual
     channel STR, which has been  preaccepted by the operator using
     the accept_vchn operator command.
  
  -exact
  
  
  CONTROL ARGUMENTS
          (disconnected processes):
  
  -connect {N}
     connects the  terminal to your disconnected  process.  If more
     than  one such process  exists, the process  number N must  be
     indicated.
  
  
  CONTROLLING THE LOGIN SERVER DAEMON
  
       Once  the  login  server  daemon   is  logged  in,  you  are
  responsible  for   specifying  the  endpoints  that   are  to  be
  monitored.     This    action    is    accomplished    with   the
  start_login_service    request.    You    can   issue    multiple
  start_login_service   requests,  each   specifying  a   different
  endpoint.
  
  
       To  specify  that  the  login   server  daemon  is  to  stop
  monitoring  an endpoint,  use the  stop_login_service request.  A
  stop_login_service  on a specified  endpoint will stop  all login
  servers listening on this endpoint,  not just the endpoint of the
  login server in which the request is entered.
  
  
       Additionally, there are several other requests available for
  use  with  the  login  server  daemon.   These  include  the help
  request,  the list_help  request, the  list_requests request, the
  self_identify  request,  and  the  quit  request.   All the login
  server daemon requests are described in detail below.
  
  
  
  

  ______                                                       ____
  
  login,                                                       help
  ______                                                       ____
  
  
       Note that if the initializer terminal is used to control the
  login server  daemon (the usual method), the  above requests must
  be used  in combination with the initializer  reply command.  For
  example,  to execute  the stop_login_service  command on  a login
  server daemon with a label of lsd, execute the following command:
  
       reply lsd stop_login_service dsa.MUL1.LOGIN
  
  
  NETWORK LOGIN SERVER REQUESTS
  
       The following  are descriptions of the requests  that can be
  used with the login server daemon.
  
  
               ________________________________________
  
  
  NAME: SELF_IDENTIFY
  
  SYNTAX AS A COMMAND
  
  .
  
  FUNCTION
  
  prints the name and version of the login server subsystem.
  
  
               ________________________________________
  
  
  NAME: HELP
  
  SYNTAX
  
  help topic(s) {-control_args}
  
  FUNCTION
  
  prints information about the selected topic(s).
  
  ARGUMENTS
  
  topic(s)
     is  the topic for  which information is  to be printed.   More
     than one topic can be specified.  The list of available topics
     can be obtained by using the list_help request (described next
     in this section).
  
  

  ____                                                   __________
  
  help                                                   list_help,
  ____                                                   __________
  
  
  CONTROL ARGUMENTS
  
  -brief, -bf
     prints  only  a  summary  of  a  request  or  active  request,
     including  the  Syntax  section,  list  of  arguments, list of
     control arguments, etc..
  
  -search STRs, -srh STRs
     begins printing with the  paragraph containing all the strings
     specified by STRs.  By default,  printing begins at the top of
     the information.
  
  -section STRs, -scn STRs
     begins printing  at the section  whose title contains  all the
     strings specified by STRs.  By default, printing begins at the
     top of the information.
  
  -title
     prints section  titles and section  line counts, then  asks if
     the user wants to see the first paragraph of information.
  
  
               ________________________________________
  
  
  NAME: LIST_HELP,, LH
  
  SYNTAX
  
  lh {string}
  
  FUNCTION
  
  displays  a  list  of  all  topics  for  which information can be
  printed.
  
  ARGUMENTS
  
  string
     specifies  a portion  or part  of a  topic name.   See "Notes"
     below for instruction on the use of this argument.
  
  
  
  
  
  
  
  
  
  

  __________                                         ______________
  
  list_help,                                         list_requests,
  __________                                         ______________
  
  
  NOTES
  
  If a portion or part of a topic name is specified as an argument,
  the  system can  "match" the  argument with  a topic  only if the
  given series of characters occurs at  the beginning or end of the
  topic name.  As  a hypothetical example, if the  string "ex" were
  specified, the  system could match  such topic names  as expunge,
  execute, and trans_specs_ex.
  
  
               ________________________________________
  
  
  NAME: LIST_ENDPOINTS,, LSEP
  
  SYNTAX
  
  lsep
  
  FUNCTION
  
  Lists end  points which are listening for  connections, and those
  which have stopped listening  but have still connections.  Output
  includes  the number  of  connections  attached through  each end
  point.
  
  
               ________________________________________
  
  
  NAME: LIST_REQUESTS,, LR
  
  SYNTAX
  
  lr {request(s)} {-control_args}
  
  FUNCTION
  
  prints a list and brief description of the specified requests.
  
  ARGUMENTS
  
  request(s)
     specifies  the request(s)  to be   listed.  If  no request  is
     specified, a list of all requests is provided.
  
  
  
  
  
  

  ______________                                              _____
  
  list_requests,                                              quit,
  ______________                                              _____
  
  
  CONTROL ARGUMENTS
  
  -all, -a
     includes undocumented  and unimplemented requests in  the list
     of requests eligible for listing.
  
  -exact
     lists  only  those  requests  whose  names  exactly  match the
     specified request(s)
  
  
               ________________________________________
  
  
  NAME: QUIT,, Q
  
  SYNTAX
  
  q
  
  FUNCTION
  
  exits  from the  login server  subsystem and  logs out  the login
  server daemon.  Note that this request does NOT return to Multics
  command level.
  
  NOTES
  
  If the  quit request is issued  when there are any  endpoints for
  which  the  start_login_service  request  has  been  issued  more
  recently than the stop_login_service request, these messages will
  be displayed:
  
     The following endpoints are active:
        <list of endpoint names, with count of active connections
         for each>
     login_server_: Outstanding connections will not be cleaned up
        properly.  Do you want to quit?
  
  If  the operator  answers "yes",  the login  server subsystem  is
  exited.  If  the operator answers  "no", no action  is taken, and
  the login server awaits further requests.
  
  
  
  
  
  
  
  
  

  ___________________                            __________________
  
  start_login_service                            stop_login_service
  ___________________                            __________________
  
  
  NAME: START_LOGIN_SERVICE
  
  SYNTAX
  
  start_login_service endpoint_name
  
  FUNCTION
  
  specifies  that  the  login  server  daemon  is  to  monitor  the
  designated endpoint.
  
  ARGUMENTS
  
  endpoint_name
     is the name of an endpoint in the Multics node of the network.
     The name specified by endpoint_name  must also be specified by
     a Mailbox statement in a Mailbox object definition in the NIT.
  
  
  EXAMPLES
  
  To  specify  that  the  login  server  daemon  is  to monitor the
  endpoint identified as dsa.MUL1.LOGIN, type the following:
  
     start_login_service dsa.MUL1.LOGIN
  
  
  
               ________________________________________
  
  
  NAME: STOP_LOGIN_SERVICE
  
  SYNTAX
  
  stop_login_service endpoint_name
  
  FUNCTION
  
  specifies that the login server  daemon is to stop monitoring the
  designated endpoint.
  
  ARGUMENTS
  
  endpoint_name
     is the name of an endpoint in the Multics node of the network.
     The name specified by endpoint_name  must also be specified by
     a Mailbox statement in a Mailbox object definition in the NIT.
  
  
  

  __________________                             __________________
  
  stop_login_service                             stop_login_service
  __________________                             __________________
  
  
  NOTES
  
  A stop_login_service on a specified  endpoint will stop all login
  servers listening on this endpoint,  not just the endpoint of the
  login server in which the request is entered.
  
  EXAMPLES
  
  To specify that the login server daemon is to stop monitoring the
  endpoint designated as dsa.MUL1.FILETRAN, type:
  
     stop_login_service dsa.MUL1.FILETRAN
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

  
  
  
  
  
  
  
  
  
                              SECTION 4
  
  
                      NETWORK INFORMATION TABLE
  
  
  
  
  
  
  This section  describes the network information  table (NIT).  It
  explains  the purpose  of the  NIT, and  describes how  to build,
  compile, install, and update a NIT.   It discusses all of the DSA
  objects defined in Multics, and provides detailed explanations of
  how  to  describe  these  objects  in  the  NIT  using NIT source
  language.   It also  offers a  complete example  of a  NIT source
  table.
  
  
  THE PURPOSE OF THE NIT
  
       The NIT is your main tool for configuring a DSA network.  It
  contains  all of the  information which is  needed to run  DSA on
  Multics.  It  defines the local  system and those  remote systems
  which are part of the network  in terms of the entities, drivers,
  devices,  services,  addresses,  and  protocols  which constitute
  them.
  
  
       The NIT is a shared data base which consists of two kinds of
  data.  The  first kind is administrative data  which you maintain
  and   which  session  control   uses.   This  data   consists  of
  information  about   all  of  the   DSA  objects  which   can  be
  administratively   controlled   (for   example,   frontends,  DSA
  mailboxes, and session  routes).  The second kind of  data in the
  NIT is dynamic data which session control maintains, and which it
  uses to  keep track of  the operation of  logical connections and
  sessions.  Only the first kind of data in the NIT, that which you
  maintain, is described here.
  
  
       The  NIT  provides  information  mapping  which  is  used by
  various networking entities.  Each entity uses the information it
  is passed by its caller to find out which entity to call next and
  what information to pass to it.  Supplied with the information an
  entity  is passed by  its caller, the  NIT provides entries  that
  
  

  
  
  
  perform the necessary mappings for the entity.  Since each entity
  already has coded into it the calls to the entries of the service
  facilities  that it uses,  the information it  gets from the  NIT
  consists of the arguments to  these entries (i.e., the NIT allows
  an entity to call another entity and  just pass it a name to look
  up in the  NIT, where it can find the rest  of the information it
  needs, rather than pass it all of the information).
  
  
       For  example,  when   dsa_transport_service_  is  called  by
  session control to  establish a connection to the  next layer, it
  has to decide which entity to call to do so; when it is called by
  a lower transport level layer to propagate an incoming connection
  to the next layer, it has to decide which layer to call to do so.
  In each case, the decision is made on the name of the next entity
  that is to process the connection.   The NIT provides the name of
  the next  entity so that  dsa_transport_service_ is able  to tell
  which set of entry points to call to process the connection.
  
  
  BUILDING A NIT
  
       You  are responsible for  creating a NIT  for your site  and
  keeping  it updated.  The  NIT is similar  to many other  Multics
  tables, such  as the CMF  and the SAT,  in that you  create it by
  building an  ASCII table, compiling  it into a  binary table, and
  then installing it.  An ASCII file which contains a sample NIT is
  supplied on the  Multics system tape.  You may edit  this file to
  describe the configuration at your site, or build your own source
  table  from scratch.  To  build a source  table, use any  Multics
  editor  (qedx,  ted,  or  emacs),  and  the  NIT  source language
  described  below.    To  compile  and  install   the  table,  see
  "Compiling a NIT"  and "Installing a NIT" later  in this section.
  Note that,  by convention, the  source table is  named "NIF.nif",
  and is created in the directory >udd>sa>a.
  
  
  NIT SOURCE LANGUAGE
  
       NIT source language consists of statements and substatements
  which define and describe Multics  DSA objects and certain global
  items.  Statements provide the name  of the object or global item
  which  is  being  described.   Substatements  provide information
  about various attributes of the object or item.
  
  
       A group  of statements and  substatements for one  object is
  called  an  object  definition.   A  source  table  consists of a
  sequence  of object  definitions  and  an "End;"  statement.  The
  object  definitions may  be in  any order.   The "End;" statement
  must be the last thing in the table, as shown below.
  
  
  

  
  
  
       Object_definition_1
       .
       .
       .
       Object_definition_N
       End;
  
  An object  definition consists of  a statement, a  sequence of its
  associated substatements, and an "end;" statement.  The statement
  must be the  first thing in the object definition  and the "end;"
  statement must be  the last thing in the  object definition.  The
  substatements in between may be in any order, as shown below.
  
       Statement
          substatement_1
          .
          .
          .
          substatement_N
       end;
  
  
  NIT Source Language Syntax
  
       The   syntax   of   the   source   language  statements  and
  substatements is of the form:
  
       <keyword>:  <parameter(s)>;
  
  The only  exceptions to this are  the Mna_general_info statement,
  the end statement, and the End statement, all of which are of the
  form:
  
       <keyword>;
  
  Keywords are literals.  The keyword  of a statement begins with a
  capital  letter.  The  keyword of  a substatement  begins with  a
  lowercase  letter.    Parameters  are  basically   free  strings,
  although some  of them must follow certain  rules or conventions.
  When more  than one parameter  follows a keyword,  the parameters
  are separated by commas:
  
       Keyword: free_string;
          keyword: free_string_1, ..., free_string_N;
          keyword: free_string;
       end;
  
  
       PL/I style comments beginning with "/*" and ending with "/*"
  may appear anywhere within  the source table.  Similarly, blanks,
  tabs, and  new lines not  embedded within a  keyword or parameter
  are  ignored.  However,  in order  to include  blanks, tabs,  new
  
  

  
  
  
  lines,  colons, or  semicolons in  a parameter,  you must enclose
  them  in  quotes.   If  a  parameter  begins  with  a  quote, all
  immediately  following characters  up  until  the next  quote are
  taken as the parameter.  It is  possible to embed quotes within a
  quoted string using the double quoting escape convention of PL/I.
  
  
  NIT OBJECT DEFINITIONS
  
       The  objects defined in  the NIT are  listed below by  their
  source statement keywords:
  
       Service
       Session_type_descriptor
       Sc_loc
       Mailbox
       Admin_function
       Admin_group
       Ts
       Frontend
       Session_Route
       System
       Correspondent
       Admin_correspondent
  
  The global items defined in the NIT are:
  
       Mna_general_info
       Dsac_info
  
  Note that if  the same source statement keyword  occurs more than
  once in  the NIT, the  free strings associated  with the keywords
  must  each be unique;  i.e., no object  may be defined  more than
  once with the same name.
  
  
       The  figure "Object  Relations in  DSA" shows  the relations
  between the various  objects defined in the NIT.   The two global
  items defined in the NIT, Mna_general_info and Dsac_info, are not
  represented in this  figure, because they are not  really part of
  the architecture, but rather are configuration descriptions.
  
  
       What  follows are  descriptions of  all of  the objects  and
  global items in  the NIT, along with the syntax  needed to define
  them.  An example  is given at the end of  each description which
  shows a  standard object definition.  You are  also encouraged to
  look at the sample NIT source table near the end of this section.
  
  
  
  
  
  

  
  
  
  OBJECT RELATIONS IN DSA
  
            LAYERS                            DSA OBJECTS
  
       -------------------
       |   Application   |                    Service(s)
       |      TM         |
       |      UFT        |
       |      DSAC       |
       -------------------
         |
         |
       - | ------------------------           Sc_loc
       | |   DSA session control  |                  +
       | ||||                     |           Mailbox(es) --|
       | /  (several mailboxes)  |           Admin_function(s)
       | mailbox (with a default  |                  +
       |           STD)           |      Session_type_descriptor(s)
       ---------------------------
         ||||                   <------------ Session_Route(s)
         |   (several transport controls)
         |
       - | -----------------------            Ts(s)
       | |   transport control    |
       | -------------....        |
       | |         | ....         |
       | /        /             |
       | TC endpoint  ...   ...   |
       ----------------------------
                 || DIA(s) ----------->       Frontend(s)
          /-------------------
          |   DSA NETWORK     |
           (outside Multics) /
           -------------------
            /            
             ----------------------------
             |system (DN8, DPS7, Multics)|
             |(one session control)      |   System(s)
             ----------------------------
                 | mbx | ... |   | ...|      Correspondent(s)
                 ----------------------           or
                 |  ^  |              |      Admin_correspondent(s)
                 |  |                |        ^                ^
                 |Appli- ---         |        |                |..
                 |cation or terminal  |        --------------------
                 ----------------------           Admin_group(s)
  
  
  
  
  
  
  
  

  
  
  
  Mna_general_info
  
       The   Mna_general_info   statement    and   its   associated
  substatements   define  configuration    data  for   the  Multics
  networking  architecture (MNA).   Note that  the Mna_general_info
  statement  is  not  followed  by  a  colon,  a  parameter,  and a
  semicolon,  but  only  by  a  semicolon.   There  can only be one
  Mna_general_info statement in the NIT.
  
  
  SYNTAX
  
  Mna_general_info;
     cxi_driver_segment: <cxi_driver_segment_pathname>;
     dsa_system_log: <dsa_system_log_pathname>;
     dsa_system_aep_log: <dsa_system_aep_log_pathname>;
     dsa_aep_log: <dsa_aep_log_pathname>;
     sc_exerciser_wdir: <sc_exerciser_wdir_pathname>;
     sc_handle_manager_wdir: <sc_handle_manager_wdir_pathname>;
     default_tm_mailbox: <default_tm_mailbox_name>;
     default_uft_mailbox: <default_uft_mailbox_name>;
     default_exe_init_mailbox: <default_exe_init_mailbox_name>;
     dsa_uft_value_seg: >site>dsa>data>uft.value;
  end;
  
  where:
  
  cxi_driver_segment_pathname
       is the absolute pathname of the shared segment where the CXI
       input  daemons store  their data.   You are  responsible for
       creating   the   directory.     The   segment   is   created
       automatically when you execute the dsa_init command to start
       up session control.  It may also be created by executing the
       cxi_create_driver_seg command.  Refer to  Section 2 for more
       information.
  
  dsa_system_log_pathname
       is the absolute  pathname of the log in which  the CXI input
       daemons and  session control record their  errors, messages,
       traces,   etc.   You   are  responsible   for  creating  the
       directory.  The log is  created automatically.  Note that it
       is a ring 2 log.
  
  dsa_system_aep_log_pathname
       is the absolute  pathname of the log in which  the CXI input
       dameons  and session control  store their AEP  records.  You
       are  responsible for  creating  the  directory.  The  log is
       created automatically.  Note that it is a ring 2 log.
  
  
  
  
  
  

  
  
  
  dsa_aep_log_pathname
       is the  absolute pathname of the  log in which UFT  and DSAC
       (including  the network  session exerciser)  store their AEP
       records.   You are  responsible for  creating the directory.
       The log is created automatically.  Note  that it is a ring 4
       log.
  
  sc_exerciser_wdir_pathname
       is the absolute pathname of  the directory where the session
       control  exerciser creates  segments for  its own  purposes.
       You are responsible for  creating this directory.  A warning
       is  printed  if  this  directory   does  not  exist  at  NIT
       compilation time.
  
  sc_handle_manager_wdir_pathname
       is  the absolute  pathname  of  the directory  where session
       control  creates the  handle table  segment (dsa_sc_hm_seg).
       You are responsible for  creating this directory.  A warning
       is  printed  if  this  directory   does  not  exist  at  NIT
       compilation  time.   The  handle  table  segment  is created
       automatically when session control  is started for the first
       time.  Refer to Section 2 for more information.
  
  default_tm_mailbox_name
       is  the local  mailbox that  is used  to initiate  a logical
       connection  for TM  if  the  correspondent specified  by the
       caller is not defined in the NIT.  This is a free name of up
       to  32 characters, but  the convention is  to create a  name
       with the following syntax:
  
            dsa.<session_control_name>.<mbx_dsa_name>
  
       for example:
  
            dsa.MUL1.TMDIALOU
  
       The  parameters  session_control_name  and  mbx_dsa_name are
       defined under the Mailbox  object definition.  Note that the
       mailbox specified by default_tm_mailbox_name must be defined
       by a Mailbox object definition.
  
  default_uft_mailbox_name
       is  the local  mailbox that  is used  to initiate  a logical
       connection  for UFT  if the  correspondent specified  by the
       caller is not defined in the NIT.  This is a free name of up
       to  32 characters, but  the convention is  to create a  name
       with the following syntax:
  
            dsa.<session_control_name>.<mbx_dsa_name>
  
       for example:
  
  
  

  
  
  
            dsa.MUL1.UFT_REQ
  
       The  parameters  session_control_name  and  mbx_dsa_name are
       defined under the Mailbox  object definition.  Note that the
       mailbox   specified  by  default_uft_mailbox_name   must  be
       defined by a Mailbox object definition.
  
  default_exe_init_mailbox_name
       is  the local  mailbox that  is used  to initiate  a logical
       connection  for the  session exerciser  if the correspondent
       specified by the caller is not  defined in the NIT.  This is
       a free name of up to 32 characters, but the convention is to
       create a name with the following syntax:
  
            dsa.<session_control_name>.<mbx_dsa_name>
  
       for example:
  
            dsa.MUL1.$NSF
  
       The  parameters  session_control_name  and  mbx_dsa_name are
       defined under the Mailbox  object definition.  Note that the
       mailbox  specified by default_exe_init_mailbox_name  must be
       defined by a Mailbox object definition.
  
  dsa_uft_value_seg
       defines the pathname of a value segment used by UFT for site
       specific information.
  
  
  EXAMPLE
  
  Mna_general_info;
     cxi_driver_segment: >site>dsa>data>cxi_driver_seg;
     dsa_system_log: >site>dsa>system_logs_dir>dsa_sl;
     dsa_system_aep_log: >site>dsa>system_logs_dir>dsa_sal;
     dsa_aep_log: >site>dsa>aep_logs_dir>dsa_al;
     sc_exerciser_wdir: >site>dsa>data;
     sc_handle_manager_wdir: >site>dsa>data;
     default_tm_mailbox: dsa.MUL1.TMDIALOU;
     default_uft_mailbox: dsa.MUL1.UFT_REQ;
     default_exe_init_mailbox: dsa.MUL1.$NSF;
     dsa_uft_value_seg: >site>dsa>data>uft.value;
  end;
  
  
  
  
  
  
  
  
  
  

  
  
  
  Service
  
       The  Service  statement  and  its  associated  substatements
  define  a service.  Services  are defined in  the NIT to  provide
  applications  (for example,  the  login  server daemon)  with the
  ability to call generic entry  points to obtain precise services.
  When  an  application  wants  a  service  to  be  provided  on  a
  particular endpoint, it calls dsa_nit_$get_service_entries, which
  in  turn calls  a module   (specified in  the description  of the
  service  in  the  NIT)  in  its  get_service_entries entry.  This
  module returns  a list of  the entrypoints which  the application
  should  call in  order to   access the  service.  Note  that each
  endpoint has a service associated  with it, and that each service
  can  be provided on  more than one  endpoint.  There can  be more
  than one Service statement in the NIT.
  
  
  SYNTAX
  
  Service: <service_name>;
     endpoint: <endpoint_name1>;
        get_service_module: <gsm_module_name1>;
     end;
     .
     .
     .
     {endpoint: <endpoint_namen>;
        get_service_module: <gsm_module_namen>;
     end;}
  end;
  
  where:
  
  service_name
       is the name of  the service.  It is a free name  of up to 32
       characters.   Note that  service_name is  referenced in  the
       Mailbox,    Admin_function,    and    Correspondent   object
       definitions.
  
  endpoint_name
       is the name  of an endpoint on which this  service should be
       provided.  It is a free name of up to 32 characters, but the
       convention is to create a name with the following syntax:
  
            dsa.<session_control_name>.<mbx_dsa_name>
  
       for example:
  
            dsa.MUL1.LOGIN
  
       The  parameters  session_control_name  and  mbx_dsa_name are
       defined under the Mailbox  object definition.  Note that the
  
  

  
  
  
       endpoint  specified by  endpoint_name must  be defined  by a
       Mailbox  object definition.   If more  than one  endpoint is
       specified  for a service,  no two of  them can be  the same;
       i.e.,  every endpoint_name  in a  Service object  definition
       must be unique.
  
  gsm_module_name
       is the absolute pathname of a  module which is called in its
       get_service_entries   entry   when   an   application  calls
       dsa_nit_$get_service_entries  to   return  a  list   of  the
       entrypoints  to call  in order  to access  this service.   A
       warning is printed if the segment which contains this module
       does not exist at NIT compilation time.
  
       The currently-supplied modules are:
  
            dsa_tty_
            dsa_uft_login_service_
  
       which provide  the login service  (used by the  login server
       daemon software), and:
  
            dsa_dsac_lnad_
            dsa_dsac_ldsalog_
            dsa_dsac_nasf_
  
       which provide  the NAD, LOG,  and ASF services  (used by the
       DSA_DSAC daemon software).
  
       Note:  in the example below, and  in some of the examples in
       the sample NIT, you  will notice that the get_service_module
       field  is   sometimes  set  to  ">t>nothing".    This  is  a
       placeholder.  The  NIT software requires that  this field be
       set  to  something,  even  when  the  service  module is not
       required.  There  are two cases in which  the service module
       is not required.  One case is when the endpoint on which the
       service is being  provided is a local endpoint  used only to
       initiate  sessions  to  other  systems  from  Multics.   The
       software  which controls  such endpoints  needs to  know the
       name of  the mailbox and the  name of the service,  but does
       not need to know the name of a service module.  Another case
       is when  the service being provided  is "login_service", but
       the endpoint  on which it's being provided  is controlled by
       the  dssr  subsystem,  not   the  login  server.   The  dssr
       subsystem (described in Section 6) needs to know the name of
       the mailbox and  the name of the service, but  does not need
       to know the name of a service module.
  
  
  
  
  
  
  

  
  
  
  EXAMPLE
  
  Service: login_service;
     endpoint: dsa.MUL1.LOGIN;
        get_service_module: >exl>dsa>e>dsa_tty_;
     end;
  
     endpoint: dsa.MUL1.LOGINT;
        get_service_module: >exl>dsa>e>dsa_tty_;
     end;
  
     endpoint: dsa.MUL1.FILETRAN;
        get_service_module: >exl>dsa>e>dsa_uft_login_service_;
     end;
  
     endpoint: dsa.MUL1.$NSE;
        get_service_module: >t>nothing; /* required placeholder */
     end;
  end;
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

  
  
  
  Session_type_descriptor
  
       The  Session_type_descriptor  statement  and  its associated
  substatements  define a  session  type  descriptor (STD).   A STD
  describes the  characteristics of a session  which an application
  wants  to establish,  including a  type of  behavior for  logical
  connections.  When  an application asks  session control to  do a
  connect  or   a  listen,  it   must  tell  session   control  the
  characteristics  of  the  session  it  wants  session  control to
  establish.  It  does this either by  providing its own STD  or by
  providing  session  control  with  the  name  of  one of the STDs
  defined  in  the  NIT.   Session  control  looks  up the name and
  extracts the  information it needs.  If the  application does not
  supply  session  control  with  an  STD  at  all, session control
  queries the NIT  for the default STD associated  with the mailbox
  in question.
  
       Note  that when you  define a STD  in the NIT,  the compiler
  first  fills in   the Session_type_descriptor  substatements with
  default  values, then  overrides them  with any  values which you
  have  provided in your  description of the  object in the  source
  table.   There  can  be  more  than  one  Session_type_descriptor
  statement in the NIT.
  
  
  SYNTAX
  
  Session_type_descriptor: <std_name>;
     {initiate_wait_time:  <delta_timer_value>;}
     {rcv_max_letter_size: <rcv_max_letter_size_value>;}
     {send_max_letter_size: <send_max_letter_size_value>;}
     {modes: {<session_mode1>} ... {, <session_modeN>};}
     {protocols: {<session_protocol1>} ... {, <session_protocolN>};}
     {options: {<session_option1>} ... {, <session_optionN>};}
  end;
  
  where:
  
  std_name
       is the  name of the session  type descriptor.  It is  a free
       name  of  up  to  32  characters.   Note  that  std_name  is
       referenced by the Mailbox object definition.
  
  delta_timer_value
       is the encoded value of the  timer that is set when an ILCRL
       is sent and reset when  the corresponding ILCAL is received,
       and also  set when an ILCRL  is received and reset  when the
       corresponding  ILCAL  is  sent.   This  parameter  must be a
       decimal number (N)  from 1 to 15, which is  interpreted as 2
  
  
  
  
  

  
  
  
       ** (N-1) seconds (e.g., a value of 4 for N is interpreted as
       8 seconds).  A value of 15  for N is interpreted as infinite
       seconds, i.e., no timer.   This parameter is optional.  (The
       default is 4.)
  
  rcv_max_letter_size_value
       is  the  maximum  length  (in  bytes)  of  a  letter  on the
       receiving  flow.  This parameter  must be a  decimal string.
       This parameter is optional.  (The default is 1024.)
  
  send_max_letter_size_value
       is the maximum length (in bytes)  of a letter on the sending
       flow.   This  parameter  must  be  a  decimal  string.  This
       parameter is optional.  (The default is 1024.)
  
  session_mode
       is a mode of a session.  More than one mode may be specified
       in  order  to  provide  a  range  of  choices when a logical
       connection  is being negotiated.   Modes may be  chosen from
       the following list:
  
       twaa
            specifies that the mode is  two way alternate, with the
            initial turn to the acceptor.  (The default is off.)
  
       twai
            specifies that the mode is  two way alternate, with the
            initial turn to the initiator.  (The default is off.)
  
       twsa
            specifies that  the mode is two  way simultaneous, with
            the initial turn to the acceptor.  (The default is on.)
  
       twsi
            specifies that  the mode is two  way simultaneous, with
            the  initial turn  to the  initiator.  (The  default is
            off.)
  
       Note that  any value for  session_mode may be  preceded by a
       "^"  to  set  the   corresponding  value  to  "false."   The
       session_mode parameter is optional.
  
  session_protocol
       is  a protocol  supported on  a session.   Protocols may  be
       chosen from the following list:
  
       data_attention
            specifies that  both ends may send  data (80 characters
            maximum)  on the interrupt  flow of the  session.  (The
            default is ^data_attention.)
  
  
  
  

  
  
  
       request_sru_acknowledge
            specifies  that both  ends may  use the sru_acknowledge
            mechanism.  (The default is ^request_sru_acknowledge.)
  
       recover
            specifies  that  both  ends  may  recover  data  on the
            session.  (The default is ^recover.)
  
       suspend
            specifies  that both ends  may suspend the  session and
            resume it later.  (The default is ^suspend.)
  
       Note that any value for  session_protocol may be preceded by
       a  "^"  to  set  the  corresponding  value  to "false."  The
       session_protocol parameter is optional.
  
  session_option
       is an option  defined for a session.  Options  may be chosen
       from the following list:
  
       mixed_records
            specifies  that  session  control  is  allowed to build
            letters  containing  both   user  records  and  control
            records.    If   this    option   is   specified,   the
            multiple_records option  must also be  specified.  (The
            default  is ^mixed_records;  i.e., letters  may contain
            either user records or control records, but not both.)
  
       multiple_records
            specifies  that  session  control  is  allowed to build
            letters containing  multiple records.  (The  default is
            multiple_records.)
  
       nine_bit
            specifies that the session may  operate in nine bit per
            byte mode.  (The default is ^nine_bit.)
  
       request_security
            specifies  that  when  a  session  is  established, the
            initiator must  put a submitter identity  record in the
            initiate  letter, and  the acceptor  of this connection
            must put a submitter identity record in the acknowledge
            letter.  (The default is ^request_security.)
  
       reusable_subchannel
            specifies  that session control  is allowed to  reuse a
            terminated     subchannel.      (The     default     is
            ^reusable_channel.)
  
       Note that any value for  session_option may be preceded by a
       "^"  to  set  the   corresponding  value  to  "false."   The
       session_option parameter is optional.
  
  

  
  
  
  EXAMPLE
  
  Session_type_descriptor: login_listen_std;
     initiate_wait_time: 14;
     rcv_max_letter_size: 256;
     send_max_letter_size: 256;
     modes: twsa, twaa, twsi, twai;
     protocols: data_attention, suspend, recover,
                request_sru_acknowledge;
  end;
  
       Refer to the  sample NIT later in this  section for examples
  of   standard  Session_type_descriptor  object   definitions  for
  terminal  management (TM), the  session exerciser, UFT,  and mail
  applications, and for accessing remote NADs.
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

  
  
  
  Sc_loc
  
       The Sc_loc statement and its associated substatements define
  the configuration data required to run one session control entity
  on Multics; i.e., they define the local session control.  Session
  control is an entity with a name  and a set of addresses which it
  defines  (for example,  a mailbox   is an  address which  session
  control  defines).  Session  control  is  the local  entity which
  communicates with the remote entity  defined by the System object
  definition.  There can only be one Sc_loc statement in the NIT.
  
  
  SYNTAX
  
  Sc_loc: <session_control_name>;
     working_dir: <session_wd_pathname>;
     {authorization: <authorization_value>;}
     {scid_300: <scid_name>;}
     dsa200_node_address: <dsa200_node_address>;
     {seg_info_name: <seg_info_segname>;}
     {lc_data_name: <lc_data_segname>;}
     {attributes: {<sc_attribute1>} ... {, <sc_attributeN>};}
     {timers: {cleanup_timer = <cleanup_timer_value>}
              {, delta_timer = <delta_timer_value>}
              {, idle_lc_timer = <idle_lc_timer_value>}
              {, recover_timer = <recover_timer_value>}
              {, resume_timer = <resume_timer_value>}
              {, suspend_timer = <suspend_timer_value>};}
  end;
  
  where:
  
  session_control_name
       is  the local name  of the local  session control.  It  is a
       free  name  of  up  to  32  characters.   However,  to avoid
       confusion, we recommend that it be set to the four character
       DSA  name  of  the  local  session  control.   In this case,
       scid_name  (below)   need  not  be  specified.    Note  that
       session_control_name   is   referenced   in   the   Mailbox,
       Dsac_info,   and  Session_Route   object  definitions.    It
       corresponds to system_name, defined  under the System object
       definition.
  
  session_wd_pathname
       is  the absolute  pathname of   the directory  in which  two
       shared segments are created when session control is running.
       The  two  segments  are  specified  by  seg_info_segname and
       lc_data_segname, described  below.  You are  responsible for
       creating  this  directory.   A  warning  is  printed if this
       directory does not exist at NIT compilation time.
  
  
  
  

  
  
  
  authorization_value
       is  the AIM  authorization  given  to this  session control.
       This parameter is optional.  (The default is "system_low.")
  
  scid_name
       is the DSA  name of the local session control.   It is known
       all over  the DSA network, and  is used to access  the local
       session  control.   This  name   must  be  four  hexadecimal
       characters long.  If session_control_name  (above) is set to
       the four  character DSA name  of the local  session control,
       then the scid_name parameter need not be specified.
  
  dsa200_node_address
       specifies  the   address  of  the  DSA200   node  (which  is
       equivalent  to  the  DSA300  scid_name).   This parameter is
       required  for  purposes  of   compatibility.   It  allows  a
       negotiation at the same level  of protocol when a connection
       is established  with another node.   If the other  node is a
       DSA300  node, only  the scid_name  (or session_control_name)
       parameter is used.  But if the  other node is a DSA200 node,
       this parameter, dsa200_node_address, is used.
  
  seg_info_segname
       is the  entryname of the segment which  contains the general
       data  when  session  control  is  running.   This segment is
       created in  the directory specified  by session_wd_pathname,
       described  above, when the  dsa_init command is  executed to
       start   up  session  control.    See  Section  2   for  more
       information.  This  parameter is optional.  (The  default is
       "seg_info.")
  
  lc_data_segname
       is the  entryname of the segment which  contains the logical
       connection  objects when  session control  is running.  This
       segment   is   created   in   the   directory  specified  by
       session_wd_pathname,  described  above,  when  the  dsa_init
       command  is  executed  to  start  up  session  control.  See
       Section 2 for more information.  This parameter is optional.
       (The default is "lc_data.")
  
  sc_attribute
       is an  attribute of the session control.   Attributes may be
       chosen from the following list:
  
       automatic_init
            specifies  that  session  control  is  to  be restarted
            automatically  after  a   failure  has  occured.   (The
            default is automatic_init.)
  
  
  
  
  
  

  
  
  
       trace_input_letter
            specifies  that all  incoming letters  from the network
            are  to be  traced.  Such  tracing should  be used with
            caution, since  it may produce  a large amount  of data
            and    saturate   the     logs.    (The    default   is
            ^trace_input_letter.)
  
       trace_output_letter
            specifies that all outgoing  letters to the network are
            to  be  traced.   Such  tracing  should  be  used  with
            caution, since  it may produce  a large amount  of data
            and    saturate   the     logs.    (The    default   is
            ^trace_output_letter.)
  
       trace_sm
            specifies that each state transition of a session is to
            be traced.   Such tracing should be  used with caution,
            since it may produce large amounts of data and saturate
            the logs.  (The default is ^trace_sm.)
  
       trace_transport_arg
            specifies that input arguments  for every call from the
            transport layer are to  be traced.  Such tracing should
            be  used with  caution, since  it may  produce a  large
            amount of data and saturate  the logs.  (The default is
            ^trace_transport_arg.)
  
       trace_user_arg
            specifies that input arguments  for every call from the
            application  layer  are  to  be  traced.   Such tracing
            should  be used  with caution,  since it  may produce a
            large  amount  of  data  and  saturate  the logs.  (The
            default is ^trace_user_arg.)
  
       The sc_attributes parameter is optional.
  
  The following  are optional timers which  may be set for  all the
  logical  connections  and  sessions  established  on this session
  control:
  
       cleanup_timer_value
            is  the maximum  amount  of  time (in  seconds) session
            control may wait before  destroying the environment for
            a session in the terminate state, assuming the owner of
            the  session does  not do  it himself.   This parameter
            must be a decimal string.  (The default is 15.)
  
       delta_timer_value
            is  the maximum  amount  of  time (in  seconds) session
            control may  wait for a response to  an initiate record
            sent to a remote  correspondent.  (Session control must
            receive  an  initiate-acknowledge  record  before  this
  
  

  
  
  
            amount  of   time  elapses  or   it  may  not   open  a
            connection.)  This  parameter must be a  decimal string
            (N), which is interpreted as  2 ** (N-1) seconds (e.g.,
            a  value of 4  for N is  interpreted as 8  seconds).  A
            value of  15 for N is interpreted  as infinite seconds.
            (The default is 15.)
  
       idle_lc_timer_value
            is  the maximum  amount  of  time (in  seconds) session
            control  may wait before  establishing a session  on an
            idle   logical  connection.    (Session  control   must
            establish  a  session  on  an  idle  logical connection
            before  this  amount  of  time  elapses  or  it may not
            establish a session on it at all.)  This parameter must
            be a decimal  string (N), which is interpreted  as 2 **
            (N-1) seconds (e.g., a value  of 4 for N is interpreted
            as 8 seconds).   A value of 15 for N  is interpreted as
            infinite seconds.  (The default is 15.)
  
       recover_timer_value
            is  the maximum  amount  of  time (in  seconds) session
            control  may wait  for a  response to  a recover record
            sent to a remote  correspondent.  (Session control must
            receive a recover-acknowledge record before this amount
            of  time  elapses,  or  it  must  terminate the session
            abnormally.)  This parameter must  be a decimal string.
            (The default is 15.)
  
       resume_timer_value
            is  the maximum  amount  of  time (in  seconds) session
            control may wait for a response to a resume record sent
            to  a  remote  correspondent.   (Session  control  must
            receive a resume-acknowledge  record before this amount
            of  time  elapses,  or  it  must  terminate the session
            abnormally.)  This parameter must  be a decimal string.
            (The default is 15.)
  
       suspend_timer_value
            is  the maximum  amount  of  time (in  seconds) session
            control  may wait  for a  response to  a suspend record
            sent to a remote  correspondent.  (Session control must
            receive a suspend-acknowledge record before this amount
            of  time  elapses,  or  it  must  terminate the session
            abnormally.)  This parameter must  be a decimal string.
            (The default is 15.)
  
  
  
  
  
  
  
  
  

  
  
  
  EXAMPLE
  
  Sc_loc: MUL1;
     working_dir: >site>dsa>data;
     authorization: system_low;
     scid_300; MUL1;
     dsa200_node_address: 10:97;
     seg_info_name: seg_info1;
     lc_data_name: lc_data1;
     timers: suspend_timer = 4, recover_timer = 15,
             idle_lc_timer = 3, cleanup_timer = 2,
             delta_timer = 1;
  end;
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

  
  
  
  Mailbox
  
       The  Mailbox  statement  and   its  substatements  define  a
  mailbox.   A mailbox  is a  service access  point (SAP)  into the
  local  session  control;  i.e.,  it  is  the  representation of a
  specific address  in session control.  A mailbox  is the endpoint
  of  a  logical  connection  on   the  local  system.   A  logical
  connection is  established between a mailbox  and a correspondent
  (a mailbox on a remote system).  When an application asks session
  control to do a listen or  a connect, it provides session control
  with the name  of a mailbox, and also, in the  case of a connect,
  with the name  of a correspondent.  Note that since  a mailbox is
  an endpoint, it  has a service associated with it.   There can be
  more than one Mailbox statement in the NIT.
  
  
  SYNTAX
  
  Mailbox: <mailbox_name>;
     sc_loc: <session_control_name>;
     mbx_dsaname: <mbx_dsa_name>;
     local_service: <service_name>;
     session_type_descriptor: <std_name>;
     {user_required_for_dial: <user_required_value>;}
     acl_path: <acl_pathname>;
     {authorization: <authorization_value>;}
  end;
  
  where:
  
  mailbox_name
       is the name of the mailbox.  This is a free name of up to 32
       characters, but the convention is  to create a name with the
       following syntax:
  
            dsa.<session_control_name>.<mbx_dsa_name>
  
       for example:
  
            dsa.MUL1.LOGIN
  
       The  parameters  session_control_name  and  mbx_dsa_name are
       defined below.
  
  session_control_name
       is  the local  name of   the session  control in  which this
       mailbox is defined.  It will usually be the same as the four
       character  DSA  name  of  the  session  control.   Refer  to
       session_control_name  under  the  Sc_loc  object definition.
       Note    that    the    session    control    specified    by
       session_control_name  must  be  defined  by  a Sc_loc object
       definition.
  
  

  
  
  
  mbx_dsa_name
       is the  DSA name of the  mailbox, which is used  between two
       session controls to exchange information.  This name must be
       a string of eight or  less characters.  Note that some names
       are predefined in DSA.  The predefined names are:
  
            FILETRAN
            LOGIN
            UFT_REQ
            $ASF
            $LOGFILE
            $NAD
            $NOI
            $NOIAEP
  
  service_name
       is  the  name  of  the  service  which  is  provided on this
       mailbox.  It  is a free name  of up to 32  characters.  Note
       that the  service specified by service_name  must be defined
       by a Service object definition.
  
  std_name
       is  the   name  of  the  default   session  type  descriptor
       associated with this mailbox.  It is a free name of up to 32
       characters.  If an application calls session control to do a
       listen or a connect on this mailbox without supplying a STD,
       session control  will use the default one  provided for this
       mailbox.  Note  that the STD  specified by std_name  must be
       defined by a Session_type_descriptor object definition.
  
  user_required_value
       is a string ("yes" or "no") which specifies whether or not a
       user  who dials  up to   this endpoint  and issues  the dial
       request   must  specify   the  -user   control  argument  to
       identify/authenticate himself.  This parameter is optional.
  
  acl_pathname
       is the absolute  pathname of the ACS segment  that lists the
       access to this mailbox of  every user.  Session control (via
       dsa_nit_)  checks the  access of  a caller  on this mailbox.
       The caller must have "r" access on the ACS segment to listen
       on the mailbox, "e" to make a connect, and "w" to create and
       delete the  mailbox.  A warning  is printed if  this segment
       does not exist at NIT compilation time.
  
  authorization_value
       is  the  AIM  authorization  given  to  this  mailbox.  This
       parameter is optional.  (The default is "system_low.")
  
  
  
  
  
  

  
  
  
  EXAMPLE
  
  Mailbox: dsa.MUL1.LOGIN;
     sc_loc: MUL1;
     mbx_dsaname: LOGIN;
     local_service: login_service;
     session_type_descriptor: login_listen_std;
     user_required_for_dial: yes;
               /* Access information */
     acl_path: >sc1>mna>dsa>Login.acs;
     authorization: system_low;
  end;
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

  
  
  
  Dsac_info
  
       The  Dsac_info statement   and its  associated substatements
  define  configuration data  for the  DSA_DSAC daemon.   There can
  only be one Dsac_info statement in the NIT.
  
  
  SYNTAX
  
  Dsac_info: <dsac_info_name>;
     sc_loc: <session_control_name>;
     working_dir: <wd_pathname>;
     working_dd_seg: <dd_segname>;
     working_af_seg: <af_segname>;
     working_ag_seg: <ag_segname>;
     working_ac_seg: <ac_segname>;
     admin_functions: <admin_function_name1>
                      ... {, <admin_function_nameN>};
  end;
  
  where:
  
  ac_segname
       is   the   entryname   of   the   segment   containing   the
       administrative   correspondent   table.    It   is   created
       automatically when the DSA_DSAC daemon is started up for the
       first  time,  in  the  directory  specified  by wd_pathname,
       described above.
  
  af_segname
       is   the   entryname   of   the   segment   containing   the
       administrative function table.   It is created automatically
       when the DSA_DSAC  daemon is started up for  the first time,
       in the directory specified by wd_pathname, described above.
  
  ag_segname
       is   the   entryname   of   the   segment   containing   the
       administrative  group table.    It is  created automatically
       when the DSA_DSAC  daemon is started up for  the first time,
       in the directory specified by wd_pathname, described above.
  
  admin_function_name
       is  the name  of an  administrative function  handled by the
       DSA_DSAC  daemon.   The  DSA_DSAC  daemon  generally handles
       three administrative functions, one of  the NAD type and two
       of  the ASF  type.   Note  that the  administrative function
       specified  by  admin_function_name  must  be  defined  by an
       Admin_function object definition.
  
  
  
  
  
  

  
  
  
  dd_segname
       is the  entryname of the segment containing  the daemon main
       table.  It is created automatically when the DSA_DSAC daemon
       is started up for the first time, in the directory specified
       by wd_pathname, described above.
  
  dsac_info_name
       is the name  of the DSAC information NIT object.   This is a
       free  name of up  to 32 characters.   There is a  one-to-one
       correspondence between this object  and the object described
       by the Sc_loc statement; therefore,  since there can only be
       one session control running at a time, there can only be one
       DSAC information object in the NIT.
  
  session_control_name
       is  the local  name of  the session  control with  which the
       DSA_DSAC daemon  interfaces.  This name is  usually the same
       as  the four  character DSA   name of  the session  control.
       Refer  to  session_control_name   under  the  Sc_loc  object
       definition.   Note  that  the  session  control specified by
       session_control_name  must  be  defined  by  a Sc_loc object
       definition.
  
  wd_pathname
       is the  absolute pathname of the directory  in which segment
       data are created when the  DSA_DSAC daemon is started up for
       the  first  time.   It  is  the  DSA_DSAC  daemon's  working
       directory.  You are responsible for creating this directory,
       and should  do so before  the DSA_DSAC daemon  is started up
       for the  first time.  Note  that you must  give the DSA_DSAC
       daemon "sma" access to this directory.  A warning is printed
       if this  directory does not  exist at NIT  compilation time.
       Refer to Section 6 for more information.
  
  
  EXAMPLE
  
  Dsac_info: DSAC.MUL1;
     sc_loc: MUL1;
     working_dir: >site>dsa>dsac_info;
     working_dd_seg: dd1;
     working_af_seg: af1;
     working_ag_seg: ag1;
     working_ac_seg: ac1;
     admin_functions: lnad1,dsalog1,nasf1;
  end;
  
  
  
  
  
  
  
  

  
  
  
  Admin_function
  
       The    Admin_function   statement    and   its    associated
  substatements   define  a   DSAC  administrative   function.   An
  administrative  function  is  a  set  of  administrative services
  provided on a given mailbox on  the local system (by the DSA_DSAC
  daemon).   Each administrative  function can  communicate through
  DSA sessions with an analogous administrative function located on
  a  remote system.   (Remote administrative  functions are  called
  administrative correspondents on the local system, just as remote
  mailboxes  are called  correspondents on  the local  system.)  An
  administrative function is roughly  characterized by its type and
  by  its mailbox name.   There are generally  three Admin_function
  object   definitions  in  the   NIT:   one  which   describes  an
  administrative function  of the NAD type, and  two which describe
  administrative  functions  of  the  ASF  type.  An administrative
  function of  the NAD type  can receive incoming  connections from
  administrative  correspondents   of  the  ASF/NOI/NCC   type;  an
  administrative  function of  the  ASF  type can  receive incoming
  connections from  administrative correspondents of the  NAD type.
  (Multics administrative functions always accept incoming sessions
  on their mailboxes; they never  initiate sessions.)  There can be
  more than one Admin_function statement in the NIT.
  
  
  SYNTAX
  
  Admin_function: <admin_function_name>;
     mailbox: <mailbox_name>;
     type: <admin_function_type>;
     local_service: <service_name>;
  end;
  
  where:
  
  admin_function_name
       is the name of the  administrative function.  This is a free
       name of up to  32 characters.  Note that admin_function_name
       is  referenced  in  the  Dsac_info  and  Admin_group  object
       definitions.
  
  admin_function_type
       is  the type  of the  administrative function.   It must  be
       either  "NAD" or "ASF".   An administrative function  of the
       NAD  type  can  send   AEP  messages  to  an  administrative
       correspondent  of the  ASF/NOI/NCC type.   An administrative
       function of  the ASF type  can receive AEP  messages from an
       administrative correspondent  of the NAD type.   It can also
       transfer administrative  files to or from  an administrative
       correspondent of the NAD type.
  
  
  
  

  
  
  
  mailbox_name
       is   the  name   of  the   local  mailbox   on  which   this
       administrative  function is  provided.  The  DSA_DSAC daemon
       uses  this  particular  mailbox   to  accept  sessions  from
       administrative correspondents.  This is a free name of up to
       32 characters, but  the convention is to create  a name with
       the following syntax:
  
            dsa.<session_control_name>.<mbx_dsa_name>
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

  
  
  
       for example:
  
            dsa.MUL1.$NAD
  
       The  parameters  session_control_name  and  mbx_dsa_name are
       defined under the Mailbox  object definition.  Note that the
       session  control specified  by session_control_name  must be
       the same as the  one specified by session_control_name under
       the  Dsac_info  object  description.   Note  also  that  the
       mailbox  specified  by  mailbox_name  must  be  defined by a
       Mailbox object definition.
  
  service_name
       is the name of the service which is provided by the DSA_DSAC
       daemon  on the  specified  mailbox.   Note that  the service
       specified  by  service_name  must  be  defined  by a Service
       object description.
  
  
  EXAMPLE
  
  Admin_function: lnad1;
     mailbox: dsa.MUL1.$NAD;
     type: NAD;
     local_service: nad_service;
  end;
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

  
  
  
  Admin_group
  
       The Admin_group  statement and its  associated substatements
  define  a  DSAC  administrative  group,   which  is  a  group  of
  administrative correspondents  of the same type,  associated with
  the same (local)  administrative function.  (See admin_group_type
  below.)  There must be at  least one Admin_group statement in the
  NIT for each Admin_function statement in the NIT.
  
  
  SYNTAX
  
  
  Admin_group: <admin_group_name>;
     type: <admin_group_type>;
     {max_active_ac: <max_active_ac_value>;}
     admin_function: <admin_function_name>;
  end;
  
  where:
  
  admin_group_name
       is  the name of  the administrative group.   This is a  free
       name of up to 32 characters.
  
  admin_group_type
       is the type  of the administrative group; i.e.,  the type of
       every  administrative correspondent   which belongs  to this
       administrative  group, and  by  extension,  the type  of the
       remote   administrative  functions   represented  by   these
       administrative  correspondents.   It  must  chosen  from the
       following list:
  
            ASF
            AUT
            NAD
            NCC
            NOI
  
  admin_function_name
       is the name of the  (local) administrative function to which
       this  administrative   group  is  linked.   Note   that  the
       administrative  function  specified  by  admin_function_name
       must be defined by an Admin_function object definition.
  
  max_active_ac_value
       is  the maximum  number of  administrative correspondents in
       this administrative  group which can be active  at one time.
       This  parameter  must  be  set  to  a  decimal string.  This
       parameter is optional.
  
  
  
  

  
  
  
  EXAMPLE
  
  Admin_group: admin_group1;
     type: NOI;
     max_active_ac: 10;
     admin_function: lnad1;
  end;
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

  
  
  
  Ts
  
       The Ts  statement and its associated  substatements define a
  transport station.  Provided with the  name of the remote session
  control  to access  and the  list of  session routes  to use, the
  local  Multics  session  control  picks  the  DN8/7100  transport
  station to call in order to send an initiate letter.  CXI assumes
  the  interface  between  the  Multics  session  control  and  the
  transport station.  There is  one transport station per frontend.
  The transport station  described by a Ts object  definition is an
  image  of the  actual transport  station in  the remote DN8/7100.
  There can be more than one Ts statement in the NIT.
  
  
  SYNTAX
  
  Ts: <dsa_transport_name>;
     address: <dsa_ts_address>;
     frontend: <frontend_name>;
  end;
  
  where:
  
  dsa_transport_name
       is the name  of the transport station.  This is  a free name
       of  up to  32 characters.   Note that  dsa_transport_name is
       referenced   in  the   Frontend  and   Session_Route  object
       definitions.
  
  dsa_ts_address
       is the address of this transport station in the DSA network.
       This address is usually composed  of the area number and the
       ts_number  in the area.   This parameter may  be set to  the
       dummy value of "".
  
  frontend_name
       is the  name of the  DN8/7100 in which  the actual transport
       station  exists.   Note  that   the  DN8/7100  specified  by
       frontend_name   must  be   defined  by   a  Frontend  object
       definition.
  
  
  EXAMPLE
  
  Ts: dn8_a;
     address: 1:61;
     frontend: dn8a;
  end;
  
  
  
  
  
  

  
  
  
  Frontend
  
       The  Frontend  statement  and  its  associated substatements
  define a  DN8/7100 frontend.  The configuration  data provided in
  this  definition are used  by the CXI  input daemon to  interface
  this frontend with Multics.
  
  
  SYNTAX
  
  Frontend: dnsa;
     driver: <cxi_driver_>;
     driver_admin: <cxi_driver_admin_>;
     ts_entity: <dsa_transport_name>;
     dia: <dia_name1> ... {, <dia_nameN>};
     sc_loc: <scid_name>;
     wired_buffer_size: <wired_buffer_size_value>;
     input_q_size: <input_q_size_value>;
     output_q_size: <ouput_q_size_value>;
     dummy_traffic_interval: <dummy_traffic_interval_value>;
     idle_timer_interval: <idle_timer_interval_value>;
     working_dir: <wd_pathname>;
  end;
  
  where:
  
  dia_name
       is the name  of a DIA connected to this  frontend.  The name
       is specified in the same way as it is specified on the "prph
       diaX"  card in the  Multics configuration deck;  e.g., diab.
       For  more information  about  the  "prph diaX"  config card,
       refer  to Section  7  of  the System  Maintenance Procedures
       manual, Order No.  AM81.
  
  dsa_transport_name
       is  the name  of the   transport station  supported by  this
       particular  frontend.   Note   that  the  transport  station
       specified  by dsa_transport_name  must  be  defined by  a Ts
       object  definition.  Note  also that  the transport  station
       specified  by dsa_transport_name  must  be  the same  as the
       transport station specified  by dsa_transport_name under the
       corresponding Session_Route object definition.
  
  dummy_traffic_interval_value
       specifies (in  seconds) how often dummy traffic  may be sent
       to the frontend.  (Dummy traffic  is sent to the frontend in
       order  to verify  that it  is operational.)   This parameter
       must be set to a decimal  string.  It should normally be set
       to 120.
  
  
  
  
  

  
  
  
  frontend_name
       is the name  of the frontend.  This is a free  name of up to
       32 characters.  Note that frontend_name is referenced in the
       Ts object definition.
  
  idle_timer_interval_value
       specifies (in  milliseconds) how often the  CXI input daemon
       should check the CXI queues  for commands from the frontend.
       This parameter must  be set to a decimal  string.  It should
       normally be set to 100.
  
  input_q_size_value
       is the size (in entries) of the CXI input queue.  Each entry
       uses  four  words  of  space  in  the  wired  buffer.   This
       parameter must be set to a decimal string.
  
  ouput_q_size_value
       is  the size  (in entries)  of the  CXI output  queue.  Each
       entry uses  four words of  space in the  wired buffer.  This
       parameter must be set to a decimal string.
  
  scid_name
       is the DSA  name of the session control which  the CXI input
       daemon interface  with this frontend.  It is  known all over
       the  DSA network, and  is used to  access the local  session
       control.
  
  wd_pathname
       is the absolute pathname of the working directory of the CXI
       input  daemon which  interfaces this  frontend with Multics.
       Normally,  the runnable  image, the  config file,  the patch
       files, and the  dump files for this frontend  should be kept
       in  this directory,  and the  start_up.ec for  the CXI input
       daemon  should  contain  a  command  to  change  the working
       directory     to     this     directory.      (Either    the
       dsa_fep_working_dir   (dsa_fwd)  active   function  or   the
       frontend_working_dir (fwd) CXI subsystem request may be used
       for  this purpose;  e.g., cwd  [dsa_fwd dn8a].   The dsa_fwd
       active  function is  described in   Section 2;  the fwd  CXI
       subsystem request is described in  Section 5.)  A warning is
       printed if this directory does  not exist at NIT compilation
       time.
  
  wired_buffer_size_value
       is  the total size  (in pages) of  the wired buffer  that is
       used (when this frontend is running) by the CXI input daemon
       associated  with this  frontend.  The  CXI input  and output
       queues are located in this buffer, and any space leftover is
       used  for data  buffers.  This  parameter must  be set  to a
       decimal string greater than or equal to 5.
  
  
  
  

  
  
  
  EXAMPLE
  
  Frontend: dn8a;
     ts_entity: dn8_a;
     dia: diaa, diac;
     sc_loc: MUL1;
     wired_buffer_size: 40;                  /* In pages */
     input_q_size: 97;                       /* In entries */
     output_q_size: 91;                      /* In entries */
     dummy_traffic_interval: 120;            /* In seconds */
     idle_timer_interval: 500;               /* In milliseconds */
     working_dir: >site>dsa>frontend_dir_dir>dn8a;
  end;
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

  
  
  
  Session_Route
  
       The Session_Route statement and its associated substatements
  define a  session route.  A session  route is a link  between one
  session control and one transport control.   It is a route out of
  Multics and into a DN8/7100.  A remote system contains in its NIT
  definition a list  of session route names that may  be used to go
  out of  that remote system in  order to access the  local system.
  There can be more than one Session_Route statement in the NIT.
  
  
  SYNTAX
  
  Session_Route: <session_route_name>;
     sc_loc: <session_control_name>;
     ts: <dsa_transport_name> ;
  end;
  
  where:
  
  dsa_transport_name
       is the name of the  transport station which is the extremity
       of this route.  Note that the transport station specified by
       dsa_transport_name   must  be   defined  by   a  Ts   object
       definition.  Note also that  the transport station specified
       by  dsa_transport_name must  be  the  same as  the transport
       station   specified   by    dsa_transport_name   under   the
       corresponding Frontend object definition.
  
  session_control_name
       is the local name of the session control which is the origin
       of this route.  It is usually the same as the four character
       DSA    name   of    the   session    control.    Refer    to
       session_control_name  under  the  Sc_loc  object definition.
       Note    that    the    session    control    specified    by
       session_control_name  must  be  defined  by  a Sc_loc object
       definition.
  
  session_route_name
       is the name of the session route.  This is a free name of up
       to   32  characters.     Note  that   session_route_name  is
       referenced in the System object definition.
  
  
  EXAMPLE
  
  Session_Route: route_to_dn8_a;
     sc_loc: MUL1;
     ts: dn8_a;
  end;
  
  
  
  

  
  
  
  System
  
       The System statement and its associated substatements define
  a remote  system; i.e., a remote  DSA host or a  remote DSA node.
  There can be more than one System statement in the NIT.
  
  
  SYNTAX
  
  System: <system_name>;
     {sc_rmt: <scid_name>;}
     dsa200_node_address: <dsa200_node_address>;
     session_route: <session_route_name1>;
     .
     .
     .
     {session_route: <session_route_namen>;}
     system_type: <system_type_name>;
     {system_release: <system_release>;}
     {official_name: <official_name>;}
     {tm_version: <tm_version_value>;}
     acl_path: <system_acl_pathname>;
     {authorization: <authorization_value>;}
  end;
  
  where:
  
  authorization_value
       is  the  AIM  authorization  given  to  this  system.   This
       parameter  is  optional.   (The  default  is  "system_low.")
       dsa200_node_address
       specifies  the   address  of  the  DSA200   node  (which  is
       equivalent  to  the  DSA300  scid_name).   This parameter is
       required  for  purposes  of   compatibility.   It  allows  a
       negotiation at the same level  of protocol when a connection
       is established  with another node.   If the other  node is a
       DSA300 node,  only the scid_name (or  system_name) parameter
       is  used.  But  if the  other node  is a  DSA200 node,  this
       parameter, dsa200_node_address, is used.
  
  official_name
       is  a string of  up to 32  characters specifying the  actual
       name  and/or  address  of  the  remote  host;  for  example,
       Louveciennes Multics.  This parameter is optional.
  
  scid_name
       is the DSA name of  the remote system's session control.  It
       is known all over the DSA network, and is used to access the
       remote  system's session  control.  This  name must  be four
       hexadecimal  characters long.   If  the  remote system  is a
       Multics  system, this  name must   be the  same as  the name
       specified by the scid_name parameter under the Sc_loc object
  
  

  
  
  
       definition in the remote  system's NIT, unless the scid_name
       parameter  is not specified,  in which case  it must be  the
       same  as  the  name  specified  by  the session_control_name
       parameter under  the Sc_loc object definition  in the remote
       system's  NIT.  If the  remote system is  a local or  remote
       DN8/7100, this name  must be the same as  the name specified
       on the SC card in the DN8/7100's configuration file.  If the
       remote system  is a DN8/7100 running under  the DSA200 level
       protocol, system_name may be the  same as the name specified
       on the  NODE card in the DN8/7100's  configuration file.  If
       the remote system  is a Level 6, this name  must be the same
       as  the name  specified on  the SCA  card in  the Level  6's
       configuration  file.  If system_name  (above) is set  to the
       four  character  DSA  name  of  the  remote system's session
       control, then this parameter need not be specified.
  
  system_acl_pathname
       is the absolute  pathname of the ACS segment  that lists the
       access to this system of every user.  The user must have "r"
       access to accept incoming  connections from this system, and
       "e"  access  to  initiate  connections  to  this system.  If
       correspondent_acl_pathname    is    specified    under   the
       Correspondent object  definition, its value  there overrides
       its value here.   If correspondent_acl_pathname is specified
       under the  Admin_correspondent object definition,  its value
       there overrides its value here.
  
  system_name
       is the local  name of the remote system.  It  is a free name
       of  up to  32 characters.   However, to  avoid confusion, we
       recommend that it  be set to the four character  DSA name of
       the remote system's session  control.  If system_name is set
       to  the DSA name,  then the following  rules apply.  If  the
       remote system  is a Multics system, system_name  must be the
       same as the name specified  by the scid_name parameter under
       the  Sc_loc object  definition in  the remote  system's NIT,
       unless  the scid_name parameter  is not specified,  in which
       case  it must  be the  same  as  the name  specified by  the
       session_control_name  parameter  under   the  Sc_loc  object
       definition in the remote system's NIT.  If the remote system
       is a local or remote  DN8/7100, system_name must be the same
       as  the name  specified on   the SC  card in  the DN8/7100's
       configuration  file.  If  the  remote  system is  a DN8/7100
       running under the DSA200  level protocol, system_name may be
       the  same as  the name  specified on  the NODE  card in  the
       DN8/7100's  configuration file.  If  the remote system  is a
       Level 6, system_name must be  the same as the name specified
       on  the SCA card  in the Level  6's configuration file.   If
       system_name is  set to the DSA name,  scid_name (below) need
  
  
  
  
  

  
  
  
       not  be specified.  Note  that system_name is  referenced in
       the    Correspondent    and    Admin_correspondent    object
       definitions.    It   corresponds   to  session_control_name,
       defined under the Sc_loc object definition.
  
  system_release
       is a string of up to 32 characters specifying the release of
       this  system;  for  example,   MR11.0.   This  parameter  is
       optional and may be set to "".
  
  system_type_name
       is a  string of up to  32 characters specifying the  type of
       this system; for example, Multics, DN8, DSS.
  
  tm_version_value
       is the version of the terminal management software installed
       on  this  system.   This  parameter  must  be  set to either
       TM_NO_STC or TM_FULL_STC.  This parameter is optional.
  
  
  EXAMPLE
  
  System: DA10;
     sc_rmt:  DA10;
     dsa200_node_address: 10:96;
     session_route: route_to_dn8_a;
     system_type: DN8;
     system_release: "";
     official_name: CISL_dn8_a;
     tm_version: TM_FULL_STC;
     acl_path: >sc1>mna>dsa>systems.acs;
  end;
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

  
  
  
  Correspondent
  
       The Correspondent statement and its associated substatements
  define a correspondent, which is a mailbox on a remote system.  A
  correspondent  is the  local view   of a  remote mailbox  object.
  (This  remote mailbox  is described  as a  mailbox in  the remote
  site's  DSA network description.)   A correspondent is  a service
  access point (SAP) into a remote session control; i.e., it is the
  representation of a specific address in a remote session control.
  A correspondent  is the endpoint  of a logical  connection on the
  remote  system.  A  logical connection  is established  between a
  mailbox  and a correspondent.   When an application  asks session
  control to do a listen or  a connect, it provides session control
  with the name  of a mailbox, and also, in the  case of a connect,
  with   the  name   of  a   correspondent.   Note   that  since  a
  correspondent is a kind of  endpoint, it has a service associated
  with it.  There  can be more than one  Correspondent statement in
  the NIT.
  
  
  SYNTAX
  
  Correspondent: <correspondent_name>;
     system: <system_name>;
     rmt_mbx_dsaname: <mbx_dsa_name>;
     local_service_to_use: <service_name>;
     {authorization: <authorization_value>;}
     {request_type: <IO_Daemon_request_type>;}
     {terminal_type: <terminal_type>;}
     {acl_path: <correspondent_acl_pathname>;}
  end;
  
  where:
  
  authorization_value
       is the AIM authorization  given to this correspondent.  This
       parameter is optional.  (The default is "system_low.")
  
  correspondent_acl_pathname
       is the absolute  pathname of the ACS segment  that lists the
       access to  this correspondent of every user.   The user must
       have  "r" access  to accept  incoming connections  from this
       system,  and  "e"  access  to  initiate  connections to this
       system.   This   parameter  is  optional.   If   it  is  not
       specified, then  access checking is done on  the ACS segment
       specified  by the   system_acl_pathname parameter  under the
       System  object definition  for the  "containing" system.  If
       both the  "containing" system and the  correspondent provide
       an  ACS segment,  the correspondent's  ACS segment overrides
       the system's ACS segment.
  
  
  
  

  
  
  
  correspondent_name
       is the name of the correspondent.  This is a free name of up
       to  32 characters, but  the convention is  to create a  name
       with the following syntax:
  
            dsa.<system_name>.<mbx_dsa_name>
  
       for example:
  
            dsa.DA10.tty1
  
       The  parameters  system_name  and  mbx_dsa_name  are defined
       below.
  
  IO_Daemon_request_type
       is  the  IO  Daemon  request  type  which  should be used to
       enqueue deferred UFT requests  for this correspondent.  This
       parameter is optional.  (The default is "dsa_uft.")
  
  mbx_dsa_name
       is the DSA name of  the correspondent, which is used between
       two  session controls  to exchange  information.  This  name
       must be a string of eight or less characters.  If the remote
       system in  which the correspondent  is defined is  a Multics
       system, this name must be the  same as the name specified by
       the mbx_dsa_name  parameter under the  corresponding Mailbox
       object definition in the remote system's NIT.  If the remote
       system in which  the correspondent is defined is  a local or
       remote  DN8/7100, this  name must  be the  same as  the name
       specified on the DEVICE card in the DN8/7100's configuration
       file (or it must be the  same as the default name assumed by
       the   configuration  file).    Note  that   some  names  are
       predefined in DSA.  The predefined names are:
            FILETRAN
            LOGIN
            UFT_REQ
            $ASF
            $LOGFILE
            $NAD
            $NOI
            $NOIAEP
  
  service_name
       is  the  name  of  the  service  which  is  provided on this
       correspondent.    Note  that    the  service   specified  by
       service_name must be defined by a Service object definition.
  
  system_name
       is  the  local  name  of  the  remote  system  in  which the
       correspondent  is defined.  It  is a free  name of up  to 32
       characters.  Note  that the system specified  by system_name
       must be defined by a System object definition.
  
  

  
  
  
  terminal_type
       is  the terminal  type of  the remote  correspondent, if the
       remote correspondent represents a  terminal.  It must be one
       of  the terminal  types listed  by the  print_terminal_types
       command.  Terminal management uses this parameter to get the
       terminal type  of the correspondent.  If TM  may not process
       sessions to this correspondent, this parameter may be set to
       "NONE" or not be specified.  In this case, the terminal type
       is negotiated when the session is set up.
  
  
  EXAMPLE
  
  Correspondent: dsa.DA10.TTY1;
     system: DA10;
     rmt_mbx_dsaname: TTY1;
     local_service_to_use: tm_dialout_service;
     authorization: system_low;
     terminal_type: VIP7801;
     acl_path: >sc1>mna>dsa>admin_correspondent.acs;
  end;
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

  
  
  
  Admin_correspondent
  
       The   Admin_correspondent  statement   and  its   associated
  substatements define an administrative correspondent, which is an
  administrative  function on  a remote  system.  An administrative
  correspondent  is  the  local  view  of  a  remote administrative
  function  object.    (This  remote  administrative   function  is
  described as an administrative function  in the remote site's DSA
  network  description.)   Administrative   correspondents  of  the
  ASF/NOI/NCC  type  will  initiate  sessions  with  administrative
  functions  of the  NAD type  (which will  accept these sessions).
  Administrative  correspondents  of  the  NAD  type  will initiate
  sessions  with administrative  functions of  the ASF  type (which
  will  accept  these  sessions).   There  can  be  more  than  one
  Admin_correspondent statement in the NIT.
  
  
  SYNTAX
  
  Admin_correspondent: <admin_correspondent_name>;
     system: <system_name>;
     rmt_mbx_dsaname: <mbx_dsa_name>;
     admin_group: <admin_group_name>;
     {authorization: <authorization_value>;}
     {acl_path: <correspondent_acl_pathname>;}
     type: <admin_corr_type>;
     {character_encoding: <char_encoding_value>;}
  end;
  
  where:
  
  admin_corr_type
       is  the type  of this  administrative correspondent,  and by
       extension, the type of the remote administrative function it
       represents.   It  must  be  the  same  as  the  type  of the
       administrative    group   to   which    the   administrative
       correspondent belongs.  It must be chosen from the following
       list:
  
            ASF
            AUT
            NAD
            NOI
            NCC
  
  admin_correspondent_name
       is the name of the  administrative correspondent.  This is a
       free name of  up to 32 characters, but the  convention is to
       create a name with the following syntax:
  
            dsa.<system_name>.<mbx_dsa_name>.<local_af_mbx_dsaname>
  
  
  

  
  
  
       for example:
  
            dsa.DA10.$NOIAEP.$NAD
  
       The  parameters  system_name  and  mbx_dsa_name  are defined
       below.    The   parameter    local_af_mbx_dsaname   is   the
       mbx_dsaname  of  the  (local)  administrative  function with
       which   this  administrative   correspondent  is   going  to
       communicate.
  
  admin_group_name
       is  the  name  of  the  administrative  group  to which this
       administrative   correspondent  belongs.    Note  that   the
       administrative group  specified by admin_group_name  must be
       defined by an Admin_group object definition.  Note also that
       the   administrative  correspondent    must  belong   to  an
       administrative group of the  same type as the administrative
       correspondent.
  
  authorization_value
       is  the  AIM  authorization  given  to  this  administrative
       correspondent.  This parameter is optional.  (The default is
       "system_low.")
  
  char_encoding_value
       is  the  character  encoding   type  ("ASCII"  or  "EBCDIC")
       practiced   by  this  administrative   correspondent.   This
       parameter is optional.  (The default is "ASCII".)
  
  correspondent_acl_pathname
       is the absolute  pathname of the ACS segment  that lists the
       access to  this administrative correspondent of  every user.
       The user must have "r" access to accept incoming connections
       from this system, and "e"  access to initiate connections to
       this  system.  This  parameter is  optional.  If  it is  not
       specified, then  access checking is done on  the ACS segment
       specified  by the   system_acl_pathname parameter  under the
       System  object definition  for the  "containing" system.  If
       both   the  "containing"   system  and   the  administrative
       correspondent  provide an   ACS segment,  the administrative
       correspondent's  ACS  segment  overrides  the  system's  ACS
       segment.
  
  
  
  
  
  
  
  
  
  
  
  

  
  
  
  mbx_dsa_name
       is the  DSA name of the  administrative correspondent, which
       is   used   between   two   session   controls  to  exchange
       information.  This  name must be  a string of  eight or less
       characters.   Note that  some names  are predefined  in DSA.
       The predefined names are:
  
            $ASF
            $LOGFILE
            $NAD
            $NOI
            $NOIAEP
  
       Note  also that these  names are chosen  in relation to  the
       network configurations  of other DSA systems.   For example,
       $NOIAEP  is the default  mailbox name for  an administrative
       correspondent of the NOI type.
  
  system_name
       is  the  local  name  of  the  remote  system  for which the
       administrative correspondent is defined.   It is a free name
       of up to  32 characters.  Note that the  system specified by
       system_name must be defined by a System object definition.
  
  
  EXAMPLE
  
  Admin_correspondent: dsa.DA10.$NOIAEP.$NAD;
     system: DA10;
     rmt_mbx_dsaname: $NOIAEP;
     admin_group: admin_group1;
     authorization: system_low;
     acl_path: >sc1>mna>dsa>admin_correspondent.acs;
     type: NOI;
     character_encoding: ASCII;
  end;
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

  
  
  
  DSA NIT SOURCE TABLE EXAMPLE
  
  
  /*------------------------------------------------------------*/
  /*                            NIF.nif                         */
  /*------------------------------------------------------------*/
  
  
  /*------------------------------------------------------------*/
  /*                            Mna_general_info                */
  /*------------------------------------------------------------*/
  
  Mna_general_info;
     cxi_driver_segment: >site>dsa>data>cxi_driver_seg;
     dsa_system_log: >site>dsa>system_logs_dir>dsa_sl;
     dsa_system_aep_log: >site>dsa>system_logs_dir>dsa_sal;
     dsa_aep_log: >site>dsa>aep_logs_dir>dsa_al;
     sc_exerciser_wdir: >site>dsa>data;
     sc_handle_manager_wdir: >site>dsa>data;
     default_tm_mailbox: dsa.MUL1.TMDIALOU;
     default_uft_mailbox: dsa.MUL1.UFT_REQ;
     default_exe_init_mailbox: dsa.MUL1.$NSF;
  end;
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

  
  
  
  /*------------------------------------------------------------*/
  /*                            Services                        */
  /*------------------------------------------------------------*/
  
  Service: exerciser_service;
     endpoint: dsa.MUL1.$NSF;
        get_service_module: >t>nothing; /* required placeholder */
     end;
  end;
  
  Service: uft_service;
     endpoint: dsa.MUL1.UFT_REQ;
        get_service_module: >t>nothing; /* required placeholder */
     end;
  end;
  
  Service: tm_dialout_service;
     endpoint: dsa.MUL1.TMDIALOU;
        get_service_module: >t>nothing; /* required placeholder */
     end;
  end;
  
  Service: login_service;
     endpoint: dsa.MUL1.LOGIN;
        get_service_module: >exl>dsa>e>dsa_tty_;
     end;
  
     endpoint: dsa.MUL1.LOGINT;
        get_service_module: >exl>dsa>e>dsa_tty_;
     end;
  
     endpoint: dsa.MUL1.FILETRAN;
        get_service_module: >exl>dsa>e>dsa_uft_login_service_;
     end;
  
     endpoint: dsa.MUL1.$NSE;
        get_service_module: >t>nothing; /* required placeholder */
     end;
  end;
  
  Service: remote_nad_access_service;
     endpoint: dsa.MUL1.$NOIAEP;
        get_service_module: >t>nothing; /* required placeholder */
     end;
  end;
  
  Service: nad_service;
     endpoint: dsa.MUL1.$NAD;
        get_service_module: >exl>dsa>e>dsa_dsac_lnad_;
     end;
  end;
  
  
  

  
  
  
  Service: asf_service;
     endpoint: dsa.MUL1.$LOGFILE;
        get_service_module: >exl>dsa>e>dsa_dsac_ldsalog_;
     end;
  
     endpoint: dsa.MUL1.$NASF;
        get_service_module: >exl>dsa>e>dsa_dsac_nasf_;
     end;
  end;
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

  
  
  
  /*------------------------------------------------------------*/
  /*                     Session_type_descriptors               */
  /*------------------------------------------------------------*/
  
  Session_type_descriptor: login_listen_std;
     /* Standard STD for TM */
     initiate_wait_time: 14;
     rcv_max_letter_size: 256;
     send_max_letter_size: 256;
     modes: twsa, twaa, twsi, twai;
     protocols: data_attention, suspend, recover,
                request_sru_acknowledge;
  end;
  
  Session_type_descriptor: tm_connect_std;
     /* Standard STD for TM (connect) */
     initiate_wait_time: 14;
     rcv_max_letter_size: 256;
     send_max_letter_size: 256;
     modes: ^twsa, twaa, ^twsi, twai;
     protocols: ^data_attention, ^suspend, ^recover,
                ^request_sru_acknowledge;
  end;
  
  Session_type_descriptor: exerciser_std;
     /* Standard STD for the session exerciser */
     initiate_wait_time: 14;
     rcv_max_letter_size: 256;
     send_max_letter_size: 256;
     modes: twai, ^twaa, ^twsi, ^twsa;
     protocols: data_attention, suspend, recover,
                request_sru_acknowledge;
  end;
  
  Session_type_descriptor: uft_listen_std;
     /* Standard STD for UFT */
     initiate_wait_time: 15;
     rcv_max_letter_size: 1024;
     send_max_letter_size: 1024;
     modes: twai, ^twsi, ^twsa, ^twaa;
  end;
  
  Session_type_descriptor: mail_listen_std;
     /* Standard STD for mail applications */
     initiate_wait_time: 4;
     rcv_max_letter_size: 1024;
     send_max_letter_size: 1024;
     modes: twai;
  end;
  
  
  
  
  

  
  
  
  Session_type_descriptor: noi_aep_std;
     /* Standard STD for accessing remote NADs */
     initiate_wait_time: 14;
     rcv_max_letter_size: 256;
     send_max_letter_size: 256;
     modes: twsa, twaa, twsi, twai;
     protocols: data_attention, suspend, recover,
                request_sru_acknowledge;
  end;
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

  
  
  
  /*------------------------------------------------------------*/
  /*                              Sc_loc                        */
  /*------------------------------------------------------------*/
  
  Sc_loc: MUL1;
     working_dir: >site>dsa>data;
     authorization: system_low;
     scid_300: MUL1;
     dsa200_node_address: 10:97;
     seg_info_name: seg_info1;
     lc_data_name: lc_data1;
     timers: suspend_timer = 4, recover_timer = 15,
             idle_lc_timer = 3, cleanup_timer = 2,
             delta_timer = 1;
  end;
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

  
  
  
  /*------------------------------------------------------------*/
  /*                            Mailboxes                       */
  /*------------------------------------------------------------*/
  
  Mailbox: dsa.MUL1.LOGIN;
     sc_loc: MUL1;
     mbx_dsaname: LOGIN;
     local_service: login_service;
     session_type_descriptor: login_listen_std;
     user_required_for_dial: yes;
               /* Access information */
     acl_path: >sc1>mna>dsa>Login.acs;
     authorization: system_low;
  end;
  
  Mailbox: dsa.MUL1.LOGINT;
     sc_loc: MUL1;
     mbx_dsaname: LOGINT;
     local_service: login_service;
     session_type_descriptor: login_listen_std;
               /* Access information */
     acl_path: >sc1>mna>dsa>Login.acs;
     authorization: system_low;
  end;
  
  Mailbox: dsa.MUL1.TMDIALOU;
     sc_loc: MUL1;
     mbx_dsaname: TMDIALOU;
     local_service: tm_dialout_service;
     session_type_descriptor: tm_connect_std;
               /* Access information */
     acl_path: >sc1>mna>dsa>Login.acs;
     authorization: system_low;
  end;
  
  Mailbox: dsa.MUL1.$NOIAEP;
     sc_loc: MUL1;
     mbx_dsaname: $NOIAEP;
     local_service: remote_nad_access_service;
     session_type_descriptor: noi_aep_std;
               /* Access information */
     acl_path: >sc1>mna>dsa>noi_aep.acs;
     authorization: system_low;
  end;
  
  
  
  
  
  
  
  
  
  

  
  
  
  Mailbox: dsa.MUL1.UFT_REQ;
     sc_loc: MUL1;
     mbx_dsaname: UFT_REQ;
     local_service: uft_service;
     session_type_descriptor: uft_listen_std;
               /* Access information */
     acl_path: >sc1>mna>dsa>UFT.acs;
     authorization: system_low;
  end;
  
  Mailbox: dsa.MUL1.FILETRAN;
     sc_loc: MUL1;
     mbx_dsaname: FILETRAN;
     local_service: login_service;
     session_type_descriptor: uft_listen_std;
               /* Access information */
     acl_path: >sc1>mna>dsa>UFT.acs;
     authorization: system_low;
  end;
  
  Mailbox: dsa.MUL1.$NSE;
     sc_loc: MUL1;
     mbx_dsaname: $NSE;
     local_service: login_service;
     session_type_descriptor: exerciser_std;
               /* Access information */
     acl_path: >sc1>mna>dsa>Echo.acs;
     authorization: system_low;
  end;
  
  Mailbox: dsa.MUL1.$NSF;
     sc_loc: MUL1;
     mbx_dsaname: $NSF;
     local_service: exerciser_service;
     session_type_descriptor: exerciser_std;
               /* Access information */
     acl_path: >sc1>mna>dsa>Echo.acs;
     authorization: system_low;
  end;
  
  Mailbox: dsa.MUL1.$NAD;
     sc_loc: MUL1;
     mbx_dsaname: $NAD;
     local_service: nad_service;
     session_type_descriptor: login_listen_std;
               /* Access information */
     acl_path: >sc1>mna>dsa>Admin.acs;
     authorization: system_low;
  end;
  
  
  
  
  

  
  
  
  Mailbox: dsa.MUL1.$LOGFILE;
     sc_loc: MUL1;
     mbx_dsaname: $LOGFILE;
     local_service: asf_service;
     session_type_descriptor: login_listen_std;
               /* Access information */
     acl_path: >sc1>mna>dsa>Admin.acs;
     authorization: system_low;
  end;
  
  Mailbox: dsa.MUL1.$NASF;
     sc_loc: MUL1;
     mbx_dsaname: $NASF;
     local_service: asf_service;
     session_type_descriptor: login_listen_std;
               /* Access information */
     acl_path: >sc1>mna>dsa>Admin.acs;
     authorization: system_low;
  end;
  
  Mailbox: dsa.MUL1.$ASFTEST;
     sc_loc: MUL1;
     mbx_dsaname: $ASFTEST;
     local_service: asf_service;
     session_type_descriptor: login_listen_std;
               /* Access information */
     acl_path: >sc1>mna>dsa>Admin.acs;
     authorization: system_low;
  end;
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

  
  
  
  /*------------------------------------------------------------*/
  /*                            Dsac_info                       */
  /*------------------------------------------------------------*/
  
  Dsac_info: DSAC.MUL1;
     sc_loc: MUL1;
     working_dir: >site>dsa>dsac_info;
     working_dd_seg: dd1;
     working_af_seg: af1;
     working_ag_seg: ag1;
     working_ac_seg: ac1;
     admin_functions: lnad1,dsalog1,nasf1;
  end;
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

  
  
  
  /*------------------------------------------------------------*/
  /*                            Admin_functions                 */
  /*------------------------------------------------------------*/
  
  Admin_function: lnad1;
     mailbox: dsa.MUL1.$NAD;
     type: NAD;
     local_service: nad_service;
  end;
  
  Admin_function: dsalog1;
     mailbox: dsa.MUL1.$LOGFILE;
     type: ASF;
     nlocal_service: asf_service;
  end;
  
  Admin_function: nasf1;
     mailbox: dsa.MUL1.$NASF;
     type: ASF;
     local_service: asf_service;
  end;
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

  
  
  
  /*------------------------------------------------------------*/
  /*                            Admin_groups                    */
  /*------------------------------------------------------------*/
  
  Admin_group: admin_group1;
     type: NOI;
     max_active_ac: 10;
     admin_function: lnad1;
  end;
  
  Admin_group: admin_group2;
     type: NAD;
     max_active_ac: 10;
     admin_function: dsalog1;
  end;
  
  Admin_group: admin_group3;
     type: NAD;
     max_active_ac: 10;
     admin_function: nasf1;
  end;
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

  
  
  
  /*------------------------------------------------------------*/
  /*                                  Tss                       */
  /*------------------------------------------------------------*/
  
  Ts: dn8_a;
     address: 1:61;
     frontend: dn8a;
  end;
  
  Ts: dn8_b;
     address: 1:63;
     frontend: dn8b;
  end;
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

  
  
  
  /*------------------------------------------------------------*/
  /*                            Frontends                       */
  /*------------------------------------------------------------*/
  
  Frontend: dn8a;
     ts_entity: dn8_a;
     dia: diaa, diac;
     sc_loc: MUL1;
     wired_buffer_size: 40;                  /* In pages */
     input_q_size: 97;                       /* In entries */
     output_q_size: 91;                      /* In entries */
     dummy_traffic_interval: 120;            /* In seconds */
     idle_timer_interval: 500;               /* In milliseconds */
     working_dir: >site>dsa>frontend_dir_dir>dn8a;
  end;
  
  Frontend: dn8b;
     ts_entity: dn8_b;
     dia: diab, diad;
     sc_loc: MUL1;
     wired_buffer_size: 40;                  /* In pages */
     input_q_size: 97;                       /* In entries */
     output_q_size: 91;                      /* In entries */
     dummy_traffic_interval: 120;            /* In seconds */
     idle_timer_interval: 500;               /* In milliseconds */
     working_dir: >site>dsa>frontend_dir_dir>dn8b;
  end;
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

  
  
  
  /*------------------------------------------------------------*/
  /*                            Session_Routes                  */
  /*------------------------------------------------------------*/
  
  Session_Route: route_to_dn8_a;
     sc_loc: MUL1;
     ts: dn8_a;
  end;
  
  Session_Route: route_to_dn8_b;
     sc_loc: MUL1;
     ts: dn8_b;
  end;
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

  
  
  
  /*------------------------------------------------------------*/
  /*                            Systems                         */
  /*------------------------------------------------------------*/
  
  System: DA10;   /* local DN8 A */
     sc_rmt: DA10;
     dsa200_node_address: 10:96;
     session_route: route_to_dn8_a;
     system_type: DN8;
     system_release: "";
     official_name: CISL_dn8_a;
     tm_version: TM_FULL_STC;
     acl_path: >sc1>mna>dsa>systems.acs;
  end;
  
  System: DB10;   /* Local DN8 B */
     sc_rmt: DB10;
     dsa200_node_address: 10:95;
     session_route: route_to_dn8_b;
     session_route: route_to_dn8_a;
     system_type: DN8;
     system_release: "";
     official_name: CISL_dn8_b;
     tm_version: TM_FULL_STC;
     acl_path: >sc1>mna>dsa>systems.acs;
  end;
  
  System: S869;   /* CISL DPS6 */
     sc_rmt: S869;
     dsa200_node_address: 10:94;
     session_route: route_to_dn8_a;
     session_route: route_to_dn8_b;
     system_type: DSS;
     system_release: "";
     official_name: CISL_LEVEL_6;
     tm_version: TM_NO_STC;
     acl_path: >sc1>mna>dsa>systems.acs;
  end;
  
  System: BM25;
     sc_rmt: BM25;
     dsa200_node_address: 10:93;
     session_route: route_to_dn8_a;
     system_type: Multics;
     system_release: "";
     official_name: Louveciennes_Multics;
     tm_version: TM_FULL_STC;
     acl_path: >sc1>mna>dsa>systems.acs;
  end;
  
  
  
  
  

  
  
  
  System: BM26;
     sc_rmt: BM26;
     dsa200_node_address: 10:92;
     session_route: route_to_dn8_a;
     system_type: DN8;
     system_release: "";
     official_name: Louveciennes_DN8;
     tm_version: TM_NO_STC;
     acl_path: >sc1>mna>dsa>systems.acs;
  end;
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

  
  
  
  /*------------------------------------------------------------*/
  /*                          Correspondents                    */
  /*------------------------------------------------------------*/
  
  Correspondent: dsa.DA10.TTY1;
     system: DA10;
     rmt_mbx_dsaname: TTY1;
     local_service_to_use: tm_dialout_service;
     authorization: system_low;
     terminal_type: VIP7801;
     acl_path: >sc1>mna>dsa>admin_correspondent.acs;
  end;
  
  Correspondent: dsa.DA10.TTY2;
     system: DA10;
     rmt_mbx_dsaname: TTY2;
     local_service_to_use: tm_dialout_service;
     authorization: system_low;
     terminal_type: VIP7801;
     acl_path: >sc1>mna>dsa>admin_correspondent.acs;
  end;
  
  Correspondent: dsa.DA10.EDIT;
     system: DA10
     rmt_mbx_dsaname: EDIT;
     local_service_to_use: tm_dialout_service;
     authorization: system_low;
     terminal_type: DSA_SDP;
     acl_path: >sc1>mna>dsa>admin_correspondent.acs;
  end;
  
  Correspondent: dsa.DA10.$NOI;
     system: DA10
     rmt_mbx_dsaname: $NOI;
     local_service_to_use: tm_dialout_service;
     authorization: system_low;
     terminal_type: DSA_SDP;
     acl_path: >sc1>mna>dsa>admin_correspondent.acs;
  end;
  
  Correspondent: dsa.DA10.$ASF;
     system: DA10;
     rmt_mbx_dsaname: $ASF;
     local_service_to_use: asf_service;
     authorization: system_low;
     terminal_type: DSA_SDP;
     acl_path: >sc1>mna>dsa>admin_correspondent.acs;
  end;
  
  
  
  
  
  

  
  
  
  Correspondent: dsa.DA10.$NSE;
     system: DA10;
     rmt_mbx_dsaname: $NSE;
     local_service_to_use: exerciser_service;
     authorization: system_low;
     acl_path: >sc1>mna>dsa>admin_correspondent.acs;
  end;
  
  Correspondent: dsa.DA10.$NAD;
     system: DA10;
     rmt_mbx_dsaname: $NAD;
     local_service_to_use: remote_nad_access_service;
     authorization: system_low;
     terminal_type: DSA_SDP;
     acl_path: >sc1>mna>dsa>admin_correspondent.acs;
  end;
  
  Correspondent: dsa.DA10.$DEBUG;
     system: DA10;
     rmt_mbx_dsaname: $DEBUG;
     local_service_to_use: tm_dialout_service;
     authorization :  system_low;
     terminal_type: DSA_SDP;
     acl_path: >sc1>mna>dsa>admin_correspondent.acs;
  end;
  
  Correspondent: dsa.DB10.TTY1;
     system: DB10;
     rmt_mbx_dsaname: TTY1;
     local_service_to_use: tm_dialout_service;
     authorization:  system_low;
     terminal_type : VIP7801;
     acl_path: >sc1>mna>dsa>admin_correspondent.acs;
  end;
  
  Correspondent: dsa.DB10.TTY2;
     system: DB10;
     rmt_mbx_dsaname: TTY2;
     local_service_to_use: tm_dialout_service;
     authorization: system_low;
     terminal_type: VIP7801;
     acl_path: >sc1>mna>dsa>admin_correspondent.acs;
  end;
  
  Correspondent: dsa.DB10.EDIT;
     system: DB10
     rmt_mbx_dsaname: EDIT;
     local_service_to_use: tm_dialout_service;
     authorization: system_low;
     terminal_type: DSA_SDP;
     acl_path: >sc1>mna>dsa>admin_correspondent.acs;
  end;
  
  

  
  
  
  Correspondent: dsa.DB10.$NOI;
     system: DB10;
     rmt_mbx_dsaname: $NOI;
     local_service_to_use: tm_dialout_service;
     authorization: system_low;
     terminal_type: DSA_SDP;
     acl_path: >sc1>mna>dsa>admin_correspondent.acs;
  end;
  
  Correspondent: dsa.DB10.$NAD;
     system: DB10;
     rmt_mbx_dsaname: $NAD;
     local_service_to_use: remote_nad_access_service;
     authorization: system_low;
     terminal_type: DSA_SDP;
     acl_path: >sc1>mna>dsa>admin_correspondent.acs;
  end;
  
  Correspondent: dsa.DB10.$DEBUG;
     system: DB10;
     rmt_mbx_dsaname: $DEBUG;
     local_service_to_use: tm_dialout_service ;
     authorization: system_low;
     terminal_type: DSA_SDP;
     acl_path: >sc1>mna>dsa>admin_correspondent.acs;
  end;
  
  Correspondent: dsa.S869.$NOI;
     system: S869;
     rmt_mbx_dsaname: $NOI;
     local_service_to_use: tm_dialout_service;
     authorization: system_low;
     terminal_type: DSA_SDP;
     acl_path: >sc1>mna>dsa>admin_correspondent.acs;
  end;
  
  Correspondent: dsa.S869.ECL;
     system: S869;
     rmt_mbx_dsaname: ECL;
     local_service_to_use: tm_dialout_service;
     authorization: system_low;
     terminal_type: DSA_TRANS;
     acl_path: >sc1>mna>dsa>admin_correspondent.acs;
  end;
  
  Correspondent: dsa.S869.FILETRAN;
     system: S869;
     rmt_mbx_dsaname: FILETRAN;
     local_service_to_use: uft_service;
     authorization: system_low;
     request_type: CISL_UFT.rqt
  end;
  
  

  
  
  
  Correspondent: dsa.BM25.LOGIN;
     system: BM25;
     rmt_mbx_dsaname: LOGIN;
     local_service_to_use: tm_dialout_service;
     authorization: system_low;
     terminal_type: VIP7801;
     acl_path: >sc1>mna>dsa>correspondent.acs;
  end;
  
  Correspondent: dsa.BM25.FILETRAN;
     system: BM25;
     rmt_mbx_dsaname: FILETRAN;
     local_service_to_use: uft_service;
     authorization: system_low;
     request_type: CISL_UFT.rqt;
     /* acl_path : NONE, the system one is taken */
  end;
  
  Correspondent: dsa.BM25.$NSE;
     system: BM25;
     rmt_mbx_dsaname: $NSE;
     local_service_to_use: exerciser_service;
     authorization: system_low;
     terminal_type: NONE;
     /* acl_path : NONE, the system one is taken */
  end;
  
  Correspondent: dsa.BM25.$DSALOG;
     system: BM25;
     rmt_mbx_dsaname: $DSALOG;
     local_service_to_use: asf_service;
     authorization: system_low;
     terminal_type: NONE;
     /* acl_path : NONE, the system one is taken */
  end;
  
  Correspondent: dsa.BM25.$NASF;
     system: BM25;
     rmt_mbx_dsaname: $NASF;
     local_service_to_use: asf_service;
     authorization: system_low;
     terminal_type: NONE;
     /* acl_path : NONE, the system one is taken */
  end;
  
  Correspondent: dsa.BM25.$NAD;
     system: BM25;
     rmt_mbx_dsaname: $NAD;
     local_service_to_use: nad_service;
  
  
  
  
  

  
  
  
     authorization: system_low;
     terminal_type: NONE;
     /* acl_path : NONE, the system one is taken */
  end;
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

  
  
  
  Correspondent: dsa.BM26.EDIT;
     system: BM26;
     rmt_mbx_dsaname: EDIT;
     local_service_to_use: tm_dialout_service;
     authorization: system_low;
     terminal_type: DSA_SDP;
     acl_path: >sc1>mna>dsa>admin_correspondent.acs;
  end;
  
  Correspondent: dsa.BM26.$NOI;
     system: BM26;
     rmt_mbx_dsaname: $NOI;
     local_service_to_use: tm_dialout_service;
     authorization: system_low;
     terminal_type: DSA_SDP;
     acl_path: >sc1>mna>dsa>admin_correspondent.acs;
  end;
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

  
  
  
  /*------------------------------------------------------------*/
  /*                          Admin_correspondents              */
  /*------------------------------------------------------------*/
  
  Admin_correspondent: dsa.DA10.$NAD.$NASF;
     system: DA10;
     rmt_mbx_dsaname: $NAD;
     admin_group: admin_group3;
     authorization: system_low;
     acl_path: >sc1>mna>dsa>admin_correspondent.acs;
     type: NAD;
     character_encoding: ASCII;
  end;
  
  Admin_correspondent: dsa.DA10.$NOIAEP.$NAD;
     system: DA10;
     rmt_mbx_dsaname: $NOIAEP;
     admin_group: admin_group1;
     authorization: system_low;
     acl_path: >sc1>mna>dsa>admin_correspondent.acs;
     type: NOI;
     character_encoding: ASCII;
  end;
  
  Admin_correspondent: dsa.DB10.$NAD.$NASF;
     system: DB10;
     rmt_mbx_dsaname: $NAD;
     admin_group: admin_group3;
     authorization: system_low;
     acl_path: >sc1>mna>dsa>admin_correspondent.acs;
     type: NAD;
     character_encoding: ASCII;
  end;
  
  Admin_correspondent: dsa.DB10.$NOIAEP.$NAD;
     system: DB10;
     rmt_mbx_dsaname: $NOIAEP;
     admin_group: admin_group1;
     authorization: system_low;
     acl_path: >sc1>mna>dsa>admin_correspondent.acs;
     type: NOI;
     character_encoding: ASCII;
  end;
  
  
  
  
  
  
  
  
  
  
  

  
  
  
  Admin_correspondent: dsa.DB10.$NAD.$LOGFILE;
     system: DB10;
     rmt_mbx_dsaname: $NAD;
     admin_group: admin_group2;
     authorization: system_low;
     acl_path: >sc1>mna>dsa>admin_correspondent.acs;
     type: NAD;
     character_encoding: ASCII;
  end;
  
  End;
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

  
  
  
  COMPILING A NIT
  
       To compile the NIT source table into an object table, change
  your  working directory  to  >udd>sa>a  (the directory  where the
  source table is usually kept) and execute the dsa_cv_nif command,
  described  below.   The  object  table  will  be  created in your
  working directory.  It will be  given a name which corresponds to
  the entryname of the source table, with the suffix "nif" replaced
  by the suffix  "nit".  Since, by convention, the  source table is
  usually  named  "NIF.nif",  the  object  table  is  usually named
  "NIF.nit".
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

  __________                                             __________
  
  dsa_cv_nif                                             dsa_cv_nif
  __________                                             __________
  
  
  NAME: DSA_CV_NIF
  
  SYNTAX AS A COMMAND
  
  dsa_cv_nif dsa_nit_path {-control_args}
  
  FUNCTION
  
  compiles a NIT source table into a NIT object table.
  
  ARGUMENTS
  
  dsa_nit_path
     is the name of the source  table.  By convention, this name is
     usually   "NIF.nif".    The   suffix   "nif"   is  assumed  if
     dsa_nit_path does not include it.  But the source table itself
     must have this suffix as the last component of its name.
  
  CONTROL ARGUMENTS
  
  -brief, -bf
     uses the short form of error messages.
  
  -long, -lg
     uses the long form of error messages.
  
  -no_semantic_checking, -nsc
     causes  dsa_cv_nif to compile  the source table  without doing
     any  semantic checking.   Semantic checking  includes pathname
     validation and object reference checking.
  
  -severity N, -sv N
     causes error messages  whose severity is less than  N (where N
     is  0, 1, 2,  3, or 4)  not to be  written to the  user_output
     switch.  If this control argument is not specified, a severity
     level of 0 is assumed (i.e., all error messages are written to
     the user_output switch).
  
  NOTES
  
  If  neither  the  -brief  nor   the  -long  control  argument  is
  specified, each error  message is printed in long  form the first
  time it occurs and in short form thereafter.
  
  The compilation is  done in two phases.  In the  first phase, the
  compiler checks for syntax errors.   If it finds any, you receive
  error messages of the form:
  
  
  
  

  __________                                             __________
  
  dsa_cv_nif                                             dsa_cv_nif
  __________                                             __________
  
  
     FATAL ERROR error_number, SEVERITY severity_level IN LINE
        line_number
  
  where severity_level has one of the following meanings, depending
  on its value:
  
     Value     Meaning
  
     0         No compilation yet or no error.
     1         Warning.
     2         Correctable error.
     3         Fatal error.
     4         Unrecoverable error.
     5         Could not find source.
  
  In the second phase, the compiler checks for semantic errors.  It
  checks  to  see  that  the  directories,  segments,  and  modules
  specified by pathnames in the NIT actually exist, that the length
  of character strings  is within the defined limits,  and that all
  cross references are correct.  If  there are any semantic errors,
  the  compiler prints  a self-explanatory  error message,  and the
  phrase  "Translation  failed."   If  you  receive  either kind of
  message, you should  edit the NIT source table  and try compiling
  it again.
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

  
  
  INSTALLING A NIT
  
       To install the NIT object table, use the install command, as
  shown below:
  
       install <object_table_name>
  
  for example:
  
       install NIF.nit
  
  This command will install the NIT in >site>dsa>nit.  The NIT must
  be installed in this location in order for the Multics DSA system
  to  use it.   The install  command is  documented in  the Multics
  Administration,  Maintenance,  and  Operations  Commands  manual,
  Order No.  GB64.
  
  
  UPDATING A NIT
  
       To update  the NIT (for example,  to add or delete  a host),
  use any Multics  editor to make the necessary changes  to the NIT
  source  table.  Then compile  the NIT and  install it, using  the
  procedures described above; i.e.:
  
       cwd >udd>sa>a
       dsa_cv_nif NIF.nif
       install NIF.nit
  
  The  NIT will  be installed   in >site>dsa,  with the  entry name
  "nit".  The changes will take affect immediately.
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

  
  
  
  
  
  
  
  
  
                              SECTION 5
  
  
              COMMON EXCHANGE INTERFACE (CXI) SUBSYSTEM
  
  
  
  
       The  common  exchange  interface  (CXI)  subsystem  controls
  operations in  a frontend, including the procedures  for taking a
  generator  image from  converted DNS   software and  using it  to
  produce a runnable image with which to start a frontend.
  
  
       This section describes the  cxi_input_daemon command used to
  invoke  the CXI subsystem  and includes detailed  descriptions of
  the DSA-specific requests used to control frontend operations.
  
  
       Section 2 describes the procedures necessary to start up DSA
  on Multics,  including the prerequisites for starting  up the CXI
  subsystem (creating the CXI driver segment and logging in the CXI
  input  daemons).  Section 2  also describes conditions  for using
  subsystem  requests to  load and  execute a  generator image,  to
  load,  execute, and start  a runnable image,  and to start  a CXI
  driver.
  
  
       For  information on  debugging tools  within the  subsystem,
  refer to the debug_mode and dump_frontend requests.
  
  
       NOTE:   The CXI  subsystem should  be executed  in a  ring 2
  process because it uses various  databases that are only writable
  in ring 2 (e.g., cxi_driver_seg).   Normally, it will be executed
  in  a daemon process  which should be  logged in with  an initial
  ring of 2.
  
  
  
  
  
  
  
  
  
  
  

  ________________                                 ________________
  
  cxi_input_daemon                                 cxi_input_daemon
  ________________                                 ________________
  
  
  NAME: CXI_INPUT_DAEMON, CID
  
  SYNTAX AS A COMMAND
  
  cid frontend_name {-control_args}
  
  FUNCTION
  
  provides requests  to control a  DSA DN8/7100 frontend  through a
  DIA  channel  connection.   This  includes  loading, dumping, and
  generating the frontend,  as well as running the input  side of a
  CXI driver  (i.e., the DSA  session control to  transport control
  interface over a DIA).
  
  ARGUMENTS
  
  frontend_name
     specifies  the  DN8/7100  frontend   to  be  managed  by  this
     invocation of the subsystem.
  
  CONTROL ARGUMENTS
  
  -abbrev, -ab
     enables abbreviation expansion of request lines.
  
  -auto_reboot_ec_name ec_name, -bootec ec_name
     specifies  the entry  name of   the subsystem  exec_com to  be
     executed if  the frontend crashes or  requests rebooting.  The
     default name is "auto_reboot.cidec".
  
  -brief, -bf
     shortens some informative messages and suppresses others.
  
  -debug, -db
     enables cxi_input_daemon's debugging  facilities.  Use of this
     control argument should be restricted to system maintainers.
  
  -ec_search_list list_name, -ecsl list_name
     specifies the name of the search  list to use when looking for
     subsystem  exec_coms.  The  default is  to use  the "exec_com"
     search list.
  
  -ec_suffix ec_suffix, -ecx ec_suffix
     specifies the suffix that  is assumed for subsystem exec_coms.
     The default suffix is "cidec".
  
  
  
  
  
  

  ________________                                 ________________
  
  cxi_input_daemon                                 cxi_input_daemon
  ________________                                 ________________
  
  
  -info_dir info_path, -infd info_path
     specifies a directory to be added to the subsystem info search
     list.          By         default         the        directory
     >doc>subsystem>cxi_input_daemon is added.
  
  -long, -lg
     prints the long form of all informative messages.  This is the
     default.
  
  -no_abbrev, -nab
     does not enable abbreviation expansion of request lines.  This
     is the default.
  
  -no_debug, -ndb
     disables cxi_input_daemon's debugging facilities.  This is the
     default.
  
  -no_prompt, -npmt
     suppresses the prompt for request lines in the request loop.
  
  -no_start_up, -nsu
     specifies that  the subsystem start_up exec_com  should not be
     executed.
  
  -physical_channel dia_name, -pc dia_name
     specifies the name of the DIA to be used by this invocation to
     connect to the frontend.  This name must be the one defined on
     the prph dia card for this frontend in the Multics config deck
     and  also  the  one  specified  by  the  dia  statement of the
     Frontend object  definition for this frontend in  the NIT.  If
     no  physical  channel  is  specified,  then  each  DIA channel
     defined in the  NIT for this frontend will be  tried until one
     is found which can be used.
  
  -profile profile_path, -pf profile_path
     specifies the pathname of the  profile to use for abbreviation
     expansion.  The suffix "profile"  is added if necessary.  This
     control argument implies -abbrev.
  
  -prompt STR, -pmt STR
     sets  the  request  loop  prompt  to  STR.   The  default  is:
     ^/cxi_input_daemon^[(^d)^]:^2x
  
  -start_up, -su
     specifies  that  the  subsystem  start_up  exec_com  should be
     executed  after the  subsystem  is  initialized.  This  is the
     default.
  
  
  
  

  ________________                                 ________________
  
  cxi_input_daemon                                 cxi_input_daemon
  ________________                                 ________________
  
  
  LIST OF REQUESTS
  
  For   a  complete   description   of   any  request,   issue  the
  cxi_input_daemon request:  help request_name.
  
  
  self_identify
  
  SYNTAX
  
  .
  
  FUNCTION
  
  prints   a  line  describing   the  current  invocation   of  the
  cxi_input_daemon subsystem.
  
  NOTES
  
  The most general form of the line printed by this request is:
  
   cxi_input_daemon V.V (abbrev) (level N): Managing frontend FEP
    through physical channel DIA with {local image | no image |
     image in PATH}. {The driver is started.}
  
  where  V.V  is  the  current  version  of cxi_input_daemon (e.g.,
  1.0a); "(abbrev)" is present if abbreviation expansion of request
  lines is  enabled in this  invocation; "(level N)"  is present if
  there is  more than one active invocation  of cxi_input_daemon to
  identify which invocation; FEP is  the name of the frontend being
  managed by cxi_input_daemon;  DIA is the name of  the DIA channel
  being used to connect to the  frontend; the image in the frontend
  is as described;  and the last sentence is present  if the driver
  is started.
  
  
  ?
  
  SYNTAX
  
  ?
  
  FUNCTION
  
  prints a  list of the requests available  in the cxi_input_daemon
  subsystem.
  
  
  
  
  

  ________________                                 ________________
  
  cxi_input_daemon                                 cxi_input_daemon
  ________________                                 ________________
  
  
  abbrev, ab
  
  SYNTAX
  
  ab {-control_args}
  
  SYNTAX AS AN ACTIVE REQUEST
  
  [ab]
  
  FUNCTION
  
  controls  abbreviation  processing  of  request  lines within the
  cxi_input_daemon subsystem.  As an active request, abbrev returns
  "true"  if abbreviation expansion  of request lines  is currently
  enabled within the subsystem and "false" if it is not.  Note that
  control arguments may not be used with the active request.
  
  CONTROL ARGUMENTS
  
  -off
     specifies that abbreviations should not be expanded.
  
  -on
     specifies that abbreviations should  be expanded.  This is the
     default.
  
  -profile profile_path
     specifies  that the  segment named  by profile_path  should be
     used as the profile segment; the suffix ".profile" is added to
     profile_path  if it  is not   present.  The  segment named  by
     profile_path must exist.
  
  NOTES
  
  The  cxi_input_daemon  subsystem  provides  command  line control
  arguments (-abbrev, -no_abbrev, -profile)  to specify the initial
  state  of abbreviation processing  within the subsystem.   If the
  abbrev  request is  invoked with  no control  arguments, it  will
  enable  abbreviation processing  within the  subsystem using  the
  profile that  was last used in the  current subsystem invocation.
  If  abbreviation  processing  was  not  previously  enabled,  the
  profile in use at Multics command  level is used; this profile is
  normally [home_dir]>Person_id.profile.
  
  
  
  
  
  
  

  ________________                                 ________________
  
  cxi_input_daemon                                 cxi_input_daemon
  ________________                                 ________________
  
  
  answer
  
  SYNTAX
  
  answer STR -control_args request_line
  
  FUNCTION
  
  provides preset answers to questions asked by another request.
  
  ARGUMENTS
  
  STR
     is the desired answer to any  question.  If the answer is more
     than  one word,  it must  be enclosed  in quotes.   If STR  is
     -query,  the question is  passed on to  the user.  The  -query
     control argument is the only one  that can be used in place of
     STR.
  
  request_line
     is  any  cxi_input_daemon  subsystem  request  line.   It  can
     contain  any number of  separate arguments (i.e.,  have spaces
     within it) and need not be enclosed in quotes.
  
  CONTROL ARGUMENTS
  
  -brief, -bf
     suppresses  printing  (on  the  user's  terminal)  of both the
     question and the answer.
  
  -call STR
     evaluates the active string STR to obtain the next answer in a
     sequence.    The    active   string   is    constructed   from
     cxi_input_daemon  subsystem active  requests and  from Multics
     active strings (using the cxi_input_daemon subsystem's execute
     active  request).  The  outermost  level  of brackets  must be
     omitted; the  entire string must  be enclosed in  quotes if it
     contains  request processor   special characters.   The return
     value "true" is translated to "yes", and "false" to "no".  All
     other return values are passed without translation.
  
  -exclude STR, -ex STR
     passes on, to the user  or other handler, questions whose text
     matches  STR.  If  STR is   surrounded by  slashes (/),  it is
     interpreted as  a qedx regular expression.   Otherwise, answer
     tests whether  STR is literally  contained in the  text of the
     question.   Multiple occurrences  of -match  and -exclude  are
     allowed (see "Notes" below).  They apply to the entire request
     line.
  
  

  ________________                                 ________________
  
  cxi_input_daemon                                 cxi_input_daemon
  ________________                                 ________________
  
  
  -match STR
     answers  only questions  whose text  matches STR.   If STR  is
     surrounded by slashes (/), it is interpreted as a qedx regular
     expression.  Otherwise, answer tests  whether STR is literally
     contained in  the text of the  question.  Multiple occurrences
     of -match and -exclude are  allowed (see "Notes" below).  They
     apply to the entire request line.
  
  -query
     skips the next  answer in a sequence, passing  the question on
     to the user.  The answer is read from the user_i/o I/O switch.
  
  -then STR
     supplies the next answer in a sequence.
  
  -times N
     gives the previous answer (STR,  -then STR, or -query) N times
     only (where N is an integer).
  
  NOTES
  
  The  answer request  provides  preset  responses to  questions by
  establishing an  on unit for the  command_question condition, and
  then executing  the designated request  line.  If any  request in
  the request  line calls the command_query_  subroutine (described
  in  the Multics  Subroutines and  I/O Modules  manual, Order  No.
  AG93) to  ask a question,  the on unit  is invoked to  supply the
  answer.  The on unit is  reverted when the answer request returns
  to  subsystem  request  level.    See  the  Multics  Programmer's
  Reference  Manual,  Order  No.   AG91,  for  a  discussion of the
  command_question condition.
  
  If a question is asked that requires  a yes or no answer, and the
  preset  answer is  neither "yes"  nor "no",  the on  unit is  not
  invoked.
  
  The last answer  specified is issued as many  times as necessary,
  unless it is followed by the -times N control argument.
  
  The  -match and  -exclude control  arguments are  applied in  the
  order  specified.  Each  -match causes   a given  question to  be
  answered if it matches STR; each  -exclude causes it to be passed
  on  if it  matches STR.   A question  that has  been excluded  by
  -exclude  is reconsidered  if it  matches a  -match later  in the
  request line.  For example, the request line:
  
     answer yes -match /apple/ -exclude /apple_tree/
           -match /^apple_tree/
  
  
  

  ________________                                 ________________
  
  cxi_input_daemon                                 cxi_input_daemon
  ________________                                 ________________
  
  
  answers questions  containing the string "apple",  except that it
  does not answer questions containing "apple_tree", except that it
  does answer questions beginning with "apple_tree".
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

  ________________                                 ________________
  
  cxi_input_daemon                                 cxi_input_daemon
  ________________                                 ________________
  
  
  debug_mode
  
  SYNTAX
  
  debug_mode {-control_args}
  
  FUNCTION
  
  enables or disables the cxi_input_daemon debugging facilities.
  
  CONTROL ARGUMENTS
  
  -off
     disables cxi_input_daemon's debugging facilities.  This is the
     default.
  
  -on
     enables  cxi_input_daemon's  debugging  facilities,  with  the
     result that most  CXI operations are traced in  the DSA system
     log (dsa_sl),  and the standard ssu_  debugging facilities are
     turned on.
  
  NOTES
  
  This request is intended for  use only by system maintainers when
  debugging cxi_input_daemon operations.
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

  ________________                                 ________________
  
  cxi_input_daemon                                 cxi_input_daemon
  ________________                                 ________________
  
  
  do
  
  SYNTAX
  
  do request_string {args}
  
  or
  
  do -control_args
  
  SYNTAX AS AN ACTIVE REQUEST
  
  [do "request_string" args]
  
  FUNCTION
  
  expands  a request  line by  substituting the  supplied arguments
  into the line before execution.  Control arguments may be used to
  set  the mode  of operation  of  the  do request.   As an  active
  request,  do  returns  the  expanded  request_string  rather than
  executing it.
  
  ARGUMENTS
  
  request_string
     is a request line in quotes.
  
  args
     are  character  string  arguments  that  replace parameters in
     request_string.
  
  CONTROL ARGUMENTS
  
  -absentee
     establishes an any_other handler  which catches all conditions
     and aborts execution of the  request line without aborting the
     process.
  
  -brief, -bf
     specifies that the expanded request line should not be printed
     before execution.  This is the default.
  
  -go
     specifies that  the expanded request line should  be passed on
     for execution.  This is the default.
  
  -interactive
     does not establish an any_other handler.  This is the default.
  
  
  

  ________________                                 ________________
  
  cxi_input_daemon                                 cxi_input_daemon
  ________________                                 ________________
  
  
  -long, -lg
     specifies  that the  expanded request  line should  be printed
     before execution.
  
  -nogo
     specifies that the expanded request  line should not be passed
     on for execution.
  
  LIST OF PARAMETERS
  
  Any sequence beginning with & in  the request line is expanded by
  the do request using the arguments given on the request line.
  
     &I
        is replaced by argI.  I must be a digit from 1 to 9.
  
     &(I)
        is also replaced by argI.  I can be any value, however.
  
     &qI
        is  replaced by argI  with any quotes  in argI doubled.   I
        must be a digit from 1 to 9.
  
     &q(I)
        is also replaced by argI with any quotes doubled.  I can be
        any value, however.
  
     &rI
        is replaced  by argI surrounded  by a level  of quotes with
        any contained quotes doubled.  I must  be a digit from 1 to
        9.
  
     &r(I)
        is also replaced  by a requoted argI.  I can  be any value,
        however.
  
     &fI
        is  replaced by  all the  arguments starting  with argI.  I
        must be a digit from 1 to 9.
  
     &f(I)
        is also  replaced by all the arguments  starting with argI.
        I can be any value, however.
  
     &qfI
        is replaced  by all the  arguments starting with  argI with
        any quotes doubled.  I must be a digit from 1 to 9.
  
  
  
  

  ________________                                 ________________
  
  cxi_input_daemon                                 cxi_input_daemon
  ________________                                 ________________
  
  
     &qf(I)
        is also  replaced by all  the arguments starting  with argI
        with quotes doubled.  I can be any value, however.
  
     &rI
        is replaced by all the  arguments starting with argI.  Each
        argument  is placed  in a  level of  quotes with  contained
        quotes doubled.  I must be a digit from 1 to 9.
  
     &rf(I)
        is also  replaced by all the arguments  starting with argI,
        requoted.  I can be any value, however.
  
     &&
        is replaced by an ampersand.
  
     &
        is replaced  by a 15  character unique string.   The string
        used is the same everywhere &  appears in the request line.
  
     &n
        is replaced by the actual number of arguments supplied.
  
     &f&n
        is replaced by the last argument supplied.
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

  ________________                                 ________________
  
  cxi_input_daemon                                 cxi_input_daemon
  ________________                                 ________________
  
  
  dump_frontend, dump
  
  SYNTAX
  
  dump {dump_pathname} {-control_args}
  
  SYNTAX AS AN ACTIVE REQUEST
  
  [dump {dump_pathname} {-control_args}]
  
  FUNCTION
  
  dumps  the frontend  memory  into  the specified  Multics segment
  using the specified bounds.
  
  ARGUMENTS
  
  dump_pathname
     specifies the name of the  Multics segment where the dump will
     be  stored.  If  this name  is not  specified, a  name of  the
     following  form  is  used:   "dump.FEP_NAME.DATE_TIME",  where
     FEP_NAME is the name of the current frontend, and DATE_TIME is
     a 12-character  string representing the current  date and time
     with one second resolution.
  
  CONTROL ARGUMENTS
  
  -for dec_words
     specifies  the number  of words,  in decimal,  that should  be
     dumped.  The  default is to  dump all of  the frontend memory.
     This  control argument  is incompatible  with the  -to_address
     control argument.
  
  -force, -fc
     specifies that the frontend  should be dumped without querying
     the user, even if it is running or a driver is started.
  
  -from_address hex_addr, -faddr hex_addr
     specifies the address, in hexadecimal,  of the location in the
     frontend at  which the dump  should start.  The  default is to
     start at location 0.
  
  -notify, -nt
     specifies that  the user should  be notified (by  a message on
     the  bootload  console)  if  an  error  occurs.   This control
     argument  will also  cause any  subsystem exec_com  containing
     this request or active function to be aborted.
  
  
  
  

  ________________                                 ________________
  
  cxi_input_daemon                                 cxi_input_daemon
  ________________                                 ________________
  
  
  -no_force, -nfc
     specifies  that if  the frontend   is running  or a  driver is
     started,  the user  should be  queried before  the frontend is
     dumped.  This is the default.
  
  -no_notify, -nnt
     specifies  that the user  should not be  notified if an  error
     occurs.  This control argument  will cause request invocations
     to abort  and active function  invocations to return  a value.
     This is the default.
  
  -to_address hex_addr, -taddr hex_addr
     specifies the address, in hexadecimal,  of the location in the
     frontend  at which the  dump should stop.   The default is  to
     dump to the end of  frontend memory.  This control argument is
     incompatible with the -for control argument.
  
  NOTES
  
  The  file created by  this request is  an unstructured file  with
  each 8-bit byte of frontend memory  stored in a 9-bit byte in the
  file (right-justified).  Thus, the  dump_segment command with the
  -hex9  control  argument  can  be  used  to  examine  the dump in
  hexadecimal.   The   file  also  has  a  header   as  defined  in
  mna_dump_file_header.incl.pl1,  currently eight words  (32 bytes)
  long.   Thus, the  -offset control  argument to  dump_segment can
  also be used  to give the actual memory offsets  in the frontend.
  (The  dump_segment command is  described in the  Multics Commands
  and Active Functions manual, Order No.  AG92.)
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

  ________________                                 ________________
  
  cxi_input_daemon                                 cxi_input_daemon
  ________________                                 ________________
  
  
  exec_com, ec
  
  SYNTAX
  
  ec ec_path {ec_args}
  
  SYNTAX AS AN ACTIVE REQUEST
  
  [ec ec_path {ec_args}]
  
  FUNCTION
  
  executes  an exec_com program  written in the  exec_com language.
  This program  is used to  pass cxi_input_daemon request  lines to
  the  cxi_input_daemon  subsystem  and  to  pass  input  lines  to
  cxi_input_daemon  requests  which  read   input.   As  an  active
  request,  exec_com  returns  a  value  specified  by the exec_com
  program via the &return statement.
  
  ARGUMENTS
  
  ec_path
     is the pathname of an  exec_com program.  The suffix, which is
     normally  the  name  of  the  subsystem,  is  assumed  if  not
     specified.
  
  ec_args
     are  optional  arguments  to  the  exec_com  program  and  are
     substituted  for parameter references  in the program  such as
     &1.
  
  NOTES
  
  The  cxi_input_daemon subsystem  may define  a search  list to be
  used  to find  the exec_com  program.  If  this is  the case, the
  search  list is  used if  ec_path does  not contain  a "<" or ">"
  character; if the ec_path does contain either a "<" or ">", it is
  assumed to be a relative pathname.
  
  
  
  
  
  
  
  
  
  
  
  
  

  ________________                                 ________________
  
  cxi_input_daemon                                 cxi_input_daemon
  ________________                                 ________________
  
  
  For a  description of the  exec_com language (both  version 1 and
  version 2), type:
  
     .. help v1ec v2ec
  
  When  the  &[...]  construct  and  the  active  string  in an &if
  statement in an exec_com  program are evaluated, cxi_input_daemon
  subsystem  active requests  are used  rather than  Multics active
  functions.   The  cxi_input_daemon   subsystem's  execute  active
  request may be used to evaluate Multics active strings within the
  exec_com.
  
  NOTE:  in the present  implementation, any errors detected during
  execution  of  an  exec_com  within  a  subsystem  will abort the
  request line in which the exec_com request was invoked.
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

  ________________                                 ________________
  
  cxi_input_daemon                                 cxi_input_daemon
  ________________                                 ________________
  
  
  execute, e
  
  SYNTAX
  
  e LINE
  
  SYNTAX AS AN ACTIVE REQUEST
  
  [e LINE]
  
  FUNCTION
  
  executes  the supplied  line as  a Multics  command line.   As an
  active  request, execute  evaluates a  Multics active  string and
  returns  the  result  to  the  cxi_input_daemon subsystem request
  processor.
  
  ARGUMENTS
  
  LINE
     is  the Multics  command line  to be  executed or  the Multics
     active  string to be  evaluated.  It need  not be enclosed  in
     quotes.
  
  NOTES
  
  The  recommended method  to execute  a Multics  command line from
  within  the  cxi_input_daemon  subsystem   is  the  ".."   escape
  sequence.  The execute request is  intended as a means of passing
  information from the subsystem to the Multics command processor.
  
  All   ()s,  []s,   and  ""s   in  LINE   are  processed   by  the
  cxi_input_daemon subsystem request processor  and not the Multics
  command processor.   This fact permits the passing  of the values
  of  cxi_input_daemon  active  requests  to  Multics commands when
  using the  execute request (or  to Multics active  functions when
  using the execute active request) for further manipulation before
  returning the  values to the subsystem request  processor for use
  within a request line.
  
  
  
  
  
  
  
  
  
  
  
  

  ________________                                 ________________
  
  cxi_input_daemon                                 cxi_input_daemon
  ________________                                 ________________
  
  
  execute_in_frontend, exfep
  
  SYNTAX
  
  exfep {map_pathname} {-control_args}
  
  SYNTAX AS AN ACTIVE REQUEST
  
  [exfep {map_pathname} {-control_args}]
  
  FUNCTION
  
  executes a  previously loaded frontend  image in a  frontend; for
  instance,  to execute  a generator  image and  produce a runnable
  image.
  
  ARGUMENTS
  
  map_pathname
     specifies the name  of the Multics segment into  which the map
     records  generated by  the  executing  frontend image  will be
     stored.   This  file  is  a  normal  Multics  text  file.   If
     unspecified,   a  name   of  the   following  form   is  used:
     "map.IMAGE_NAME.ex" where IMAGE_NAME is  the entry name of the
     current image  in the frontend,  or "local_image" if  no image
     was loaded from Multics.
  
  CONTROL ARGUMENTS
  
  -address hex_addr, -addr hex_addr
     specifies the address, in hexadecimal,  of the location in the
     frontend at  which execution should start.  The  default is to
     start at location 400x.
  
  -brief, -bf
     specifies  that  no  informative  messages,  either  from  the
     request or the frontend, should be printed during execution.
  
  -force, -fc
     specifies  that  the  frontend   should  be  executed  without
     querying the user, even if there is currently a driver running
     the frontend.  This control argument should only be used if it
     is known that the driver assumed to be running is broken.
  
  -go {config_name} {-control_args}
     specifies  the GO  card options  to be  sent to  the DNS  when
     executing the image.  A  complete description of these options
     appears in the DNS  System Installation and Generation manual,
     Order  No.  DP43  and in   the DNS  System Generation  manual,
  
  

  ________________                                 ________________
  
  cxi_input_daemon                                 cxi_input_daemon
  ________________                                 ________________
  
  
     Reference No.  39 A2 9807.   This control argument must appear
     last  on  the  request  line  since  it  takes  all  following
     arguments  and builds a  GO card from  them.  No special  case
     handling  is performed  on the  following arguments,  so if an
     argument is required to be uppercase it must be typed as such.
     If this control argument is not specified, the default GO card
     consists  of GO  with no  other arguments.   For example,  the
     request  "exfep -go CONFIG  -MAP -NP" generates  a GO card  as
     follows:  "GO CONFIG -MAP -NP".
  
  -local_image, -li
     specifies that  the frontend was  not loaded from  Multics but
     has  a local  image that  was loaded  from elsewhere,  e.g., a
     diskette.   If this  control argument   is not  used, and  the
     frontend has not been loaded  from Multics, then the user will
     be queried as to whether or not the execution should proceed.
  
  -long, -lg
     specifies that  informative messages should be  printed.  This
     control  argument  is  useful  when  messages  are sent during
     execution  in  the  frontend.   For  instance, informative and
     error messages are sent during generation of a runnable image,
     to  report on  the progress   of this  activity.  This  is the
     default.
  
  -notify, -nt
     specifies that  the user should  be notified (by  a message on
     the  bootload  console)  if  an  error  occurs.   This control
     argument  will also  cause any  subsystem exec_com  containing
     this request or active function to be aborted.
  
  -no_force, -nfc
     specifies  that if  there is  a driver  currently running  the
     frontend, the  user should be  queried before the  frontend is
     executed.  This is the default.
  
  -no_local_image, -nli
     specifies that the frontend has  been loaded from Multics.  If
     this is not  the case, the user will be  queried as to whether
     or not the execution should proceed.  This is the default.
  
  -no_notify, -nnt
     specifies  that the user  should not be  notified if an  error
     occurs.  This control argument  will cause request invocations
     to abort  and active function  invocations to return  a value.
     This is the default.
  
  
  
  
  

  ________________                                 ________________
  
  cxi_input_daemon                                 cxi_input_daemon
  ________________                                 ________________
  
  
  NOTES
  
  After a frontend is loaded, it  must be executed before it can be
  started.  In the  case of a generator image,  executing the image
  produces a runnable image which may then be started.  In the case
  of a runnable image, it must  first be executed and then started.
  Only  the GO  card options  specified in  the execute_in_frontend
  request have any effect; the ones specified in the start_frontend
  request are ignored.
  
  When a  runnable image is  generated, it is  stored in a  file on
  Multics using the pathname argument from the -SV control argument
  on the END card in the config file.  Normally, the name takes the
  "i" suffix  to indicate that the  runnable image is stored  as an
  image file.  However, if the runnable image is to be used to load
  a remote DN8/7100, then the name takes the "b" suffix to indicate
  that it  is in binary (sequential) format.   (See the description
  of the dsa_cv_dns_tape  command in Section 2 for  a discussion of
  these file types.)
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

  ________________                                 ________________
  
  cxi_input_daemon                                 cxi_input_daemon
  ________________                                 ________________
  
  
  frontend_working_dir, fwd
  
  SYNTAX
  
  fwd
  
  SYNTAX AS AN ACTIVE REQUEST
  
  [fwd]
  
  FUNCTION
  
  returns the pathname of the  working directory defined in the NIT
  for the current frontend.
  
  NOTES
  
  This request  serves the same purpose  as the dsa_fep_working_dir
  command (described in Section 2), but does not require a frontend
  name since it uses the one for this subsystem invocation.
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

  ________________                                 ________________
  
  cxi_input_daemon                                 cxi_input_daemon
  ________________                                 ________________
  
  
  help
  
  SYNTAX
  
  help {topics} {-control_args}
  
  FUNCTION
  
  prints descriptions of  cxi_input_daemon requests and information
  about other topics.
  
  ARGUMENTS
  
  topics
     are the requests or other topics on which information is to be
     printed.  The  available requests may be printed  by using the
     list_requests request.  The available topics may be printed by
     using the list_help request.
  
  CONTROL ARGUMENTS
  
  -brief, -bf
     prints  only  a  summary  of  a  request  or  active  request,
     including  the  Syntax  section,  list  of  arguments, control
     arguments, etc..
  
  -search STRs, -srh STRs
     begins  printing  with  the  paragraph  containing  all of the
     strings specified by STRs.  By default, printing begins at the
     top of the information.
  
  -section STRs, -scn STRs
     begins printing at the section whose title contains all of the
     strings specified by STRs.  By default, printing begins at the
     top of the information.
  
  -title
     prints section  titles and section  line counts, then  asks if
     the user wants to see the first paragraph of information.
  
  LIST OF RESPONSES
  
  The most useful  responses which can be given  to questions asked
  by the help request are:
  
     yes, y
        prints the next paragraph of information on this topic.
  
  
  
  

  ________________                                 ________________
  
  cxi_input_daemon                                 cxi_input_daemon
  ________________                                 ________________
  
  
     no, n
        stops printing  information for this topic  and proceeds to
        the next topic, if any.
  
     quit, q
        stops  printing information for  this topic and  returns to
        cxi_input_daemon request level.
  
     rest {-section}, r {-section}, rest {-scn}, r {-scn}
        prints  remaining   information  for  this   topic  without
        intervening questions.  If -section  or -scn is given, help
        prints  only  the  rest  of  the  current  section  without
        questions and then  asks if the user wants to  see the next
        section.
  
     section {STRs} {-top}, scn {STRs} {-top}
     section {STRs} {-t}, scn {STRs} {-t}
        skips to the  next section whose title contains  all of the
        strings specified by  STRs.  If -top or -t  is given, title
        searching starts  at the top  of the information.   If STRs
        are omitted,  help uses the STRs from  the previous section
        response or the -section control argument.
  
     search {STRs} {-top}, srh {STRs} {-top}
     search {STRs} {-t}, srh {STRs} {-t}
        skips  to the  next  paragraph  containing all  the strings
        STRs.  If -top or -t is  given, searching starts at the top
        of  the information.   If STRs  are omitted,  help uses the
        STRs  from  the  previous  search  response  or the -search
        control argument.
  
     skip {-section} {-seen}, s {-section} {-seen}
     skip {-scn} {-seen}, s {-scn} {-seen}
        skips to the next paragraph.  If -section or -scn is given,
        skips all  paragraphs of the current section.   If -seen is
        given, skips to  the next paragraph which the  user has not
        seen.  Only  one control argument  is allowed in  each skip
        response.
  
     title {-top}, title {-t}
        lists titles and line counts  of the sections which follow.
        If  -top or  -t is  given, help  lists all  section titles.
        After  the titles  are printed,  help repeats  the previous
        question.
  
     ?
        prints the list of responses allowed to help queries.
  
  
  
  

  ________________                                 ________________
  
  cxi_input_daemon                                 cxi_input_daemon
  ________________                                 ________________
  
  
     .
        prints   "help"  to    identify  the   current  interactive
        environment.
  
     .. command_line
        treats the  remainder of the response as  a Multics command
        line.
  
  
  NOTES
  
  If the  topics argument is  not specified, the  help request will
  explain  what  requests  are  available  in  the cxi_input_daemon
  subsystem to obtain information on the subsystem.
  
  This is  only a partial description  of the help request.   For a
  complete  description  of  all   of  the  control  arguments  and
  responses accepted by this request, type:
  
     .. help help
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

  ________________                                 ________________
  
  cxi_input_daemon                                 cxi_input_daemon
  ________________                                 ________________
  
  
  if
  
  SYNTAX
  
  if expr -then line1 {-else line2}
  
  SYNTAX AS AN ACTIVE REQUEST
  
  [if expr -then STR1 {-else STR2}]
  
  FUNCTION
  
  conditionally executes one of two  request lines depending on the
  value of an active string.  As  an active request, if returns one
  of  two   character  strings  to  the   cxi_input_daemon  request
  processor depending on the value of an active string.
  
  ARGUMENTS
  
  expr
     is an  active string which  must evaluate to  either "true" or
     "false".     The   active    string   is    constructed   from
     cxi_input_daemon  active requests  and Multics  active strings
     (using the cxi_input_daemon execute active request).
  
  line1
     is the  cxi_input_daemon request line  to be executed  if expr
     evaluates to "true".  If the request line contains any request
     processor characters, it must be enclosed in quotes.
  
  STR1
     is  returned as  the value  of the  if active  request if expr
     evaluates to "true".
  
  line2
     is the  cxi_input_daemon request line  to be executed  if expr
     evaluates to "false".  If this argument is omitted and expr is
     "false",  no  additional  request  line  is  executed.  If the
     request  line contains  any request  processor characters,  it
     must be enclosed in quotes.
  
  STR2
     is  returned as  the value  of the  if active  request if expr
     evaluates to "false".  If this argument is omitted and expr is
     "false", a null string is returned.
  
  
  
  
  
  

  ________________                                 ________________
  
  cxi_input_daemon                                 cxi_input_daemon
  ________________                                 ________________
  
  
  list_help, lh
  
  SYNTAX
  
  lh {topics}
  
  FUNCTION
  
  displays the names of all cxi_input_daemon info segments on given
  topics.
  
  ARGUMENTS
  
  topics
     specifies the  topics of interest.  Any  cxi_input_daemon info
     segment which contains  one of these topics as  a substring is
     displayed.  If the topics argument  is not specified, all info
     segments available for the subsystem are listed.
  
  NOTES
  
  When  matching topics  with info  segment names,  an info segment
  name is considered to match a topic  only if that topic is at the
  beginning  or end of  a word within  the segment name.   Words in
  info segment  names are bounded by  the beginning and end  of the
  segment  name  and  by  the  characters  period  (.), hyphen (-),
  underscore (_), and  dollar sign ($).  The ".info"  suffix is not
  considered when matching topics.
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

  ________________                                 ________________
  
  cxi_input_daemon                                 cxi_input_daemon
  ________________                                 ________________
  
  
  list_requests, lr
  
  SYNTAX
  
  lr {STRs} {-control_args}
  
  FUNCTION
  
  prints a brief description of selected cxi_input_daemon requests.
  
  ARGUMENTS
  
  STRs
     specifies the requests to be  listed.  Any request with a name
     containing  one of  these strings  is listed  unless -exact is
     used, in which case the request name must exactly match one of
     these  strings.  If  no STRs  are specified,  all requests are
     displayed.
  
  CONTROL ARGUMENTS
  
  -all, -a
     includes undocumented  and unimplemented requests in  the list
     of requests eligible for matching the STR arguments.
  
  -exact
     lists only  those requests one of whose  names exactly matches
     one of the STR arguments.
  
  NOTES
  
  When  matching  STRs  with  request  names,  a  request  name  is
  considered to match a STR only if that STR is at the beginning or
  end of  a word within the  request name.  Words in  request names
  are bounded by  the beginning and end of the  request name and by
  the characters period (.), hyphen (-), underscore (_), and dollar
  sign ($).
  
  
  
  
  
  
  
  
  
  
  
  
  
  

  ________________                                 ________________
  
  cxi_input_daemon                                 cxi_input_daemon
  ________________                                 ________________
  
  
  load_frontend, load
  
  SYNTAX
  
  load {load_pathname} {-control_args}
  
  SYNTAX AS AN ACTIVE REQUEST
  
  [load {load_pathname} {-control_args}]
  
  FUNCTION
  
  loads  the memory  of the  frontend from  the specified  segment,
  starting at the specified frontend memory location.
  
  ARGUMENTS
  
  load_pathname
     specifies the  name of the Multics segment  which contains the
     DNS memory  image.  The segment  must be an  unstructured file
     with     a    two     word    header     as    described    by
     mna_load_file_header.incl.pl1.   It  is  normally  created  by
     using the DNS generator image to create a runnable image.  The
     default name, if none is specified, is "IMAMEM.i".
  
  CONTROL ARGUMENTS
  
  -address hex_addr, -addr hex_addr
     specifies the address, in hexadecimal,  of the location in the
     frontend  at which loading  should start.  If  specified, this
     address overrides  the address specified in the  header of the
     load file.  If not specified, the address in the header of the
     load file is used.
  
  -force, -fc
     specifies that the frontend  should be loaded without querying
     the user, even if it is running or a driver is started.
  
  -notify, -nt
     specifies that  the user should  be notified (by  a message on
     the  bootload  console)  if  an  error  occurs.   This control
     argument  will also  cause any  subsystem exec_com  containing
     this request or active function to be aborted.
  
  -no_force, -nfc
     specifies  that if  the frontend   is running  or a  driver is
     started,  the user  should be  queried before  the frontend is
     loaded.  This is the default.
  
  
  

  ________________                                 ________________
  
  cxi_input_daemon                                 cxi_input_daemon
  ________________                                 ________________
  
  
  -no_notify, -nnt
     specifies  that the user  should not be  notified if an  error
     occurs.  This control argument  will cause request invocations
     to abort  and active function  invocations to return  a value.
     This is the default.
  
  NOTES
  
  The file used  by this request is an unstructured  file with each
  8-bit byte of frontend memory stored  in a 9-bit byte in the file
  (right-justified).  Thus, the dump_segment command with the -hex9
  control argument can be used to examine the image in hexadecimal.
  The    file    also    has     a    header    as    defined    in
  mna_load_file_header.incl.pl1, currently two  words (eight bytes)
  long.   Thus, the  -offset control  argument to  dump_segment can
  also be used  to give the actual memory offsets  in the frontend.
  (The  dump_segment command is  described in the  Multics Commands
  and Active Functions manual, Order No.  AG92.)
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

  ________________                                 ________________
  
  cxi_input_daemon                                 cxi_input_daemon
  ________________                                 ________________
  
  
  quit, q
  
  SYNTAX
  
  q {-control_args}
  
  FUNCTION
  
  cleans up the invocation and  exits cxi_input_daemon.  If the CXI
  driver or frontend is still running, the request will first query
  the user.
  
  CONTROL ARGUMENTS
  
  -force, -fc
     specifies that  the user should not be  queried for permission
     to  exit from  cxi_input_daemon, even   if the  driver or  the
     frontend is still running.
  
  -no_force, -nfc
     specifies that  the user should  be queried for  permission to
     exit from  cxi_input_daemon if the  driver or the  frontend is
     still running.  This is the default.
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

  ________________                                 ________________
  
  cxi_input_daemon                                 cxi_input_daemon
  ________________                                 ________________
  
  
  ready, rdy
  
  SYNTAX
  
  rdy
  
  FUNCTION
  
  prints a Multics ready message.
  
  NOTES
  
  The  Multics general_ready  command may   be used  to change  the
  format  of the  ready message  printed by  this request  and also
  after execution of request lines if the ready_on request is used.
  Type:
  
     .. help general_ready
  
  for more information on the available formats.
  
  The default ready message gives the time of day and the amount of
  CPU time  and page faults used  since the last ready  message was
  typed.
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

  ________________                                 ________________
  
  cxi_input_daemon                                 cxi_input_daemon
  ________________                                 ________________
  
  
  ready_off, rdf
  
  SYNTAX
  
  rdf
  
  FUNCTION
  
  disables printing of a ready message after each request line.
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

  ________________                                 ________________
  
  cxi_input_daemon                                 cxi_input_daemon
  ________________                                 ________________
  
  
  ready_on, rdn
  
  SYNTAX
  
  rdn
  
  FUNCTION
  
  enables printing of a ready message after each request line.
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

  ________________                                 ________________
  
  cxi_input_daemon                                 cxi_input_daemon
  ________________                                 ________________
  
  
  start_driver, std
  
  SYNTAX
  
  std {-control_args}
  
  SYNTAX AS AN ACTIVE REQUEST
  
  [std {-control_args}]
  
  FUNCTION
  
  starts the  CXI driver for the current  invocation.  This request
  does not normally  return unless an error occurs.  A  QUIT and pi
  sequence  may  be  used  to  get  back  to  the  cxi_input_daemon
  subsystem.  When used as  an active request, start_driver returns
  a string indicating what the error was.  The string is one of the
  following:  not_responding, reboot, interrupt, error, bad_pcw, or
  quit.  Quit is returned in response to a QUIT and is normal.  All
  of the others indicate an error of some sort.
  
  CONTROL ARGUMENTS
  
  -force, -fc
     specifies that  the driver should be  started without querying
     the user, even if the frontend is not running.
  
  -notify, -nt
     specifies that  the user should  be notified (by  a message on
     the  bootload  console)  if  an  error  occurs.   This control
     argument  will also  cause any  subsystem exec_com  containing
     this request or active function to be aborted.
  
  -no_force, -nfc
     specifies that if the frontend is not running, the user should
     be queried before the driver is started.  This is the default.
  
  -no_notify, -nnt
     specifies  that the user  should not be  notified if an  error
     occurs.  This control argument  will cause request invocations
     to abort  and active function  invocations to return  a value.
     This is the default.
  
  NOTES
  
  This request runs a timing loop using the time value specified in
  the  NIT by  the  idle_timer_interval  statement of  the Frontend
  object definition for this frontend.   Each time through the loop
  the CXI input processing subroutine  is called to process any new
  
  

  ________________                                 ________________
  
  cxi_input_daemon                                 cxi_input_daemon
  ________________                                 ________________
  
  
  DSA  input.  If  the frontend  sends an  interrupt indicating  an
  error,  this  request  will  attempt  to  execute  the  auto_boot
  subsystem  exec_com  to  restart  the  frontend.   A  QUIT and pi
  sequence can also be used to get back to subsystem request level.
  A subsequent start_driver request will normally resume processing
  where   it  left   off,  unless   too  much   time  has   elapsed
  (approximately two minutes), in which case the frontend will have
  decided that the host is dead.
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

  ________________                                 ________________
  
  cxi_input_daemon                                 cxi_input_daemon
  ________________                                 ________________
  
  
  start_frontend, stf
  
  SYNTAX
  
  stf {map_pathname} {-control_args}
  
  SYNTAX AS AN ACTIVE REQUEST
  
  [stf {map_pathname} {-control_args}]
  
  FUNCTION
  
  starts  a previously  loaded and   executed frontend  image in  a
  frontend; for instance, to cause a runnable image to start.
  
  ARGUMENTS
  
  map_pathname
     specifies the name  of the Multics segment into  which the map
     records  generated  by  starting  the  frontend  image will be
     stored.   This  file  is  a  normal  Multics  text  file.   If
     unspecified,   a  name   of  the   following  form   is  used:
     "map.IMAGE_NAME.st" where IMAGE_NAME is  the entry name of the
     current image  in the frontend,  or "local_image" if  no image
     was loaded from Multics.
  
  CONTROL ARGUMENTS
  
  -address hex_addr, -addr hex_addr
     specifies the address, in hexadecimal,  of the location in the
     frontend at  which the image  should be started.   There is no
     default since this value is currently ignored by the frontend.
  
  -brief, -bf
     specifies  that  no  informative  messages,  either  from  the
     request or the frontend, should  be printed while the image is
     being started.
  
  -force, -fc
     specifies  that the image  should be started  without querying
     the  user, even  if there  is currently  a driver  running the
     frontend.  This  control argument should only be  used when it
     is known that the driver assumed to be running is broken.
  
  -go {config_name} {-control_args}
     specifies  the GO  card options  to be  sent to  the DNS  when
     starting the  image.  A complete description  of these options
     appears in the DNS  System Installation and Generation manual,
     Order  No.  DP43  and in   the DNS  System Generation  manual,
  
  

  ________________                                 ________________
  
  cxi_input_daemon                                 cxi_input_daemon
  ________________                                 ________________
  
  
     Reference No.  39 A2 9807.   This control argument must appear
     last  on  the  request  line  since  it  takes  all  following
     arguments  and builds a  GO card from  them.  No special  case
     handling  is  performed  on  the  following  arguments, so any
     argument required to  be uppercase must be typed  as such.  If
     this control  argument is not  specified, the default  GO card
     consists  of GO  with no  other arguments.   For example,  the
     request  "stf -go -MAP  -NP" generates a  GO card as  follows:
     "GO -MAP -NP".
  
  -local_image, -li
     specifies that  the frontend was  not loaded from  Multics but
     has  a local  image that  was loaded  from elsewhere,  e.g.  a
     diskette.   If this  control argument   is not  used, and  the
     frontend has not been loaded  from Multics, then the user will
     be queried as to whether or not the image should be started.
  
  -long, -lg
     specifies that  informative messages should be  printed.  This
     control argument is useful when a frontend being started sends
     messages.  This is the default.
  
  -notify, -nt
     specifies that  the user should  be notified (by  a message on
     the  bootload  console)  if  an  error  occurs.   This control
     argument  will also  cause any  subsystem exec_com  containing
     this request or active function to be aborted.
  
  -no_force, -nfc
     specifies that if there is  a driver running the frontend, the
     user should  be queried before the frontend  is started.  This
     is the default.
  
  -no_local_image, -nli
     specifies that the frontend has  been loaded from Multics.  If
     this is not  the case, the user will be  queried as to whether
     or not the image should be started.  This is the default.
  
  -no_notify, -nnt
     specifies  that the user  should not be  notified if an  error
     occurs.  This control argument  will cause request invocations
     to abort  and active function  invocations to return  a value.
     This is the default.
  
  
  
  
  
  
  
  

  ________________                                 ________________
  
  cxi_input_daemon                                 cxi_input_daemon
  ________________                                 ________________
  
  
  NOTES
  
  After a frontend is loaded, it  must be executed before it can be
  started.  In the  case of a generator image,  executing the image
  produces a runnable image which may then be started.  In the case
  of a runnable image, it must  first be executed and then started.
  Only  the GO  card options  specified in  the execute_in_frontend
  request have any effect; the ones specified in the start_frontend
  request are ignored.
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

  ________________                                 ________________
  
  cxi_input_daemon                                 cxi_input_daemon
  ________________                                 ________________
  
  
  stop_driver, stpd
  
  SYNTAX
  
  stpd {-control_args}
  
  SYNTAX AS AN ACTIVE REQUEST
  
  [stpd {-control_args}]
  
  FUNCTION
  
  stops the CXI driver.
  
  CONTROL ARGUMENTS
  
  -force, -fc
     specifies that  the driver should be  stopped without querying
     the user.
  
  -notify, -nt
     specifies that  the user should  be notified (by  a message on
     the  bootload  console)  if  an  error  occurs.   This control
     argument  will also  cause any  subsystem exec_com  containing
     this request or active function to be aborted.
  
  -no_force, _nfc
     specifies that the user should be queried before the driver is
     stopped.  This is the default.
  
  -no_notify, -nnt
     specifies  that the user  should not be  notified if an  error
     occurs.  This control argument  will cause request invocations
     to abort  and active function  invocations to return  a value.
     This is the default.
  
  NOTES
  
  Use  this  request  to  stop  the  CXI  driver  for  the  current
  invocation  in orderly fashion.   The stop action  terminates all
  connections supported  by this driver and  performs other cleanup
  activities so that the driver will subsequently start correctly.
  
  
  
  
  
  
  
  
  

  ________________                                 ________________
  
  cxi_input_daemon                                 cxi_input_daemon
  ________________                                 ________________
  
  
  stop_frontend, stpf
  
  SYNTAX
  
  stpf {-control_args}
  
  SYNTAX AS AN ACTIVE REQUEST
  
  [stpf {-control_args}]
  
  FUNCTION
  
  stops the frontend.
  
  CONTROL ARGUMENTS
  
  -force, -fc
     specifies that the frontend should be stopped without querying
     the user, even if it is not running.
  
  -notify, -nt
     specifies that  the user should  be notified (by  a message on
     the  bootload  console)  if  an  error  occurs.   This control
     argument  will also  cause any  subsystem exec_com  containing
     this request or active function to be aborted.
  
  -no_force, _nfc
     specifies that if the frontend is not running, the user should
     be  queried  before  the  frontend  is  stopped.   This is the
     default.
  
  -no_notify, -nnt
     specifies  that the user  should not be  notified if an  error
     occurs.  This control argument  will cause request invocations
     to abort  and active function  invocations to return  a value.
     This is the default.
  
  NOTES
  
  This  request  stops  the  current  frontend.   It  cleans up the
  current  invocation, but  does not   notify the  frontend of  the
  action being taken.
  
  
  
  
  
  
  
  
  

  ________________                                 ________________
  
  cxi_input_daemon                                 cxi_input_daemon
  ________________                                 ________________
  
  
  subsystem_name
  
  SYNTAX
  
  subsystem_name
  
  SYNTAX AS AN ACTIVE REQUEST
  
  [subsystem_name]
  
  FUNCTION
  
  prints or returns the name of the cxi_input_daemon subsystem.
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

  ________________                                 ________________
  
  cxi_input_daemon                                 cxi_input_daemon
  ________________                                 ________________
  
  
  subsystem_version
  
  SYNTAX
  
  subystem_version
  
  SYNTAX AS AN ACTIVE REQUEST
  
  [subsystem_version]
  
  FUNCTION
  
  prints  or returns  the  version  number of  the cxi_input_daemon
  subsystem.
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

  
  
  
  
  
  
  
  
  
                              SECTION 6
  
  
            DISTRIBUTED SYSTEM ADMINISTRATION AND CONTROL
  
  
  
  
       The  purpose  of  DSAC  is  to  control  and  coordinate the
  components  of a  DSA network  (frontends, systems,  etc.).  DSAC
  collects   information  in   order  to   detect  errors,   create
  statistics,  and  enhance  performance.   It  also  provides test
  capabilities.   Some DSAC  functions  exist  on each  DSA system;
  access  to these  functions  is  strictly controlled.   The three
  basic functions are:
  
       o    NAD (network administration)
  
       o    NOI (network operator interface)
  
       o    ASF (administrative storage facility)
  
  The network  configuration of each system is  very important; all
  of  the configurations  of the  different systems  in the network
  must be coordinated.
  
  
  THE DSA_DSAC DAEMON
  
       The  DSA_DSAC  daemon  is  both  unique  and  permanent.  It
  multiplexes   sessions  between   administrative  functions   and
  administrative correspondents (which are administrative functions
  on  other systems).   The  initial  environment for  the DSA_DSAC
  daemon  is described  in the  NIT.  (See  the description  of the
  Dsac_info  object definition in  Section 4.)  Ssu  requests drive
  the  DSA_DSAC  daemon's  activities.   Activities  performed over
  sessions depend  on the type  of the administrative  function and
  the type of the administrative correspondent.  The types of these
  two entities are defined in the NIT.
  
  
  
  
  
  
  
  
  

  
  
  
  Logging In and Initializing the DSA_DSAC Daemon
  
       To login and initialize the DSA_DSAC daemon:
  
  1.   Include    the   run_dsac_daemon_init   command    and   the
       run_dsac_daemon command in the DSA_DSAC daemon's start_up.ec
       (>udd>Daemon>DSA_DSAC>start_up.ec).                      The
       run_dsac_daemon_init   and   run_dsac_daemon   commands  are
       described   later   in   this   section.    Note   that  the
       run_dsac_daemon command starts  up the run_dsac_daemon (rdd)
       subsystem.
  
  2.   Include  any run_dsac_daemon  command requests  you want  to
       issue (when  the rdd subsystem first starts  running) in the
       rdd                  subsystem's                 start_up.ec
       (>udd>Daemon>DSA_DSAC>start_up.rddec).    The   run_dsa_dsac
       command requests are described later in this section.
  
  3.   Type  the  following  command  line  or  include  it  in the
       system_start_up.ec:
  
            login DSA_DSAC Daemon <dsa_dsac_daemon_label>
  
  
  Logging Out the DSA_DSAC Daemon
  
       To logout the DSA_DSAC daemon, type:
  
       logout DSA_DSAC Daemon <dsa_dsac_daemon_label>
  
  For  detailed information on  logging system daemon  processes in
  and  out, refer  to the  Operator's Guide  to Multics  (Order No.
  GB61).
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

  ____________________                         ____________________
  
  run_dsac_daemon_init                         run_dsac_daemon_init
  ____________________                         ____________________
  
  
  NAME: RUN_DSAC_DAEMON_INIT, RDD_INIT
  
  SYNTAX AS A COMMAND
  
  rdd_init session_control_name {-control_args}
  
  FUNCTION
  
  initializes  the  DSA_DSAC  daemon  tables  using the information
  supplied  by  the  Dsac_info  object  definition  in  the network
  information   table  (NIT).    The  segments   specified  by  the
  working_dd_seg,      working_af_seg,     working_ag_seg,      and
  working_ac_seg statements in the  Dsac_info object definition are
  created automatically when the DSA_DSAC  daemon is started up for
  the  first time,  in the  directory specified  by the working_dir
  statement.   You  are  responsible  for  creating  the  directory
  specified by  the working_dir statement, and should  do so before
  the DSA_DSAC daemon is started up  for the first time.  Note that
  you must give the DSA_DSAC daemon "sma" access to this directory.
  The segments specified by the  statements in the Dsac_info object
  definition   are    initialized   with   the    descriptions   of
  administrative    functions,     administrative    groups,    and
  administrative correspondents  provided in the NIT,  according to
  the   list   of   administrative   functions   specified  by  the
  admin_functions statement in the Dsac_info object definition.
  
  ARGUMENTS
  
  session_control_name
     is  the  local  name  of  the  session  control with which the
     DSA_DSAC daemon interfaces.  This name must be the same as the
     name specified by the sc_loc statement in the Dsac_info object
     definition in  the NIT.  It may  be up to 32  characters long.
     It must also be the  same as the session_control_name supplied
     to the run_dsac_daemon command.
  
  CONTROL ARGUMENTS
  
  -debug
     specifies that tracing should be enabled.
  
  -no_debug
     specifies that  tracing should not  be enabled.  (This  is the
     default.)
  
  
  
  
  
  
  

  _______________                                   _______________
  
  run_dsac_daemon                                   run_dsac_daemon
  _______________                                   _______________
  
  
  NAME: RUN_DSAC_DAEMON, RDD
  
  SYNTAX AS A COMMAND
  
  rdd session_control_name {-control_args}
  
  FUNCTION
  
  enables the  DSA_DSAC daemon to start in  the appropriate context
  and  initializes   the  run_dsac_daemon  (rdd)   subsystem.   The
  DSA_DSAC  daemon tables for  session control must  be initialized
  before  the run_dsac_daemon  command and  its associated requests
  can be issued.  This  means that the run_dsac_daemon_init command
  must be  run just before  the run_dsac_daemon command  is run, in
  the same process.  The easiest way to ensure that this happens is
  to  include both  commands in  the DSA_DSAC  daemon's start_up.ec
  (>udd>Daemon>DSA_DSAC>start_up.ec).
  
  ARGUMENTS
  
  session_control_name
     is  the  local  name  of  the  session  control with which the
     DSA_DSAC daemon interfaces.  This name must be the same as the
     name specified by the sc_loc statement in the Dsac_info object
     definition in  the NIT.  It may  be up to 32  characters long.
     It must also be the  same as the session_control_name supplied
     to the run_dsac_daemon_init command.
  
  CONTROL ARGUMENTS
  
  -abbrev
     indicates that abbreviation processing is allowed.
  
  -brief, -bf
     specifies   that  explanatory    information  should   not  be
     displayed.
  
  -ec_suffix ec_suffix
     specifies  the  suffix  to  be  used  for  the rdd subsystem's
     start_up.ec.  The default is "rddec".
  
  -info_dir info_path
     specifies  the  pathname  of  the  information directory.  The
     default is ">doc>subsystem".
  
  -long, -lg
     specifies  that explanatory   information should  be displayed
     when a  request is rejected  and when files  are transfered by
     the NASF administrative function.  (This is the default.)
  
  

  _______________                                   _______________
  
  run_dsac_daemon                                   run_dsac_daemon
  _______________                                   _______________
  
  
  -no_abbrev
     indicates that abbreviation processing  is not allowed.  (This
     is the default.)
  
  -no_prompt
     specifies  that a  prompt should  not be  used.  (This  is the
     default.)
  
  -no_start_up
     specifies  that  a  rdd  subsystem  start_up.ec  should not be
     executed.
  
  -profile profile_path
     specifies the pathname of the  abbreviation profile file to be
     used  if  abbreviation  processing  is  enabled  (i.e., if the
     -abbrev control argument is specified).
  
  -prompt
     specifies that a prompt should be used.
  
  -start_up
     specifies that a rdd subsystem start_up.ec should be executed.
     (This is the default.)
  
  LIST OF REQUESTS
  
  Any of  the run_dsac_daemon command requests  described below can
  be     placed    in     the    rdd     subsystem's    start_up.ec
  (>udd>Daemon>DSA_DSAC>start_up.rddec).    The  requests   are  in
  alphabetical order.
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

  _______________                                   _______________
  
  run_dsac_daemon                                   run_dsac_daemon
  _______________                                   _______________
  
  
  kill_driver, kill
  
  SYNTAX
  
  kill
  
  FUNCTION
  
  terminates the DSA_DSAC daemon driver.  Prior to issuing the kill
  request, issue  the stop_admin_function request for  each ongoing
  administrative function.  Once the  kill request has been issued,
  it  is not  possible to   issue the  start_admin_function or  the
  stop_admin_function  requests.   The  only  request  which may be
  issued is quit.
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

  _______________                                   _______________
  
  run_dsac_daemon                                   run_dsac_daemon
  _______________                                   _______________
  
  
  quit
  
  SYNTAX
  
  quit
  
  FUNCTION
  
  terminates the rdd subsystem.  Prior to issuing the quit request,
  issue   the   stop_admin_function   request   for   each  ongoing
  administrative function, and then issue the kill_driver request.
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

  _____________________                       _____________________
  
  start_admin_function,                       start_admin_function,
  _____________________                       _____________________
  
  
  NAME: START_ADMIN_FUNCTION,, START_AF
  
  SYNTAX
  
  start_af admin_function_name
  
  FUNCTION
  
  allows the  specified administrative function to  accept incoming
  connections  from  its  administrative  correspondents.   Once  a
  session  is established,  the administrative  function itself  is
  performed by the DSA_DSAC daemon, above the session, according to
  the type of the administrative function (NAD, ASF, etc.).
  
  ARGUMENTS
  
  admin_function_name
     specifies the  name of an administrative  function.  This name
     must be defined by an  Admin_function object definition in the
     NIT,  and must  also be  one  of  the names  specified by  the
     admin_functions statement  in the Dsac_info  object definition
     in the NIT.
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

  ____________________                         ____________________
  
  stop_admin_function,                         stop_admin_function,
  ____________________                         ____________________
  
  
  NAME: STOP_ADMIN_FUNCTION,, STOP_AF
  
  SYNTAX
  
  stop_af admin_function_name
  
  FUNCTION
  
  disconnects  the sessions   between the  specified administrative
  function   and   its   administrative   correspondents   (if  the
  administrative    function   was   previously    started).    The
  administrative   function  can   be  restarted   by  issuing  the
  start_admin_function request.
  
  ARGUMENTS
  
  admin_function_name
     specifies the  name of an administrative  function.  This name
     must be defined by an  Admin_function object definition in the
     NIT,  and must  also be  one  of  the names  specified by  the
     admin_functions statement  in the Dsac_info  object definition
     in the NIT.
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

  ____________________                         ____________________
  
  stop_admin_function,                         stop_admin_function,
  ____________________                         ____________________
  
  
  trace
  
  SYNTAX
  
  trace control_arg
  
  FUNCTION
  
  turns the tracing feature on or off for the DSA_DSAC daemon.
  
  CONTROL ARGUMENTS
  
  -on {keywords}
     turns  the  tracing  feature  on  for  the specified keywords.
     Keywords may be chosen from the following:
  
     nit        - enables tracing of access to NIT objects
     requests   - enables tracing of requests issued
     session    - enables tracing of the session interface
     ccp_events - enables tracing of internal events
     objmgt     - enables tracing of object management
                  procedures
     CNP        - enables tracing of the CNP protocol in
                  the ASF function
     NAD        - enables tracing of specific features of
                  the NAD function
     lock       - enables tracing of every lock/unlock
                  invocation
     EVENT      - enables tracing of events external to the
                  process
     MIS        - enables tracing of miscellaneous problems
  
     If  no keywords  are specified,   tracing is  enabled for  all
     keywords.
  
  -off {keywords}
     turns  the tracing  feature  off  for the  specified keywords.
     Keywords  may be  chosen from  the list  above, under  the -on
     control  argument.  If no  keywords are specified,  tracing is
     disabled for all keywords.
  
  
  
  
  
  
  
  
  
  
  

  
  
  ADMINISTRATIVE INTERFACE TO SESSION CONTROL
  
       The DSA administrative interface to session control provides
  two commands to administer session control:
  
       o    dsa_scc  - for  administering Multics-specific  session
            control
  
       o    dsa_dsac  - for  displaying session  control, CXI,  and
            DSAC objects on Multics
  
  Both of these commands are described in detail below.
  
  
  Multics-Specific Session Control Administration
  
       To  invoke the   subsystem responsible  for Multics-specific
  session  control   administration,  issue  the   dsa_scc  command
  (described below).  The dsa_scc command implements requests which
  allow you to:
  
       o    initialize session control's main data base
  
       o    start (or restart) session control
  
       o    stop and terminate session control
  
       o    create and delete mailboxes
  
       o    abnormally  terminate or  stop listening  on a  logical
            connection
  
       o    stop listening on an endpoint
  
       o    set (or reset) traces at the session control level
  
       o    set (or reset) traces on a specific logical connection
  
  The  requests  used  to  perform  each  of  these  functions  are
  described in  detail in the  dsa_scc command description  next in
  this  section.   Note  that  the  dsa_init  command (described in
  Section 2) initializes the handle table, starts the first session
  control  defined in  the NIT,   and creates  all of  that session
  control's mailboxes.
  
  
  
  
  
  
  
  
  
  
  

  _______                                                   _______
  
  dsa_scc                                                   dsa_scc
  _______                                                   _______
  
  
  NAME: DSA_SCC
  
  SYNTAX AS A COMMAND
  
  dsa_scc request
  
  FUNCTION
  
  invokes  the  dsa_scc  subsystem,   which  provides  requests  to
  administer Multics-specific session control.
  
  ARGUMENTS
  
  request
     specifies the request to dsa_scc.  Request must be chosen from
     the following:
  
     initialize_handle_table (iht)
     mailbox_create (mbxc)
     mailbox_delete (mbxd)
     reset_lc_trace
     reset_sc_trace
     restart_session_control (rst_sc)
     set_lc_trace
     set_sc_trace
     start_session_control (start_sc)
     stop_listen (slis)
     stop_listen_endpoint (slis_ep)
     stop_session_control (stop_sc)
     terminate_abnormal (tabn)
     terminate_session_control (tmr_sc)
  
     In  addition, all  of the  standard subsystem  requests (help,
     list_requests,  etc) are  available.  These  are not described
     here.
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

  _______                                                   _______
  
  dsa_scc                                                   dsa_scc
  _______                                                   _______
  
  
  LIST OF REQUESTS
  
  
  initialize_handle_table, iht
  
  SYNTAX
  
  iht
  
  FUNCTION
  
  initializes session control's main  data base (the handle table).
  You  should  issue  this  request  before  you  start any session
  control entity.  You  must issue this request after  you boot the
  system  and before  you start   the DSA  network.  Note  that any
  active sessions are discarded by this request.
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

  _______                                                   _______
  
  dsa_scc                                                   dsa_scc
  _______                                                   _______
  
  
  mailbox_create, mbxc
  
  SYNTAX
  
  mbxc mailbox_name
  
  FUNCTION
  
  creates a  mailbox, puts the  mailbox in the  "active" state, and
  permits  the  initiation  or  acceptance  of  logical connections
  (sessions) on  the mailbox.  You  must start the  session control
  supporting  this   mailbox  (by  using   a  start_session_control
  request) before you issue the  mbxc request.  The session control
  must be in the "active" state.   An error code is returned if the
  mailbox  is already in  the "active" state  when this request  is
  issued.
  
  ARGUMENTS
  
  mailbox_name
     is the name of a local  mailbox.  This name must be defined by
     a Mailbox object definition in the NIT.
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

  _______                                                   _______
  
  dsa_scc                                                   dsa_scc
  _______                                                   _______
  
  
  mailbox_delete, mbxd
  
  SYNTAX
  
  mbxd mailbox_name
  
  FUNCTION
  
  deletes a mailbox.   This mailbox must be in  the "active" state.
  All logical connections (sessions) must be terminated before this
  request is  issued.  No initiation  or acceptance of  sessions is
  possible on this mailbox after the mbxd request is issued.
  
  ARGUMENTS
  
  mailbox_name
     is the name of a local  mailbox.  This name must be defined by
     a Mailbox object definition in the NIT.
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

  _______                                                   _______
  
  dsa_scc                                                   dsa_scc
  _______                                                   _______
  
  
  reset_lc_trace
  
  SYNTAX
  
  reset_lc_trace lc_name trace_type
  
  FUNCTION
  
  resets  trace flags on  a specific logical  connection (session).
  The different  kinds of traces  which may be  reset are explained
  below, under the set_lc_trace request.
  
  ARGUMENTS
  
  lc_name
     is the name of the  logical connection (session) for which the
     flag is to be reset.
  
  trace_type
     specifies the kind of trace  to be reset.  The possible traces
     are explained below, under the set_lc_trace request.
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

  _______                                                   _______
  
  dsa_scc                                                   dsa_scc
  _______                                                   _______
  
  
  reset_sc_trace
  
  SYNTAX
  
  reset_sc_trace session_control_name trace_type
  
  FUNCTION
  
  resets trace flags on a  session control.  The different kinds of
  traces  which  may  be  reset  are  explained  below,  under  the
  set_sc_trace request.
  
  ARGUMENTS
  
  session_control_name
     is the name of the session control for which the trace flag is
     to be reset.
  
  trace_type
     specifies the kind of trace  to be reset.  The possible traces
     are described below, under the set_sc_trace request.
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

  _______                                                   _______
  
  dsa_scc                                                   dsa_scc
  _______                                                   _______
  
  
  restart_session_control, rst_sc
  
  SYNTAX
  
  rst_sc session_control_name
  
  FUNCTION
  
  restarts  a local  session control  that has  been placed  in the
  "shutdown"  state  by   a  stop_session_control  request.   After
  issuing  rst_sc, the  creation of  mailboxes and  the creation of
  logical connections  (sessions) is allowed.  The  session control
  which is restarted  is put in the "active" state.   An error code
  is returned if the session control is not in the "shutdown" state
  when this request is issued.
  
  ARGUMENTS
  
  session_control_name
     is  the name of  a local session  control.  This name  must be
     defined by a Sc_loc object definition in the NIT.
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

  _______                                                   _______
  
  dsa_scc                                                   dsa_scc
  _______                                                   _______
  
  
  set_lc_trace
  
  SYNTAX
  
  set_lc_trace lc_name trace_type
  
  FUNCTION
  
  sets trace flags on a specific logical connection (session).  The
  different kinds of traces which may be set are explained below.
  
  ARGUMENTS
  
  lc_name
     is the name of the  logical connection (session) for which the
     trace flag is to be set.
  
  trace_type
     specifies the kind  of trace to be set.   The following traces
     are possible:
  
     trace_handle_manager, thm
        trace all  the lock and  unlock operations for  the session
        control, mailboxes, and sessions.  This can be used to find
        out which process is still holding a lock.
  
     trace_input_letter, til
        trace  all  incoming  data   (letters)  received  from  the
        network.
  
     trace_output_letter, tol
        trace all outgoing data (letters).
  
     trace_sm, tsm
        trace  every  transition  (in  the  state  machine) for all
        sessions.   This can  be used  to discover  new transitions
        that might be possible.
  
     trace_transport_args, tta
        trace all  the arguments of  every call from  the transport
        layer (CXI) to session control.
  
     trace_user_args, tua
        trace all the parameters of a user call to session control.
  
  
  
  
  
  
  

  _______                                                   _______
  
  dsa_scc                                                   dsa_scc
  _______                                                   _______
  
  
     Note  that these  traces go  into the  same log  file as  that
     specified   by    the   dsa_system_log   statement    in   the
     Mna_general_info object definition in  the NIT.  The amount of
     system quota needed  to store all of the  information is large
     and precautions  should be taken to ensure  adequate quota for
     the log file.
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

  _______                                                   _______
  
  dsa_scc                                                   dsa_scc
  _______                                                   _______
  
  
  set_sc_trace
  
  SYNTAX
  
  set_sc_trace session_control_name trace_type
  
  FUNCTION
  
  sets trace  flags on a  session control.  The  different kinds of
  traces  which may  be set   are explained  below.  Note  that the
  setting  of a  flag at   session control  level implies  that all
  logical connections (sessions) on that session control will trace
  the  particular information  specified.  A  user can  prevent the
  trace   mechanism  on  a   particular  session  by   issuing  the
  reset_lc_trace (described above) request  for that session.  Note
  also that all sessions established before the traces are set will
  not trace  anything unless a  set_lc_trace request is  issued for
  each of them.  The initial values for traces are specified in the
  attributes  statement  of  the  session  control's  Sc_loc object
  definition in the NIT.
  
  ARGUMENTS
  
  session_control_name
     is the name of the session control for which the trace flag is
     to be set.
  
  trace_type
     specifies the kind  of trace to be set.   The following traces
     are possible:
  
     trace_handle_manager, thm
        trace all  the lock and  unlock operations for  the session
        control, mailboxes, and sessions.  This can be used to find
        out which process is still holding a lock.
  
     trace_input_letter, til
        trace  all  incoming  data   (letters)  received  from  the
        network.
  
     trace_output_letter, tol
        trace all outgoing data (letters).
  
     trace_sm, tsm
        trace  every  transition  (in  the  state  machine) for all
        sessions.   This can  be used  to discover  new transitions
        that might be possible.
  
  
  
  

  _______                                                   _______
  
  dsa_scc                                                   dsa_scc
  _______                                                   _______
  
  
     trace_transport_args, tta
        trace all  the arguments of  every call from  the transport
        layer (CXI) to session control.
  
     trace_user_args, tua
        trace all the parameters of a user call to session control.
  
     Note  that these  traces go  into the  same log  file as  that
     specified   by    the   dsa_system_log   statement    in   the
     Mna_general_info object definition in  the NIT.  The amount of
     system quota needed  to store all of the  information is large
     and precautions  should be taken to ensure  adequate quota for
     the log file.
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

  _______                                                   _______
  
  dsa_scc                                                   dsa_scc
  _______                                                   _______
  
  
  start_session_control, start_sc
  
  SYNTAX
  
  start_sc session_control_name
  
  FUNCTION
  
  starts a local session control  and hence permits the creation of
  mailboxes  and the  creation of  logical connections  (sessions).
  The  session control  which is   started is  put in  the "active"
  state.  An error  code is returned if the session  control is not
  in the "terminated" state when this request is issued.
  
  ARGUMENTS
  
  session_control_name
     is  the name of  a local session  control.  This name  must be
     defined by a Sc_loc object definition in the NIT.
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

  _______                                                   _______
  
  dsa_scc                                                   dsa_scc
  _______                                                   _______
  
  
  stop_listen, slis
  
  SYNTAX
  
  slis lc_name
  
  FUNCTION
  
  abnormally terminates a pending listen.   The owner gets a wakeup
  and has no further access to the specified "pseudo" session.
  
  ARGUMENTS
  
  lc_name
     is  the name of  the logical connection  (session) on which  a
     stop_listen is  to to be  performed.  This name  must have the
     following syntax:
  
        dsa.<scid_name>.NNNN
  
     where scid_name  is the four  character DSA name  of the local
     session control supporting this logical connection and NNNN is
     a number composed of four decimal  digits which is an index of
     logical connections  within the session control.   To obtain a
     list of  the logical connections active on  a session control,
     use  the dsa_dsac  get_list command,  described later  in this
     section.
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

  _______                                                   _______
  
  dsa_scc                                                   dsa_scc
  _______                                                   _______
  
  
  stop_listen_endpoint, slis_ep
  
  SYNTAX
  
  slis_ep mailbox_name
  
  FUNCTION
  
  places all listen orders that are pending on a particular mailbox
  in  the "terminate"  state.  The  owners of  each pending  listen
  receive a TERM_ABNORMAL_INT interrupt.  They can either terminate
  abnormally or get information for their sessions.  In both cases,
  the session is destroyed.  This request can be used to signal the
  login server that it must stop listening on a particular mailbox.
  
  ARGUMENTS
  
  mailbox_name
     is the name of a local  mailbox.  This name must be defined by
     a Mailbox object definition in the NIT.
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

  _______                                                   _______
  
  dsa_scc                                                   dsa_scc
  _______                                                   _______
  
  
  stop_session_control, stop_sc
  
  SYNTAX
  
  stop_sc session_control_name
  
  FUNCTION
  
  shuts down  a local session  control.  Once a  session control is
  shut  down,  mailboxes  cannot  be  created,  sessions  cannot be
  initiated,  and incoming  sessions cannot  be accepted.  However,
  active  sessions can  still exchange  data.  The  session control
  which is  shut down is put  in the "terminated" state.   An error
  code is  returned if the session  control is not in  the "active"
  state when this request is issued.
  
  ARGUMENTS
  
  session_control_name
     is  the name of  a local session  control.  This name  must be
     defined by a Sc_loc object definition in the NIT.
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

  _______                                                   _______
  
  dsa_scc                                                   dsa_scc
  _______                                                   _______
  
  
  terminate_abnormal, tabn
  
  SYNTAX
  
  tabn lc_name
  
  FUNCTION
  
  terminates  a logical  connection (session)  and sends  a special
  interrupt to  both the owner and  the user of this  session.  The
  user's process  then lacks any permission to  access the session.
  The  owner  (usually  the   login  server)  may  then  abnormally
  terminate  the session  directly or  call session  control to get
  information about  the kind of  special interrupt that  was sent.
  In both cases, the logical connection (session) is destroyed.  If
  the same logical connection is abnormally terminated twice, it is
  also destroyed.   The owner gets  a special interrupt  but has no
  further access  to the session.  Terminating  the same connection
  twice  can be used  when the owner  processes are not  viable and
  when the session control data base needs cleaning.
  
  ARGUMENTS
  
  lc_name
     is  the  name  of  the  logical  connection  (session)  to  be
     abnormally  terminated.   This  name  must  have the following
     syntax:
  
        dsa.<scid_name>.NNNN
  
     where scid_name  is the four  character DSA name  of the local
     session control supporting this logical connection and NNNN is
     a number composed of four decimal  digits which is an index of
     logical connections  within the session control.   To obtain a
     list of  the logical connections active on  a session control,
     use  the dsa_dsac  get_list command,  described later  in this
     section.
  
  
  
  
  
  
  
  
  
  
  
  
  
  

  _______                                                   _______
  
  dsa_scc                                                   dsa_scc
  _______                                                   _______
  
  
  terminate_session_control, tmr_sc
  
  SYNTAX
  
  tmr_sc session_control_name
  
  FUNCTION
  
  terminates a local session  control.  All sessions initiated from
  (or accepted  on) this session control must  be terminated before
  the  tmr_sc  request  is  issued.   All  data  pertaining to this
  session  control  in  the  handle_manager  table  is erased.  The
  session control is put in  the "terminated" state.  An error code
  is returned if the session control is not in the "shutdown" state
  when this request is issued.
  
  ARGUMENTS
  
  session_control_name
     is  the name of  a local session  control.  This name  must be
     defined by a Sc_loc object definition in the NIT.
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

  
  
  Display of DSA Objects on Multics
  
       The  dsa_dsac interface  to session  control, CXI,  and DSAC
  lets you retrieve information about  various DSA objects in these
  three layers.  To invoke  the subsystem responsible for providing
  this  interface, issue  the dsa_dsac  command (described  below).
  The dsa_dsac command implements requests which allow you to:
  
       o    find out how many DSA objects of a given class exist on
            the local system
  
       o    find out  which DSA objects  of a given  class exist on
            the local system
  
       o    find out the attributes of DSA objects of a given class
            which exist on the local system
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

  ________                                                 ________
  
  dsa_dsac                                                 dsa_dsac
  ________                                                 ________
  
  
  NAME: DSA_DSAC
  
  SYNTAX AS A COMMAND
  
  dsa_dsac        request         object_class        {object_name}
     {object_specification}
  
  FUNCTION
  
  invokes  the  dsa_dsac  subsystem,  which  provides  requests  to
  retrieve  information about  various DSA  objects in  the session
  control, CXI, and DSAC layers.
  
  ARGUMENTS
  
  request
     specifies  the request  to dsa_dsac.   Request must  be chosen
     from the following:
  
     get_number, gn
        displays how many DSA objects of a given class exist on the
        local system.
  
     get_list, gl
        displays a list  of the DSA objects of a  given class which
        exist on the local system.
  
     get_attributes, ga
        displays the attributes of the DSA objects of a given class
        which exists on the local system.
  
     In  addition, all  of the  standard subsystem  requests (help,
     list_requests,  etc) are  available.  These  are not described
     here.
  
     Note  that the  dsa_dsac command  may be  called as  an active
     function for the get_number  and get_list requests.  Note also
     that  the  dsa_dsac  command  is  independent  of the DSA_DSAC
     daemon, despite the fact that the names are the same.
  
  object_class
     is  the type  of DSA  object for  which you  want information.
     Object_class must be one of the following:
  
     session_control         (sc) (SC)
     mailbox                 (mb) (MB)
     logical_connection      (lc) (LC)
     session                 (ss) (SS)
     session_route           (sr) (SR)
  
  

  ________                                                 ________
  
  dsa_dsac                                                 dsa_dsac
  ________                                                 ________
  
  
     admin_function          (af) (AF)
     admin_group             (ag) (AG)
     admin_correspondent     (ac) (AC)
     channel_connection      (cc) (CC)
     channel                 (ch) (CH)
     connection              (ct) (CT)
     frontend                (fe) (FE)
  
     Note that channel_connection and  channel both correspond to a
     CXI  connection,  and  that  connection  corresponds  to a DIA
     connection.
  
  object_name
     is the  name of a single  object for which the  query is to be
     done.   The  object_name  argument  must  be  specified if the
     request  argument is  set to   get_attributes; it  may not  be
     specified if the request argument  is set to either get_number
     or get_list.
  
  object_specification
     is a  list of arguments which  are used to select  a subset of
     the  objects of  a given  class for  which you  are requesting
     information.  An  object is selected  if it satisfies  all the
     mapping  criteria  specified   by  object_specification.   See
     "Notes" for more information.
  
     The format of object_specification is:
  
        {-os state} {-om mapping1} {-om mapping2}
            {-user user_name} {-transport tranport_name}
  
  
     state
        is the state an object must  be in in order to be selected.
        State may be chosen from the following list:
  
        disable      (ds) (DS)
        down         (do) (DO)
        enable       (en) (EN)
        locked       (lk) (LK)
        no_state     (ns) (NS)
        reserved     (rs) (RS)
        shutdown     (sd) (SD)
        test         (te) (TE)
        used         (us) (US)
  
  
  
  
  
  

  ________                                                 ________
  
  dsa_dsac                                                 dsa_dsac
  ________                                                 ________
  
  
     mapping1
        is a mapping which has the following syntax:
  
           <object_class>:<object_name>
  
        where object_class must be chosen from the list given above
        under the object_class argument and object_name is the name
        of an object of this type.   To be selected, an object must
        satisfy this  mapping.  For example,  if a user  issues the
        command:
  
           dsa_dsac gl mb -om sc:MUL1
  
        the dsa_dsac  command will return  a list of  the mailboxes
        which are defined under the session control named MUL1.
  
     mapping2
        is a second  mapping with the same syntax  as mapping1.  If
        two  mappings  are  given,  an  object  must  satisfy  both
        mappings simultaneously in order to be selected.
  
     user_name
        is the  name of the user  to whom the object  must pertain.
        This  argument  can  be  used  to  list logical connections
        (sessions) which belong to a particular user.  For example,
        since  the dsa_dsac  get_list command   may be  used as  an
        active function, the following command line may be issued:
  
           dsa_scc tabn ([dsa_dsac gl ss -om sc:MUL1 -user_name
              Jones])
  
        This command line will purge every session belonging to the
        user whose Person_id is Jones.
  
     transport_name
        is the name  of the transport layer to which  the object is
        attached.  This  argument can be  used to list  the logical
        connections going through a specific frontend.
  
     Note  that  the  two  previous  control  arguments  (-user and
     -transport) are  not part of  the standard DSAC  syntax.  They
     are improvements to the Multics  command interface and are not
     accessible  from  other  DSA  sites.   Therefore,  they do not
     adhere to DSAC standards.
  
  
  
  
  
  
  

  ________                                                 ________
  
  dsa_dsac                                                 dsa_dsac
  ________                                                 ________
  
  
  NOTES ON OBJECT SPECIFICATIONS
  
  What   follows   are   descriptions   of   the   formats  of  the
  object_specification argument which may be given for each type of
  object.
  
  
  SC object
     no specification may be given for SC objects.
  
  MB object
     the specification for MB objects is:
  
        -om sc:<scid_name>
  
     where scid_name is the four  character DSA name of the session
     control to which this mailbox pertains.
  
  LC object
     the specifications for LC objects are:
  
        -om sc:<scid_name>
  
     where scid_name is the four  character DSA name of the session
     control  on   which  this  logical  connection   (session)  is
     initiated or accepted.
  
        -om mb:<mbx_dsa_name>
  
     where  mbx_dsa_name is  the eight  character DSA  name of  the
     mailbox  on   which  this  logical  connection   (session)  is
     initiated or accepted.
  
        -user <user_name>
  
     where user_name is  the Person_id of the user  of this logical
     connection (session).
  
        -transport <dsa_transport_name>
  
     where dsa_transport_name is the  name of the transport station
     on  which  this  connection  is  established.   This transport
     station must be defined by a  Ts object definition in the NIT.
     This argument can be used  to list all the logical connections
     (sessions) on a particular frontend.
  
  SS object
     the  specifications  for  SS  objects  are  the  same as those
     described above for LC objects.
  
  

  ________                                                 ________
  
  dsa_dsac                                                 dsa_dsac
  ________                                                 ________
  
  
  
  SR object
     the specification for SR objects is:
  
        -om sc:<scid_name>
  
     where scid_name is the four  character DSA name of the session
     control which is one end of the route.
  
  AF object
     no specification may be given for AF objects.
  
  AG object
     the specification for AG objects is:
  
        -om af:<admin_function_name>
  
     where  admin_function_name is  the name  of the administrative
     function to  which an administrative group must  be related to
     be part of the returned list.
  
  AC object
     the specifications for AC objects are:
  
        -om af:<admin_function_name>
  
     where  admin_function_name is  the name  of the administrative
     function  to  which  an  administrative  correspondent must be
     related to be part of the returned list.
  
        -om ag:<admin_group_name>
  
     where admin_group_name is the name of the administrative group
     to which an administrative correspondent must be related to be
     part of the returned list.
  
        -om sy:<system_name>
  
     where  system_name is  the name   of the  system on  which the
     administrative correspondents must be defined.
  
  CC object
     the specifications for CC objects are:
  
        -om cc:<cxi_id>
  
     where cxi_id is the CXI ID.
  
        -om ct:<dia_name>
  
  

  ________                                                 ________
  
  dsa_dsac                                                 dsa_dsac
  ________                                                 ________
  
  
  
     where  dia_name  is  the  name  of  the  DIA  connected to the
     frontend in question.   This name must be the same  as the one
     specified  by  the  dia   statement  in  the  Frontend  object
     definition in the NIT.
  
        -om fe:<frontend_name>
  
     where frontend_name  is the name of the  frontend in question.
     This frontend must be defined  by a Frontend object definition
     in the NIT.
  
  CH object
     the  specifications  for  CH  objects  are  the  same  as  the
     specifications described above for CC objects.
  
  CT object
     the specifications for CT objects are:
  
        -om ct:<dia_name>
  
     where  dia_name  is  the  name  of  the  DIA  connected to the
     frontend in question.   This name must be the same  as the one
     specified  by  the  dia   statement  in  the  Frontend  object
     definition in the NIT.
  
        -om fe:<frontend_name>
  
     where frontend_name  is the name of the  frontend in question.
     This frontend must be defined  by a Frontend object definition
     in the NIT.
  
  FE object
     the specification for FE objects is:
  
        -om fe:<frontend_name>
  
     where  frontend_name  is  the  name  of  the  frontend.   This
     frontend must  be defined by  a Frontend object  definition in
     the NIT.
  
  NOTES
  
  A subset of the objects of a given class may be selected by using
  dsa_dsac get_list  as an active function.   The following example
  illustrates this fact:
  
     dsa_dsac ga mb ([dsa_dsac gl mb -om sc:MUL1])
  
  
  

  
  
  This  command line  allows the  user to  get the  attributes of a
  selected  list  of  mailboxes  without  directly  specifying  the
  selection criteria in the get_attributes request itself.
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

  
  
  THE DSSR SUBSYSTEM
  
       The dssr subsystem runs in a normal user process.  It allows
  you to perform two main functions:
  
       o    run the basic network session exerciser (BNSE)
  
       o    run the remote NOI/NAD access facility
  
  
       The dssr subsystem runs BNSE by responding to requests aimed
  at  the $NSE  (acceptor)  and  $NSF (initiator)  mailboxes.  BNSE
  allows  you to  initiate a  session to  or accept  a session from
  another node in  order to test the connection.  It  allows you to
  establish  a session, send  data, get the  data echoed back,  and
  terminate the session.
  
  
       The  dssr  subsystem  runs  the  remote  NOI/NAD facility by
  responding  to  requests  aimed  at  the  $TMDIALOU  and  $NOIAEP
  mailboxes.  The remote NOI facility allows you to dialout through
  session control to a DNS NOI, so  you look the same to the DNS as
  an operator's  terminal.  For an administrator,  using the remote
  NOI  facility  is  the  same  as  connecting  through  a terminal
  directly to the DN8/7100.
  
  
       The  remote NAD  access facility  allows Multics  and DNS to
  communicate.  It  accepts requests and Multics  commands in ASCII
  format, translates them into AEP format, and sends them on to the
  NAD  in the  DNS.  For   an administrator,  using the  remote NAD
  access facility is the same as  using the DNS NOI, except that it
  provides the advantages of being  able to connect to any DN8/7100
  and to have Multics file output.
  
  
       Both  BNSE  and  the  remote  NOI/NAD  access  facility  are
  described  below.   To  invoke  the  dssr  subsystem,  issue  the
  dsa_ssu_root (dssr) command, described later in this section.
  
  
  The Basic Network Session Exerciser
  
       The basic network session exerciser (BNSE) can be used to:
  
       o    verify the session control user interface level between
            two systems
  
       o    load the network and verify its performance
  
       o    test the  accuracy of the session  control by comparing
            the data sent and the data received
  
  
  

  
  
  BSNE  establishes   a  connection  between  two   mailboxes,  the
  initiator  mailbox  and  the  acceptor  mailbox.   The  initiator
  mailbox  is named $NSF  and the acceptor  mailbox is named  $NSE.
  These  two   mailboxes  should  be  defined   by  Mailbox  object
  definitions in the NIT as follows:
  
       dsa.<session_control_name>.$NSF
       dsa.<session_control_name>.$NSE
  
  where  session_control_name  is  the  name  of  the local session
  control.   Defining these  mailboxes in   the NIT  allows you  to
  accept  any  connection  from  a  remote  exerciser  on  the $NSE
  mailbox.  To initiate a connection  to a remote exerciser, define
  the remote correspondent represented by the $NSE acceptor mailbox
  with a Correspondent object definition in the NIT.
  
  
       BNSE  on Multics  runs under  the dssr  subsystem.  When you
  invoke BNSE with the dsa_ssu_root (dssr) command, you can specify
  one of two possible activities:
  
       o    exerciser  initiator  -  when   BNSE  is  running  this
            activity,  it  may  only  initiate  sessions  to remote
            BNSEs, the local mailbox being  $NSF and the remote one
            $NSE.
  
       o    exerciser echoer - when  BNSE is running this activity,
            it  may only  accept  sessions  from remote  BNSEs, the
            local mailbox  being $NSE and the remote  one $NSF.  If
            this activity  is selected, all data  received from the
            remote site is echoed back.
  
  
  Remote NOI/NAD Access Facility
  
       The remote NOI/NAD access facility  lets you access a remote
  NOI or  a remote NAD  to obtain information.   The remote NOI/NAD
  access facilities have the following common features:
  
       o    Tasking - lets you send requests to several remote NOIs
            or remote NADs simultaneously.
  
       o    Multisession processing - allows several sessions to be
            active simultaneously  and lets you specify  a "current
            session"  with either  the session_name  dssr subsystem
            request  or the  -session_name control  argument to the
            connect   dssr   subsystem   request.    The   connect,
            disconnect,  and session_name  requests all  change the
            name of the current session.  You may print the name of
            the current session by using the "."  request.  You may
            print a list of all of the active sessions by using the
            get_info gsl request.
  
  
  

  
  
       o    Logging and printing  - lets you store data  in the log
            and print it on the terminal.  When you access a remote
            NOI,  all of  the information  coming from  the NOI  is
            logged  and also  printed  on  the terminal.   When you
            access  a remote  NAD, responses  to your  requests are
            logged  and   also  printed  on  the   terminal;  other
            information  is  logged,  but  is  not  printed  on the
            terminal.
  
  
       Remote   NOI   access   and   remote   NAD  access  perform,
  essentially, identical functions.  When  using remote NOI access,
  you must issue the turn dssr  subsystem request and then wait for
  the "-->" prompt  before you can send an NOI  request; when using
  remote NAD access, the turn subsystem request is not required.
  
  
       The following is  an explanation of the behavior  of the two
  facilities.  The remote  NOI access facility uses TM  to send the
  request as typed by the user and directly prints (logs) character
  strings received from  the remote NOI.  All of  the requests sent
  to the remote NOI are logged.  The remote mailbox is $NOI.
  
  
       The remote NAD access facility  parses the user request.  If
  it's valid, the facility builds an AEP record and sends it to the
  remote NAD.  It  then receives AEPs.  If the  AEPs are responses,
  it analyzes  them and prints  the result on  the terminal.  These
  AEPs are logged and the  character string printed on the terminal
  is also logged.  An AEP which  is not a response is still logged,
  but it  is not printed.  All  of the requests sent  to the remote
  NAD are logged.  The remote mailbox is $NAD.
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

  ____________                                         ____________
  
  dsa_ssu_root                                         dsa_ssu_root
  ____________                                         ____________
  
  
  NAME: DSA_SSU_ROOT, DSSR
  
  SYNTAX AS A COMMAND
  
  dssr activity {-control_args}
  
  FUNCTION
  
  invokes the  dssr subsystem, which  provides requests to  run the
  basic  network session  exerciser and  to run  the remote NOI/NAD
  facility.  To use the dssr  subsystem, you must define a terminal
  type  in the TTF  with the characteristic  "stc_available:  no;".
  Also,  the  terminal  type  name   may  not  be  longer  than  12
  characters.
  
  Unless you invoke the dssr  subsystem with the -no_prompt control
  argument, it prompts you with:
  
     dssr:
  
  All of the standard subsystem requests (help, list_requests, etc)
  are  available in  the dssr  subsystem.  They  are not  described
  here.
  
  ARGUMENTS
  
  activity
     is the activity to run under  the subsystem.  For BNSE it must
     be either "exe_init" or "exe_echo".  For the remote NOI access
     facility, it  must be either  "noi_access" or "noi".   For the
     remote NAD access facility, it  must be either "nad_access" or
     "noi_aep".
  
  CONTROL ARGUMENTS
  
  -abbrev, -ab
     permits the use of abbreviations  while typing requests to the
     subsystem.   By default,  the abbreviations  are read  from or
     written  to  the  Person_id.profile  segment  under  the  home
     directory.   The pathname  of this  segment can  be changed by
     using the -profile control argument described below.
  
  -info_dir info_dir, -id info_dir
     specifies the pathname of the directory in which info segs are
     located.   These info  segs are   used by  the help  subsystem
     requests.  The default is ">doc>ss>dssr".
  
  -log
     specifies  that logging  is to  be performed  on each activity
  
  

  ____________                                         ____________
  
  dsa_ssu_root                                         dsa_ssu_root
  ____________                                         ____________
  
  
     while running the dssr subsystem.  If no pathname is given for
     the log (i.e., if the -log_pathname control argument described
     below is not specified), then logging  is done by default in a
     log created in the home directory.  The default log name is:
  
     EXE_INIT    for exerciser initiator activity
     EXE_ECHO    for exerciser echoer activity
     NOI         for remote NOI activity
     NOI_AEP     for remote NAD activity
  
     Only  some  of  the  information  logged  is  printed  on  the
     terminal.  This is the default.
  
  -log_pathname log_pathname, -lp log_pathname
     specifies that logging should be done in the log whose name is
     given by log_pathname.
  
  -name ssu_working_seg
     specifies that  the subsystem should  use as its  database the
     segment whose name is  given by ssu_working_seg.  This segment
     contains  various structures needed  to run the  subsystem and
     the  tasking facility.   For exerciser  initiator or exerciser
     echoer  activities, this segment  is created in  the directory
     which is  specified by the sc_exerciser_wdir  statement in the
     Mna_general_info  object definition  in the  NIT.  The default
     segment name is:
  
     exe_init     for exerciser initiator activity
     exe_echo     for exerciser echoer activity
     noi          for remote NOI activity
     noi_aep      for remote NAD activity
  
  
  -no_abbrev, -nab
     does  not  permit  the  use  of  abbreviations.   This  is the
     default.
  
  -no_log
     specifies  that no  logging is   to be  performed by  the dssr
     environment.
  
  -no_prompt, -npmt
     specifies that  the dssr environment  should not prompt  for a
     new request.
  
  -no_start_up, -nsu
     specifies that a start_up.ec does not have to be executed when
     the dssr subsystem is starting.  This is the default.
  
  
  

  ____________                                         ____________
  
  dsa_ssu_root                                         dsa_ssu_root
  ____________                                         ____________
  
  
  -no_tasking, -nt
     prevents the subsystem from  using the tasking facility.  This
     control argument may be necessary for debugging purposes.
  
  -profile profile_seg, -pf profile_seg
     specifies that  abbreviations should be read  from and written
     to  the profile  segment whose  name is  given by profile_seg.
     This control argument implies -abbrev.
  
  -start_up, -su
     specifies that a start_up.ec has  to be executed when the dssr
     subystem is starting.  If  this control argument is specified,
     a segment named "start_up.dssrec" (or a link to it) must exist
     in the home directory.
  
  -tasking
     allows the subsystem to use the tasking facility, which allows
     you  to accept several  sessions simultaneously.  This  is the
     default.  See "Notes" for important restrictions on the use of
     this facility.
  
  NOTES
  
  When using the  tasking facility, you must not be  in video mode,
  and must set your page length to zero (type "stty -modes ^pl").
  
  To  stop the dssr  subsystem, hit the  BRK key.  The  system will
  respond with the following prompt:
  
     logout or start??
  
  If  you answer  logout, the   dssr subsystem  will terminate  all
  active sessions and  return you to request level.   If you answer
  start, the dssr subsystem will simply resume normal processing.
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

  ____________                                         ____________
  
  dsa_ssu_root                                         dsa_ssu_root
  ____________                                         ____________
  
  
  LIST OF BNSE EXERCISER INITIATOR ACTIVITY REQUESTS
  
  The following requests can be issued  if you invoke BNSE with the
  exerciser  initiator  activity  (i.e.,  if  you  set the activity
  argument to "exe_init").
  
  
  self_identify
  
  SYNTAX
  
  .
  
  FUNCTION
  
  prints the name of the current session.
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

  ____________                                         ____________
  
  dsa_ssu_root                                         dsa_ssu_root
  ____________                                         ____________
  
  
  connect, cn
  
  SYNTAX
  
  cn correspondent_name {-control_args}
  
  FUNCTION
  
  establishes a session  to the remote BNSE whose name  is given by
  correspondent_name.
  
  ARGUMENTS
  
  correspondent_name
     is   the   name   of   the   remote   BNSE  correspondent  (or
     administrative  correspondent) to  which  a  session is  to be
     established.  The correspondent doesn't  have to be defined in
     the  NIT.   If  it  isn't,  correspondent_name  must  have the
     following syntax:
  
        dsa.<system_name>.$NSE
  
     where system_name is the name  of the remote system supporting
     the correspondent.   This system must  be defined by  a System
     object definition in the NIT.
  
  CONTROL ARGUMENTS
  
  -bill billing_id
     specifies the  billing ID under  which the remote  system will
     charge  the  user  for  the  session  which  is  going  to  be
     established.
  
  -password password, -pw password
     specifies  the password  which will   be put  in the  initiate
     letter.   Although  this  control  argument  is  optional, you
     should note  that the session  establishment will fail  if the
     remote correspondent requires a  password and you either don't
     provide one or provide one that is bad.  If you do not specify
     this control argument, the dssr  subsystem will prompt you for
     a password.  When you type the password, it will be masked.
  
  -person_id Person_id, -prsid Person_id
     specifies the Person_id of the user on the remote system.
  
  -session_name session_name, -sn session_name
     gives the specified name to  the session which is established.
     If this control  argument is not specified, the  name given to
     the session which  is established defaults to the  name of the
  
  

  ____________                                         ____________
  
  dsa_ssu_root                                         dsa_ssu_root
  ____________                                         ____________
  
  
     remote system (e.g., DA10).  In either case, the session which
     is  established  becomes  the   current  session  for  sending
     requests.  After switching to  another session, it is possible
     to return  to this session by typing  the session_name request
     (described  below) and  specifying the  session_name that  was
     given to this  session at connect time (i.e., the  name of the
     remote  system  or  the  name  specified  by the -session_name
     control argument to the connect request).
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

  ____________                                         ____________
  
  dsa_ssu_root                                         dsa_ssu_root
  ____________                                         ____________
  
  
  disconnect, dis
  
  SYNTAX
  
  dis
  
  FUNCTION
  
  disconnects the current session.   After you issue the disconnect
  request,  you  may  not  send  any  other  requests to the remote
  correspondent to  which this session was  established.  The first
  session  in the  list of   current sessions  becomes the  current
  session.
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

  ____________                                         ____________
  
  dsa_ssu_root                                         dsa_ssu_root
  ____________                                         ____________
  
  
  get_info, gi
  
  SYNTAX
  
  gi argument
  
  FUNCTION
  
  prints  information about  either all  of the  active sessions or
  about one specific session.
  
  ARGUMENTS
  
  gsl
     prints  a  list  of  all  of  the  active  sessions.  For each
     session,  prints  the  name  of  the  session,  the SGN of the
     session, the state of the session (initiator or acceptor), the
     number of records received, the number of errors detected, and
     the number of bytes received.
  
  gsa session_name
     prints  the attributes  of  the  specified session.   The name
     specified  by session_name  must be   the name  given to  this
     session  at connection  time (i.e.,   the name  of the  remote
     system  or the  name  specified  by the  -session_name control
     argument to the connect request).
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

  ____________                                         ____________
  
  dsa_ssu_root                                         dsa_ssu_root
  ____________                                         ____________
  
  
  run_test, rt
  
  SYNTAX
  
  
  rt test_name {-control_arg}
  
  FUNCTION
  
  performs a specific  test on the current session.   If no session
  is presently opened,  an error code is printed.  To  stop a test,
  hit the BRK key.  This will return you to dssr request level.
  
  ARGUMENTS
  
  test_name
     is the  name of the test  to be performed.  Test_name  must be
     chosen from the following:
  
     basic
        runs the basic  test.  The basic test sends  a 50 character
        string  and  waits  for  the  remote  system  to return it.
        Checking  is  done  to  determine  if  the  string which is
        received is the same as the string which is sent.
  
     long_records
        sends  a  long  session   control  record,  waits  for  its
        reception, and checks its validity.
  
  CONTROL ARGUMENTS
  
  -iteration N, -it N
     specifies how  many times the  test should be  performed.  The
     default for N is 50.
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

  ____________                                         ____________
  
  dsa_ssu_root                                         dsa_ssu_root
  ____________                                         ____________
  
  
  session_name, sn
  
  SYNTAX
  
  sn session_name
  
  FUNCTION
  
  causes  the  specified  session  to  become  the current session.
  Subsequent requests  typed by the Administrator are  sent on this
  session.
  
  ARGUMENTS
  
  session_name
     is  the name  of the   session which  will become  the current
     session.  The name specified by  session_name must be the name
     given to  this session at  connection time (i.e.,  the name of
     the remote  system or the name specified  by the -session_name
     control argument to  the connect request).  For a  list of the
     names  of all  of the  active sessions,  use the  get_info gsl
     request, described above.
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

  ____________                                         ____________
  
  dsa_ssu_root                                         dsa_ssu_root
  ____________                                         ____________
  
  
  LIST OF BNSE EXERCISER ECHOER ACTIVITY REQUESTS
  
  The following requests can be issued  if you invoke BNSE with the
  exerciser echoer activity (i.e., if you set the activity argument
  to "exe_echo").
  
  
  self_identify
  
  SYNTAX
  
  .
  
  FUNCTION
  
  prints the name of the current session.
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

  ____________                                         ____________
  
  dsa_ssu_root                                         dsa_ssu_root
  ____________                                         ____________
  
  
  get_info, gi
  
  SYNTAX
  
  gi argument
  
  FUNCTION
  
  prints  information about  either all  of the  active sessions or
  about one specific session.
  
  ARGUMENTS
  
  gsl
     prints  a  list  of  all  of  the  active  sessions.  For each
     session,  prints  the  name  of  the  session,  the SGN of the
     session, the state of the session (initiator or acceptor), the
     number of records received, the number of errors detected, and
     the number of bytes received.
  
  gsa session_name
     prints  the attributes  of  the  specified session.   The name
     specified  by session_name  must be   the name  given to  this
     session  at connection  time (i.e.,   the name  of the  remote
     system).
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

  ____________                                         ____________
  
  dsa_ssu_root                                         dsa_ssu_root
  ____________                                         ____________
  
  
  start_listen, listen
  
  SYNTAX
  
  listen mailbox_name
  
  FUNCTION
  
  listens for  and accepts incoming connections  from remote BNSEs.
  After a connection is accepted, the dssr subsystem runs an echoer
  function  on the  session.  From  time to  time, it  displays the
  attributes of the different sessions which have been accepted.
  
  ARGUMENTS
  
  mailbox_name
     is the name  of the local mailbox on which  the dssr subsystem
     will listen for and accept incoming connections.  This mailbox
     must  be defined by  a Mailbox object  definition in the  NIT.
     Your process must have "r" access to this mailbox.
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

  ____________                                         ____________
  
  dsa_ssu_root                                         dsa_ssu_root
  ____________                                         ____________
  
  
  stop_listen, stop
  
  SYNTAX
  
  stop
  
  FUNCTION
  
  stops listening  on the current mailbox.  Sessions  active at the
  time the request  is issued remain active.  However,  there is no
  further  acceptance of  incoming connections.   To terminate  all
  sessions, hit the BRK key.   The system will respond with "logout
  or start??".  Type "logout".
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

  ____________                                         ____________
  
  dsa_ssu_root                                         dsa_ssu_root
  ____________                                         ____________
  
  
  LIST OF REMOTE NOI ACCESS REQUESTS
  
  There are two kinds of requests which can be issued if you invoke
  the remote  NOI/NAD access facility with the  NOI activity (i.e.,
  if you set the activity argument to "noi_access" or "noi").  They
  are:
  
       o    NOI access-specific requests
  
       o    NOI requests
  
  The  NOI access-specific requests  are described below.   The NOI
  requests (get_attributes,  get_list, etc.)  are described  in the
  DNS  System Operations  manual, Order  No.  DP42  and in  the DNS
  System Operations manual, Reference No.   39 A2 9799.  To send an
  NOI request, you  must "ask for the turn."  To  do this, type the
  turn request  (described below) and  wait for the  "--->" prompt.
  When you receive the prompt, you may issue an NOI request.
  
  NOI ACCESS-SPECIFIC REQUESTS
  
  
  self_identify
  
  SYNTAX
  
  .
  
  FUNCTION
  
  prints the name of the current session.
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

  ____________                                         ____________
  
  dsa_ssu_root                                         dsa_ssu_root
  ____________                                         ____________
  
  
  connect, cn
  
  SYNTAX
  
  cn correspondent_name {-control_args}
  
  FUNCTION
  
  establishes a  session to the remote  NOI whose name is  given by
  correspondent_name.
  
  ARGUMENTS
  
  correspondent_name
     is the name of the remote NOI correspondent (or administrative
     correspondent) to  which a session is to  be established.  The
     correspondent doesn't  have to be  defined in the  NIT.  If it
     isn't, correspondent_name must have the following syntax:
  
        dsa.<system_name>.$NOI
  
     where system_name is the name  of the remote system supporting
     the correspondent.   This system must  be defined by  a System
     object definition in the NIT.
  
  CONTROL ARGUMENTS
  
  -bill billing_id
     specifies the  billing ID under  which the remote  system will
     charge  the  user  for  the  session  which  is  going  to  be
     established.
  
  -password password, -pw password
     specifies  the password  which will   be put  in the  initiate
     letter.   Although  this  control  argument  is  optional, you
     should note  that the session  establishment will fail  if the
     remote correspondent requires a  password and you either don't
     provide one or provide one that is bad.  If you do not specify
     this control argument, the dssr  subsystem will prompt you for
     a password.  When you type the password, it will be masked.
  
  -person_id Person_id, -prsid Person_id
     specifies the Person_id of the user on the remote system.
  
  -session_name session_name, -sn session_name
     gives the specified name to  the session which is established.
     If this control  argument is not specified, the  name given to
     the session which  is established defaults to the  name of the
     remote system (e.g., DA10).  In either case, the session which
  
  

  ____________                                         ____________
  
  dsa_ssu_root                                         dsa_ssu_root
  ____________                                         ____________
  
  
     is  established  becomes  the   current  session  for  sending
     requests.  After switching to  another session, it is possible
     to return  to this session by typing  the session_name request
     (described  below) and  specifying the  session_name that  was
     given to this  session at connect time (i.e., the  name of the
     remote  system  or  the  name  specified  by the -session_name
     control argument to the connect request).
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

  ____________                                         ____________
  
  dsa_ssu_root                                         dsa_ssu_root
  ____________                                         ____________
  
  
  disconnect, dis
  
  SYNTAX
  
  dis
  
  FUNCTION
  
  disconnects the current session.   After you issue the disconnect
  request,  you  may  not  send  any  other  requests to the remote
  correspondent to  which this session was  established.  The first
  session  in the  list of   current sessions  becomes the  current
  session.
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

  ____________                                         ____________
  
  dsa_ssu_root                                         dsa_ssu_root
  ____________                                         ____________
  
  
  get_info, gi
  
  SYNTAX
  
  gi argument
  
  FUNCTION
  
  prints  information about  either all  of the  active sessions or
  about one specific session.
  
  ARGUMENTS
  
  gsl
     prints  a  list  of  all  of  the  active  sessions.  For each
     session,  prints the  name of   the session,  the name  of the
     remote system, the name of the remote session control, and the
     name of the remote mailbox.
  
  gsa session_name
     prints  the attributes  of  the  specified session.   The name
     specified  by session_name  must be   the name  given to  this
     session  at connection  time (i.e.,   the name  of the  remote
     system  or the  name  specified  by the  -session_name control
     argument to the connect request).
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

  ____________                                         ____________
  
  dsa_ssu_root                                         dsa_ssu_root
  ____________                                         ____________
  
  
  session_name, sn
  
  SYNTAX
  
  sn session_name
  
  FUNCTION
  
  causes  the  specified  session  to  become  the current session.
  Subsequent requests  typed by the Administrator are  sent on this
  session.
  
  ARGUMENTS
  
  session_name
     is  the name  of the   session which  will become  the current
     session.  The name specified by  session_name must be the name
     given to  this session at  connection time (i.e.,  the name of
     the remote  system or the name specified  by the -session_name
     control argument to  the connect request).  For a  list of the
     names  of all  of the  active sessions,  use the  get_info gsl
     request, described above.
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

  ____________                                         ____________
  
  dsa_ssu_root                                         dsa_ssu_root
  ____________                                         ____________
  
  
  turn, t
  
  SYNTAX
  
  t
  
  FUNCTION
  
  causes the  subsystem to send an  attention to the remote  NOI to
  ask for the turn.  When  the remote correspondent sends the turn,
  the "--->" prompt  appears on the terminal, allowing  you to type
  an  NOI request.  Once  an NOI request  has been sent,  the local
  session loses  the turn.  Thus, you  must ask for the  turn (with
  the turn request) each time you want to send an NOI request.
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

  ____________                                         ____________
  
  dsa_ssu_root                                         dsa_ssu_root
  ____________                                         ____________
  
  
  LIST OF REMOTE NAD ACCESS REQUESTS
  
  There are two kinds of requests which can be issued if you invoke
  the remote  NOI/NAD access facility with the  NAD activity (i.e.,
  if you set the activity argument to "nad_access").  They are:
  
       o    NAD access-specific requests
  
       o    NAD requests
  
  Both the  NAD access-specific requests  and the NAD  requests are
  described below.  The NAD access-specific requests include all of
  the requests  described above for the remote  NOI access facility
  with the exception of the turn request, which is not used because
  it is  not required to send  NAD requests.  The NAD  requests are
  designed  so  that  their  interface  is  similar  to the DNS NOI
  interface.   This  interface  is  described  in  the  DNS  System
  Operations  manual,  Order  No.   DP42  and  in  the  DNS  System
  Operations manual, Reference No.  39 A2 9799.
  
  NAD ACCESS-SPECIFIC REQUESTS
  
  
  self_identify
  
  SYNTAX
  
  .
  
  FUNCTION
  
  prints the name of the current session.
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

  ____________                                         ____________
  
  dsa_ssu_root                                         dsa_ssu_root
  ____________                                         ____________
  
  
  connect, cn
  
  SYNTAX
  
  cn correspondent_name {-control_args}
  
  FUNCTION
  
  establishes a  session to the remote  NAD whose name is  given by
  correspondent_name.
  
  ARGUMENTS
  
  correspondent_name
     is the name of the remote NAD correspondent (or administrative
     correspondent) to  which a session is to  be established.  The
     correspondent doesn't  have to be  defined in the  NIT.  If it
     isn't, correspondent_name must have the following syntax:
  
        dsa.<system_name>.$NAD
  
     where system_name is the name  of the remote system supporting
     the correspondent.   This system must  be defined by  a System
     object definition in the NIT.
  
  CONTROL ARGUMENTS
  
  -bill billing_id
     specifies the  billing ID under  which the remote  system will
     charge  the  user  for  the  session  which  is  going  to  be
     established.
  
  -password password, -pw password
     specifies  the password  which will   be put  in the  initiate
     letter.   Although  this  control  argument  is  optional, you
     should note  that the session  establishment will fail  if the
     remote correspondent requires a  password and you either don't
     provide one or provide one that is bad.  If you do not specify
     this control argument, the dssr  subsystem will prompt you for
     a password.  When you type the password, it will be masked.
  
  -person_id Person_id, -prsid Person_id
     specifies the Person_id of the user on the remote system.
  
  -session_name session_name, -sn session_name
     gives the specified name to  the session which is established.
     If this control  argument is not specified, the  name given to
     the session which  is established defaults to the  name of the
     remote system (e.g., DA10).  In either case, the session which
  
  

  ____________                                         ____________
  
  dsa_ssu_root                                         dsa_ssu_root
  ____________                                         ____________
  
  
     is  established  becomes  the   current  session  for  sending
     requests.  After switching to  another session, it is possible
     to return  to this session by typing  the session_name request
     (described  below) and  specifying the  session_name that  was
     given to this  session at connect time (i.e., the  name of the
     remote  system  or  the  name  specified  by the -session_name
     control argument to the connect request).
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

  ____________                                         ____________
  
  dsa_ssu_root                                         dsa_ssu_root
  ____________                                         ____________
  
  
  disconnect, dis
  
  SYNTAX
  
  dis
  
  FUNCTION
  
  disconnects the current session.   After you issue the disconnect
  request,  you  may  not  send  any  other  requests to the remote
  correspondent to  which this session was  established.  The first
  session  in the  list of   current sessions  becomes the  current
  session.
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

  ____________                                         ____________
  
  dsa_ssu_root                                         dsa_ssu_root
  ____________                                         ____________
  
  
  get_info, gi
  
  SYNTAX
  
  gi argument
  
  FUNCTION
  
  prints  information about  either all  of the  active sessions or
  about one specific session.
  
  ARGUMENTS
  
  gsl
     prints  a  list  of  all  of  the  active  sessions.  For each
     session,  prints the  name of   the session,  the name  of the
     remote system, the name of the remote session control, and the
     name of the remote mailbox.
  
  gsa session_name
     prints  the attributes  of  the  specified session.   The name
     specified  by session_name  must be   the name  given to  this
     session  at connection  time (i.e.,   the name  of the  remote
     system  or the  name  specified  by the  -session_name control
     argument to the connect request).
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

  ____________                                         ____________
  
  dsa_ssu_root                                         dsa_ssu_root
  ____________                                         ____________
  
  
  session_name, sn
  
  SYNTAX
  
  sn session_name
  
  FUNCTION
  
  causes  the  specified  session  to  become  the current session.
  Subsequent requests  typed by the Administrator are  sent on this
  session.
  
  ARGUMENTS
  
  session_name
     is  the name  of the   session which  will become  the current
     session.  The name specified by  session_name must be the name
     given to  this session at  connection time (i.e.,  the name of
     the remote  system or the name specified  by the -session_name
     control argument to  the connect request).  For a  list of the
     names  of all  of the  active sessions,  use the  get_info gsl
     request, described above.
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

  ____________                                         ____________
  
  dsa_ssu_root                                         dsa_ssu_root
  ____________                                         ____________
  
  
  NAD REQUESTS
  
  
  display_attributes, da
  
  SYNTAX
  
  da object_class {object_name} {selection_criteria}
  
  FUNCTION
  
  obtains a  partial list of the  attributes of a class  of objects
  defined  on a  remote system  or of  a particular  object in that
  class of objects.
  
  ARGUMENTS
  
  object_class
     specifies the  class of the object(s)  whose attributes should
     be obtained.   To print a  list of the  existing classes, type
     "help classes".
  
  object_name
     specifies  the name  of a  particular object  whose attributes
     should be obtained.   This object must belong to  the class of
     objects specified  by object_class.  The  object_name argument
     is incompatible with the selection_criteria argument.
  
  selection_criteria
     specifies a set  of criteria to be used to  select a subset of
     the  objects   specified  by  object_class.   See   "Notes  on
     Selection  Criteria"  at  the  end   of  this  section  for  a
     description   of   the   syntax   of   this   argument.    The
     selection_criteria   argument   is   incompatible   with   the
     object_name argument.
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

  ____________                                         ____________
  
  dsa_ssu_root                                         dsa_ssu_root
  ____________                                         ____________
  
  
  get_attributes, ga
  
  SYNTAX
  
  ga object_class {object_name} {selection_criteria}
  
  FUNCTION
  
  obtains a complete  list of the attributes of a  class of objects
  defined  on a  remote system  or of  a particular  object in that
  class of objects.
  
  ARGUMENTS
  
  object_class
     specifies the  class of the object(s)  whose attributes should
     be obtained.   To print a  list of the  existing classes, type
     "help classes".
  
  object_name
     specifies  the name  of a  particular object  whose attributes
     should be obtained.   This object must belong to  the class of
     objects specified  by object_class.  The  object_name argument
     is incompatible with the selection_criteria argument.
  
  selection_criteria
     specifies a set  of criteria to be used to  select a subset of
     the  objects   specified  by  object_class.   See   "Notes  on
     Selection  Criteria"  at  the  end   of  this  section  for  a
     description   of   the   syntax   of   this   argument.    The
     selection_criteria   argument   is   incompatible   with   the
     object_name argument.
  
  EXAMPLES
  
  The  following  request  line  prints  a  complete  list  of  the
  attributes of the Network Subscription (ns) object TPC:
  
     ga ns TPC
  
  
  
  
  
  
  
  
  
  
  
  

  ____________                                         ____________
  
  dsa_ssu_root                                         dsa_ssu_root
  ____________                                         ____________
  
  
  get_list, gl, list, ls
  
  SYNTAX
  
  gl object_class {selection_criteria}
  
  FUNCTION
  
  obtains a list  of all of the objects of a  given class which are
  defined on a  remote system.  A restricted subset  of the objects
  may be obtained by specifying some selection criteria.
  
  ARGUMENTS
  
  object_class
     specifies the class of the objects which should be listed.  To
     print a list of the existing classes, type "help classes".
  
  selection_criteria
     specifies a set  of criteria to be used to  select a subset of
     the  objects   specified  by  object_class.   See   "Notes  on
     Selection  Criteria"  at  the  end   of  this  section  for  a
     description of the syntax of this argument.
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

  ____________                                         ____________
  
  dsa_ssu_root                                         dsa_ssu_root
  ____________                                         ____________
  
  
  get_number, gn, number, nb
  
  SYNTAX
  
  gn object_class {selection_criteria}
  
  FUNCTION
  
  obtains  the number  of the  objects of  a given  class which are
  defined on a  remote system.  A restricted subset  of the objects
  may be obtained by specifying some selection criteria.
  
  ARGUMENTS
  
  object_class
     specifies  the class  of the  objects whose  number should  be
     obtained.  To print a list of the existing classes, type "help
     classes".
  
  selection_criteria
     specifies a set  of criteria to be used to  select a subset of
     the  objects   specified  by  object_class.   See   "Notes  on
     Selection  Criteria"  at  the  end   of  this  section  for  a
     description of the syntax of this argument.
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

  ____________                                         ____________
  
  dsa_ssu_root                                         dsa_ssu_root
  ____________                                         ____________
  
  
  update, up
  
  SYNTAX
  
  up object_class object_name -control_args
  
  FUNCTION
  
  updates either the state of an  object defined on a remote system
  or the value of one of  the object's parameters.  This request is
  most useful for updating the current state of an object:  locking
  it, putting it in enable mode, etc..
  
  ARGUMENTS
  
  object_class
     specifies  the class  of the  object whose  state or parameter
     should be updated.   To print a list of  the existing classes,
     type "help classes".
  
  object_name
     specifies  the name  of the  object whose  state or  parameter
     should be  updated.  This object  must belong to  the class of
     objects specified by object_class.
  
  CONTROL ARGUMENTS
  
  -ns new_state, -NS new_state
     specifies that  the state of  the object should  be changed to
     the  new  state  specified  by  new_state.   New_state must be
     chosen from the following list:
  
     disable      (ds) (DS)
     down         (do) (DO)
     enable       (en) (EN)
     locked       (lk) (LK)
     no_state     (ns) (NS)
     reserved     (rs) (RS)
     shutdown     (sd) (SD)
     test         (te) (TE)
     used         (us) (US)
  
     If this control argument is not specified, the -parameter_name
     control argument must be specified.
  
  -parameter_name new_parm_value
     specifies  that  the  parameter  whose  name  is  specified by
     parameter_name should be changed to the new value specified by
  
  
  

  ____________                                         ____________
  
  dsa_ssu_root                                         dsa_ssu_root
  ____________                                         ____________
  
  
     new_parm_value.  To  print a list of the  parameters which may
     be  updated  for  a  given  class  of  objects,  type  "update
     <object_class>   ??".   If   this  control   argument  is  not
     specified, the -ns control argument must be specified.
  
  -type object_type
     specifies  the type  of the  object whose  state or  parameter
     should be updated.  For  example, if the object's object_class
     is   Physical  Line  (PL),   its  object_type  could   be  New
     Multiplexer Line Controller (NMLC).
  
  EXAMPLES
  
  To  change  the  call  parameter  (which  specifies the transpacs
  subscription  number)  on  the  Network  Subscription (ns) object
  TPC2, issue the following requests:
  
     up ns TPC2 -ns locked      <changes state to locked>
     up ns TPC2 -call 178060475     <updates call number>
     up ns TPC2 -ns enable      <changes state to enable>
  
  To  change  the  model  parameter  (which  specifies  the default
  terminal  model)  on  the  Terminal  Device  (dv)  object TU01 to
  SCORPION, issue the following request:
  
     up dv TU01 -md SCORPION
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

  ____________                                         ____________
  
  dsa_ssu_root                                         dsa_ssu_root
  ____________                                         ____________
  
  
  NOTES ON SELECTION CRITERIA
  
  The   selection  criteria   which   may   be  specified   by  the
  selection_criteria    argument    to    the   display_attributes,
  get_attributes, get_list, and get_number  requests allow the user
  to select a subset of objects of a specified class.  Objects must
  match  the  selection  criteria  in  order  to  be selected.  The
  selection_criteria  argument  may  be  specified  in  any  of the
  following ways:
  
     -os state, -OS state, -match_state state
     -type type
     -om class:name, -OM class:name, -match class:name
  
  
     state
        specifies  that the object  must be in  the given state  in
        order to be selected.
  
     type
        specifies  that the  object must  be of  the given  type in
        order to be selected.
  
     class:name
        specifies a mapping.  For an object to be selected, it must
        have  a relationship  with an  object whose  class is  that
        specified  by class  and whose  name is  that specified  by
        name.   This selection  criterion may  be specified  twice,
        since an object  may be linked to two other  objects in the
        system.
  
  One of the  criteria, two criteria, or all three  criteria may be
  specified  at the  same  time.   In addition,  the -om/-OM/-match
  criterion may be specified twice.  Here is a sample request line:
  
     gl pl -type NMLC -os en -match ll:LLA1
  
  This request line  returns the list of Physical  Lines whose type
  is  NMLC, whose  state is  enabled, and  which are  linked to the
  logical line object whose name is LLA1.
  
  
  
  
  
  
  
  
  
  
  

  
  
  
  
  
  
  
  
  
                              SECTION 7
  
  
              CHANGES AND NEW FEATURES THAT AFFECT USERS
  
  
  
  
       This  section  describes  DSA-specific  changes  to  the MCS
  Multics  user/system interface.   The changes  are effective when
  users connect to Multics through DSA network facilities.
  
  
       For purposes  of the discussion below, note  that type ahead
  is a standard feature on a DN8/7100 equipped with MLC-16.
  
  
  CONNECTING TO MULTICS FROM A REMOTE TERMINAL
  
       In  a non-DSA  Multics configuration,  the transfer  of data
  between  a remote  terminal and  the Multics  system occurs  over
  communications  channels managed   by the  Multics communications
  system (MCS).   However, if the  Multics system is  configured as
  part of a DSA network, then users can connect to Multics by means
  of  DSA  network  facilities.   The  DSA  connection  occurs over
  communications  channels  managed   by  the  distributed  network
  supervisor (DNS)  and the Multics networking  architecture (MNA).
  (Note that if  the Multics system is configured as  part of a DSA
  network, users retain the capability to connect to Multics either
  by the MCS method or by using DSA network facilities.)
  
  
       The MCS  connection procedure requires the  terminal user to
  first  make  a  physical  connection  to  Multics  (by  following
  site-specific procedures) and then to  engage in a login dialogue
  in  which a valid  user name and  password must be  supplied.  If
  Multics  verifies  that  the  supplied  user  name  and  password
  identify  an authorized  individual,  then  the terminal  user is
  permitted access to the system.   The MCS connection procedure is
  described in  the New User's  Introduction to Multics  (Order No.
  CH24).
  
  
  
  
  
  
  

  
  
  
       When  connecting   to  Multics  by  means   of  DSA  network
  facilities, the terminal user must perform the following actions:
  
  1.   Make a physical connection  to the DN8/7100.  This procedure
       will vary from site to site.
  
  2.   Login  to DNS  (which resides  in the  DN8/7100).  This  may
       happen  automatically,  or  you  may  have  to  engage  in a
       dialogue with DNS.
  
       DNS may ask  you questions in your own  maternal language or
       query  you as to  which language you  would like to  use, by
       printing the following prompt:  "LANGUAGE:".
  
       Depending on  whether your line is hardwired  or leased, DNS
       may  also ask you  for the terminal  type you are  using, by
       printing the following prompt:  "MODEL:".  (This DSA request
       is  equivalent to the  MCS preaccess command  "ttp <terminal
       type>".)   You may  respond to  this prompt  with a carriage
       return, in which case you will use the default terminal type
       declared by the DSA administrator at DNS generation time, or
       you  may enter  the actual   terminal type.   Note that  the
       terminal type  you enter must be  one which is known  to the
       DN8/7100 (i.e., one  which is specified on a MD  card in the
       DN8/7100's configuration file) and also one which is defined
       in  the Multics  TTF.  DNS  will forward  the terminal  type
       information to Multics.
  
       Whether or not you have to engage in a dialogue, whether the
       questions are  in your own  language, whether you  are asked
       for your  choice of language,  and whether you  are asked to
       specify a  terminal type, are  all decided and  specified by
       the DSA administrator at DNS generation time.
  
  3.   Connect  to  the  correspondent  (i.e.,  the  remote Multics
       system).   This  may  happen  automatically,  or  you may be
       queried with the following prompt:
  
            CORRESPONDENT:
  
       You may  respond to this  prompt with a  carriage return, in
       which case  you will use the  default correspondent declared
       by the  DSA administrator at  DNS generation time.   If your
       DSA   administrator   specified    a   mnemonic   for   this
       mailbox/session control pair at DNS generation time, you may
       type that mnemonic.  For example:
  
            SYSX
  
       If you type an unknown mnemonic,  you will be prompted up to
       three times for a known one.  Note that the mnemonic must be
       specified on a CO card in the DN8/7100's configuration file.
  
  

  
  
  
       You may also be queried with this prompt:
  
            $*$:
  
       You may respond to this prompt by typing:
  
            CN -DMB <mailbox name> -SCID <session control name>
  
       for example:
  
            CN -DMB LOGIN -SCID BM25
  
  
       If  you just  type "CN",   you will  be prompted  again with
       "CORRESPONDENT:".
  
  4.   Login to Multics in the usual manner.
  
  Note that the site can choose to automate some of the above steps
  to reduce  the number of  keystrokes for the  terminal user.  For
  example, the  step of physically  connecting to the  DN8/7100 can
  also include an automatic login to DNS.
  
  
       When  disconnecting from  Multics  by  means of  DSA network
  facilities, the terminal user must perform the following actions:
  
  1.   Logout from Multics in the usual manner.
  
  2.   Disconnect from the correspondent.   At this point, you have
       the  choice of  reconnecting  to  the same  correspondent or
       connecting to another correspondent accessible through DSA.
  
  3.   Logout from DNS.
  
  4.   Physically  disconnect from  the DN8/7100  (i.e., physically
       disconnect from the network).
  
  Note that,  as with the login  procedure, the site can  choose to
  automate some of the steps in  the logout procedure to reduce the
  number of keystrokes  for the terminal user.  All  four steps can
  be chained automatically or partially chained.
  
  
       For   more   details   on   the   terminal   connection  and
  disconnection  procedures  described  above,  refer  to  the  DNS
  Terminal  User's Guide,  Order No.    DP42 and  the DNS  Terminal
  Management Reference Manual, Reference No.  39 A2 9820.
  
  
  
  
  
  

  
  
  
  Sample Login/Logout Session
  
       What follows  is an example of a  login/logout session using
  DSA to  access Multics.  Input typed  by the user is  enclosed in
  angle  brackets (<...>).   In  the  login session,  the following
  things happened:
  
       o    the user  engaged in a  dialogue with DNS.   If the DSA
            administrator  had specified   at generation  time that
            there  be no  local dialogue,  none of  the messages in
            capital  letters would  have appeared.   The user would
            have  been  logged  into   DNS  and  connected  to  the
            correspondent automatically.
  
       o    the user was asked which language he wanted to use.  If
            the DSA administrator had  specified at generation time
            the language  to be used, the messages  would have been
            printed in  French without the  user having to  ask for
            them  in French,  and the  "LANGUAGE:" message wouldn't
            have appeared.
  
       o    the user was asked what terminal type he was using.  If
            he had  typed a carriage  return instead of  the actual
            terminal type,  the default terminal type  specified by
            the  DSA administrator  at generation  time would  have
            been used.
  
       o    the  user  was  asked  to   specify  the  name  of  the
            correspondent  he wanted  to  connect  to.  If  the DSA
            administrator  had arranged  for the  connection to  be
            automatic,  the  "CORRESPONDENT:"  and  "$*$:" messages
            wouldn't  have  appeared.   If  the  user  had  typed a
            carriage  return instead  of the  actual correspondent,
            the   default  correspondent   specified  by   the  DSA
            administrator at generation time would have been used.
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

  
  
  
  $$ 4300 LANGUAGE : <FRANCAIS>
  
  $$ 4200 MODELE : <DKU7002>
  
  $$ 0000 *** D.N.S * RLS:C1 I.0* PAT: 0ET10/1ET10/2ET10 *
          SYS: 20/02/86 ***
  
  $$ 1000 VOTRE IDENTIFICATION EST DIAI SC: BM26  MODELE:DKU7002
  
  $$ 5800 VOUS ETES ENREGISTRE
  
  $$ 4700 CORRESPONDANT : <SYSX>
  
  $$ 4600 $*$ : <CN -DMB LOGIN -SCID BM25>
  
  $$ 0100 VOUS ETES CONNECTE A LOGIN       BM25 SESSION: 334
  
  Load = 2.0 out of 80.0 units: users = 2, 04/01/86  1352.6 fst Tue
  <l fd>
  Password:
  < ... >
  You are protected from preemption until 1353.
  Druon.USER logged in 04/01/86  1353.3 fst Tue from DKU7002
        terminal "none".
  Last login 03/27/86  1828.0 fst Thu from SCORPION terminal
        "none".
     .
     .
     .
     .
     .
  r 13:53 4.276 51
  
  <logout>
  
  Druon.USER logged out 04/01/86  1353.6 fst Tue
  CPU usage 0 sec, cost $0.00.
  hangup
  
  
  $$ 0200 VOUS ETES DECONNECTE: 0000
  
  $$ 5500 AU REVOIR
  
  $$ 0900 A BIENTOT
  
  
  
  
  
  
  
  
  

  
  
  
  CHANGES TO THE tty_ I/O MODULE
  
       The tty_  I/O module supports I/O  from/to terminal devices.
  A complete description of the tty_  I/O module is provided in the
  Multics Subroutines and I/O Modules manual (Order No.  AG93).
  
  
       When a  terminal is used to  connect to a DSA  endpoint, the
  tty_  I/O  module  attaches  the  dsa_tty_io_  I/O  module.   The
  tty_/dsa_tty_io_  interface modifies  the "standard"  operational
  characteristics of tty_.   There is a set of  tty_ control orders
  available in the  non-DSA environment that cannot be  used in the
  DSA environment;  there are other,  new, control orders  that are
  supported only in the DSA environment.
  
  
       The information below describes the tty_ control orders that
  can only be used in the DSA environment, and also provides a list
  of  the  tty_  control  orders  that  cannot  be  used in the DSA
  environment.   The  information  is  designed  to  supplement the
  complete description of  the tty_ I/O module that  appears in the
  Multics Subroutines and I/O Modules manual.
  
  
  New Control Orders
  
       The following new control orders are only supported when the
  terminal is operating in the DSA environment.
  
  conceal_next_line
       causes  the  FNP  to  turn  off  local  terminal echoing, if
       possible,  until  the  next  end-of-record.   If the echoing
       cannot be turned off, then  the FNP will send a 12-character
       mask to the terminal (12 "X"s  and 12 "E"s), read the input,
       and  repeat  the  mask.   Note  that  this masking algorithm
       differs from the current Multics algorithm, which uses three
       random character strings.
  
  get_line_indicator
       returns the end-of-line indicator.   The info pointer should
       point to  a variable structure (declared as  "char (2) var")
       in which the line indicator is stored.
  
  set_line_indicator
       sets the  character sequence to  be used as  the end-of-line
       indicator.  A  maximum of two  characters can be  used.  The
       default sequence is c.  The  info pointer should point to a
       variable  structure  (declared  as  "char  (2)  var")  which
       contains the line indicator.
  
  
  
  
  

  
  
  
  get_network_type
       returns the  type of the  network.  All the  possible values
       are  declared  in  net_event_message.incl.pl1.   When called
       with          MCS,          the          error          code
       error_table_$undefined_order_request   is  returned.    When
       called with DSA, the value  DSA_NETWORK_TYPE is ret The info
       pointer should point to variable declared "fixed bin".
  
  get_page_indicator
       returns the end-of-page indicator.   The info pointer should
       point to  a variable structure (declared as  "char (4) var")
       in which the page indicator is stored.
  
  set_page_indicator
       sets the  character sequence to  be used as  the end-of-page
       indicator.  A  maximum of four characters can  be used.  The
       default sequence is EOP.  The info pointer should point to a
       variable  structure  (declared  as  "char  (4)  var")  which
       contains the page indicator.
  
  get_tabulation
       returns  the tabulation  interval.  The  info pointer should
       point to  a variable structure (declared as  "fixed bin") in
       which the tabulation interval value is stored.
  
  set_tabulation
       sets the number  of characters to be used  as the tabulation
       interval.   The default  value is  10 characters.   The info
       pointer  should point to  a variable structure  (declared as
       "fixed bin") which contains the tabulation interval value.
  
  
  Control Orders That Cannot Be Used
  
       The following tty_ control orders are not supported when the
  terminal is operating in the DSA environment:
  
       interrupt              set_wakeup_table
       set_line_type          listen
       start_xmit_hd          copy_meters
       stop_xmit_hd           input_flow_control_chars
       get_ofc_info           output_flow_control_chars
       get_ifc_info           refuse_printer_off
       set_delay              accept_printer_off
       get_delay              set_framing_chars
       reset_more             get_framing_chars
                              wru
  
  
  
  
  
  
  

  
  
  
  CHANGES TO THE set_tty COMMAND
  
       The  set_tty command  modifies the  terminal type associated
  with the terminal.   There are a number of  new control arguments
  available only  when the terminal  is used to  connect to Multics
  through a  DSA network, as well  as a number of  existing control
  arguments which  are not available  when the terminal  is used to
  connect to Multics through a  DSA network.  The information below
  describes the  new control arguments  and provides a  list of the
  control  arguments which  are not  available.  It  also describes
  new/changed options  available only when the terminal  is used to
  connect  to   Multics  through  a  DSA  network.    All  of  this
  information   is  designed   to  supplement   the  more  complete
  description of  the set_tty command  that appears in  the Multics
  Commands and Active Functions manual (Order No.  AG92).
  
  
  New Control Arguments
  
       The following new control  arguments are only supported when
  the terminal is used in the DSA environment:
  
  -tab_interval N, -ti N
       specifies the number of spaces  the cursor is moved when the
       tab key is pressed.  If  this control argument is omitted, a
       default value of 10 is assumed.
  
  -line_indicator STR, -li STR
       specifies the  character string to  be used as  the terminal
       end-of-line  indicator.   STR  can   be  a  maximum  of  two
       characters.   If  this  control  argument  is  omitted,  the
       character string c is used.
  
  -no_line_indicator, -nli
       specifies  that  no  end-of-line  indicator  is  to be used.
       There  will  be  no  continuation  sequence  (such  a c) to
       indicate that a single output  line sent to the terminal was
       "broken"  and  displayed  as  two  (or  more)  lines  on the
       terminal screen.
  
  -page_indicator STR, -pi STR
       specifies the  character string to  be used as  the terminal
       end-of-page  indicator.   STR  can  be  a  maximum  of  four
       characters.   If  this  control  argument  is  omitted,  the
       character string EOP is used.
  
  -no_page_indicator, -npi
       specifies  that  there  will  be  no  end-of-page indicator.
       There will be no character string (such as EOP) to warn that
       the terminal screen is full.
  
  
  
  

  
  
  
  -edit STR
       specifies one  character to be  used as the  erase character
       (which  provides  the  ability  to  delete  the  last  typed
       character),  a  second  character  to  be  used  as the kill
       character (which provides the  ability to delete the current
       line),  and a third  character to be  used as the  redisplay
       character  (which  provides  the   ability  to  refresh  the
       screen).   The  values  are  specified  in a three-character
       string  with  the  first  character  representing  the erase
       character,  the  second   character  representing  the  kill
       character,   and  the   third  character   representing  the
       redisplay  character.  The  erase character  and/or the kill
       character can be specified as blanks, in which case they are
       not changed.   (For example, the  command line:  stty  -ed "
       AB" changes the kill  character and the redisplay character,
       but  not the  erase  character.)   Note that  this statement
       changes the editing characters specified in the TTF.
  
  
  Control Arguments That Can Not Be Used
  
       The  following set_tty  control arguments  are not supported
  when the terminal is used in the DSA environment:
  
       -buffer_size      -delay
       -can_type=replace -input_flow_control
       -frame            -output_suspend_resume
       -print_delay      -output_etb_ack
       -print_frame
  
  
  Changes to the -ttp Control Argument
  
       The  -ttp  control  argument  to  the  set_tty command works
  differently when the terminal is used in the DSA environment than
  it does when the terminal is  used in the MCS environment.  Under
  DNS, once  a terminal type is  chosen, it cannot be  changed.  So
  typing "set_tty  -ttp" only changes  what can be  changed through
  the STC record (the tool used  to communicate with DNS).  None of
  the  static parameters,  for  example,  the delays,  are changed.
  They  remain the same;  i.e., they remain  those of the  terminal
  type which was set at login time by DNS.
  
  
  New and Changed Mode Specifications
  
       The  following new  mode specifications  are supported  only
  when the terminal is used in the DSA environment:
  
  can_type
       The  only  mode  allowed  for  can_type  is overstrike.  The
       can_type=replace option is not allowed.
  
  

  
  
  
  fep_edit, ^fep_edit
       specifies, if some editing  is required ("esc" or/and "erkl"
       modes set),  where the editing  is done.  If  fep_edit mode,
       then the editing is done in the FEP; if ^fep_edit mode, then
       the editing is done in Multics.
  
  more_mode=scroll
       specifies  that, when new  lines are to  be added to  a full
       screen,  the new  lines are  added at  the bottom;  previous
       lines are  moved up until  they disappear from  the top (are
       scrolled off the top).  This is the default.
  
  more_mode=clear
       specifies  that, when new  lines are to  be added to  a full
       screen,  the screen is  completely cleared (erased)  and the
       new lines are  added at the top of the  screen.  The default
       value is more_mode=scroll.
  
  sdialog, ^sdialog
       controls  the ability  of the   terminal user  to engage  in
       secondary  dialogue.   Secondary  dialogue  is  the  set  of
       commands,  messages, and  replies exchanged  between the FNP
       and the terminal user.
  
       The default mode specification  is changed such that default
  can now be used to specify erkl, can, ^rawi, ^rawo, esc, ^screen,
  sdialog and fep_edit.  (Note that  sdialog and fep_edit modes are
  added, that ^screen mode is the same as ^breakall mode, ^wake_tbl
  mode is deleted).   The "default" mode checks also  for all these
  modes, if they are specified  in the "default_modes" statement in
  the TTF for the terminal type used.  If so, the values in the TTF
  "default_modes" statement are set.
  
  
       The init mode specifications have  been changed such that it
  can now  be used to specify  that all boolean modes  are off, the
  line length is set to 79, the page length is set to 23, more_mode
  is set to scroll, and canon_type is set to replace.
  
  
       Additionally,  the following  mode specifications  have been
  renamed in  order to more  accurately describe the  function they
  represent.  (The "old" names will  continue to be valid; however,
  the set_tty command will print the new names when queried.)
  
  Old Mode Name     New Mode Name     Notes
  
  
  
  
  
  
  
  

  
  
  
  breakall,         screen,           The value screen is used
  ^breakall         ^screen           when using applications
                                      (e.g., Emacs) that can
                                      make use of CRT terminal
                                      features; the value
                                      ^screen implies support
                                      in line mode.
  
  scroll,           line_count,       Specifies, if "line_count"
  ^scroll           ^line_count       mode, that the current line
                                      count is to reset on each
                                      input.
  
  8bit,             i8bit,            Indicates 8-bit mode on
  ^8bit             ^i8bit            input.
  
  no_outp,          o8bit,            Indicates 8-bit mode on
  ^no_outp          ^o8bit            output.
  
  
       Finally, when specifying the  character length of a terminal
  line, the syntax ll=N can now be used in addition to llN and ^ll.
  When specifying the page length, the  syntax pl=N can now be used
  in addition to plN and ^pl.
  
  
  CHANGES TO THE TERMINAL TYPE FILE
  
       The terminal type file (TTF) consists of a series of entries
  that define  the characteristics of  all terminal types  known to
  the  system.   The  Multics  TTF  has  been  extended  to  permit
  definition of options  that are specific to operation  in the DSA
  environment.    This  is    accomplished  via   the  dsatm_device
  substructure, which is optional  and consists of the dsatm_device
  statement and one or more substatements (defined below).  Default
  values are assumed if no dsatm_device substructure is included in
  the TTF entry for a given terminal type.
  
  
       Note that every terminal type specified by an MD card in the
  DN8/7100's  configuration  file  must  also  be  specified  by  a
  terminal_type  statement  under  a  terminal  type  entry  in the
  Multics TTF.
  
  
       A  description of  the syntax  of TTF  entries as  well as a
  description  of all  other statements   contained in  the TTF  is
  provided in the Multics  Programmer's Reference Manual (Order No.
  AG91).
  
  
  
  
  

  
  
  
  can_type:
       The  only  mode  allowed  for  can_type  is overstrike.  The
       can_type=replace option is not allowed.
  
  dsatm_device:
       The  dsatm_device  statement  specifies   the  name  of  the
       substructure  and  must  be   the  first  statement  in  the
       substructure.
  
  data_presentation:  <protocol1>, {<protocol2>}, {<protocol3>};
       The data_presentation  statement specifies one or  more data
       presentation  protocols that can  be used with  this device.
       The possible  values are:  real, sdp,  and transparent.  The
       default value is real.
  
  sdp_class:  <protocol>;
       The sdp_class statement specifies  the SDP protocol class to
       be  used with  this device.   Since only  the mandatory  SDP
       protocol class is supported, the value of this statement can
       only be:  mandatory.  This is  the default.  If the value of
       the  data_presentation statement  is not  sdp, the sdp_class
       statement is not meaningful.
  
  real_class:  <protocol>;
       The  real_class  statement  specifies   the  class  of  real
       presentation  protocol to  be  used  with this  device.  The
       value of this statement must  be one of the following:  tty,
       vip77xx,  vip78xx,  327x,  batch_rci,  tmmvu,  2780,  tmmrb,
       2780_3780_rje.  The default value is tty.
  
  device_id:  N;
       The device_id value can only be:  1.  This is the default.
  
  device_type:  <device_type>;
       The  device_type statement  specifies the  physical terminal
       device type.   The possible values are:   display, keyboard,
       ro_printer, keyboard_printer, keyboard_display, card_reader,
       paper_tape_reader,    badge_reader,   cassette,    diskette,
       card_punch,  paper_tape_punch.  This  statement is  optional
       and can be omitted.  If this statement is not specified, its
       value is undefined (i.e., its value is zero).
  
  shareability:  <string>;
       The shareability  statement specifies whether the  device is
       available  for  allocation.   The  possible  values  are  as
       follows:
  
       dedicated
            The device is not available for allocation.
  
       dedicated_or_shareable
            The device is available for allocation.
  
  

  
  
  
       exclusively_shareable
            The  device  can  only  be  allocated  as  a  shareable
            resource.
  
       The default value is dedicated.
  
  allocation_unit:  <unit>;
       The  allocation_unit statement  specifies the  most superior
       allocation  unit for input  data.  The allocation  units are
       listed  below with  the most  inferior unit  (record) listed
       first.   A superior unit  contains all inferior  units.  For
       example,  if   the  allocation_unit  statement  is   set  to
       quarantine_unit,  the quarantine  unit would  contain one or
       more records.
  
       record
            Data characters are formed into records.
  
       quarantine_unit
            Records are formed into quarantine units.
  
       interaction_unit
            Quarantine units are formed into interaction units.
  
       session
            Interaction units are formed into session units.
  
       The default value is record.
  
  line_overflow:  <action>;
       The line_overflow statement specifies the action to be taken
       when  a line exceeds  the maximum line  length.  One of  the
       following values must be used:
  
       folding
            The overlength characters are continued on a succeeding
            line.
  
       no_folding
            No special action is taken.   The result depends on the
            terminal's capabilities.
  
       The default value is folding.
  
  page_overflow:  <action>;
       The page_overflow statement specifies the action to be taken
       when the  number of lines  sent to the  terminal exceeds the
       maximum number of  lines that can be printed  on the screen.
       One of the following values must be specified:
  
  
  
  
  

  
  
  
       scroll
            New  lines  are  added  at  the  bottom  of the screen;
            existing  lines are scrolled  up; the top-most  line is
            rolled off the screen and lost.
  
       clear
            The screen  is completely cleared (erased)  and the new
            lines are added at the top of the screen.
  
       The default value is scroll.
  
  character_encoding:  <type1>, {<type2>, ...  <typeN>};
       The  character_encoding  statement  specifies  the  type  of
       character encoding to be used with this device.  One or more
       of the following values can be supplied:
  
       iso-7bits
            A 7-bit code defined by an ISO table.
  
       iso_8bits
            An 8-bit code defined by an ISO table.
  
       ebcdic
            8-bit EBCDIC code.
  
       teletex
            Teletex code.
  
       binary_8bits
            An 8-bit code translated without interpretation.
  
       The default value is iso_7bits.
  
  character_set:  <char_set1>, {<char_set2>, ...  <char_setN>};
       The   character_set   statement   specifies   the  available
       character sets.  One or more  of the following values can be
       specified:      ascii,     iso,     uk,    norwegian_danish,
       swedish_finish, portuguese, french,  greek, spanish, german,
       pseudo_graphic.  The default value is ascii.
  
  character_subset:  <char_subset1>, {<char_subset2>};
       The  character_subset  statement  specifies  which character
       subset is available  in the event the full  character set is
       not available.   Either one or both of  the following values
       can  be  selected:   upper_lower_case  or  upper_case.   The
       default value is upper_lower_case.
  
  compression_algorithm:  <method>;
       The compression_algorithm specifies  the compression method.
       At  present, there  is no  defined compression  method.  The
       value of this statement  can only be:  no_compression.  This
       is the default value.
  
  

  
  
  
  character_font:  <style1>, {<style2>, ...  <styleN>};
       The character_font  statement specifies the  typeface styles
       available  on  the  output  device.   One  or  more  of  the
       following  values can  be specified:   any, italics,  elite,
       pica.  The default value is any.
  
  max_record_size:  N;
       The max_record_size  statement specifies the  maximum record
       size (in characters).  The default value is 1920 characters.
  
  attd: <key>;
       The attd  statement specifies the  key (or condition)  to be
       used   for   "destructive"   attention   processing.    With
       destructive  attention  processing,   a  quit  condition  is
       signaled and all input/output data is cleared.  The user can
       select  the break  key (attd:   break;), a  single character
       (e.g., attd:  K;), an ESC character string (e.g., attd:  ESC
       B;),  or  indicate  that   he  will  use  the  corresponding
       secondary   dialogue  command  (attd:    sec_dialog;).   The
       default  is that  the break   key is  used.  Note  that this
       processing  is in  use only  if hndlquit  mode is  on (i.e.,
       hndlquit is specified).
  
  att1: <key>;
       The att1  statement specifies the  key (or condition)  to be
       used  for  "non-destructive"   attention  processing.   With
       non-destructive  attention processing,  a quit  condition is
       signaled,  but the  input/output data  is not  cleared.  The
       values  for  the  att1  statement  are  the  same  as  those
       specified for  the attd statement.  The default  is that the
       break key is used.  Note that this processing is in use only
       if hndlquit mode is off (i.e., ^hndlquit is specified).
  
  stc_available:  <string>;
       The stc_available statement specifies  the capability to use
       the  set_tty  command  to  dynamically  change  the terminal
       characteristics.  The  possible values are yes  and no.  The
       default value is yes.
  
  
  An example of a dsatm_device substructure is shown below.
  
       dsatm_device:
       data_presentation: real;
       real_class: tty;
       device_id: 1;
       device_type: keyboard;
       shareability: dedicated;
       allocation_unit: record;
       line_overflow: folding;
       page_overflow: scroll;
       character_encoding: iso_7bits, binary_8bits;
  
  

  
  
  
       character_set: ascii;
       max_record_size: 512;
       attd: break;
       att1: break;
       stc_available: yes;
  
  
  CHANGES TO THE ttt_info_ SUBROUTINE
  
       The  following  new  entry  point  has  been  added  to  the
  ttt_info_ subroutine.   The new entry  point is used  to retrieve
  DSA-specific information from the terminal type file (TTF).
  
  
               ________________________________________
  
  
  NAME: DSATM_PARAMETERS, TMPARM
  
  SYNTAX AS A COMMAND
  
  tmparm {-control_args}
  
  FUNCTION
  
  tmparm is  a utility interface with the  Multics Terminal Manager
  Correspondent   (TMC)  for   setting  some   tunable  parameters,
  debugging purposes, meters and  log facilities.  These parameters
  are located in dsatm_data_.cds.
  
  CONTROL ARGUMENTS
  
  -log {path_log}
     specifies the directory  name, or the name of the  log file to
     use for tracing.
          path_log may be:
          a relative pathname,
          an absolute pathname,
          process_dir, pd the log is named [pd]>DSA_TM.trclog
          home_dir, hd the log is named [hd]>DSA_TM.trclog
                            home_dir  is the  default when  -log is
     not
                            specified.
          working_dir, wd the log is named [wd]>DSA_TM.trclog
          See Notes on log facility.
  
  -delete_log -dlog
     specifies  that all  segments <path_log>.date-time  are to  be
     deleted.
  
  
  
  
  

  ________________                                 ________________
  
  dsatm_parameters                                 dsatm_parameters
  ________________                                 ________________
  
  
  -data_length <value> -datalen
  -dlen
     number of data characters  to log (with dsatm_data_$trace_data
     on)
  
  -print -pr
     display tuning, trace and meter informations.
  
  -print_tuning -pr_tune
  -prtu -ptu
     display the tuning's values while in use.
  
  -print_trace -pr_trace
  -prtr -ptr
     display the values of the trace's bits.
  
  -print_meters {switch_name} -pr_meters
  -prme -pme  display the meter's values for  the switch_name given
     (default is user_i/o).
  
  -reset_meters -rsme
  -rsm -rs resets the meter's fields.
  
  -trace {trace_options} -tr
     sets or resets the bits for the tracing facility.
          trace_options:
          on                  sets all bits
          off                 resets all bits
          See Notes on tracing facility.
  
  -tune {tuning_option=value} -tu
     See Notes on tuning facility.
  
  NOTES
  
  
  Log facility
  the log  created can be examined with  the print_sys_log command.
  In  order to  look at  the binary  data field,  you must  use the
  -interpret (-int) control argument in the psl command.
            For example:  psl DSA_TM.trclog -int -fm -10minutes
  
  Tracing facility.
  This  facility  is  for  debugging  purpose  of  TMC only.  It is
  possible to set a specific bit for a special tracing.
  
  
  
  
  
  

  ________________                                 ________________
  
  dsatm_parameters                                 dsatm_parameters
  ________________                                 ________________
  
  
    Tracing of input and output in TM routines.
       {^}input, in        {re}set the bit dsatm_data_$trace_input
       {^}output, out      {re}set the bit dsatm_data_$trace_output
    Tracing of entries in TM routines for interrupt action.
       {^}interrupt, int   {re}set the bit dsatm_data_$trace_interrupt
    Tracing of STC sent or received from FEP.
       {^}stc              {re}set the bit dsatm_data_$trace_stc
    Tracing of data sent or received from FEP.
       {^}data             {re}set the bit dsatm_data_$trace_data
    Tracing of errors.
       {^}error,err        {re}set the bit dsatm_data_$trace_error
  
    Tracing of exchanges with session control.
       {^}sc_input,scin    {re}set the bit dsatm_data_$trace_sc_input
       {^}sc_output,scout  {re}set the bit dsatm_data_$trace_sc_output
       {^}sc_data,scd      {re}set the bit dsatm_data_$trace_sc_data
  
    Special debug.
       {^}debug,db         {re}set the bit dsatm_data_$trace_debug
            This switch is used to debug a particular section of
            code of TMC where an unexpected bug occurs.
            In this procedure, you have to insert the following
            line:
                 call dsa_trace_ (ioa_string, ioa args);
            at the line where you want to trace a value.
            The bit dsatm_data_$trace_debug is tested IN the dsa_trace_
            procedure. If on, the ioa_string is expanded and logged in
            the current log file.
  
  Tuning options.
  These parameters are constants, so  they cannot be changed unless
  the user has rw access on the bound segment.
  
       max_tm_rec_size, mtrs
           maximum size for the TMC record buffers
       min_restart_write, mrw
           minimum number of chars necessary to restart a write (50)
       conv_expansion, cve
           coefficient between the size of input and output buffer for
           translation. Output buffer is cve greater than input buffer
           for conversion (TABS->SPACES for example).
       init_max_sessions, ims
  
       These arguments are variables per process, so they may be
       adjusted at the user's convenience.
  
  
  
  
  
  

  ________________                                 ________________
  
  dsatm_parameters                                 dsatm_parameters
  ________________                                 ________________
  
  
       output_buf_size, obs
            size of the internal buffer used for outputting data on the
            screen.
            A value of 0 turns off the buffering, and increases
            significantly the response time.
  
       output_buf_timeout, obt
            after this time the internal output buffer is flushed,
            even if it is not full.
  
       read_echo_timeout, ret
           number of tenths of second the frontend will wait before
           sending characters in read_echo mode to the application.
       read_echo_char_count, recc
           number of characters the frontend will wait in his input
           buffer before sending the characters to the host in
           read_echo mode.
       read_necho_timeout, rnt
           number of tenths of seconds the frontend will wait before
           sending the characters in read_non_echo mode to the
           application.
           (Used when inserting characters in a line in video mode.)
       read_necho_char_count, rncc
           number of characters the frontend will wait to receive in
           the input buffer before sending the characters to the host
           in read_non_echo mode (Used when inserting characters in a
           line in video mode).
  
       read_8bit_timeout, r8t
       read_8bit_char_count, r8cc
           These two arguments are used as ret and recc in an 8 bits
           mode.
  
  Examples:
  
      tmparm -dlog -tr data,stc
          sets on the trace_data and trace_stc bit in dsatm_data_, and
          delete the standard log ([hd]>DSA_TM.trclog).
  
      tmparm -prtu
          displays the tuning parameters in use.
  
  
  
  
  
  
  
  
  
  

  
  Entry: ttt_info_$dsatm_device
  
       This entry point retrieves DSA-specific information from the
  TTF.
  
  
  USAGE
  
  dcl ttt_info_$dsatm_device entry (char (*), ptr, ptr, fixed_bin
       (35));
  
  call ttt_info_$dsatm_device entry (terminal_type, area_ptr,
       dsatm_dev_ptr, code);
  
  
  ARGUMENTS
  
  terminal_type
       is the terminal type name as specified in the TTF.  (Input)
  
  area_ptr
       points to an area where  the dsatm_device info structure can
       be allocated.  (Input)
  
  dsatm_dev_ptr
       points to the dsatm_device structure allocated by this entry
       point.   (Output) The structure  is declared in  the include
       file dsatm_negotiate_info.incl.pl1, described below.
  
  code
       is a standard system status code.  (Output)
  
  
  DATA STRUCTURE
  
       The data structure allocated by  this routine is declared in
  the  include file  dsatm_negotiate_info.incl.pl1, which  is shown
  below:
  
  dcl  1 dsatm_device                  based (dsatmdevp) aligned,
         2 init_accept_confg           fixed bin,
         2 dpp                         (4) fixed bin,
         2 sdp_dpp,                    /* sdp protocol */
           3 version                   fixed bin,
           3 sdp_class                 (4) fixed bin,
         2 real_dpp,                   /* real protocol */
           3 version                   fixed bin,
           3 real_class                (16) fixed bin,
           3 real_model                char (12) var,
         2 trans_dpp,                  /* transparent protocol */
           3 version                   fixed bin,
         2 dev_id                      fixed bin (16) uns,
         2 dev_type                    fixed bin,
         2 attribute,
  
  

  
           3 shareability              fixed bin,
           3 alloc_unit                bit (8),
         2 line_length                 fixed bin (8) uns,
         2 page_length                 fixed bin (8) uns,
         2 line_overflow               fixed bin,
         2 page_overflow               fixed bin,
         2 char_encoding               (8) fixed bin,
         2 char_set                    (14) fixed bin,
         2 char_subset                 (4) fixed bin,
         2 nat_lang                    (4) fixed bin,
         2 compression                 (4) fixed bin,
         2 char_font                   (6) fixed bin,
         2 terminal_type               char (12) var,
         2 ete_ack_level               fixed bin,
         2 max_rec_size                fixed bin (16) uns,
         2 attentions                  like attention_fcn aligned,
         2 stc_available               bit (1),
         2 repetitive_parm_nb,
           3 dpp_nb                    fixed bin,
           3 sc_nb                     fixed bin,
           3 rc_nb                     fixed bin,
           3 ce_nb                     fixed bin,
           3 cs_nb                     fixed bin,
           3 css_nb                    fixed bin,
           3 cf_nb                     fixed bin,
           3 nl_nb                     fixed bin,
           3 ca_nb                     fixed bin,
         2 parm_rejected,
           3 dpp_rejected              bit (1) unal,
           3 attr_rejected             bit (1) unal,
           3 ce_rejected               bit (1) unal,
           3 cs_rejected               bit (1) unal,
           3 css_rejected              bit (1) unal,
           3 cf_rejected               bit (1) unal,
           3 nl_rejected               bit (1) unal,
           3 ca_rejected               bit (1) unal,
           3 mrs_rejected              bit (1) unal;
  
  code is the standard system error code.
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

  
  USING EMACS
  
       If you connect to Multics by  means of the DSA network, then
  in order to use Emacs, you must also use the "video system."  The
  video  system  is  an  extension  to  the  Multics communications
  facilities which  provides for terminal input/output  support and
  offers  access   to  such  features  as   real-time  editing  and
  "windowing"  (the  ability  to  divide  the  screen into separate
  areas).
  
  
       Interactive  terminals  are  normally  connected  to Multics
  through  the tty_  I/O module.    To use  the video  system, your
  terminal must be connected to  Multics through the window_io_ I/O
  module.  Once  you are logged in  to Multics, you can  attach the
  video system to your terminal by entering the following command:
  
       window_call invoke
  
  With the execution of this  command, the standard tty_ attachment
  will be replaced with the  window_io_ attachment and the terminal
  will be supported with the Multics video system software.
  
  
       To restore the standard tty_ attachment, enter the following
  command:
  
       window_call revoke
  
       The  window_call  command  contains  many  other options for
  management  of terminal  input/output.  See  the Multics Commands
  and  Active Functions  manual (Order  No.  AG92)  for a  complete
  description of the window_call command.
  
  
       With video the  last character of the screen  will stay with
  the cursor on the character.
  
       Without video the last character  of the screen will move to
  the next line.
  
  See the  Multics Programmer's Reference Manual  (Order No.  AG91)
  for additional information on the video System.
  
  
  ACTIVE CONNECTION LIST TABLE
  
       A  new table  has been  created to  store the  names of  DSA
  connections currently active on Multics.  It is called the Active
  Connection List.   The following command displays  entries in the
  table.
  
  
  
  
  

  
  NAME: DISPLAY_CONNECTION_LIST
  
  SYNTAX AS A COMMAND
  
  display_connection_list {-control_arg}
  
  FUNCTION
  
  This  command displays entries  in the connection  list.  Network
  administrators can use it  to list network connections associated
  with  a  process,  or  to  display  detailed  information about a
  particular connection.
  
  CONTROL ARGUMENTS
  
  -brief, -bf
     prints brief information in tabular form.  (Default)
  
  -channel CHN, -chn CHN
     selects entries whose connection channel name matches the star
     name CHN.
  
  -long, -lg
     prints detailed information about selected entries.
  
  -offset LOC, -ofs LOC, -at LOC
     prints  the  entry  located  at   offset  LOC  in  the  active
     connection   list.     These   offsets   are    displayed   by
     display_connect_list -brief.
  
  -owner GROUP_ID
     selects  entries owned  by  a  process matching  GROUP_ID.  In
     general,  the  Login_Server  is   the  owner  of  all  network
     connections.  See Notes below for the format of GROUP_ID.
  
  -owner_id PROCESS_ID
     selects entries  owned by the  process having the  given octal
     PROCESS_ID.
  
  -user GROUP_ID
     selects  entries  used  by  a  process  matching  GROUP_ID.  A
     connection  is in  use when  it is  logged into  a process  or
     dialed  to  a  process.   See  Notes  below  for the format of
     GROUP_ID.
  
  -user_id PROCESS_ID,
  -process_id PROCESS_ID,
  -pid PROCESS_ID
     selects  entries used  by the  process having  the given octal
     PROCESS_ID.
  
  
  
  
  
  
_______________________                   _______________________
  
  display_connection_list                   display_connection_list
  _______________________                   _______________________
  
  
  ACCESS REQUIRED
  
  Access to the hpriv_connection_list_ gate is required to use this
  command.
  
  NOTES
  
  All entries are displayed if no selection arguments are given.
  
  The  -user and  -owner GROUP_ID  operand is  given in  one of the
  following formats:
  
            person_id.project_id.tag
            person_id.project_id
            person_id
  
  where  any  of  the  components  can  be  omitted  or given as an
  asterisk (*) to match all values in that component position.
  
  EXAMPLES
  The following example shows the tabular form of brief output.
  
  ! display_connection_list
  
    AT   CONNECTION     NET  USAGE     USER                  PROCESS ID
    210  dsa.MUL1.0002  DSA  endpoint  Login_Server.Daemon.z 004300021607
     66  dsa.MUL1.0088  DSA  login     Brunelle.SysAdmin.a   005100021710
    332  dsa.MUL1.0066  DSA  dial-in   GDixon.SysAdmin.a     005000021707
    454  dsa.MUL1.0070  DSA  endpoint  Login_Server.Daemon.z 004300021607
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
_______________________                   _______________________
  
  display_connection_list                   display_connection_list
  _______________________                   _______________________
  
  
  The following example shows the itemized form of long output.
  
  ! display_connection_list -user .SysAdmin -lg
  
    Offset:              000066                  Usage:  1 (login)
    Connection name:     dsa.MUL1.0088             Net:  DSA
    Connection handle:   001527000020
    User name:           Brunelle.SysAdmin.a       PID:  005100021710
    Owner name:          Login_Server.Daemon.z     PID:  004300021607
    Initializer handle:  000001000002115412724145
    Terminate event chn: 327513360274440000000115
    Disconnect entry:    dsa_session_admin_$terminate_force
    Accounting entry:    dsa_session_admin_$accounting_force
  
    Offset:              000332                  Usage:  2 (dial-in)
    Connection name:     dsa.MUL1.0066             Net:  DSA
    Connection handle:   004445000015
    User name:           GDixon.SysAdmin.a         PID:  005000021707
    Owner name:          Login_Server.Daemon.z     PID:  004300021607
    Initializer handle:  000001000003115412725322
    Terminate event chn: 327516062576440000000122
    Disconnect entry:    dsa_session_admin_$terminate_force
    Accounting entry:    dsa_session_admin_$accounting_force
  
  
  CHANGES TO THE BLAST AND INACTIVITY MECHANISMS
  
       The warn  facility has been changed to  allow blast messages
  to  work correctly  over DSA  channels.  The  bump-for-inactivity
  feature has been changed to work  correctly with the new style of
  blast messages.   A new tty_ control order,  described earlier in
  this  section,  and  a  new  IPS  signal,  described next in this
  section, have been added to support the new mechanisms.
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

  
  SENDING ANSWERING SERVICE MESSAGES VIA A NEW IPS SIGNAL
  
       A new Multics IPS signal, system_message_, has been added to
  support operations in the DSA environment.  The answering service
  sends a message  (e.g., warn, bump) to a user  process by placing
  the message in a message  segment and sending the system_message_
  IPS signal to the user.  The  handler for the new signal picks up
  the  message and  prints it;  this method  preserves the terminal
  environment for the user.
  
  
       The new system_message_ IPS signal is an addition to the IPS
  signals   defined  for    the  set_ips_mask,   get_ips_mask,  and
  reset_ips_mask  commands described  in the  Multics Commands  and
  Active Functions manual (Order No.  AG92).
  
  
  NEW TYPE OF IPC EVENT CHANNEL
  
       A new  type of Multics  IPC event channel,  the asynchronous
  call event channel,  has been added to support  operations in the
  DSA  environment.  This  channel is  just like  the current  call
  event  channel except  that sending  a wakeup  on an asynchronous
  call event channel (using hcs_$wakeup) sends an IPS "wkp_" signal
  to  the  destination  process  as  well  as  sending a normal IPC
  wakeup.  The IPS signal causes  the handler for the "wkp_" signal
  to  be invoked in  the destination process  immediately (assuming
  the  "wkp_" signal  is not  masked), regardless  of the  process'
  state with  respect to IPC.   The default handler  for the "wkp_"
  IPS signal,  wkp_signal_handler_, can then look  through the list
  of asynchronous  call event channels and cause  the handlers (for
  any with pending  IPC wakeups) to be run.  These  handlers can be
  invoked whether or not the owning process is blocked.
  
  
  CHANGES TO THE LOGGING COMMANDS
  
       There are three new system logs for DSA:  the DSA system log
  (dsa_sl), the DSA  system AEP log (dsa_sal), and the  DSA AEP log
  (dsa_al).  The DSA system log and the DSA system AEP log are ring
  2 logs, so  new control arguments have been added  to the logging
  commands which  allow you to print, monitor,  and summarize these
  new  logs.  The  DSA AEP  log is  a ring  4 log,  so the  logging
  commands can  be used to  manipulate it simply  by providing them
  with the pathname of this new log.
  
  
  
  
  
  
  
  
  
  
  

  
  New Control Arguments for the Logging Commands
  
       The following  new control arguments have been  added to the
  print_sys_log, and summarize_sys_log commands:
  
  -dsa_sys_log, -dsasl
       specifies that  the DSA system  log is to  be examined.  The
       location  of this log  is specified in  the Mna_general_info
       object  definition  in  the  NIT.   The  normal  location is
       >site>dsa>system_logs_dir>dsa_sl.  This is a ring 2 log; the
       user  must have  access to  dsa_log_admin_gate_ to  read it.
       This  control argument  is incompatible  with any  other log
       selection control argument or an explicit log pathname.
  
  -dsa_sys_aep_log, -dsasal
       specifies  that the DSA  system AEP log  is to be  examined.
       The   location   of   this   log   is   specified   in   the
       Mna_general_info object  definition in the NIT.   The normal
       location  is >site>dsa>system_logs_dir>dsa_sal.   This is  a
       ring 2 log; the user must have access to dsa_admin_log_gate_
       to read it.  This control  argument is incompatible with any
       other  log selection  control  argument  or an  explicit log
       pathname.
  
  Complete descriptions of  the print_sys_log, monitor_sys_log, and
  summarize_sys_log   commands  are    available  in   the  Multics
  Administration,  Maintenance,  and  Operations  Commands  manual,
  Order No.  GB64.
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

  
  
  
  
  
  
  
  
  
                              SECTION 8
  
  
                    CHANGES THAT AFFECT OPERATORS
  
  
  
  
       This  section describes  changes that  affect operators.  It
  contains material covering the following topics:
  
       o    Changes to the login command
  
       o    Changes to various initializer commands
  
       o    A  new procedure  for preaccepting  message coordinator
            terminals through the DSA network
  
  
  CHANGES TO THE login COMMAND
  
       Two additional  control arguments can  now be used  with the
  login  command.   The  new  control  arguments  are -operator and
  -vchannel.
  
  
  -operator, -op
     specifies  that the  terminal the  operator is  logging in  on
     should  be authenticated  for operator  or message coordinator
     use.   The operator  must use  the accept  initializer command
     (from another  terminal which has already  been authenticated)
     to  approve this request.   If the -vchannel  control argument
     (described  below) is  also  used,  and the  specified virtual
     channel  has been  preaccepted, the  request is  automatically
     accepted.     The   vchn_requires_accept   keyword    in   the
     installation_parms  segment may  be used  to require  a manual
     "accept"   by  a   validated  operator   whenever  the  "login
     -operator"  command  is  issued  by  someone  other  than  the
     operator  signed on  at the  bootload console.   The -operator
     control argument also eliminates the  need for the operator to
     use  a subsequent  sign_on initializer  command.  The operator
     must  have the  "operator" attribute   in the  PNT to  use the
     -operator control argument.
  
  
  
  
  

  
  
  
  -vchannel STR, -vchn STR
     identifies the virtual channel specified  by STR as the one to
     be used to connect the  terminal to Multics.  For example, the
     command line below specifies that the virtual channel vchn1 is
     to be  associated with the terminal the  operator is currently
     logging in on.
  
        l Smith -op -vchn vchn1
  
     The  -operator  control  argument  (described  above)  must be
     specified  or  the  -vchannel  control  argument  will  not be
     accepted.
  
  
       These  new control arguments  support the new  procedure for
  preaccepting  message  coordinator   terminals  through  the  DSA
  network.   See   "Preaccepting  Terminals  Associated   With  DSA
  Channels" later in this section for additional information on the
  use  of the  -operator and  -vchannel control  arguments.  For  a
  complete description  of the login command, refer  to the Multics
  Commands and Active Functions manual, Order No.  AG92.
  
  
  CHANGES TO VARIOUS INITIALIZER COMMANDS
  
       The Multics operator  has available a set of  commands to be
  used  when  communicating  with  the  initializer process.  These
  commands  are  described  in  Section  4  of  the Administration,
  Maintenance,  and  Operations  Commands  manual.   Most  of these
  commands  specify  activities  that  pertain  only  to  the local
  Multics  installation;  they  do  not  affect network operations.
  Some  of them,  however, are  used to  route message  traffic, to
  control the  assignment of communications channels,  or to affect
  user processes.  In these cases,  if the communications links are
  through  the  DSA  network,  the  standard  operator interface is
  changed.  Additionally, there is a new procedure for preaccepting
  message coordinator terminals through the DSA network.
  
  
       The information  below describes the function  and syntax of
  various  initializer  commands  when  the  target entity (message
  destination,  communications  channel,  process)  is  owned  by a
  remote user who has connected  to Multics through a DSA endpoint.
  Note that the  material below is designed as a  supplement to the
  more  complete  description  of  initializer  commands  found  in
  Section  4  of  the  Administration,  Maintenance, and Operations
  Commands manual.
  
  
  
  
  
  
  

  
  
  
  attach and remove Commands
  
       The attach  and remove operator  commands have no  effect on
  communications  channels  assigned  as  part  of  a  DSA  network
  connection.   Such  channels  are  managed  by  the network login
  server daemon.  See  Section 3 of this manual  for information on
  the network login server daemon.
  
  
  Process Manipulation Commands
  
       The  initializer  commands   used  to  manipulate  processes
  include  bump, detach,  disconnect, terminate,  and unbump.   The
  syntax  of these  commands permits  the operator  to specify  the
  "target" of the action in any one of the following ways:
  
       o    Person_id.Project_id
  
       o    channel_id
  
       o    mpx mpx_name
  
       o    -pid process_id
  
  
       Use of  the Person_id.Project_id and mpx  mpx_name arguments
  has  not changed.   (Note, however,   that use  of the  Person_id
  Project_id  argument   is  no  longer  accepted.)    Use  of  the
  channel_id argument  has changed in the  following situation:  if
  the  operator wants  to specify  that the  action is  to affect a
  channel  assigned  as  part  of  a  DSA  network  connection, the
  channel_id  argument must  be specified  in the  format described
  below.
  
  channel_id
     must be a DSA channel_id in the following form:
  
        dsa.<session_control_name>.<dsa_channel>
  
     where:
  
     session_control_name
        is the local  name of the session control.   This name must
        be  the same  as that  specified by  the session  control's
        Sc_loc object definition in the NIT.
  
     dsa_channel
        is  the  name  of  the  DSA  communications  channel  to be
        affected.
  
  
  
  
  

  
  
  
     The following is an example of a valid DSA channel_id:
  
        dsa.MUL1.0021
  
  
       Use  of  the  -pid   process_id  control  argument  is  new;
  process_id is the first six  digits of the process_id.  Note that
  the  as_who command  now accepts   the -pid  control argument  to
  display the first six digits of the process_id.
  
  
  accept Command
  
       The accept command can be  used to affect a channel assigned
  as part of a DSA network connection.  The DSA channel_id argument
  must  be specified  as described  above for  process manipulation
  commands.
  
  
       The capability to specify that  a DSA channel_id can be used
  with  the accept  command is  useful for  those circumstances  in
  which the  DSA channel_id is known  to the operator.  In  the DSA
  environment,   however,  communications  channels   are  assigned
  dynamically.   DSA  channel  identifiers  cannot  be preassigned.
  Thus, the accept  command cannot be used to  preaccept a terminal
  device that has connected to Multics by means of the DSA network.
  Instead, the  accept_vchn command must  be used to  preaccept the
  device.   See the description  of the accept_vchn  command below,
  and "Preaccepting  Terminals Associated With DSA  Channels" later
  in this section, for additional information.
  
  
  drop Command
  
       The   drop  command   has   been   changed  to   accept  the
  specification of either a DSA  channel_id (as described above for
  process manipulation commands) or a virtual channel (as described
  below for  the accept_vchn command).   When a virtual  channel is
  dropped, it is disassociated from  all virtual consoles, and must
  be accepted again before it can be reused.  The operator may also
  drop  the  "real"  channel  associated  with  a  virtual channel.
  Output to the virtual channel will continue to be queued up until
  another connection to it is made using the login command with the
  -operator and -vchannel control arguments.
  
  
  
  
  
  
  
  
  
  

  
  
  
  intercom Command
  
       The  intercom  command  has   been  changed  to  accept  the
  specification of either a DSA  channel_id (as described above for
  process manipulation commands) or a virtual channel (as described
  below for  the accept_vchn command).  This allows  an operator to
  send a message to another operator  logged in over either kind of
  channel.
  
  
  substty Command
  
       The  substty   command  has  been  changed   to  accept  the
  specification of either a DSA  channel_id (as described above for
  process manipulation commands) or a virtual channel (as described
  below for the accept_vchn command).  The virtual channel which is
  dropped is  disassociated from all  virtual consoles and  must be
  accepted again before it can be reused.
  
  
  define, redefine, and undefine Commands
  
       The  define,  redefine,  and  undefine  commands  have  been
  changed to  accept the specification  of either a  DSA channel_id
  (as  specified  above  for  process  manipulation  commands) or a
  virtual channel (as described below for the accept_vchn command).
  These commands  reject the "real" channel name  associated with a
  virtual channel.
  
  
  accept_vchn Command
  
       The  accept_vchn command  is  a  new command  implemented to
  support the capability to preaccept message coordinator terminals
  through the DSA network for  the purpose of rerouting the message
  coordinator output traffic.  The command is similar in syntax and
  functionality to the initializer  accept command.  The difference
  is  that the  accept_vchn command  is used  to preaccept terminal
  device  channels  that  are  virtual  channels,  while the accept
  command is  used to accept  terminal device channels  with "real"
  channel identifiers.
  
  
       The syntax of the accept_vchn command is defined below.  See
  also "Preaccepting Terminals Associated  With DSA Channels" below
  for additional information on the use of the accept_vchn command.
  
  
  
  
  
  
  
  

  ___________                                           ___________
  
  accept_vchn                                           accept_vchn
  ___________                                           ___________
  
  
  NAME: ACCEPT_VCHN
  
  SYNTAX AS A COMMAND
  
  accept_vchn    virtual_channel_name   {authorization}    {target}
     {bc_list}
  
  FUNCTION
  
  accepts a virtual terminal device  channel and connects it to the
  message coordinator's  device complement.  This command  can only
  be used in ring 4.
  
  ARGUMENTS
  
  virtual_channel_name
     is the  name of a virtual  channel.  The name can  be up to 32
     characters  long.   It  cannot   include  periods  (.).   This
     argument cannot  be set to  "otw_" because "otw_"  is reserved
     for the bootload console.
  
  ARGUMENTS
  
  authorization
     specifies the  authorization which should be  assigned to this
     virtual channel.  It must be one of the following:
  
     full
        the device is able to issue all initializer commands.  This
        is the default.
  
     none
        no commands are allowed.
  
     reply
        only the reply command is allowed.
  
     query
        only the who and hmu commands are allowed.
  
     daemon
        only the reply, intercom, and exec commands are allowed.
  
  bc_list
     specifies  that a  broadcast list  should be  used.  This list
     identifies  channels to  which will  be sent  copies of  input
     entered at the  terminal associated with virtual_channel_name.
     If  the bc_list  argument is   set to  a broadcast  list, both
     virtual  channels  and  DSA  channel_ids  can  be  used.  Each
  
  

  ___________                                           ___________
  
  accept_vchn                                           accept_vchn
  ___________                                           ___________
  
  
     channel name can be up to  32 characters in length.  Up to ten
     channel names  can be specified, separated by  commas.  If the
     bc_list argument is set to  "none", the current broadcast list
     is  cleared.  If  the bc_list  argument is  not specified, the
     broadcast   list  previously    specified  (if   any)  remains
     unchanged.
  
  target
     specifies  the source  name  identifying  the daemon  to which
     reply commands  will be directed.   This argument is  used for
     terminals  dedicated to  the control  of a  single I/O daemon.
     The default name is *.
  
  EXAMPLES
  
  The example below specifies that  operator commands to the backup
  daemon  can be  submitted from  the terminal  associated with the
  virtual channel vchn1.
  
     accept_vchn vchn1 reply bk
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

  
  
  PREACCEPTING TERMINALS ASSOCIATED WITH DSA CHANNELS
  
       In the  standard Multics environment, the  configuration and
  characteristics  of communications  channels are  defined by  the
  system administrator in the channel definition table (CDT).  With
  such  knowledge of the  physical configuration, the  operator can
  preaccept  terminals   for  the  purpose  of   rerouting  message
  coordinator channels by specifying  (via the appropriate operator
  commands) the physical channel name (e.g., a.h102).
  
  
       In the DSA environment, however, communications channels are
  assigned   dynamically.   DSA   channel  identifiers   cannot  be
  preassigned.  Thus, in order to permit preacceptance of terminals
  for message  routing, a new procedure has  been implemented.  The
  new  procedure includes  the introduction  of "virtual channels",
  the use  of a new command  (accept_vchn), and the use  of two new
  control arguments to the login command (-operator and -vchannel).
  All of these are described above.
  
  
       To  preaccept terminals  associated with  DSA channels,  the
  operator must use the following procedure:
  
  1.   Use the  new accept_vchn command  to specify that  a virtual
       channel is to be used  to carry message coordinator traffic.
       The  accept_vchn command line  in the example  below "tells"
       the message coordinator that the virtual channel vchn1 is an
       appropriate  channel for  message coordinator  traffic.  (It
       also  limits  input  messages  from  the  terminal  to those
       necessary to reply to the backup daemon.)
  
            accept_vchn vchn1 reply bk
  
  2.   Use the initializer define  command to associate the virtual
       channel  you specified  via the  accept_vchn command  with a
       virtual terminal, as in the following example:
  
            define VC1 vchn1
  
  3.   Use   the  initializer   route  command   to  route  message
       coordinator traffic to the  virtual terminal associated with
       the virtual  channel.  The following example  routes message
       traffic from the backup daemon to the virtual terminal VC1:
  
            route bk user_output VC1
  
  4.   Login at any terminal using the new control arguments to the
       login  command  -operator  and  -vchannel.   Use  of the new
       -vchannel control argument  identifies the physical terminal
       in  use as  the terminal   to be  associated with  the named
       virtual  channel and  completes the  assignment loop  formed
       with the accept_vchn, define, and route commands.  The login
  
  

  
  
       command is used to request a message coordinator process, as
       opposed to a normal user process.  Because the Person_id and
       password  are   checked  by  the  answering   service,  only
       authorized users may gain access to the message coordinator.
       The "operator" attribute in the PNT is required for any user
       who attempts  to login in  this way.  The  following example
       illustrates use of the login command:
  
            login Smith -operator -vchannel vchn1
  
       Note  that the first  three steps of  this procedure may  be
       done by the system administrator in the system_start_up.ec.
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

  
  
  
  
  
  
  
  
  
                              SECTION 9
  
  
                 IMPLEMENTATION OF NEW EXEC COMMANDS
  
  
  
  
       All  following  "exec"  commands   are  located  inside  the
  admin.ec extension named admin_dsa.ec.  If this extension has not
  been used,  it is necessary to  modify some lines in  admin.ec in
  order to  find commands in the extension.   (See Modifications of
  European standard admin.ec located at the end of this section for
  details.)
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

  
  
  
  
  
  
  
  
  
                              SECTION 9
  
  
                   SPECIFIC DSA HIERARCHY STRUCTURE
  
  
  
  
  >sl3p>dsa>source
           >object
           >include
           >info
           >exec_coms
           >execution
           >models
           >cref
           >info >dadd
                 >run_dsac_daemon
                 >login_server_info
                 >login_info
                 >dssr
                 >cxi_input_daemon
                 >connect_info
  
                               Data bases hierarchy
                               --------------------
  
  >site>dsa
         |-- nit
         |
         >uft_logs_dir
         |       +-- r_log, s_log
         |
         >aep_logs_dir
         |       +-- dsa_sl
         |
         |
         >system_logs_dir
         |       +-- dsa_sl, dsa_sal
         |
         >c1m4
         |   +-- >sys
         |          +-- P(0 1 2 3 4)FW640, DNS modules, IMAMEM.i  <-----+
         |                                                              |
         >data                                                          |
         |   +-- lc_data, sc_info, cxi_driver_seg, uft.value            |
  
  

  
  
  
         |       dsa_sc_hm_seg, active_connection_list                  |
         |                                                              |
         >frontend_dir_dir                                              |
         |   |                                                          |
         |   >dn7c                                                      |
         |   |   |-- config, imamem.i, dn7c.value, various maps, LINKS -+
         |   |   +-- final_image.i, dumps                               |
         |   |                                                          |
         |   >dn7x                                                      |
         |   .   |-- config, imamem.i, dn7x.value, various maps, LINKS _|
         |   .   +-- final_image.i, dumps
         |   .
         |
         >acs
            |-- (Echo, Admin, Admin_correspondent, Login, UFT).acs
            +-- (uft_correspondent, correspondent, Systems).acs
  
  
  
  DYNAMIC ENVIRONMENT BUILT IN FRONTEND_WORKING_DIR
  
       In  order to  build an  image, the  frontend generator needs
  source dns files  previously restored (for the last  time) into a
  specific release  directory.  Since some of them  must be renamed
  according  to various  criteria (remote/local  generation), links
  are  dynamically  built  according  to  control_arguments  of the
  generation command, thus avoiding copying files and keeping their
  relative pathnames syntax inside file "config".
  
  List of links built for a generation c1m4 at level fw640:
  
  Links = 13.
  
  PATCH4                            >site>dsa>c1m4>sys>P4FW640
    PATCH4.a
  PATCH3                            >site>dsa>c1m4>sys>P3FW640
    PATCH3.a
  PATCH2                            >site>dsa>c1m4>sys>P2FW640
    PATCH2.a
  PATCH1                            >site>dsa>c1m4>sys>P1FW640
    PATCH1.a
  PATCH0                            >site>dsa>c1m4>sys>P0FW640
    PATCH0.a
  IMAMEM                            >site>dsa>c1m4>sys>IMAMEM
    IMAMEM.i
  DLCMSF                            >site>dsa>c1m4>sys>DLCMSF
    DLCMSF.a
  DLCKW                             >site>dsa>c1m4>sys>DLCKW
    DLCKW.a
  YTABLE                            >site>dsa>c1m4>sys>YTABLE
  CHXMOD                            >site>dsa>c1m4>sys>CHXMOD
  
  
  

  
  
  
    CHXMOD.a
  TASY                              >site>dsa>c1m4>sys>TASY
  TMCK                              >site>dsa>c1m4>sys>TMCK
  sys                               >site>dsa>c1m4>sys
  
  NOTES
  
  Datanet dedicated file "config" is written with dns syntax.  Note
  that  the  only  parameter   concerning  multics  syntax  is  DIR
  described as "sys>".
  
  Names of patch sets located inside the release directory must use
  the following syntax  "PxFWyww", where x is the set  number 0, 1,
  2, 3, 4; y is the last digit of year; and ww is the fiscal week.
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

  __________                                             __________
  
  gen_dn7.ec                                             gen_dn7.ec
  __________                                             __________
  
  
  NAME: GEN_DN7.EC
  
  SYNTAX AS A COMMAND
  
  ec gen_dn7 <target_datanet_tag> {-args}
  
  FUNCTION
  
  This  command  performs  generation  of  a  loadable and runnable
  frontend image to be used by the specified datanet.
  
  ARGUMENTS
  
  -by <generator_datanet_tag>
     specifies the  datanet in charge of generating  a final image.
     Default is target datanet.
  
  -fiscal_week,-fw <YWW>
     specifies  a  level  for   patches  to  be  applied.   Remains
     unchanged until another fiscal week is specified.
  
  -force,-fc
     interrupts all  activity on frontend in  charge of generation.
     Users are disconnected.
  
  -no_start,-nost
     do   not   start   frontend   after   successfully  completing
     generation.
  
  -patch3,-p3
     gives a  "short" generation.  In  fact, you only  apply PATCH3
     file  to an intermediary  image which must  be present in  the
     frontend_working_dir of target datanet.  (See notes below.)
  
  -release,-rl <release>
     specifies  DNS  release  to  be  used  for  current and future
     generations  Remains   unchanged  until  another   release  is
     specified.
  
  -save,-sv <image_path>
     specifies the pathname of  the resultant final image.  Default
     is   segment  "final_image.i"    located  in   target  datanet
     frontend_working_dir.
  
  -trace , -ts
     includes the files TMCK and  TASY (patch files for tracing DNS
     software).  The default is to exclude these two files
  
  
  
  

  __________                                             __________
  
  gen_dn7.ec                                             gen_dn7.ec
  __________                                             __________
  
  
  NOTES
  
  Source DNS files should have been restored from the specific GCOS
  tape into the  appropriate directory >site>dsa>{release_dir}>sys.
  The actual release is "c1m4" and must be specified at the initial
  generation for  each frontend.  The fiscal week  patch's level is
  640  and  must  be  specified  at  the  first generation for each
  frontend.
    Generation is performed in 3 steps :
       - Construct  of needed  environment in  frontend_working_dir
         according to  control arguments selected.  See  Appendix A
         for details.
       - Creation  of  intermediary  image  named  "imamem.i"  from
         source dns files,  datanet configuration, standard patches
         set PATCH0 PATCH1 PATCH2  and Multics specific patches set
         PATCH4.
       - From  imamem.i,  last  patches  set  PATCH3  is applied to
         produce  final image  named "final_image.i"  unless it  is
         specified  with  control  argument  "-save".   If argument
         "-patch3" is  specified in the command, only  this step is
         performed.
  
  Two maps are automatically created in the frontend_working_dir.
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

  ____________                                         ____________
  
  start_dn7.ec                                         start_dn7.ec
  ____________                                         ____________
  
  
  NAME: START_DN7.EC
  
  SYNTAX AS A COMMAND
  
  ec start_dn7 <datanet_tag> {-ctrl_arguments}
  
  FUNCTION
  
  This command  makes the specified frontend  operational.  The DNS
  image should be  loaded, either from the host system  or from any
  remote site.
  
  ARGUMENTS
  
  -debug, -dbg
     runs subsystem debug  mode for a further analysis  of logs and
     various traces.
  
  -force, -fc
     starts datanet, even if users  are connected through it.  They
     will be disconnected.
  
  -load_on_abort, -ldab {<image_path>}
     will load the frontend after  an unsuccessful start order.  If
     present  without   <image_path>,  the  last   image  generated
     "final_image.i"    located    in     a    specified    datanet
     frontend_working_dir is loaded.   If present with <image_path>
     , specified image is loaded.
  
  -no_debug, -ndbg
     resets debug mode.  (Default)
  
  NOTES
  
  Debug  mode remains  "on"  until  another command  introduces the
  control argument "-no_debug".
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

  ___________                                           ___________
  
  load_dn7.ec                                           load_dn7.ec
  ___________                                           ___________
  
  
  NAME: LOAD_DN7.EC
  
  SYNTAX AS A COMMAND
  
  ec load_dn7 <datanet_tag> {-ctrl_args}
  
  FUNCTION
  
  This command loads the specified  frontend from host site with an
  existing DNS image, then starts the frontend.
  
  ARGUMENTS
  
  -debug, -dbg
     runs subsystem debug  mode for a further analysis  of logs and
     various traces.
  
  -force, -fc
     loads frontend, if users are connected through it they will be
     disconnected.
  
  -image, -im <image>
     introduces  pathname  of  image  to  be  loaded.   Default  is
     "final_image.i"   located   in    specified   target   datanet
     frontend_working_dir.
  
  -no_debug, -ndbg
     resets debug mode.  (Default)
  
  NOTES
  
  Debug  mode remains  "on"  until  another command  introduces the
  control argument "-no_debug".
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

  ___________                                           ___________
  
  stop_dn7.ec                                           stop_dn7.ec
  ___________                                           ___________
  
  
  NAME: STOP_DN7.EC
  
  SYNTAX AS A COMMAND
  
  ec stop_dn7 <datanet_tag>
  
  FUNCTION
  
  This command stops the specified frontend, leaving it unreachable
  from a host site.  All users are disconnected.
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

  ___________                                           ___________
  
  dump_dn7.ec                                           dump_dn7.ec
  ___________                                           ___________
  
  
  NAME: DUMP_DN7.EC
  
  SYNTAX AS A COMMAND
  
  ec dump_dn7 <datanet_tag> {dump_args}
  
  FUNCTION
  
  This command  asks for a  total or partial  frontend memory dump,
  according to specified control arguments.
  
  ARGUMENTS
  
  All specified dump_args are transmitted to sub_system cxi_driver.
  Look at cxid "dump" command for more details.
  
  NOTES
  
  As  first dump_argument,  you can  specify pathname  of resultant
  dump.
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

  _________                                               _________
  
  st_dn7.ec                                               st_dn7.ec
  _________                                               _________
  
  
  NAME: ST_DN7.EC
  
  SYNTAX AS A COMMAND
  
  ec st_dn7 <datanet_tag>
  
  FUNCTION
  
  This command displays information about specified frontend.
  
  EXAMPLE
  
            FRONTEND             :   dn7b
            CHANNEL              :   diab  b  30.
            DRIVER STATE         :   started
            FRONTEND STATE       :   added,loaded,running
            FRONTEND_WORKING_DIR :   >site>dsa>fdd>dn7b
            DNS transport        :   dn7b_ts
            DNS release          :   c1m4
            DNS fiscal_week      :   FW640
            DNS image            :   >site>dsa>fdd>dn7b>final_image.i
            DEBUG mode           :   off
            Number of sessions   :   4
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

  _________                                               _________
  
  start_dsa                                               start_dsa
  _________                                               _________
  
  
  NAME: START_DSA
  
  SYNTAX AS A COMMAND
  
  ec start_dsa {-args}
  
  FUNCTION
  
  This   command  entirely    initializes  DSA   session  (specific
  processes, data_bases).
  
  ARGUMENTS
  
  -force, -fc
     produces  an  automatic  logout  for  all  existing  processes
     related with DSA (Uft, DSA_CXI) before loging them again.
                      Modifications of European standard admin.ec
                      - - - - - - - - - - - - - - - - - - - - - -
  
     Lines to  add at the end  of admin.ec in order  to look for an
     extension
  
     &label BAD_X
     &label &1
     ec &ec_dir>admin_1 &rf1
     &quit
  
     Note  that you  need also   to modify  both command  "doc" and
     "help" in order to find informative headers.
  
  
  
                          Modifications of system_start_up.ec
                          - - - - - - - - - - - - - - - - - -
  
  
     line to add :    ec admin_1 start_dsa
  
  
     Routages (logs and messages) :
  
     sc_command define dn7b log dn7b
     sc_command define dn7c log dn7c
     sc_command define uft log uft
  
  
  
  
  
  
  

  _________                                               _________
  
  start_dsa                                               start_dsa
  _________                                               _________
  
  
     sc_command route (dn7b dn7c uftr ufts) user_i/o bkc
     sc_command route (dn7b dn7c uftr ufts) error_i/o bkc
     sc_command route dn7b (user_i/o error_i/o log_i/o) dn7b
     sc_command route dn7c (user_i/o error_i/o log_i/o) dn7c
     sc_command route uftr (user_i/o error_i/o log_i/o) uft
     sc_command route ufts (user_i/o error_i/o log_i/o) uft
  
                             Modifications of crank.absin
                             - - - - - - - - - - - - - - -
  
  
     move_log_segments dn7c >sc1>as_logs history 1week
     move_log_segments dn7b >sc1>as_logs history 1week
     move_log_segments uft >sc1>as_logs history 1week
     move_log_segments dsa_al >site>dsa>aep_logs_dir history 1week
     move_log_segments (r s)_log  >site>dsa>uft_logs_dir history 1week
     lsdrb >site>dsa>system_logs_dir 7 7
     lsrb >site>dsa>system_logs_dir>** 4 4 4
     move_log_segments dsa_sal >site>dsa>system_logs_dir history 1week
     move_log_segments dsa_sl >site>dsa>system_logs_dir history 1week
     lsrb >site>dsa>system_logs_dir>** 2 2 2
     lsdrb >site>dsa>system_logs_dir 2 7
  
  
     date_deleter >sc1>comms 7 NIF.nif.? NIF.nif.?? NIF.nit.? NIF.nit.?? NIF.*.*.io
     date_deleter >site>dsa 7 nit.?
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

  
  
  
  
  
  
  
  
  
                              APPENDIX A
  
  
               MULTICS DSA PHASE 1 INSTALLATION PROCEDURE
  
  
  
  
  
  
  The  procedure  described  here  is  intended  for  use  by sites
  currently  running  the  MR12  release  (updated with bug_fixes).
  Steps 1 to  11 can be executed any time prior  to the shutdown of
  the system by a SysAdmin process.
  
  For reading commodity, we suppose we  have one DN7100 named "c" ,

  =================================================================
                               STEP 1
  =================================================================
  
  
  Register special resource named dia{c} :
  
  cr >sc1>rcp>dia{c}.acs
  sa >sc1>rcp>dia{c}.acs rw DSA_CXI.Daemon -rp -nsd
  rgr special dia{c} -acs_path >sc1>rcp>dia{c}.acs -owner system
  
  Modify access of >sc1>rcp>workspace.acs.  Daemon DSA_CXI needs rw
  on it.
  
  sa >sc1>rcp>workspace.acs rw DSA_CXI.Daemon
  
  You  will have to  reload the Register  tape later with  the name
  DSA.    (identifier   PTY)   (owner:    "Retriever.SysDaemon"  or
  "system").
  
  =================================================================
                              STEP 2
  =================================================================
  
  Check Daemon project.   We have to register a ring  2 Daemon with
  5000 quota for its process_dir.
  
                    cwd >udd>sa>a
                    ec master edit_proj Daemon
  
  

  
  
  
                    Minimum login ring :  2
                    Maximum pdir quota :  5000
  
  Register the following users:
  
  The  DSA_CXI in  Daemon project  must be  a ring  2 daemon,  with
  minimal attributes "multip, ^vinitproc, ^nostartup".
  
                    ec master register .....
                    ec master upmf Daemon DSA_CXI
                    ec master pmf Daemon
  
                        ->person_id:  DSA_CXI;
                        ->ring:  2,2;
                        ->attributes:igroup;
                        ->group:  IO;
  
  
  
                    an >udd>Daemon>DSA_CXI cxi
  
  
    UftS (in SysDaemon project)
  
                    ec master register ....
                    ec master upmf SysDaemon UftS
                    ec master pmf SysDaemon
  
                    ->person_id:  UftS;
                    ->initproc:>sl3p>dsa>e>dsa_uft_sds_overseer_;
                    ->group:  IO;
  
  -------------
  
        ADD access "re" at >t>pnt_login_gate_ for UftS.SysDaemon
  
                    sac hpsa >t>pnt_login_gate_ re UftS.SysDaemon
  
        CHECK acl of >doc
                     >doc>ss
                     >doc>ss>ssu_info_dirs :
  (DSA_CXI.Daemon must have "s" for   sub_system cid invocation).

  
  =================================================================
                            STEP 3
  =================================================================
  
  
  
  
  
  
  

  
  
  
  >ddd>idd>iod_tables.iodt  must  be  modified  to  incorporate the
  following  new IO  requests used  by the  IO Daemon  working as a
  "requestor" for UFT.  Copy it  in your working_dir, modify with a
  text editor and install new table with install_table.ec.
  
  Lines to add :
                         Request_type:  dsa_uft;
                         generic_type:  dsa_uft;
                         driver_userid:  IO.SysDaemon;
                         default_queue:  3;
                         accounting:  nothing;
                         max_access_class:  system_high;
                         device:  uft;
  
                         Device:  uft;
                         driver_module:>sl3p>dsa>e>dsa_uft_driver_;
                         line:  *;
                         args:  " ";
                         default_type:  dsa_uft;
  
  
  Create  the  I/O  daemon  queues (ignore the warning about system
  
  
  high):
  
                         cdq iod_tables

  =================================================================
                             STEP 4
  =================================================================
  
  
  
  DSA programs take about 5000 quota  and data bases 4000.  You can
  create 2  master_dirs to keep  whole DSA programs  on a dedicated
  disk.  (not mandatory).
  
        cd >sl3p>dsa -lv LOGICAL_VOLUME -quota 5000
        sa >sl3p>dsa sma *.SysAdmin s * -rp
  
        cd >site>dsa -lv LOGICAL_VOLUME -quota 4000
        sa >site>dsa sma *.SysAdmin s * -rp
        an >site>dsa DSA

  =================================================================
                             STEP 5
  =================================================================
  
  
  
  Reload DSA tape :
  
  

  
  
  
                  login Retriever SysDaemon rt
                  r rt backup_load -npri -nosetlvid -trim
                  r rt DSA,den=6250

  =================================================================
                              STEP 6
  =================================================================
  
  
  
  
  Create following  dirs with their short_names  and initial access
  list:  (Warning :  Special log sld must be in ring 2).
  
        cwd >site>dsa
        cd (aep system uft)_logs_dir
        an (aep system uft)_logs_dir (aep s u)ld
        sis (aep s d)ld rw * -rp -nsd
        lsdrb sld 2 7
  
        sa ([dirs *]) sma *.SysAdmin sma DSA_CXI.Daemon s * -rp
        an frontend_dir_dir fdd
  
        an data_segments data
        sa data sma * -rp -nsd
        sis data rew * -rp -nsd

  =================================================================
                            STEP 7
  =================================================================
  
  
  
  This step consists in DSA  hierarchy adjustment according to your
  datanet configuration.  You have to repeat it for each datanet.
  
  
  Create  frontend_working_dirs.   Delivered   directory  model  is
  >site>dsa>fdd>dn7x.
  
  Example for one DN7100 named "c" :
  
                 cwd >site>dsa>fdd
                 cd dn7{c}
                 copy_acl dn7x dn7{c}
                 copy_iacl_seg dn7x dn7{c}
                 cwd dn7{c}
                 cr dn7.value
                 cp >sl3p>dsa>mod>config  -nm
                            (to  keep  add_name config.a)
  
  
  
  

  
  
  
  Update  config  with  your  preferred  text  editor  according to
  specific datanet configuration.
  
                 <update>.....
  
  

  =================================================================
                             STEP 8
  =================================================================
  
  
  
  
  
  
  Directory >sl3p>dsa>models  contains some updated tools  you have
  to install at their right place on your site :
  
         install_table.ec                     in >udd>sm>lib>ecs
         sldd_install_part2.ec                in >udd>sl>sldd_work>st
         admin_1.ec                           in >sc1
  
  Note :  update entry "init_dsa" in  admin_1.ec in order to log in
  as much DSA_CXI Daemon processes  as you have datanets configured
  in dsa mode.  You have just to repeat following line :
  
             ec &ec_dir>&ec_name start_dn7 {c} -ldab
  
  ---------------
  
  You  have  to  extend  system_search_rules  in  order  to explore
  >sl3p>dsa>e :
  
  If >sc1>site_rules does not exist :
  
     - create it from >sl3p>dsa>mod>site_rules.
     - add in >sc1>ssu.ec command line
  
                 set_system_search_rules >sc1>site_rules
  
  If >sc1>site_rules exists, just add in following line:
  
  >system_library_3rd_party>dsa>execution,default,system_libraries,io_daemon

  =================================================================
                             STEP 9
  =================================================================
  
  
  
  
  
  

  
  
  
  This step  consists in incorporation  of all DSA  programs within
  system_search_path's (ec ,trans, info) and system libraries.
  
  Adjustment  of  standard  library  descriptor  to incorporate DSA
  library.  Look at a suggestion in
  
             >sl3p>dsa>models>multics_libraries_.ld .
  
  Adjustment  of system  default  search_path's.   (trans ,  ec and
  info)  >sldd>sss>s>search_lists_defaults_.cds is to  be modified.
  Look at
  
             >sl3p>dsa>models>search_list_defaults_.cds
  
  
  Any SysLib  process can perform installation of  these 2 programs
  using usual ways (wd in >udd>sl>sldd_work):
  
             ec sldd_install sss search_list_defaults_.cds
             ec sldd_install t multics_libraries_.ld
  

  =================================================================
                             STEP 10
  =================================================================
  
  
  If you  have never used admin.ec  extension, modify >sc1>admin.ec
  in order to reach x commands contained in admin_1.ec.Suggestion :
  
  
  &label BAD_X
  &label &1
  ec &ec_dir>admin_1 &rf1
  &quit
  
  Note  that you  may need  also to  modify both  command "doc" and
  "help" in order to find informative headers.
  
  ---------------
  
  Modify  master.ec (label  crank) to  clean up  various dsa  logs.
  Suggestion :
  
  move_log_segments dn7{c} >sc1>as_logs history 1week
  ....
  move_log_segments uft >sc1>as_logs history 1week
  move_log_segments dsa_al >site>dsa>aep_logs_dir  history  1week
  move_log_segments (r s)_log >site>dsa>uft_logs_dir history  1week
  lsdrb >site>dsa>system_logs_dir  7 7
  lsrb >site>dsa>system_logs_dir>**  4  4  4
  
  
  

  
  
  
  move_log_segments  dsa_sal >site>dsa>system_logs_dir  history 1week
  move_log_segments dsa_sl >site>dsa>system_logs_dir history  1week
  lsrb >site>dsa>system_logs_dir>** 2 2 2
  lsdrb >site>dsa>system_logs_dir 2 7
  
  
  date_deleter >sc1>comms 7 NIF.nif.? NIF.nif.?? NIF.nit.? NIF.nit.??
                            NIF.*.*.io date_deleter >site>dsa 7 nit.?
  
  ---------------
  
  Modify >sc1>system_start_up.ec to start  dsa at system reboot and
  route various logs and messages.  Suggestion:
  
  sc_command define dn7{c} log dn7{c}
  ...
  sc_command define  uft log uft
  
  sc_command route (dn7{c} uftr ufts) user_i/o bkc
  sc_command route (dn7{c}   uftr   ufts)  error_i/o  bkc
  sc_command route  dn7{c} (user_i/o error_i/o log_i/o) dn7{c}
  ...
  sc_command route  uftr (user_i/o  error_i/o log_i/o) uft
  sc_command route ufts (user_i/o error_i/o log_i/o) uft
  
  At the end of ssu.ec, add the line :
  
                    ec admin_1 init_dsa

  =================================================================
                           STEP 11
  =================================================================
  
  
  
  
  
  Take in your working_dir model of NIF.nif (>sl3p>dsa>mod>NIF.nif)
  and  update  it  according  to  your  site.   Note that directory
  >site>dsa>acs is already created ,  and contains acs segments you
  have  to introduce  in NIF.    Once updated,  get object  segment
  NIF.nit by
  
                 >sl3p>dsa>e>dsa_cv_nif NIF
  
  and install  it using new install_table.ec.   Current NIF.nif and
  NIF.nit may be placed in >sc1>comms, and segment nit is installed
  in >site>dsa by modified exec_com install_table.ec.
  
  ---------------
  
  
  
  

  
  
  
  Check  current CMF  :  DN7100's  must be  correctly declared  for
  gateway mode.
                      (Example is in >sl3p>dsa>mod).

  =================================================================
                            STEP 12
  =================================================================
  
  
  
  Shut the system.
  
  Initializing Datanet 7100 (at maintenance pannel) is careful.
      (STEP, CLEAR, LOAD, RUN, EXECUTE)
  
  Once at BCE level, modify config  deck to introduce the two cards
  and reboot as usually:
  
                  bce (boot) :  config
                  a
                  prph dia{c} <iom_tag> <iom_channel>
                  prph fnp{c} <iom_tag> <iom_channel> 7100. on
                  f
                  w
                  q
                  bce (boot) :  reinit
                  bce (boot) :  ec auto star

  =================================================================
                                STEP 13
  =================================================================
  
  
  
  
  
  During  boot,  recently  registered  (Sys)Daemons  will  log  in,
  introducing (at  first reboot only) some  abnormal error messages

  =================================================================
                                STEP 14
  =================================================================
  
  
  
  
  
  Once  system ready, we  must generate a  runnable image for  each
  datanet.
  
                       x gen_dn7 {c} -rl c1m4 -fw 640
  
  
  

  
  
  
  On  line  generation  will  take  about  20 minutes.  Informative
  messages  are printed  out .   (ignore list  of "UNKNOWN  SYMBOL"
  while patches sets are entered).
  
  If everything is ok, you get the message
  
                      >>>>> DN7 LOADED AND STARTED
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

  
  
  
  
  
  
  
  
  
                              APPENDIX B
  
  
                              EXEC_COMS
  
  
  
  
       Following are six entry points for admin_dsa.ec.
  
  
  (1) First exec_com:
  
  &version 2
  &trace off
  &-----------------------------------------------------------------------------
  &- Needs 5 args: dn7 to be generated, dn7 release, patches fw, image, start
  &-                       (dn7x)        (eg c1m4)    (FWYWW)          (true/fls)
  &- These args have already been checked for consistency by admin_1.ec
  &- We are in dsafwd of dn7 to be generated by CXI start_up.
  &-----------------------------------------------------------------------------
  &if &[e not [e equal &n 5]] &then &goto usage
  ec stop_dn7
  ..ec update_fwd &1 &2 &3
  &set DSAFWD &[e wd]
  &print ...... BEGINNING GENERATION OF &4.
  &goto &ec_name
  
  &label gen_dn7
        &set MAP imamem.[e date].map
        load IMAMEM.i -fc -nt
        execute_in_frontend &(MAP) -fc -nt -go  &(DSAFWD)>config -P2 PATCH1 PATCH2 PATCH4 -MAP -SV imamem.i
  
  &label gen3_dn7
        &set MAP3 [e entry &4].[e date].map3
        load imamem.i -fc -nt
        execute_in_frontend &(MAP3) -fc -nt -go -P2 PATCH3 TMCK TASY -FOR TASYGO TMCKGO -MAP -SV &4
        &print ...... GENERATION OF &4 COMPLETED.
        e vs release &2
        e vs fw &3
        e vs image &4
  
  
  
  
  
  
  

  
  
  
  &if &5 &then ec load_dn7 &4
  &label END
  e cwd
  &quit
  &label usage
  &print ***** Syntax  : &ec_name <dn7> <release> <fw> <image_path> <start value>
  &quit
  
  
  (2) Second exec_com:
  
  &version 2
  &trace off
  &-----------------------------------------------------------------------------
  &- This ec should load the datanet in any case, then start it.
  &- Default working_dir is the dsafwd of the specified frontend
  &- Needs 1 arg : absolute_pathname of image to be loaded.
  &-----------------------------------------------------------------------------
  &default final_image.i
  ..cwd
  ec stop_dn7
  &set IMAGE &1
  &print ...... LOADING DN7
  load &(IMAGE) -fc -nt
  execute_in_frontend -nli -nt -fc -go  -TR 6000
  &print >>>>>> DN7 LOADED <<<<<<
  start_frontend  -fc -nt
  ..pause 20
  &print >>>>>> DN7 LOADED AND STARTED <<<<<<
  &set start_driver_value &[start_driver -fc]
  &print ***** ERROR : START ABORTED ON DN7 (&(start_driver_value))
  &goto &(start_driver_value)
  &label not_responding
  &label interrupt
  &label error
  &label bad_pcw
  ec stop_dn7
  &print ***** WARNING : Specified datanet needs manual intervention.
  &label quit
  &quit
  &label reboot
  ec auto_reboot
  &quit
  
  
  (3) Third exec_com:
  
  &version 2
  &trace off
  &------------------------------------------------------------------------------
  &- 1- the frontend must be loaded and stopped before.
  &- 2- we will try to start the driver
  
  

  
  
  
  &- 3- if it returns with something else then quit, that means the DN7 is not
  &-    loaded
  &- 4- so load it
  &- 5- we are in wd of datanet to be started.
  &- If argument exists : path of image to be reloaded (depends on abort case).
  &------------------------------------------------------------------------------
  ec stop_dn7
  &print >>>>>> DN7 STARTED <<<<<<
  start_frontend -local_image -fc -notify
  ..pause 20
  &set start_driver_value &[start_driver -fc]
  &print ***** ERROR : START ABORTED ON DN7 (&(start_driver_value))
  &goto &(start_driver_value)
  &label not_responding
  &label interrupt
  &label error
  &if &is_defined(1) &then ec load_dn7 &1 -fc
  &else &quit
  &label reboot
  ec auto_reboot
  &label quit
  &quit
  &label bad_pcw
  &if &is_defined(1) &then ec load_dn7 &1 -fc
  &else &print ***** Manual intervention required.
  &quit
  
  
  (4) Fourth exec_com:
  
  &version 2
  &trace off
  &-----------------------------------------------------------------------------
  &- This ec will stop frontend and driver.
  &- We are in wd of datanet to be stopped.
  &-----------------------------------------------------------------------------
  ..cwd
  stop_driver -fc -nt
  stop_frontend -fc -nt
  &print >>>>>> DN7 STOPPED <<<<<<
  &quit
  
  
  (5) Fifth exec_com:
  
  &version 2
  &trace off
  &-----------------------------------------------------------------------------
  &- This exec_com is executed when the DN8 crashes.
  
  
  
  
  

  
  
  
  &-----------------------------------------------------------------------------
  ec dump_dn7
  ec load_dn7
  &quit
  
  
  (6) Sixth exec_com:
  
  &version 2
  &trace off
  &-----------------------------------------------------------------------------
  &- This ec should take a dump and nothing else
  &-----------------------------------------------------------------------------
  ..cwd
  &print >>>>>> DUMPING DN7 <<<<<<
  dump &rf1
  &print >>>>>> DN7 DUMPED <<<<<<
  &quit
  .fin