[ previous ] [ next ] [ threads ]
 From:  Manuel Kasper <mk at neon1 dot net>
 To:  m0n0wall dash dev at lists dot m0n0 dot ch
 Cc:  m0n0wall at lists dot m0n0 dot ch
 Subject:  New concept/architecture: "m0n0AP" preview
 Date:  Sat, 23 Jun 2007 22:12:35 +0200
Hello everyone,

my diploma thesis is now officially finished, and so I thought it's  
time to release the piece of software that we (Daniel Spörri and I)  
came up with. As I'd mentioned on the m0n0wall-dev mailing list  
before, the initial idea was to port the existing functionality of  
m0n0wall to the new architecture described in an earlier term paper  
(http://m0n0.ch/wall/development.php - yes, I know, most of it still  
hasn't been translated yet...). However, that wasn't permissible, and  
anyway, it would probably have been too much work in the available  
time, what with all the documentation that had to be written as well.

So instead, we settled on applying the new concept/architecture to a  
software package for (FreeBSD based) wireless access points. The  
result is called "m0n0AP" and uses a core daemon written in C++ that  
can load modules (also written in C++) dynamically at runtime. All  
external communication (such as between the core and the GUI) is done  
via XML-RPC over HTTP, and there are other gimmicks as well (such as  
certificate-based digital signatures on modules and system images,  
meta/dependency information in XML files, a neat PHP-based web  
interface, etc.).

Some screenshots:


If you're feeling really adventurous, you can download a CF/HD image  
that should run on most generic PCs, WRAPs and Soekrises here:

http://m0n0.ch/ap/m0n0ap-preview1.img (13.6 MB)

Note that at least a 256 MB disk is required due to the generous  
partition layout and the fact that it doesn't use a compressed MFS  
root file system (unlike m0n0wall). Also, only Atheros-based radios  
are supported. The default user name/password is admin/mono.

Let me stress that this software is in an experimental stage, and  
it's not clear whether any further development will be done on it.  
It's simply intended to be a working practical example of the  
proposed new architecture.

The source code (or rather a dump of the repository) is available here:


Now - after writing all the code for m0n0AP, I'm not sure whether the  
new architecture would be a good fit for m0n0wall. It would be a huge  
amount of work to port all existing functionality, and at least to  
me, the advantages of modularizing everything are not evident. So for  
the time being, I think it's best to try to come up with a stable  
m0n0wall 1.3 based on the old architecture, and then maybe think  
about major changes again.

So long,