[Xorp-hackers] Omitting XrlDB from Router Manager
Bruce Simpson
bms at incunabulum.net
Tue Oct 27 08:53:47 PDT 2009
Hi all,
I'm still looking at the XRL replacement since I got back from
holiday, which is why I've been mostly silent on lists.
Something came up in analysis, which broadly relates to Ben Greear's
work on reducing Router Manager startup times, etc. and some of the
questions Li Zhao has been asking in other threads on this list.
@Ben: It would be interesting to know what difference omitting the XRLDB
code makes to your Router Manager startup times.
* The XRLDB seems to exist pretty much to validate what's in the
template files and how the Router Manager uses them, although this is
done completely at run time.
* I wonder if disabling this code would make a difference to performance.
* To do this, I'd hack rtrmgr/template_commands.cc, and comment out the
calls to the XRLdb methods.
* The rtrmgr/xrldb.cc is the only place in the whole system where the
'*.xrls' files are parsed and used. They are used only to validate the
syntax and structure of potential XRL method calls.
* It would mean that there is no up-front validation of the XRLs, but
in practice, this validation step is probably only of interest to people
developing XORP, to catch problems with template files.
* It's probably best folded under a compile-time #define for developer use.
@Li: You were looking for information on how XRLs are sent by the Router
Manager to the XORP routing processes.
* I've been looking at this code with a view to replacement.
* This uses an indirect method call and lookup from the finder:// XRLs
in the *.xrls files.
* Implementing Thrift directly affects the Router Manager: in
particular, the core functionality which configures processes by sending
XRLs to them, in rtrmgr/template_commands.cc, class XrlAction.
* In any event, because the Router Manager is trying to do method
calls without an IDL or C++ stubs, using the textual Finder protocol, a
different mechanism would be needed in Thrift.
* The '*.tp' template files explicitly identify all argument and
result types used when configuring a XORP process via an XRL. If these
are correct, then additional validation shouldn't be needed.
* Therefore: it's possible to construct a binary blob at runtime,
using exactly the same techniques as in the clnt-gen Thrifted code
generator.
cheers,
BMS
More information about the Xorp-hackers
mailing list