[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