CSE 461: Introduction to Computer Communication Networks, Autumn 2012
  CSE Home   About Us   Search   Contact Info 
Home
Overview
Course email
Anonymous feedback
View feedback
Course wiki
Home Virtual Machines
Homework Turnin
Class GoPost Forum
Gradebook
Schedule
Hw/Project List
   

Project Config File Entries

The value for each field is the string that follows on the same input line. A trailing '\' can be used as a line continuation character. Comments must be entire lines, created by putting a '#' in the first column.

The code we distributed uses some of the fields listed below, as does the code we use as part of grading. Those fields are listed as mandatory - your code must use them as intended. The remainder are optional.

Android
ReqField nameUse
*android.appsSpace separated list of Java class names to instantiate as applications when running on Android. These classes should subclass NetLoadableAndroidApp.
*android.initialappApp name of Android application to launch once finished loading all other system components. Normally this is AndroidAppManager, a kind of Android shell.
Console
ReqField nameUse
*console.appsSpace separated list of Java class names to instantiate as applications when running in console mode. Services implement the NetLoadableConsoleApp interface.
*console.initialappApp name of console application to launch once finished loading all other system components. Normally this is appmanager, a kind of console shell.
DataXfer
ReqField nameUse
dataxfer.server.ipIP address (or DNS name) of the DataXfer server the client application should contact.
*dataxferraw.server.baseportLowest numbered of the four ports used by the DataXferRawService.
dataxferrpc.maxlengthMaximum size data transfer allowed when using RPC communication.
Echo / Ping
ReqField nameUse
echo.server.ipIP (or DNS name) of the echo server.
HTTPDService
ReqField nameUse
httpd.nameName under which to register the HTTPDService for this instance. Normally <net.host.name>.www
httpd.portPort on which HTTPDService should listen.
Log
ReqField nameUse
debug.enable0 → supress all Log output; 1 → don't supress. Default: 1
debug.levelSuppress output below this level: v:2 d:3 i:4 w:5 e:6. Default: 3
Net.Base
ReqField nameUse
net.host.ipThe IP address to use for this host. Typically not needed, but can be used if the code is unable to reliably determine the IP itself.
*net.host.nameDDNS full name of this host
*net.servicesSpace separated list of Java class names to instantiate as services. Services are loaded in the order given in the file, and there may be dependencies among services that will cause loading to fail if an incorrect order is given.
net.timeout.granularityHow often to check for application termination while waiting for a timeout period to expire. (An interval, in msec.)
net.timeout.serversocketDefault timeout to use when waiting for connections on a server socket. (In msec.)
net.timeout.socketDefault timeout when reading from a socket. (In msec.)
Net.DDNS
ReqField nameUse
ddns.resolver.cache.timeoutTimeout for the resolver's cache, in msec.
Value 0 means "don't cache"
ddns.resolver.passwordA password to use when registering or unregistering names
ddns.resolver.serverttlMax number of distinct DDNS servers to contact before giving up
*ddns.root.ipIP address (or DNS name) of DDNS root name server
*ddns.root.portPort on which DDNS root name server is listening
ddns.service.cleanintervalThe amount of time after a register() call at which the name's zone server will forget the registration. (In msec.)
ddns.service.initWhitespace separated vector of initialization data for nodes. Each element of the vector is of the form <DDNS full name>:<:IP addr>:<port>.
ddns.service.nodefileThe name of a file containing a ddns.service.nodes entry, allowing the initialization data for DDNS to be separated from the main config file. Only one of ddns.nodefile and ddns.nodes should be present in the main config file.
ddns.service.nodesA whitespace separated vector of resource record entries in the zone. The first record must be an SOA.
Example:
ddns.service.nodes=soa:default.uw12au.cse461.:samplePassword \
a:child.default.uw12au.cse461.:samplePassword
ddns.service.resolvettlUpper bound on the number of name resolution steps allowed within a single zone before giving up. (Insurance against bugs that cause loops in the name structure internal to a zone.)
Net.RPC
ReqField nameUse
rpc.persistence.timeoutIdle time threshold (in msec.) afer which a persistent connection is closed.
rpc.server.portLocal port on which the RPC service should listen for connections. If a root configuration, must match ddns.root.port. Otherwise need not be specified.
SNET
ReqField nameUse
snet.fetchphoto.maxlengthMax bytes SNet is willing to transfer in a single fetchPhoto() invocation. (Note that TCPMessageHandler imposes a limit that cannot be exceeded.)
snet.nameSNet member name of user.
snet.proxynameDDNS name of SNet proxy.
TCPMessageHandler
ReqField nameUse
*tcpmessagehandler.maxmsglengthThe maximum allowed length of the data portion of a received TCPMessageHandler message.
Test
ReqField nameUse
test.snet.server.nameDDNS name of the node on which the test server is running. (Normally '.'.)
test.snet.testsuiteThe name for the test suite to run; e.g., 'uw12au'.
test.snet.initialdatasetThe name for the first data set defined in the test suite. (See SNetTestData.java.)
test.teamNames of the team members for the project.


Computer Science & Engineering
University of Washington
Box 352350
Seattle, WA  98195-2350
(206) 543-1695 voice, (206) 543-2969 FAX
[comments to zahorjan at cs.washington.edu]