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. *** 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 *** Naming Conventions (I may adopt these if I like them) *** The names of simple variables are composed of three parts. [type char] [string] [type tag] where typechar is one of i integer (int) l long integer (long) ch character (char) s string (char *) f logical (char) the (optional) string is any short descriptive string. the (optional) type tag is noe of (assume string is "foo"): fooMin minimum value of foo, for all foo, foo >= fooMin fooMax maximum value of foo, foo <= fooMax fooMac current maximum of foo, fooMin <= fooMac <= fooMax usually used for array substript fooOld old value of foo, as opposed to fooNew fooNew new value of foo, as opposes to fooOld Example: sdate a string containing a date sdateOld a string containing an old date sdateNew a string containing the "current" date Pointers pointer names are composed of the previous set of names precedd by a character "p", e.g. pch pointer to char (same as string) pi pointer to integer pltime pointer to a long with the time in it Counters Variables that count instances of things are preceded by 'n', e.g. nch number of chars nsdate number of date strings Indices Are stored as integers and preceded by 'i': ich index into char array is same as above Added types: uid userid as set by getuid() sn local name, w/o ':' fd (FILE *) file descriptor mch (char) 1 - letter machine code addr (char *) address, may include ':' Procedure names list parameters appear after procedure name, return value before. (Remember for external names only the first 7 characters are significant.) Compile Time Constants Are in upper-case. (Remember only first 8 characters are significant to the preprocessor). PROBLEMS If you have any problems or questions, don't hesitate to call me. Eric Schmidt 706 International House Berkeley, Cal. 94720 415-642-9365 642-9490 (messages) or C.S. Department Evans Hall U.C. Berkeley Berkeley, Cal. 94720 415-642-4951 642-1024 (messages) or mail Bell Research mail to "research!ucbvax!schmidt" or mail ARPANET mail to me at "schmidt@berkeley" or "schmidt@parc".