home *** CD-ROM | disk | FTP | other *** search
/ ProfitPress Mega CDROM2 …eeware (MSDOS)(1992)(Eng) / ProfitPress-MegaCDROM2.B6I / BBS / NETMAIL / FTSC_ALL.ZIP / FSC-0024.TXT < prev    next >
Encoding:
Text File  |  1988-08-24  |  35.6 KB  |  794 lines

  1. FSC-0024 - A Proposal for a Type-3 Mail Bundle - Oliver McDonald
  2.  
  3.  
  4.  
  5.  
  6.             Notes on Type three bundlers.
  7.             Notes on Type three bundlers.
  8.  
  9.                  The first  important note is that without Wynn Wagner's
  10.             work on FTSC-0014, none of this would have come to fruition.
  11.             I owe him a great debt in this area, as well as the debt for
  12.             Opus itself that got me into this.  Thanks Wynn.
  13.  
  14.                  Type 3  bundlers offer  opportunities for new levels of
  15.             sophistication in mail processing.  As the first step Aurora
  16.             Computer Technologies plans to provide the minimum specified
  17.             by the  existing Type 3 bundle specifications with one minor
  18.             addition.  This addition is the inclusion of the features of
  19.             ReMapper.   This addition  is not  a required  inclusion for
  20.             other software authors producing a Type 3 bundler.
  21.  
  22.                  To sum up, standard required features are:
  23.  
  24.               Must be able to create and unbundle Type 2 Bundles (See
  25.                 FSC-0001)
  26.               Must be able to create and unbundle Type 3 Bundles (See
  27.                 attached)
  28.               Must be able to Toss EchoMail from either Type 2 OR 3
  29.                 bundles
  30.               Must generate an update-required message for the sysop if
  31.                 the MinorVersion changes.
  32.               Must generate an update-required message if it encounters
  33.                 a misc packet type it does not recognize.
  34.  
  35.                  Initial optional features are:
  36.  
  37.               May Duplicate the functionality of ReMapper.
  38.               May automatically generate an F.Req. from source of bundle
  39.                 when the minor version changes.
  40.               May generate an F.Req from source of bundle if it
  41.                 encounters a misc packet type it does not recognize.
  42.               All error messages are placed in Matrix Mail messages to
  43.                 the Sysop.
  44.               Will create outbound bundles on the fly from the inbound
  45.                 bundle.  Does not need to scan these messages.  Note, if
  46.                 this option is exercised it is IMPERATIVE that the areas
  47.                 are scanned prior to the unbundle process.
  48.  
  49.                  Type 3.0 proposal (preliminary)
  50.                  Type 3.0 proposal (preliminary)
  51.  
  52.                  This proposal allows for automatic updating of the Type
  53.             3 bundle  to allow  for further  revisions and enhancements.
  54.             Thus we will refer to it as a Type 3.0 with further versions
  55.             becoming Type 3.1 etc.
  56.  
  57.                  All multi-byte  data forms (int/long) are considered to
  58.             have the  MSB first and the LSB last.  Int is two bytes, and
  59.             Long is four.
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66.                       Bundle Header
  67.                       Bundle Header
  68.  
  69.               struct _BundleHeader {
  70.                          struct _Address  B_Destination;
  71.                          struct _Address  B_Origination;
  72.                          unsigned nybble  B_BundlerVersionMajor;
  73.                          unsigned nybble  B_BundlerVersionMinor;
  74.                          unsigned byte    B_ProductCode;
  75.                          unsigned byte    B_VersionMinor;
  76.                          unsigned byte    B_VersionMajor;
  77.                          unsigned long    B_CreationTime;
  78.                          unsigned byte    B_Password[8];
  79.               };
  80.  
  81.                            Bundle Header Notes
  82.  
  83.                  This works out to 32 bytes which is a nice size to work
  84.             with.
  85.  
  86.                  Here follows a short explanation for each field:
  87.  
  88.                  "B_BundlerVersionMajor/Minor"   provide   for   version
  89.             numbers from  0.0 to  16.16, this  should be  enough for all
  90.             except TJ.
  91.  
  92.                  "B_ProductCode" is  the  FTSC  assigned  product  code.
  93.             This can  be used  to identify  just which  type  3  bundler
  94.             created the  bundle; it should not be considered an error if
  95.             this  is   unidentified,  and   need  not  be  processed  on
  96.             unbundling but  MUST be included _correctly_ at the bundling
  97.             stage.
  98.  
  99.                  "B_VersionMinor"  is   a  version   number  that   will
  100.             initially start  at Zero  and is  used to allow non backward
  101.             compatible changes  to Type 3 bundles, such as header length
  102.             change.     If  this   is  LOWER  in  the  bundle  than  the
  103.             corresponding version  number in  the  unbundler  it  should
  104.             abend.   It is  suggested that a short message be written to
  105.             the Sysop  in NETMAIL  with as much information gleaned from
  106.             the header  as possible.  (All  info  up  to  and  including
  107.             "B_VersionMajor".)
  108.  
  109.                  "B_VersionMajor", always 3.  This and all data prior to
  110.             this point  is position  dependant and will never be changed
  111.             in future Type 3.0 bundle revisions.
  112.  
  113.                  "B_CreationTime" is  an Unix  1970 based  creation time
  114.             indicating the time/date the bundle was created.
  115.  
  116.                  "B_Password" is  a NULL padded character array that may
  117.             contain uppercase  alpha bytes  or ASCII  digits.  It should
  118.             not  contain   lowercase  characters,  punctuation,  control
  119.             characters etc.  A maximum of 8 characters are significant.
  120.  
  121.  
  122.  
  123.  
  124.  
  125.  
  126.                       Struct _Address
  127.                       Struct _Address
  128.  
  129.               struct _Address {
  130.                          unsigned int     Zone;
  131.                          unsigned int     Net;
  132.                          unsigned int     Node;
  133.                          unsigned int     Point;
  134.               };
  135.  
  136.               struct _AddressShort {
  137.                          unsigned int     Net;
  138.                          unsigned int     Node;
  139.               };
  140.  
  141.                       Bundle Footer
  142.                       Bundle Footer
  143.  
  144.               Struct _BundleEnd {
  145.                          Unsigned Byte    E_Packet_Type  /* Always 0    *
  146.                 /
  147.               };
  148.  
  149.                            Bundle Footer notes.
  150.  
  151.                  All bundles  end with  this packet.  It is not optional
  152.             and the  packet should  be  considered  grundged  if  it  is
  153.             missing.
  154.  
  155.                       Area header
  156.                       Area header
  157.  
  158.               Struct _AreaHeader
  159.                          Unsigned byte    E_Packet_Type  /* Always 1 */
  160.                          Unsigned byte    E_NameLength   /* Actual bytes
  161.                 in E_NAME */
  162.                          Unsigned Byte    E_Name[1]      /* Variable
  163.                 length field */
  164.  
  165.                            Area Header Notes
  166.  
  167.                  The area header packet marks the start of a sequence of
  168.             messages destined  to the  same  message  area.    The  area
  169.             indicated in  the Area Header will remain valid until either
  170.             the end of the bundle OR another Area Header is encountered.
  171.  
  172.                  E_Name will  usually contain  the area name of the echo
  173.             area that subsequent messages should go.  If E_NameLength is
  174.             zero then  the subsequent  messages should  go  the  NetMail
  175.             area.   Any messages  that occur  prior to  the  first  Area
  176.             Header in a bundle should also go to the Netmail area.
  177.  
  178.                  The Maximum value for E_NameLength is 63.
  179.  
  180.                  E_Name is NOT null terminated.
  181.  
  182.  
  183.  
  184.  
  185.  
  186.  
  187.                       Message Header
  188.                       Message Header
  189.  
  190.               Struct _MessageHeader {
  191.                          Unsigned byte    M_Packet_Type  /* Always 2 */
  192.                          Struct _Address  M_Destination  /* Final
  193.                 Destination */
  194.                          Struct _Address  M_Origin       /* Where the
  195.                 message was entered */
  196.                          Unsigned Long    M_CreationTime /* When the
  197.                 message was entered */
  198.                          Unsigned int     M_Attributes   /* FTSC
  199.                 bitweights */
  200.                          Unsigned byte    M_FromLength
  201.                          Unsigned byte    M_ToLength
  202.                          Unsigned byte    M_SubLength
  203.                          Unsigned byte    M_From[1]
  204.                          Unsigned byte    M_To[1]
  205.                          Unsigned byte    M_Sub[1]
  206.               };
  207.  
  208.                            Message Header Notes
  209.  
  210.                  Every message  begins with a message header packet.  It
  211.             should  be   created  by   the  system   where  the  message
  212.             originated.   If there  are any intermediate stops along the
  213.             way it  is the  responsibility of  the intermediate  systems
  214.             along the  way to  maintain all  of the  information without
  215.             modification.
  216.  
  217.                  None  of   M_From,  M_To,  or  M_Sub  are  to  be  NULL
  218.             terminated.
  219.  
  220.                       Message Body
  221.                       Message Body
  222.  
  223.               Struct _Text {
  224.                          Unsigned byte    T_Packet_Type  /* Always 3 */
  225.                          Unsigned int     T_ByteCount    /* # of bytes (
  226.                 < 0x1000 ) */
  227.                          Unsigned byte    T_Data[1]      /* Variable
  228.                 length field */
  229.  
  230.                            Message Body Notes:
  231.  
  232.                  The message  body  is  considered  one  or  more  _Text
  233.             packets.
  234.  
  235.                  No _Text  packet will  be more  that 1000H  bytes  long
  236.             (that's 4096  to the  terminally base  10 folks).  Of course
  237.             there may  be a  near infinite  number of  _Text packets per
  238.             bundle/Message header,  but you  are  absolutely  positively
  239.             guaranteed that with the type 3.x method you will never need
  240.             a buffer larger than 1000H.
  241.  
  242.  
  243.  
  244.  
  245.  
  246.  
  247.                  In addition to ASCII values 20h through 7Eh (inclusive)
  248.             the following  control codes  are legal for TEXT data.  Note
  249.             that <CR> and <softCR> are NOT in this list, thus type three
  250.             packers will eliminate spurious 0Dh's.
  251.  
  252.               <LF>                        0Ah            Forced
  253.                 <CR>/<LF>
  254.               <dle>      10h              Replicate
  255.  
  256.                  Other control  characters and  values 7Fh and above are
  257.             symptomatic of a grundged message.
  258.  
  259.                  Replicate is  a  three  byte  sequence:  <dle>  <value>
  260.             <length>.   For example  if a packet contains the bytes 10h,
  261.             20h, 09h  it should  be expanded in the message body as nine
  262.             <space> characters.
  263.  
  264.                  There is  no minimum  or maximum  line  length,  it  is
  265.             assumed that  the reader  can supply  the  appropriate  line
  266.             wraps.
  267.  
  268.                  One "line" of a message may cross from one _Text packet
  269.             to another.
  270.  
  271.                       EchoMail:
  272.                       EchoMail:
  273.  
  274.               Struct _EchoMailInfo {
  275.                          Unsigned byte    EI_Packet_Type /* Always 4 */
  276.                          Struct _EID      EI_Parent      /* Up message
  277.                 thread */
  278.                          Struct _EID      EI_Child       /* Down message
  279.                 thread */
  280.                          Unsigned byte    EI_SeenByCount
  281.                          Unsigned byte    EI_PathCount
  282.                          Struct _AddressShort            EI_SeenBy[1]
  283.                          Struct _Address  EI_Path[1]
  284.               );
  285.  
  286.                            EchoMail notes:
  287.  
  288.                  The  EI_Child   and  EI_Parent   fields  are   used  to
  289.             reconstruct the message thread.
  290.  
  291.                  Type 3 bundles uses binary seenby and path information,
  292.             but should  convert to a normal seenby/path in the unbundled
  293.             messages.   If  the  auto-rebundleing  is  used  it  is  not
  294.             necessary  to   process  the   seenby's  into  the  unpacked
  295.             messages.   It is suggested that if this approach is used it
  296.             is HEAVILY tested prior to implementation, and that it still
  297.             store the data somewhere for retrieval in case of unresolved
  298.             dupe problems.
  299.  
  300.  
  301.  
  302.  
  303.  
  304.  
  305.                       Cargo Info.
  306.                       Cargo Info.
  307.  
  308.               Struct _PointInfo {
  309.                          Unsigned byte    CI_Packet_Type /* always 05h
  310.                 */
  311.                          Unsigned byte    CI_File Count  /* Number of
  312.                 files */
  313.                          Unsigned byte    CI_FileName[1] /* Filenames
  314.                 (10 bytes */
  315.               };
  316.                            Cargo Info Notes
  317.  
  318.                  The Cargo  info packet  will only  be found in a Type 3
  319.             arcmail bundle  that contains  files.  It will always be the
  320.                                                            always
  321.             second packet in a bundle.
  322.  
  323.                       Node info
  324.                       Node info
  325.  
  326.               Struct _NodeInfo
  327.                          Unsigned byte    NI_Packet_Type /* always 06h  *
  328.                 /
  329.                          Unsigned int     NI_Flags       /* Flags for
  330.                 node     */
  331.               };
  332.  
  333.                  This packet  is sent  to a  Type 3.x  node in the first
  334.             bundle to  be sent  to that node.  The bundler should detect
  335.             that the  node can  accept a Type 3.x bundle from a nodelist
  336.             flag.   It will  automatically generate  this packet at that
  337.             point.   Should a  type 3.x  bundle come from a node that is
  338.             not identified  in the  nodelist as  type  3.x  capable  the
  339.             bundler should  mark that  node  as  Type  3.x  capable  and
  340.             generate a warning message.
  341.  
  342.                  NI_Flags, is  a bit  mapped field  that identifies  the
  343.             characteristics of  the node.  Some of this information will
  344.             duplicate that  information found  in the nodelist.  This is
  345.             used as a check.
  346.  
  347.               Bit:       Meaning:
  348.  
  349.  
  350.               0:                          Type 3
  351.               1:                          Packing Protocol Bits.
  352.               2:                             "        "      "
  353.               3:                             "        "      "
  354.               4:                          |Bits 3 & 4 are used together
  355.               5:                          |to determine mail handleing.
  356.               6:                          Ingate
  357.               7:                          OutGate
  358.               8:                          Net Host
  359.               9:                          Net Hub
  360.               A:                          <Reserved>
  361.               B:                          <Reserved>
  362.  
  363.  
  364.  
  365.  
  366.  
  367.  
  368.               C:                          <Reserved>
  369.               D:                          <Reserved>
  370.               E:                          Sent info
  371.               F:                          Got Info
  372.  
  373.                  Bits 1,  2, &  3 are  used to determine how mail may be
  374.             packed for this node (SEA, PKWare, ZOO)
  375.  
  376.               Bits 1 & 2 & 3:             Meaning:
  377.               000:       No packing.
  378.               001:       SEA Archive format.
  379.               011:       PKWare LZW packing format.
  380.               100:       ZOO Compression system.
  381.  
  382.                  Note that  these bits  were intended to be combined, so
  383.             that if  a node  could handle  ZOO and SEA Archives it would
  384.             set the  bits to  '101'.   Since by  definition  PKWare  can
  385.             handle SEA  format Arc's  it is  considered standard  to set
  386.             both bits for a PKWare capable system.
  387.  
  388.                  Bits 4  and 5  are used to determine how mail should be
  389.             sent to this node (CM, hold, direct)
  390.  
  391.               Bit 4 & 5: Meaning:
  392.  
  393.               00:        Direct
  394.               01:        Continous
  395.               11:        Hold
  396.  
  397.                  The sysop  should be  able to  clear the  sent info bit
  398.             should the status of his system change (ie becomeing an NC).
  399.             Zone gates  may be  identified by  the fact that they are in
  400.             Net 1  and they are both an ingate and an outgate.  The zone
  401.             they are the gate for is identified by their node number.
  402.  
  403.                       MiscInfo (IFNA Kludge).
  404.                       MiscInfo (IFNA Kludge).
  405.  
  406.               Struct _MiscInfo {
  407.                          Unsigned byte    MI_Packet_Type /* Always 06h -
  408.                 FFh, assigned by FTSC */
  409.                          Unsigned byte    MI_ByteCount   /* # of bytes
  410.                 of miscinfo */
  411.                          Unsigned Byte    MI_WhoKnows[1] /* Misc Stuff
  412.                 */
  413.               };
  414.  
  415.                            MiscInfo Notes:
  416.  
  417.                  The Misc info packet(s) are the last packets associated
  418.             with a  message, there  may be  more  than  one  in  extreme
  419.             circumstances, but  this should  prove to  be unlikely.  The
  420.             bundler  must   retain  any  information  in  these  packets
  421.             unchanged if it is a routed message.
  422.  
  423.  
  424.  
  425.  
  426.  
  427.  
  428.                  This is  a catch  all packet  that replaces the dreaded
  429.             IFNA kludge.   It  is designed to only be used as an interim
  430.             method.   At present  all IFNA  kludges are handled in other
  431.             special purpose  packets, it  is foreseen  that any  further
  432.             kludges will  be handled  only by miscinfo packets until the
  433.             Type 3.x  bundle specification  can be  updated and coded to
  434.             handle the new data.
  435.  
  436.                  MiscInfo packets  in the  range 80h  -  F0h  should  be
  437.             preserved if  not understood.   It  should be  considered an
  438.             error condition  to find a MiscInfo packet with in the range
  439.             04h -  7Fh, this  range is reserved for future expansions on
  440.             Type 3  packets.   Packets in  the range F1h - FFh should be
  441.             unpacked AND  a warning  message should be generated.  These
  442.             numbers will be used on an extremely temporary basis as they
  443.             are designed  for ESSENTIAL  IFNA kludges  and will be added
  444.             into the Type 3.x specification as quickly as possible.
  445.  
  446.                       Arcmail and Type 3.x
  447.                       Arcmail and Type 3.x
  448.  
  449.                  Type 3.x  bundlers support  arcmail much  the same  way
  450.             that the type 2 bundlers do.  There are some enhancements in
  451.             the arcmail  naming scheme  however, that help reduce system
  452.             overhead for routed mail.
  453.  
  454.                  For arcmail  destined for  type 2 based systems the old
  455.             reliable method of arcmail file naming will be used, IE:
  456.  
  457.               NNNNnnnn.ww#
  458.  
  459.                  Where NNNN  is a  four hex  digit net number, nnnn is a
  460.             four hex  digit node  number, ww is a two character weekday-
  461.             name identifier,  and #  is the  packet number for that day.
  462.             Type 3.x  packers SHOULD  generate the  day  name  correctly
  463.             rather than the OMMM 1.08 cyclic method.
  464.  
  465.                  Here  follows  a  suggested  Type  3.x  ArcMail  naming
  466.             scheme, basically a modification of Roeland Meyer's original
  467.             proposal.   I have  been made  aware that  Roeland has  some
  468.             things  to   say  on   this,  but   there  seems   to  be  a
  469.             communications break  between us, so until I can contact him
  470.             I will stick with this.
  471.  
  472.                  For Arcmail  destined to  a Type  3.x system (with Type
  473.             3.x bundles  internally), a  variation of  the method  first
  474.             proposed by  Roeland Meyer  will be  used.   Here follows  a
  475.             quick synopsis:
  476.  
  477.                  New address  specifier   (Re-edited by Oliver McDonald)
  478.             This is  designed for the Type 3.0 Arcmail naming convention
  479.             of:
  480.  
  481.               ZZNNNOOO.Fxx
  482.               |  |  |  ||
  483.  
  484.  
  485.  
  486.  
  487.  
  488.  
  489.               |  |  |  |`----> Incremental sequence number, base 10, max
  490.                 = 99d
  491.               |  |  |  |           Starts at 00 and counts to '99' then
  492.                 wraps
  493.               |  |  |  |           back to 00. No "Day-of-week" info.
  494.               |  |  |  |           This is strictly to avoid bundle
  495.                 collisions.
  496.               |  |  |  |           An 'empty' version of the bundle is
  497.                 kept
  498.               |  |  |  |           around to help the router remember
  499.                 what the
  500.               |  |  |  |           last sequence number was.
  501.               |  |  |  |
  502.               |  |  |  `-----> Flag to indicate bundle type
  503.               |  |  |              Allowed values:
  504.               |  |  |                 'All non-specified flags are
  505.                 reserved.
  506.               |  |  |                 'U' - ZOO File bundle
  507.               |  |  |                 'V' - ZOO Mail only bundle for a
  508.                 Point.
  509.               |  |  |                 'W' - ZOO Mail only bundle
  510.               |  |  |                 'X' - File bundle
  511.               |  |  |                 'Y' - Mail only bundle for a
  512.                 point.
  513.               |  |  |                 'Z' - Mail only bundle
  514.               |  |  |               For files with the 'Y' flag it is
  515.               |  |  |                sent as per normal until it reaches
  516.                 the
  517.               |  |  |                node specified by the arcname.  At
  518.                 this
  519.               |  |  |                point the node will unarc the FIRST
  520.                 bundle
  521.               |  |  |                in the arc, and read the Message
  522.                 Header,
  523.               |  |  |                and then attach the bundle to the
  524.                 point
  525.               |  |  |                specified.
  526.               |  |  |               For File bundles if the files are to
  527.                 be
  528.               |  |  |                forwarded, the node will unarc the
  529.                 bundle
  530.               |  |  |                in the arc.  It will check the
  531.                 message header
  532.               |  |  |                for address (match against name),
  533.                 and will open
  534.               |  |  |                the Cargo Info Bundle, and attach
  535.                 those files
  536.               |  |  |                to the destination.
  537.               |  |  |                 Note: If the addresses do not
  538.                 match it considered
  539.               |  |  |                an error to forward the files.
  540.               |  |  |                 Note: The point address is not
  541.                 considered for
  542.               |  |  |                matching purposes.
  543.  
  544.  
  545.  
  546.  
  547.  
  548.  
  549.               |  |  |
  550.               |  |  `--------> Node address,  base 36, max = 56,654d
  551.               |  |                 Allowed values: '000' to 'ZZZ'
  552.               |  |                 This is the Node part of the
  553.                 destination
  554.               |  |                 address of the bundle.
  555.               |  |                 Special values:
  556.               |  |                    '000'- Destination is the Net Host
  557.                 given by
  558.               |  |                           ZNNN, not forwarded to any
  559.                 Nodes.
  560.               |  |                    'ZZZ'- This a broadcast bundle to
  561.                 ALL Nodes
  562.               |  |                           in the Net given by ZNNN,
  563.                 as
  564.               |  |                           well as, the Net Host given
  565.                 by same.
  566.               |  |
  567.               |  `-----------> Net   address, base 36, max =  55,654d
  568.               |                    Allowed values: '000' to 'ZZZ'
  569.               |                    This is the Net part of the
  570.                 destination
  571.               |                    address of the bundle.
  572.               |                    Special values:
  573.               |                       '000' - Destination is the
  574.                 ZoneGate given by
  575.               |                               ZZ, not forwarded to any
  576.                 Nets.
  577.               |                       'ZZZ' - This a broadcast bundle to
  578.                 ALL Nets
  579.               |                               in the Zone given by ZZ,
  580.                 as well as,
  581.               |                               the ZoneGate given by
  582.                 same.
  583.               |
  584.               `--------------> Zone  address, base 36, max =   1,294d
  585.                                    Allowed values: '00' to 'ZZ'
  586.                                    This is the Zone part of the
  587.                 destination
  588.                                    address of the bundle.
  589.                                    Special values:
  590.                                      '00' - Destination is the current
  591.                 ZoneGate.
  592.                                      'ZZ' - This a broadcast bundle to
  593.                 ALL
  594.                                             ZoneGates given by the
  595.                 NodeList, as
  596.                                             well as, the ZoneGate given
  597.                 by same.
  598.  
  599.                  Note, Point  numbers are  specifically NOT  included in
  600.             the file  name identifier.   There  were a couple of reasons
  601.             for this;  first, we  wanted to  allow the  maximum range of
  602.             Zone:Net/Node  numbers   to  be  available;  second,  anyone
  603.  
  604.  
  605.  
  606.  
  607.  
  608.  
  609.             running points  should not  be doing  so on a minimal system
  610.             anyway.
  611.  
  612.                  Note(2),  Special   bundle  names   (ZZZ  or  000)  are
  613.             implemented optionally  by the  destination.  You should not
  614.             assume that  it will  work.   A future  Type 3.x  spec  will
  615.             include password protection for this.
  616.  
  617.                  The logic for providing for up to 100 packets allowable
  618.             to a  specific node  is that  I have seen cases of a :CM Net
  619.             Host generating  in excess  of 10 messages for a node in one
  620.             day, and the next logical number is 100.
  621.  
  622.                  Should a  Type 3.x  destination fall  outside the range
  623.             available to  the Type  3.x arcmail limits, then the bundler
  624.             will fall back and use the Type 2 arcmail naming scheme.
  625.  
  626.                  Notes on Zone Gates
  627.                  Notes on Zone Gates
  628.  
  629.                  With type 3 bundles the ZoneGates software load is MUCH
  630.             easier, all  it has  to do  is simply  forward the  Type 3.x
  631.             bundle.   It is  suggested that  it may be VERY desirable to
  632.                                                        VERY
  633.             have Type  3.x bundlers  duplicate the  functionality of the
  634.             Zone Gate  software.   At the  very  least  it  is  STRONGLY
  635.             suggested  that   ZoneGates  upgrade  to  Type  3.x  capable
  636.             bundlers as soon as they become available.
  637.  
  638.                  Notes for Type 3.x Developer's:
  639.                  Notes for Type 3.x Developer's:
  640.  
  641.                  The latest  specs for Type 3.x will be available in the
  642.             FTSC library  at all  times and at 1:342/1.  Developer's who
  643.             register with  1:342/1 will  have upcoming changes netmailed
  644.             to them  as they are confirmed.  Any upcoming change notices
  645.             will have  a date  officially implemented.   This  date will
  646.             always be in the future and should be considered an official
  647.             release date of the new Type 3.x standard.
  648.  
  649.                  Every attempt  will be  made  to  allow  developer's  a
  650.             reasonable time  period to  upgrade to the new standard.  It
  651.             is important  that developer's  attempt to meet this date as
  652.             these changes  are usually  NOT backward  compatible.   Code
  653.             samples will  also be  F.Req'able from  1:342/1 as the magic
  654.             file name  TYPE3x where x is the latest revision to the Type
  655.             3 standard.   Should  a developer  be  unable  to  meet  the
  656.             release  date   he  should  notify  the  FTSC  and/or  342/1
  657.             immediately.   The release date is based on an estimate made
  658.             by Aurora  Computer Technologies.  If there is a good reason
  659.             the release  date will  be pushed  back, and  ALL developers
  660.             will be  notified.  As the new Type 3.x standard will not be
  661.             official until  the release  date no  developer will release
  662.             his code early.
  663.  
  664.                  On that  subject, care should be taken by the developer
  665.             to let  no new  format bundles escape his beta test systems.
  666.  
  667.  
  668.  
  669.  
  670.  
  671.  
  672.             There are  a couple of approaches we recommend for this, the
  673.             first is  to have  beta test  versions only generate the new
  674.             format bundle  for  specific  zone:net/node  addresses,  the
  675.             second is  to set  up a  completely separate private net for
  676.             testing purposes.
  677.  
  678.                  Release method:   Since  the bundler will automatically
  679.             spread news of itself with use, a simple zero effort release
  680.             program may  be used.  As different versions of the Type 3.x
  681.             bundlers will  require different operating environments, you
  682.             should try  to get  your bundler  made  available  on  Echo-
  683.             BackBone and  Echo Hub  systems.  The reasoning behind this,
  684.             is that  it is  from these systems that the existence of the
  685.             new bundler  will become  common knowledge.  The other place
  686.             to send  it would  be the  Zone, Regional, and maybe Net Co-
  687.             ordinators.
  688.  
  689.                  Future of Type 3
  690.                  Future of Type 3
  691.  
  692.                  Since the  Type 3  format proposed  provides for  a new
  693.             level of  information exchange in Matrix mail I provide here
  694.             a few advance hints of what is planned.
  695.  
  696.                       AutoEcho built in.
  697.                       AutoEcho built in.
  698.  
  699.                  Replace AutoEcho/AreaFix with automatic security.  This
  700.             security is  such that  the hub  will not  need  to  pick  a
  701.             password and send it in netmail to the downstream node prior
  702.             to the downstream node requesting echos.
  703.  
  704.                    Instead, the downstream node will request an echo, at
  705.             which point  the  Hub's  bundler  will  generate  a  netmail
  706.             message to  the Hub  Sysop.  Now the hub Sysop may decide to
  707.             give it  to him.  If he does, he simply tells his bundler to
  708.             start sending it downstream to him.
  709.  
  710.                  Now since  this last  paragraph  has  already  confused
  711.             people, I  will provide  a scenario with names.  Here in Net
  712.             342 we  have our  NEC as  Brian McCullough (BDMc for short),
  713.             and our  REC is  Steve Barnes (SB).  We have BDMc requesting
  714.             the echo NET_DEV from SB.  The sequence is as follows:
  715.  
  716.               BDMc requests NET_DEV.
  717.               BDMc's bundler sees this and generates the echo request
  718.                 packet.
  719.               This packet is bundled and sent to SB.
  720.               SB's bundler finds the bundle.
  721.               SB's bundler sees that BDMc is authorized to have that
  722.                 echo.
  723.               SB's Bundler generates an acknowledge packet and starts
  724.                 sending the echo to BDMc.
  725.               BDMc's Bundler gets the acknowledge and sets up the area.
  726.               BDMc's Bundler will use the password it was sent for
  727.                 future requests.
  728.  
  729.  
  730.  
  731.  
  732.  
  733.  
  734.  
  735.                  If there  was a  problem with  access to  the requested
  736.             echo Steve Barnes would have received a NetMail message from
  737.             his bundler  and he would be able to make a decision at this
  738.             point.  Other than that he need not even be in the country.
  739.  
  740.                  Minor details  on this,  the Hub (or upstream node) can
  741.             specify levels  of  permission  for  this  autoecho  request
  742.             process, and deny certain echos to certain downstream nodes.
  743.             If a  downstream node  requests a  denied echo, the upstream
  744.             node's bundler  will again generate a netmail message to the
  745.             Hub Sysop informing him of what happened.
  746.  
  747.                  This  will   probably  be  implemented  as  a  downward
  748.             compatible  upgrade   with  the  request  for  new  software
  749.             triggered by  the first  request for  a new  echo.  Note, if
  750.             standard distribution  applies this  should never generate a
  751.             request.  However as things do not always work that way, the
  752.             automatic notification  and  optional  file  request  should
  753.             solve any major problems.
  754.  
  755.                  The Future of the Aurora Type 3 Bundler
  756.                  The Future of the Aurora Type 3 Bundler
  757.  
  758.                       Fowarding of bundles that costs money.
  759.                       Fowarding of bundles that costs money.
  760.  
  761.                  All forwarded  bundles that  will cost  money  will  be
  762.             marked as  HOLD unless  either the  receiving OR the sending
  763.             node are  marked as  send-to or  accept-from  appropriately.
  764.             All keywords  will be  valid in  these cases.    This  is  a
  765.             completely backwards compatible change.
  766.  
  767.                       Forwarding Cost bundles from Points.
  768.                       Forwarding Cost bundles from Points.
  769.  
  770.                  The forwarding of cost bundles from points will be done
  771.             on the  basis of  a credit  that the  point has.  The credit
  772.             will be  monitored in  the USER.BBS  file, with  the  record
  773.             number corresponding  to  the  point  number.    This  is  a
  774.             completely backwards compatible change.
  775.  
  776.                  Final Notes:
  777.                  Final Notes:
  778.  
  779.                  Final Note:  Would all those planning on writing a Type
  780.             3.0 bundler  please contact me (Oliver McDonald) via NetMail
  781.             (1:342/1).
  782.  
  783.                  Final  Note(2):   There  are   already   some   planned
  784.             extensions to  Type 3.0,  they will not be strictly required
  785.             and will  not create a new VersionMinor number, but will add
  786.             functionality, and  will when used require an update.  It is
  787.             my feeling that if you are aware of these plans, you will be
  788.             able  to  integrate  them  better  at  the  point  they  are
  789.             "officialized".  It is not my desire to become the only Type
  790.             3.x developer  out there.  It is merely my desire to be able
  791.  
  792.  
  793.  
  794.  
  795.  
  796.  
  797.             to be  one of  them, and also to be able to make Type 3.x so
  798.             attractive to all that everyone will want to run it.
  799.  
  800.                  Final Note(3):  Send Code (tm, Bob Hartman).
  801.  
  802.                  Final Note(4):  Convince me(tm) of suggested changes.
  803.  
  804.                  Kudos:
  805.                  Kudos:
  806.  
  807.                  Thanks to  all the  people in  Net_Dev  who  have  made
  808.             suggestions and comments on this proposal as I worked on it.
  809.             Your comments  are appreciated (even those I have not used).
  810.             I would like to especially thank the following people:
  811.  
  812.               Wynn Wagner III             FSC-0014 and support.
  813.               Roeland Meyer               Work on ArcName routing.
  814.               Randy Bush Suggestions and support.
  815.               Brian McCullough            Sounding board and Cattle
  816.                 Prod.
  817.  
  818.