BIND 10 #2238: Pool/Lease Configuration - IPv6
BIND 10 Development
do-not-reply at isc.org
Fri Sep 21 17:10:18 UTC 2012
#2238: Pool/Lease Configuration - IPv6
-------------------------------------+-------------------------------------
Reporter: | Owner: stephen
stephen | Status: reviewing
Type: task | Milestone: Sprint-
Priority: | DHCP-20121004
medium | Resolution:
Component: | Sensitive: 0
dhcpconf | Sub-Project: DHCP
Keywords: | Estimated Difficulty: 0
Defect Severity: N/A | Total Hours: 0
Feature Depending on Ticket: |
Add Hours to Ticket: 0 |
Internal?: 0 |
-------------------------------------+-------------------------------------
Changes (by tomek):
* owner: tomek => stephen
Comment:
Replying to [comment:7 stephen]:
> '''Response to 'Things to consider' in comment:2'''
> > this ticket covers configuration storage only. It is intended to store
v6 server configuration. The actual configuration parser (that translates
user's configuration into structures defined) is part of a separate
ticket, see #2269.
> One of the comments above suggests separate CfgMgr4 and CfgMgr6 classes.
Let's keep them unified for now. If the code becomes too big, we will
split them.
> > Currently classes Pool, Pool6, Subnet, Subnet6 are stored in the same
files as !CfgMgr?. As they are part of the !CfgMgr?, they may be possibly
defined as internal classes (e.g. CfgMgr::Pool, rather than just a Pool).
Alternatively, they could be moved to separate files. Finally, they can be
left as they are now.
> As noted above, I suggest moving them to separate files. The files are
smaller to edit, and the name of the file clearly indicates the contents.
Done. pool.{cc|h}, subnet.{cc|h} and triplet.h were created.
> > If would be nice if Pool and Subnet were abstract classes.
Unfortunately, I couldn't find any method that would be required in both
derived versions (Pool4 and Pool6) and take a parameter that is common for
both derived classes.
> The identification of the pool/subnet could be handled in a base class.
Also, utility functions such as an address being in a given range,
checking that "first < last", etc.
By identification you mean getID() method? It is already in the base class
(Pool). I will probably move some methods to base class once I'll work on
#2237 (v4 pool/subnet storage).
> > I'm not sure if pointers to Pool and Subnet are really needed. I would
like to hear reviewer's opinion on that.
> Leave the definitions in for now. If it turns out that they are not
used, they can always be removed (or moved to the test files where they
are used).
Ok.
> > Parameter inheritance is planned to be implemented as part of the
configuration parser logic and the inheritance will be done at
configuration phase. That means that Subnet6 objects will be instantiated
with their "ultimate" values with inheritance already applied if
necessary. That will make configuration phase slightly slower, but will
make the actual operation faster.
> See comments above. The overhead of splitting the global/specific
parameters when accessing the values is only a few instructions (probably
just one "if" if the accessor functions are inline). Opposed to this is
more complicated parser logic (and reconfiguration logic) if objects are
instantiated with their "ultimate" values.
Ok. I will see how this unfolds when I implement configuration parser.
There's another complication here - the default values defined in spec
files. I'm not sure how they affect the problem. I will give it more
thought during #2269 work.
That hopefully answers all comments. Please review.
--
Ticket URL: <http://bind10.isc.org/ticket/2238#comment:9>
BIND 10 Development <http://bind10.isc.org>
BIND 10 Development
More information about the bind10-tickets
mailing list