[OpenSER-Devel] Request for comments: new routing module

Henning Westerholt henning.westerholt at 1und1.de
Wed Jul 25 13:42:32 CEST 2007


Hello all,

we would like to contribute a new module to openser. This module provides 
routing, balancing and blacklisting capabilities, from a config file or a 
database source. It can uses one routing tree, or if needed for every user a 
different routing tree for number prefix based routing. It supports several 
route tree levels, e.g. for failback routes.

This modules scales up to more than a million users, and is able to handle 
more than 10k routing table entries. It should be able to handle more, but 
this is untested at the moment.

Routing tables can be reloaded and edited (in config file mode) with the MI 
interface, the config file is updated according the changes. This is not 
implemented for the db interface, because its easier to do the changes 
directly on the db. But the reload and dump functions works of course here 
too.

This code has been several month in production, but the port to 1.2 needs some 
adaptions in the MI interface and some smaller changes in other parts. So the 
version that gets contributed needs some more testing. Original author for 
this module is my co-worker Jonas Appel, he wrotes most of the code, so all 
credits belongs to him. It comes with the standard documentation in docbook 
format, the code is commented with doxygen as well.

The name of the module is "sp-route2", and the exported functions are prefixed 
with "sp" as well because otherwise they would conflict with some core 
functions. It uses a new hash algorithm based on prime numbers in addition to 
the standard crc32, and needs also the configuration file 
library "libconfuse" as dependency. The prime number hash algorithm is 
encapsulated in a small module, this needs probably be reviewed later.

So for a start we need to come up with a good name for this module, and for 
the functions.

One functions for rewriting all branches is not available at the moment, 
because this needs a function from the core to support this. This was not 
available in older versions of the server. I can contribute a patch for this 
as well, or perhaps this could now solved a different way.

Anyway, i attached the original README file of the module as a basis for the 
discussion. After the necessary modification i will provide the code for a 
additional review, then this could be integrated into the svn.

Best regards,

Henning Westerholt

-- 
Henning Westerholt - Development Consumer Products / DSL Core
1&1 Internet AG, Brauerstraße 48, 76135 Karlsruhe
-------------- next part --------------
A non-text attachment was scrubbed...
Name: README
Type: text/x-objcsrc
Size: 24389 bytes
Desc: not available
Url : http://openser.org/pipermail/devel/attachments/20070725/b308f203/README-0001.bin


More information about the Devel mailing list