What is the architecture of ChilliSpot?
The primary platform for ChilliSpot is Linux and FreeBSD, but it should also be possible to port the software on other posix compliant platforms: OpenBSD, NetBSD Solaris and even Apple OSX. The main design goals of ChilliSpot were stability, portability and scalability. This resulted in the following design choices: • Programmed in (ANSI) C in order to improve portability to other platforms. • Concurrency is implemented using a single select() loop in order to improve portability and at the same time achieve high throughput. A client process is created whenever a http authentication request from a client is received. • Application was developed in user space only. Provides good portability at the cost of performance. Performance can be increased by implementing user plane handling in kernel space. • Conservative handling of memory allocation and error checking. Helps improve stability, but should be optimized for performance at a later stage.