| This project is to design and implement a software programmable 
              router architecture based on the Linux platform with the aim to 
              facilitate networking experiments for the research community.   Beside the normal functionality of packet forwarding and routing, 
              our programmable router provides: 
              dynamic loading of new services or program modules;light weight resource management (e.g., CPU) for competing processes, 
                both for the kernel processes and loadable services;secure communication protocol to assist module loading (via 
                authentication) and communication between programmable routers;hook-points extension to allow service addition and maintenance. The extension framework is based on the netfilter 
              architecture in Linux 2.4/2.5. The framework supports both kernel 
              and user-space extension. Dynamic service loading is achieved via 
              kernel loadable modules and shared objects. Hook-point extension 
              is allowed and one can use these hook-points to insert processing 
              routines at multiple locations inside a kernel protocol stack. In 
              addition, a user-space packet queuing and de-multiplexing mechanism 
              is implemented, which provides an alternative to extend router services 
              in user-space. We also enhance the CPU scheduler of the Linux kernel so as to 
              provide proper CPU resource management. In particular, we use the 
              Virtual Time Round Robin scheduling algorithm wherein one can specify 
              the maximum allowable CPU resource for any given kernel or extensible 
              service. The importance of this feature is that one can add new 
              services to the programmable router without affecting the performance 
              of normal packet forwarding/routing functions. We also provide secure communication extension via a router authentication 
              scheme. Our scheme employs the electronic certificate and digital 
              signature technology to ensure the integrity and credibility of 
              sensitive data during router communication. |