Rfc0466
TitleTelnet logger/server for host LL-67
AuthorJ.M. Winett
DateFebruary 1973
Format:TXT, HTML
Status:UNKNOWN






Network Working Group                                          J. Winett
Request for Comments: 466                                          LL-67
NIC: 14740                                              27 February 1973
Category: TELNET


                  TELNET LOGGER/SERVER For Host LL-67

   The attached writeup documents the TELNET LOGGER/SERVER for the
   CP/CMS system on the Lincoln Laboratory 360>67 (host 10).  The
   facility serves both half duplex and full duplex TELNET users with
   data in either ASCII or EBCDIC codes.

   Use of the hide-your-input and noecho TELNET controls are used for
   the EBCDIC print suppress (bypass) and print restore features during
   the login procedure.  To support half duplex terminals, the TELNET
   control break (reverse break) is sent as an input prompt when input
   is desired.  This code can also be used to indicate that a previous
   line sent without an end of line sequence (CR-LF) should be printed.
























   This material has not been reviewed for public release and is
   intended only for use with the ARPA network.  It should not be quoted
   or cited in any publication not related to the ARPA network.





RFC 466           TELNET LOGGER/SERVER For Host LL-67      February 1973


                    Operation of the Lincoln Laboratory
                        CP/CMS TELNET LOGGER/SERVER

ICP Connection

   The TELNET LOGGER/SERVER follows the ICP protocol for making a pair
   of connections.  The LOGGER is initially enabled for a connection on
   socket X'00000001'.  When an RFC is received for this socket a pair
   of sockets will be chosen for the TELNET connections.  If the maximum
   number of TELNET users which can be served are active, the initial
   connection is refused.  Currently, three TELNET users can be served.

TELNET LOGGER

   After the ICP connections have been setup, the LOGGER expects a
   TELNET data type code, a string of network ASCII characters, or a
   null line (just CR-LF) to indicate whether its operation should be in
   ASCII or in EBCDIC character codes.  ASCII is assumed unless the
   first byte received is the TELNET EBCDIC data type code (X'A2).  When
   something has been received, the message:

                     Lincoln Laboratory CP/CMS Online

   will be transmitted by the LOGGER.  For example, if ASCII operation
   is desired a null line (just CR-LF) transmitted on the send socket
   will cause the welcoming message to be sent in ASCII.  The CP login
   procedure can then begin.  If communications is desired to be carried
   on with EBCDIC character codes, the first byte transmitted should be
   the TELNET data type code for EBCDIC (X'A2').  Thereafter all
   communications will be in the code originally used.

   The CP login procedure expects the user to enter:

                               LOGIN userid

   where the userid specifies the desired virtual machine.  CP then
   replies with:

                              ENTER PASSWORD:

   followed by the EBCDIC code for bypass (x'24') which is mapped into
   the TELNET code hide-your-input.

   The user should then enter a password.  Passwords entered from the
   network may be different from those entered from a local terminal.
   The LOGGER maps network passwords into a corresponding CP password.
   Thus, access to an account can only be made from the network if a
   network password, together with a CP password and userid, is entered



RFC 466           TELNET LOGGER/SERVER For Host LL-67      February 1973


   into a file which is read by the LOGGER.  If a userid entered from
   the network is not in the LOGGER FILE (or if the network password
   does not match the one included in the file for the specified userid)
   the LOGGER passes an invalid userid (or password) to CP.  The CP
   response for an invalid userid or password is then sent to the
   network user.

   After a password is received by CP, CP transmits the EBCDIC code for
   restore (X'14') which is mapped into the TELNET control noecho.

TELNET SERVER

   Since the CP/CMS system operates with EBCDIC codes, ASCII codes must
   be translated into EBCDIC before being sent to a virtual machine.
   Figure 1 gives the ASCII codes and their EBCDIC mapping.  When the
   ASCII sequence CR-LF is received, it is mapped into the EBCDIC code
   NL.  Whenever the TELNET control NOP is included in an input string,
   it is mapped into an EBCDIC idle (X'17') and then removed from the
   string.  Thus, if TELNET NOP codes are included between a CR and LF,
   they are removed before the CR-LF is mapped into the EBCDIC NL.

   The TELNET control hide-your-input is mapped into the EBCDIC code for
   bypass (X'24') and the TELNET control echo is mapped into the EBCDIC
   control for restore (X'14').  If the TELNET control echo is received,
   the SERVER should send the control noecho but this feature has not
   yet been implemented.  Instead, the TELNET control echo is mapped
   into the EBCDIC code X'23'.  If the TELNET break is received, it is
   interpreted as an attention signal and the appropriate action is
   taken by CP or CMS.

   CP/CMS is a line at a time system and expects all input to consist of
   lines ending with a NL code.  Characters received are buffered until
   the newline code is received.

   Since CP/CMS is also a half duplex system, characters are only
   examined when the system is expecting input.  If the system is not
   expecting input, a network interrupt is required to cause the SERVER
   to process received characters.  On receipt of a network interrupt,
   characters received before the TELNET data mark is received are
   examined and discarded, except that if a TELNET break code is found,
   the appropriate CP/CMS interrupt action is stimulated.

   On output, EBCDIC codes are mapped into network ASCII if a mapping
   exists; otherwise, the codes are mapped into the TELNET control NOP.
   A NL code is mapped into CR-LF.  The EBCDIC code for bypass maps into
   the TELNET control hide-your-input and the EBCDIC code for restore
   maps into the TELNET control noecho.  Also, the code X'23' maps into
   the TELNET control echo and the code X'38' maps into the TELNET



RFC 466           TELNET LOGGER/SERVER For Host LL-67      February 1973


   control break.

   Since CP/CMS is a line at a time, half duplex system the TELNET
   control break is transmitted as an end of message signal and also as
   an input prompt code.  If characters were output without a NL, the
   break, as an end of message code, indicates to the user TELNET
   operating on a line at a time mode that the characters previously
   transmitted should be printed without waiting for the end of line
   sequence.  If the user TELNET is also operating in a half duplex
   mode, the break as an input prompt indicates that the system is ready
   for input.

   If input had been anticipated and sent by a full duplex user TELNET,
   the TELNET SERVER will have that input available for immediate
   processing.  Thus, in the case of a full duplex user TELNET the break
   as a prompt should be ignored.

   Though CP/CMS operates in a half duplex mode, it supports half duplex
   terminals with the reverse break feature allowing the system to abort
   an input mode in order to transmit a priority output message.  In
   this situation, the TELNET SERVER transmits a TELNET SYNC.  A half
   duplex user TELNET should interpret this by aborting the input mode,
   i.e., revoking a previous TELNET break which was interpreted as an
   input prompt.

   No codes in the output character stream can cause the TELNET data
   mark to be transmitted.

LOGOUT

   When a user logs out from his virtual machine, CP passes the
   equivalent of a line disconnect to the LOGGER.  The LOGGER then
   closes the TELNET send and receive sockets.


















RFC 466           TELNET LOGGER/SERVER For Host LL-67      February 1973


   ASCII    ASCII    ASCII    SYMBOLS    EBCDIC    EBCDIC
   DEC      OCT      HEX                 HEX       DEC

     0        0      (00)      NUL       (00)       00
     1        1      (01)      SOH       (01)       01
     2        2      (02)      STX       (02)       02
     3        3      (03)      ETX       (03)       03
     4        4      (04)      EOT       (37)       55
     5        5      (05)      ENQ       (2D)       45
     6        6      (06)      ACK       (2E)       46
     7        7      (07)      BEL       (2F)       47
     8       10      (08)      BS        (16)       22
     9       11      (09)      HT        (05)       05
    10       12      (0A)      LF        (25)       37
    11       13      (0B)      VT        (0B)       11
    12       14      (0C)      FF        (0C)       12
    13       15      (0D)      CR        (0D)       13
    14       16      (0E)      SO        (0E)       14
    15       17      (0F)      SI        (0F)       15
    16       20      (10)      DLE       (10)       16
    17       21      (11)      DC1       (11)       17
    18       22      (12)      DC2       (12)       18
    19       23      (13)      DC3       (13)       19
    20       24      (14)      DC4       (3C)       60
    21       25      (15)      NAK       (3D)       61
    22       26      (16)      SYN       (32)       50
    23       27      (17)      ETB       (26)       38
    24       30      (18)      CAN       (18)       24
    25       31      (19)      EM        (19)       25
    26       32      (1A)      SUB       (3F)       63
    27       33      (1B)      CTL       (27)       39
    28       34      (1C)      FS        (1C)       28
    29       35      (1D)      GS        (1D)       29
    30       36      (1E)      RS        (1E)       30
    31       37      (1F)      US        (1F)       31

                       ASCII/EBCDIC Code Mappings
                                FIGURE 1













RFC 466           TELNET LOGGER/SERVER For Host LL-67      February 1973


   ASCII    ASCII    ASCII    SYMBOLS    EBCDIC    EBCDIC
   DEC      OCT      HEX                 HEX       DEC

    32       40      (20)      SP        (40)       64
    33       41      (21)      !         (5A)       90
    34       42      (22)      "         (7F)      127
    35       43      (23)      #         (7B)      123
    36       44      (24)      $         (5B)       91
    37       45      (25)      %         (6C)      108
    38       46      (26)      &         (50)       80
    39       47      (27)      '         (7D)      124
    40       50      (28)      (         (4D)       77
    41       51      (29)      )         (5D)       93
    42       52      (2A)      *         (5C)       92
    43       53      (2B)      +         (4E)       78
    44       54      (2C)      ,         (6D)      109
    45       55      (2D)      -         (60)       96
    46       56      (2E)      .         (4B)       75
    47       57      (2F)      /         (61)       97
    48       60      (30)      0         (F0)      240
    49       61      (31)      1         (F1)      241
    50       62      (32)      2         (F2)      242
    51       63      (33)      3         (F3)      243
    52       64      (34)      4         (F4)      244
    53       65      (35)      5         (F5)      245
    54       66      (36)      6         (F6)      246
    55       67      (37)      7         (F7)      247
    56       70      (38)      8         (F8)      248
    57       71      (39)      9         (F9)      249
    58       72      (3A)      :         (7A)      122
    59       73      (3B)      ;         (5E)       94
    60       74      (3C)      <         (4C)       76
    61       75      (3D)      =         (7E)      126
    62       76      (3E)      >         (6E)      110
    63       77      (3F)      ?         (6F)      111

                        ASCII/EBCDIC Code Mappings
                           FIGURE 1 (CONTINUED)













RFC 466           TELNET LOGGER/SERVER For Host LL-67      February 1973


   ASCII    ASCII    ASCII    SYMBOLS    EBCDIC    EBCDIC
   DEC      OCT      HEX                 HEX       DEC

    64      100      (40)      @         (7C)      124
    65      101      (41)      A         (C1)      193
    66      102      (42)      B         (C2)      194
    67      103      (43)      C         (C3)      195
    68      104      (44)      D         (C4)      196
    69      105      (45)      E         (C5)      197
    70      106      (46)      F         (C6)      198
    71      107      (47)      G         (C7)      199
    72      110      (48)      H         (C8)      200
    73      111      (49)      I         (C9)      201
    74      112      (4A)      J         (D1)      209
    75      113      (4B)      K         (D2)      210
    76      114      (4C)      L         (D3)      211
    77      115      (4D)      M         (D4)      212
    78      116      (4E)      N         (D5)      213
    79      117      (4F)      O         (D6)      214
    80      120      (50)      P         (D7)      215
    81      121      (51)      Q         (D8)      216
    82      122      (52)      R         (D9)      217
    83      123      (53)      S         (E2)      226
    84      124      (54)      T         (E3)      227
    85      125      (55)      U         (E4)      228
    86      126      (56)      V         (E5)      229
    87      127      (57)      W         (E6)      230
    88      130      (58)      X         (E7)      231
    89      131      (59)      Y         (E8)      232
    90      132      (5A)      Z         (E9)      233
    91      133      (5B)      [         (AD)      173
    92      134      (5C)     <cent>     (4A)       74  (BACK-SLASH)
    93      135      (5D)      ]         (BD)      189
    94      136      (5E)      ^         (71)      113  (CARAT)
    95      137      (5F)      _         (6D)      109

                        ASCII/EBCDIC Code Mappings
                           FIGURE 1 (CONTINUED)













RFC 466           TELNET LOGGER/SERVER For Host LL-67      February 1973


   ASCII    ASCII    ASCII    SYMBOLS    EBCDIC    EBCDIC
   DEC      OCT      HEX                 HEX       DEC

    96      140      (60)      `         (79)      121  (GRAVE)
    97      141      (61)      a         (81)      129
    98      142      (62)      b         (82)      130
    99      143      (63)      c         (83)      131
   100      144      (64)      d         (84)      132
   101      145      (65)      e         (85)      133
   102      146      (66)      f         (86)      134
   103      147      (67)      g         (87)      135
   104      150      (68)      h         (88)      136
   105      151      (69)      i         (89)      137
   106      152      (6A)      j         (91)      145
   107      153      (6B)      k         (92)      146
   108      154      (6C)      l         (93)      147
   109      155      (6D)      m         (94)      148
   110      156      (6E)      n         (95)      149
   111      157      (6F)      o         (96)      150
   112      160      (70)      p         (97)      151
   113      161      (71)      q         (98)      152
   114      162      (72)      r         (99)      153
   115      163      (73)      s         (A2)      162
   116      164      (74)      t         (A3)      163
   117      165      (75)      u         (A4)      164
   118      166      (76)      v         (A5)      165
   119      167      (77)      w         (A6)      166
   120      170      (78)      x         (A7)      167
   121      171      (79)      y         (A8)      168
   122      172      (7A)      z         (A9)      169
   123      173      (7B)      {         (8B)      139
   124      174      (7C)      |         (4F)       79  (BAR/OR)
   125      175      (7D)      }         (9B)      155
   126      176      (7E)    <bent bar>  (5F)       95  (TILDE/NOT)
   127      177      (7F)      DEL       (07)        7

   ASCII   ASCII   ASCII    TELNET         EBCDIC     EBCDIC
   DEC     OCT     HEX     CONTROLS        HEX        DEC

   128     100     (80)   DATA-MARK        (80)       128
   129     101     (81)   BREAK            (38)        56
   130     102     (82)   NOP              (17)        23  IDLE
   131     103     (83)   NOECHO           (14)        20  RESTORE
   132     104     (84)   ECHO             (23)        35
   133     105     (85)   HIDE-YOUR INPUT  (24)        36  BYPASS

                        ASCII/EBCDIC Code Mappings
                           FIGURE 1 (CONTINUED)



RFC 466           TELNET LOGGER/SERVER For Host LL-67      February 1973


        [This RFC was put into machine readable form for entry]
    [into the online RFC archives by Helene Morin, Via Genie, 12/99]