File: README
Date: Tue Feb 03 15:57:46 PST 2004 
Last Modified: Sat Mar 26 21:23:45 PDT 2011
Author: Martin Casado / James Hongyi Zeng

///////////////////////////////////
// Greetings from your CS344 staff
///////////////////////////////////
Please read instructions on course website [http://yuba.stanford.edu/cs344/sw/basic-router/].
It's highly recommended that you get familiar with VNS by reading through Simple Router
assignment at http://yuba.stanford.edu/vns/assignments/simple-router/ before hacking :-)

Good luck! 
///////////////////////////////////
// End of Greetings
///////////////////////////////////

This directory contains the code base for developing a functional 
internet router that supports TCP and user level programs. 

Decsription of Files:

 - sr_main.c :  The entry point to the full system.  This starts the
                lower level routing functionality in a seperate thread
                and then idles in a sleep(..) loop.  'User level' network
                code that use the standard bsd sockets can be run from main,
                and if linked correctly will use the sr network underlayer.

 - sr_base.c :  Entry point to the full low level networking code.  sr_base
                is responsible for housing the "global" instance of the
                router, starting the transport subsystem, and managing the
                connection to the VNS. 

 - sr_integration.c : Contains all the methods which need to be 
                      extended to support a full running router.  This
                      includes callback methods for each packet, methods
                      to send packets, methods which pass in hardware
                      information etc.

 - sr_vns.c  :  handles communication with the VNS server                 

 - sr_dumper.c : Methods supporting writing packets in pcap format

 - sr_lwtcp_glue.c : compatibility methods for integrating with lwip

 - sr_cpu_extension_nf2.c : Contains code for interfacing with the hardware.
                            This file contains two methods that have to be
                            completed by the students and should be extended to
                            add support for register reads/writes.