BSD 4_1c_2 development
authorCSRG <csrg@ucbvax.Berkeley.EDU>
Sun, 12 Sep 1982 09:31:32 +0000 (01:31 -0800)
committerCSRG <csrg@ucbvax.Berkeley.EDU>
Sun, 12 Sep 1982 09:31:32 +0000 (01:31 -0800)
Work on file usr/src/ucb/berknet/BUGLIST
Work on file usr/src/ucb/berknet/READ_ME
Work on file usr/src/ucb/berknet/TODO

Synthesized-from: CSRG/cd1/4.1c.2

usr/src/ucb/berknet/BUGLIST [new file with mode: 0644]
usr/src/ucb/berknet/READ_ME [new file with mode: 0644]
usr/src/ucb/berknet/TODO [new file with mode: 0644]

diff --git a/usr/src/ucb/berknet/BUGLIST b/usr/src/ucb/berknet/BUGLIST
new file mode 100644 (file)
index 0000000..2589089
--- /dev/null
@@ -0,0 +1,107 @@
+Network Status                 November 5, 1980
+
+BUGS
+----
+--     Various response messages are lost.  This includes "fetching"
+       files when the file being retrieved never arrives.  I suspect
+       this has something to do with unreliable delivery of error messages,
+       but this is not reliably reproducible.
+
+--     The net command will create files in the queue directories
+       without the corresponding control files ("dfa..." without "cfa...").
+       Unknown cause.  They should be periodically removed.
+       (Perhaps caused by an error such as an invalid machine name.)
+
+--     The network makes no provision for errors in transit on intermediate
+       machines, such as "No more processes" or "File System Overflow".
+       While these occur only rarely, when they do, no message or
+       notification is sent to anyone.
+
+--     The network daemons occasionally core dump.  They should not.
+       
+
+SUGGESTIONS
+-----------
+
+--     Maintenance Improvements:
+       The network has become large enough to make re-compilation
+       of the source on all machines to become practically impossible.
+       The net command has compiled within it a routing table for each
+       remote machine (defined in config.h).
+       Adding a new machine to the network requires recompiling the
+       net command on ALL machines.  The net command should read an
+       external text file to compute its data structures.
+       There is a program patchd, written by Bill Joy, which could
+       be used to patch the binary versions of the network
+       on like-systems, such as the Computer Center machines.
+       The network code should use the retrofit library for
+       non-Version 7 systems.
+
+--     The possibility of a number of small UNIX personal machines wanting
+       intermittent access to the network looms ahead.  We should attempt
+       to organize the software to allow occasional use
+       by other UNIX machines, without tying down a port all the time.
+
+--     Bob Fabry has suggested the "machine" be generalized to imply a 
+       machine/account pair, e.g. -m caf would imply "caf" on Cory,
+       -m Cory would imply "fabry" on Cory.
+       Environments could provide this information.   
+       It has also been suggested that the notion of a "default" machine
+       is too restrictive and that each type of command should have a
+       default machine, e.g. netlpr to A, net to B, netmail to C, etc.
+
+--     Colin has developed some data compression algorithms.  On machines
+       which are normally CPU idle, his algorithms could be used to
+       compress data and speed up file transfer.
+       Each individual host could decide whether data should be compressed,
+       and each receiving machine would be able to handle both compressed
+       and uncompressed data.
+
+--     Files being retrieved, or fetched, are created zero-length
+       as the request is sent to the remote machine.  An alternative 
+       would be to put the message "File being transferred." in the file to
+       make things clearer.
+
+--     File modes should be preserved across the network.  Currently
+       they are set to 0600 most of the time.
+
+--     It would be nice if the rcs facilities and commands on various
+       UNIX machines with rcs links were more accessible from machines
+       without an rcs link.
+
+--     The network was not expected to become as large as it has.
+       Not much thought was given to large networks.
+       The netq command only lists queues on the local machine,
+       but many times the user is waiting for long queues on intermediate
+       machines.
+       Likewise, once the request is forwarded to the nearest machine,
+       the netrm command will not let the originator remove the queue file.
+       Finally, a network status command telling people what the network
+       was doing would be very helpful.
+
+--     The underlying protocol is wasteful and/or confusing:
+       * Compute a full checksum on the entire file in addition
+         to the checksum per packet now provided.
+       It is unlikely these will be changed since all the daemons
+       on the network machines would have to be changed at once.
+
+--     The netcp command should allow the user to default one of
+       the filenames to a directory, ala the cp command.
+
+--     File transfers, like remote mail, should be possible from
+       the Berkeley Network to the Arpanet and the Bell Research Net.
+       This is not difficult technically, but requires UNIX-like
+       stream interfaces to be written for the gateways.
+
+--     Currently the network files being transferred are
+       copied into /usr/spool... it would be nice for
+       large files to simply use a pointer to them.
+       (To save time and space).
+
+--     The scheduler the daemon uses is very simple.
+       It should have a way to age priorities and to "nice"
+       transfers, to be done after all normal ones are done.
+       Also, there are some network uses that are time-dependent.
+       It would be nice if certain queue files would disappear
+       at certain times, if for example, a remote machine were down,
+       given that they are no longer useful.
diff --git a/usr/src/ucb/berknet/READ_ME b/usr/src/ucb/berknet/READ_ME
new file mode 100644 (file)
index 0000000..498359f
--- /dev/null
@@ -0,0 +1,73 @@
+
+       B E R K E L E Y   N E T W O R K
+
+
+The code in this directory is the most up-to-date network source
+on the machine.
+
+NOTE: if you are already running my stuff, this version has a new protocol
+that is incompatible on a link-by-link basis with the earlier one.
+Take a look at prot.c and the packet structure of defs.h.
+
+*** Adding a new machine
+
+To add another machine to an existing network, change these programs:
+
+* mach.h:
+       add an ifdef entry for the new machines
+* config.h:
+       add in LOCALx section of config.h
+          the usual information about the machine interconnections
+       add the name of the machine to the machine
+          name table and its type to the machine type table
+* Paths.h:
+       Change the path names in "Paths.h".
+* makefile:
+       change the makefile to suit.
+* nsh.c:
+       Change the path names in "nsh.c".
+* sub.c:
+       check routine "gothru"
+* v6mail.c:
+       add machine names to "v6mail.c"
+
+To set up a new network, I suggest starting with two machines and
+get everything up as you like it, then including others.
+Follow the steps outlined above.  A good way to see the specific
+places where another network has been changed is to 
+       grep RAND *.h *.c
+
+
+*** Other files ***
+interact.c, listen.c - manually send packets
+speeds.c, speedr.c -   send various length packets, use "time" to evaluate
+store.c, receive.c -   send a file (use for backup)
+nettest.c -            run daemons locally, using pipes instead of tty lines
+setmode.c -            set the mode on the tty line driver to "cat" things thru
+
+***    Taxonomy of net pgms being sent around:
+
+Internal:      sendberkmail, prmail, mmail, mwrite
+External:      net, netcp, netlpr, netmail
+Other:         netdaemon, netstart, netq, netrm
+
+
+PROBLEMS
+
+       If you have any problems or questions, don't hesitate
+       to call me.
+               Eric Schmidt
+               2309 Blake Street #401
+               Berkeley, Cal. 94704
+               415-849-1755
+
+       or
+               C.S. Department
+               Evans Hall
+               U.C. Berkeley
+               Berkeley, Cal. 94720
+               415-642-7780
+                   642-1024 (messages)
+       
+       or mail Bell Research mail to "research!ucbvax!schmidt"
+       or mail ARPANET mail to me at "schmidt@berkeley" or "schmidt@parc".
diff --git a/usr/src/ucb/berknet/TODO b/usr/src/ucb/berknet/TODO
new file mode 100644 (file)
index 0000000..9658267
--- /dev/null
@@ -0,0 +1,73 @@
+Things to be done:
+-1.    Immediate
+       1. expand from 26 letters
+       2. (from -x) bug (not present on IngVAX, ESVAX, etc.,
+               present on C machine)
+
+0.     Bugs:
+       netmail cory doesn't work when there is no mail.
+       netmail - doesn't work with -n option (use kexecl).
+       Files ":fix" should be handled correctly
+       -u option correctly sets queue ownership, but netq still shows "root".
+       problem on Ing70 where bill logged in, logged off, I logged in
+               and bill got my permissions
+       bug - a queue file with an extra blank in the front of it on ESVAX
+       loop on waits until pid -- NOSC fix
+       get the NOSC netstart
+       add a check so if the network is having trouble sending things
+               it will write/mail to the appropriate person.
+
+1.     Software mods to my source:
+       * netdaemon:
+         0. add -t and -c (time and count) options to netdaemon
+         1. add a flag to force execl rather than using cshell
+            to avoid no more processes.
+         3. Add statistics on errors.
+         4. Add var parm list stuff - list in net.c (boundary condition)
+         7. Have an upper and lower bound on "atime"-- start low and add.
+         8. add a struct prefix before stat dump struct
+         9. write a stats analysis program
+       * net
+         add a -D option for defining var parm list values (bounadry cond)
+         commands too slow-- option to not read .netrc file, use snfromuid
+       * netcp:
+         Debug three-machine netcp.
+         Use -q for 3way netcp (boundary cond).
+       * netq - do it with qsort
+       * prmail & netmail:
+         print the number of messags forwarded
+       * sendberkmail:
+         should pass remote mmail new options (boundary condition).
+         hopcnt error should be fixed by bcoming "cautious"--
+         thus hopcnt shoul be checked in mmail, and return a boolean
+       * v6mail
+         is too slow- use read() and write(), not fread and fwrite
+       * mwrite -- 
+               login as network rather than as the user.
+       * netrm:
+         should handle arguments just like lprm in v7
+         what about errors in not finding an inaccesible machine
+         add a -m flag to netrm : "netrm -m v -" to remove all for v
+         add ability to netrm remote files, just send the username
+       * add comment line to initfile and .netrc
+       * add getnetworkstatus, etc.  return #entries in netq, #users, uptime,
+         and the pct of user&sys time the command got.
+       * get user's name from the environment to avoid reading
+               the password file
+       * in netstatus command, list last login.
+       * people don't like the fact that a password from the .netrc file
+         gets associated with an overridden login name.
+
+4.     Current Boundaries of compatibility:
+       * old mmails don't allow "-" arguments, assume they are names
+       * can't change version numbers since others enforce them
+       * netcp remote commands don't ignore unknown options.
+
+10.    Structure changes:
+       decrease use of global status vars if not necc., use userinfo
+               as a local variable.
+       make a nrcStruct and have a NrcRead(cfile) subroutine.
+       header.c -- move readhd into header.c w/a test
+               to see which subrs to call.
+       use netcmd(), a subr, instead of /usr/net/bin/net.
+       make a readaccess and writeaccess tocall in v6mail and net.