BIND 10 #1396: Rdata::getLength() for use with xfrout

BIND 10 Development do-not-reply at isc.org
Mon Jan 27 06:16:04 UTC 2014


#1396: Rdata::getLength() for use with xfrout
-------------------------------------+-------------------------------------
            Reporter:  jinmei        |                        Owner:  muks
                Type:  enhancement   |                       Status:
            Priority:  medium        |  reviewing
           Component:  libdns++      |                    Milestone:
            Keywords:                |  Sprint-20131015
           Sensitive:  0             |                   Resolution:
         Sub-Project:  DNS           |                 CVSS Scoring:
Estimated Difficulty:  3             |              Defect Severity:  N/A
         Total Hours:  0             |  Feature Depending on Ticket:
                                     |          Add Hours to Ticket:  0
                                     |                    Internal?:  0
-------------------------------------+-------------------------------------

Comment (by muks):

 Hi Paul

 Rendering to wire data to calculate lengths is very expensive. I am
 guessing this is why Jinmei created this ticket, and this functionality
 belongs in `Rdata` where derived types can return the required length in
 constant time. We should not close it as wontfix.

 This being a 3 point ticket, I didn't know how much was to be
 implemented as part of it.

 * Adding type-specific `getLength()` implementations is a much larger
   task, and this should at least be put off until the RR types in review
   are first merged to master.

 * `getLength()` is `virtual` (with a default implementation) so that
   such type-specific implementations can be added later.

 * xfrout should be modified to use this newly introduced method. I don't
   know if this ticket includes doing that (the description says "we can
   use it in xfrout" but not if it should be done in this ticket).

 To avoid confusion, I'll edit the branch further to update `RRset` to
 have a `getWireLength()` method, add a Python binding for it and and
 update xfrout to use this binding.

 Adding implementations of `Rdata` should be done only after the current
 RR types in review are merged to `master`. As there is a default
 implementation, they will not cause a compile error if a derived
 implementation is missing (though I suppose the default implementation
 can be removed once all derived types have implementations). It is also
 a much larger task.

-- 
Ticket URL: <http://bind10.isc.org/ticket/1396#comment:7>
BIND 10 Development <http://bind10.isc.org>
BIND 10 Development


More information about the bind10-tickets mailing list