4BSD/usr/src/cmd/berknet/READ_ME
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".